Forwarded from ZeroNights
Осталось всего 3️⃣ часа до старта нашего традиционного хакерского квеста HackQuest!
🟢 HackQuest будет длиться неделю — до 20:00 (МСК) часов 24 октября
🟢 Каждый день в 20:00 (МСК) будет открываться новое задание, на решение которого отводится 24 часа
🟢 Лучшие игроки получат инвайт на конференцию ZeroNights 2025!
Правила участия подробно по ссылке.
🟩 Принять участие в HackQuest: hackquest.zeronights.org 🟩
Правила участия подробно по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Вот и пришло время опубликовать документ про MLSec, а то обещал. Этот документ представляет собой комплексное руководство по внедрению практик безопасности (ML Sec) в системах машинного обучения. Он охватывает все этапы жизненного цикла ML-систем - от проектирования и сбора данных до развертывания, мониторинга и поддержки в проде.
Ссылка на GitHub - ТЫК
Что внутри
Что буду делать дальше
#mlsec
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Lercas/MLSec-Docs: MlSec document RU
MlSec document RU. Contribute to Lercas/MLSec-Docs development by creating an account on GitHub.
3🔥14❤2
В какой-то момент я понял, что большинство LLM-агентов ведут себя как неопытные джуны с доступами в прод.
Они выполняют команды, ходят по API, читают внутренние данные и всё это без слоёв изоляции, без валидации и без
Решил это попытаться исправить - собрать свой безопасный MCP, который регулирует, как модель взаимодействует с инструментами и данными.
Вот я и составил короткий отчёт о том, что сломалось, что пришлось перепридумать и какие выводы стоит вынести или уехать в дурку.
Вся расширенная версия будет при следующем обновлении документа, надеюсь не через год
Первая головная боль - большинство систем воспринимают LLM как просто клиент, которому можно выдавать токен и hope for the best.
LLM - это не клиент, это динамическая среда исполнения, и ей нужен control plane, который будет отвечать нашим требованиям:
В итоге, я сделал отдельный шлюз - MCP-сервер, через который проходят все действия агентов.
Он подписывает запросы, вставляет контекст авторизации и валидирует payload до передачи инструменту.
Когда тестировал прототип, стало ясно, что LLM умеет обходить собственные фильтры.
Кто бы мог подумать👀
В одном случае агент "убедил" MCP-шлюз, что ему нужен доступ к системному токену, просто потому что в prompt был "!admin".
Решение:
Теперь любое действие проходит по цепочке:
Второй сюрприз - сами тулзы.
Часто они работают в общей среде с агентом, а это минус со стороны иб.
Я вынес каждый инструмент в отдельный контейнер с seccomp и AppArmor, подписал манифесты через Sigstore (спасибо, что в какой-то момент пришлось с ним плотно поработать
Если кто-то решит заменить бинарь или добавить вредоносный инструмент - MCP сразу откажет по подписи.
Пункт для больший проектов и компаний, можете чуть подзабить в личных нуждах
LLM без логов - как SOC без SIEM
Можно проследить, кто, когда и через какую модель вызвал API, и что ответил инструмент. Даже если агент ошибся, мы видим причину и контекст. Главное, очищать от конф данных.
Теперь любой LLM работает в управляемом и наблюдаемом контуре, а не как хаотичный ассистент с SSH-доступом.
Пусть OPA или Kyverno решают, LLM - только инициирует
MCP - не просто новая аббревиатура для вайбкодеров, вайбапппсеков, вайбхерни, а реальный способ дисциплинировать модели, вернуть контроль и прозрачность.
Документ с деталями - ТЫК
Если хотите внести вклад или протестировать подход - присоединяйтесь к коммюнити.
Если всё надоело - канал сырника
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Lercas/MLSec-Docs: MlSec document RU
MlSec document RU. Contribute to Lercas/MLSec-Docs development by creating an account on GitHub.
2🔥17❤3😁2
Помню не зря пятый день ноября
И заговор пороховой.
Проходят века, но грусть и тоска
Всегда остаются со мной.
Современный CI/CD - это уже не сборка, а лабиринт доверия. Доверия к коллегам, коллегам из других отделов, разработчикам, к себе (тут вообще жуть). Git, runners, registry, helm-чарты, контейнеры, облачные кэши - каждый узел может быть точкой компрометации.
А теперь вопрос: "Откуда уверенность, что ваш контейнер в проде это тот же самый, что вы собрали на пайплайне?"
Если ответ - "мы верим CI", то, возможно, пора начать проверять, а не верить.
Sigstore - это открытая экосистема, которая превращает процесс сборки в криптографически доказуемую цепочку доверия.
Она подтверждает кем, где и из чего был собран артефакт: контейнер, бинарь, SBOM или даже модель ML.
Runner получает краткоживущий сертификат через OIDC-провайдера (например, Keycloak или Dex).
Cosign подписывает артефакт, прикладывая:
Подпись и метаданные отправляются в журнал Rekor, который обеспечивает неизменяемость данных. Даже администратор не может "стереть" запись - хэш уже зафиксирован в дереве.
Policy Controller при деплое проверяет подпись:
Если хоть одно нет - деплой останавливается.
Для компаний, где внешний интернет запрещён, Sigstore можно развернуть внутри контура.
Пример инфраструктуры:
# Развёртывание self-hosted Sigstore
git clone https://github.com/sigstore/helm-charts
helm install fulcio ./helm-charts/charts/fulcio \
--set config.oidcIssuer=https://keycloak.company.local/auth/realms/ci \
--set config.ca.type=self-signed
helm install rekor ./helm-charts/charts/rekor
helm install cosign-policy ./helm-charts/charts/policy-controller
Подпись и проверка выполняются так:
# Подписываем артефакт локально
COSIGN_EXPERIMENTAL=1 cosign sign \
--fulcio-url https://fulcio.company.local \
--rekor-url https://rekor.company.local \
registry.company.local/backend@sha256:123...
# Проверяем подпись перед деплоем
cosign verify \
--rekor-url https://rekor.company.local \
registry.company.local/backend@sha256:123...
Результат содержит issuer, subject и время подписи - всё, что нужно для внутреннего аудита.
AppSec наконец получает не контроль постфактум, а встроенный механизм доверия в процессе сборки.
Sigstore и Cosign это не про подписи ради галочки. Это инструмент, который делает supply chain доказуемым, воспроизводимым и проверяемым.
В self-hosted варианте он превращается в вашу внутреннюю PKI-инфраструктуру нового поколения - лёгкую, автоматическую и привязанную к идентичности CI.
Если вы всё ещё деплоите контейнеры "на доверии", то это не DevSecOps - это просто вера в чудеса.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3🤔3
Forwarded from Очерк
Котаны🌟
Немного обновили функционал на hackadvisor.io.
Избавились от сложной математики в рейтинге, теперь всё решает комьюнити. Просто оставляйте отзывы, и рейтинг формируется сам.
Комментарии публикуются сразу, можно писать сразу после регистрации.
Для овнеров программ обновили кабинет, теперь там видно все их программы и работать стало удобнее.
Появился лидерборд, но я там случайно оказался первым, потом исправлю, честно🫣
Покидайте комментов в программы, хороших или плохих. У меня как раз завалялся один лишний Flipper, отдам его тому, кто запилит топ адекватных отзывов. Остальные тоже не останутся без мерча от HackAdvisor ♥️✊🏻
Вообщем наверное стоит посмотреть самим https://hackadvisor.io/
Немного обновили функционал на hackadvisor.io.
Избавились от сложной математики в рейтинге, теперь всё решает комьюнити. Просто оставляйте отзывы, и рейтинг формируется сам.
Комментарии публикуются сразу, можно писать сразу после регистрации.
Для овнеров программ обновили кабинет, теперь там видно все их программы и работать стало удобнее.
Появился лидерборд, но я там случайно оказался первым, потом исправлю, честно
Покидайте комментов в программы, хороших или плохих. У меня как раз завалялся один лишний Flipper, отдам его тому, кто запилит топ адекватных отзывов. Остальные тоже не останутся без мерча от HackAdvisor ♥️✊🏻
Вообщем наверное стоит посмотреть самим https://hackadvisor.io/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Forwarded from HaHacking
ℹ️ Ремарка о том, как работают платежи в Telegram⬇️ 🔗 core.telegram.org/bots/payments🔗 core.telegram.org/bots/payments-stars0️⃣ Пользователь запускает процесс оплаты1️⃣ Telegram на клиентской стороне проверяет баланс пользователя:
▪️ не хватает – говорит пополнить
▪️ достаточно* – шлёт боту статусpre_checkout_query2️⃣ Бот обязан ответить наpre_checkout_queryв течение 10 секунд, если он готов предоставить товар / услугу, иначе – отмена3️⃣ Производится оплата4️⃣ Telegram шлёт боту чек со статусомsuccessful_payment
*Что такое достаточно?Это либо "хватает звёзд", либо "платит картой" (но на этом этапе неизвестно, есть ли деньги на карте)
Есть такой неофициальный Telegram клиент – exteraGram – и он предоставляет пользователям возможность дополнять свою функциональность кастомными плагинами, написанными на Python;
Некоторые такие плагины позволяли рисовать себе любое количество звёзд, генерировать поддельную "успешную" оплату и, если включить специальный режим, автоматически рисовать звёзды обратно после покупок.
...
from org.telegram.tgnet.tl import TL_stars
...
StarsController = find_class("org.telegram.ui.Stars.StarsController").getClass()
...
class Plugin(BasePlugin):
DEFAULT_BALANCE = 999999
SETTINGS_INFINITE = "infinite_mode"
...
def _handle_payment(self, response, error):
...
# Create fake success response
TL_payments_paymentResult = find_class("org.telegram.tgnet.TLRPC$TL_payments_paymentResult")
TL_updates = find_class("org.telegram.tgnet.TLRPC$TL_updates")
...
return HookResult(strategy=HookStrategy.MODIFY_FINAL, response=fake_result)
...
...
class _GetBalanceHook(MethodReplacement):
...
def replace_hooked_method(self, param):
...
# Return fake balance
return self._create_stars_amount(self.plugin.balance)
def _create_stars_amount(amount):
# Create StarsAmount object
try:
return TL_stars.StarsAmount.ofStars(int(amount))
...
...
Естественно, нарисованные звёзды не могут быть использованы для успешной оплаты товаров и услуг. Они нужны, чтобы хвастаться перед друзьями
successful_payment, а отдают товар / услугу уже на этапе pre_checkout_query, несмотря на официальную документацию. Ну а просто действительно, чего мы ждём, если оплата только в звёздах, да и звёзды уже лежат на столе?Те, кто подсуетились – зачистили магазины и накупили подписок, набрали себе аккаунтов, авторегов и всего подряд на миллионы (!) звёзд, а учитывая, что многие услуги подразумевают также денежные затраты со стороны продавца (например, те же API вызовы к LLM) – на много чужих денег; Благо разработчики ботов тоже подсуетились и многих перебанили.
@HaHacking
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3
Лирическое отступление:
С праздником всех причастных!
ПРОПАГАНДА LLM
В классическом AppSec всё просто. у тебя есть код, правила и детектор, который считает совпадения.
Но как только появляется LLM, эта парадигма рушится.
Модели больше не ищут паттерн, они строят причинно-следственные связи - от источника данных до точки использования. Они понимают, где контекст реально опасен, и могут подтвердить это исполняемым доказательством.
SAST размечает текст, LLM проверяет гипотезу. Разные задачи, разные единицы измерения, кто бы мог подумать
Понятно, что можно просто вогнать репозиторий в агент и попросить его найти баги, он найдет... но не все
LLM не ограничивается функцией - он восстанавливает цепочку input -> обёртки -> санитайзеры -> sink ->
То, что статанализ режет границами файла, модель собирает через вызовы, импорт, конфиги и тесты. Именно поэтому простые бенчмарки больше ничего не показывают - реальная сила LLM раскрывается в межпроцедурном анализе, где нужны связи между коммитами и файлами.
На практике работает гибридно:
Такой конвейер (по типу IRIS) позволяет вылавливать то, что статике недоступно - уязвимости, скрытые на стыках модулей.
Модель с ReAct-петлёй делает то, что SAST не умеет: строит гипотезу и проверяет её тестом (взял отсюда - ТЫК).
Если тест падает до фикса и проходит после - это не FP, это факт. Без такой верификации всё остальное - просто красивая эвристика.
Вместо "сработало правило"
➡️
"доказано исполнением"
EBE оценивает не совпадение, а факт, что дефект можно подтвердить и безопасно устранить.
Ключевые метрики:
- EVP (Exploit-Validated Precision) - доля находок с воспроизводимым тестом или PoC
- AVR (Attack-surface Validated Recall) - доля найденных и подтверждённых уязвимостей из тестируемого набора
- PVR (Patch Verification Rate) - тесты падают до фикса, проходят после
- EBC (Evidence Bundle Completeness) - полнота доказательной цепочки
- TCI (Triage Cost Index) - сколько шагов нужно, чтобы воспроизвести баг
LLM не заменяет SAST - он поднимает уровень анализа
Попробовать - ТЫК
Exploit-Backed Evaluation превращает уязвимость из абстрактного предупреждения в проверенный факт. И если у вас всё ещё измеряют качество “количеством алертов”, - значит, вы всё ещё живёте в мире статических правил, а не исполняемых доказательств.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3🤔1
Forwarded from ZeroNights
Мерч ZeroNights — уже на сайте!
Посмотреть можно в нашей карусели или на странице сайта. А купить — в день конференции в Маркете💸
До конференции🟩 всего 2 дня🟩
Приобрести билеты онлайн➡️ тут
Посмотреть можно в нашей карусели или на странице сайта. А купить — в день конференции в Маркете
До конференции
Приобрести билеты онлайн
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7