Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
stego_provenance_defense — Стеганографическая защита от prompt-injection для агентных ИИ-систем с использованием привязки происхождения на этапе декодирования, аутентификации HMAC и обеспечения доверия MCP. | Kitploit
Инструменты/GitHubGitHub/ericyoc/stego_provenance_defense
Оборонительные ИнструментыСтеганографияАутентификацияСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubericyoc/stego_provenance_defense

stego_provenance_defense

Стеганографическая защита от prompt-injection для агентных ИИ-систем с использованием привязки происхождения на этапе декодирования, аутентификации HMAC и обеспечения доверия MCP.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
РепозиторийСайт
283 дней назадЕщё не проверено
Поделиться

Eric Yocam on Lounge

Привязка происхождения на этапе декодирования для MCP-агентов

Воспроизводимый proof-of-concept для вектора стеганографической инъекции промпта, который обходит сканеры текстового содержимого, и защита, которая локализует его на границе декодирования — привязка происхождения на этапе декодирования.

Только в образовательных целях / для защитных исследований в области безопасности. Все секреты в этом репозитории — поддельные. Используйте только в системах, которыми владеете или которые уполномочены тестировать.


Краткое описание

Злоумышленник отправляет жертве по электронной почте внешне обычное сообщение. Логотип бренда в подписи письма скрывает инструкцию с помощью стеганографии (LSB, DCT или метаданных). Изображение визуально идентично оригиналу и не содержит подозрительного текста, поэтому сканер содержимого ничего не видит, а жертва ничего не нажимает. Но рутинный агент суммаризации входящих жертвы обрабатывает подпись, инструмент в его конвейере декодирует изображение, и скрытая инструкция попадает в контекст агента — где в многоагентном MCP-конвейере она передаётся между агентами как доверенный вывод равноправного узла и инициирует критически важный вызов инструмента. Это кросс-модальное отмывание доверия. Защита, привязка происхождения на этапе декодирования, создаёт подписанную HMAC метку UNTRUSTED в момент запуска инструмента, обращающего сокрытие, и заставляет слой MCP самостоятельно поддерживать цепочку происхождения, поэтому она блокирует любой критически важный вызов инструмента, чья цепочка не является доверенной, — даже когда скомпрометированный агент предъявляет валидную метку для несвязанного доверенного значения. Она локализует, а не обнаруживает, поэтому не зависит от формулировки полезной нагрузки и носителя.


Результаты

Доля успешных атак (ASR) — 24 полезные нагрузки (три носителя × восемь обходов: простой, с безобидными словами, Base64, разбиение токенов, кириллический гомоглиф, нулевой ширины, Unicode-конфузивный, HTML-комментарий); меньше — лучше. Внутрипроцессный базовый метод taint — это контроль информационных потоков, который помечает вывод декодирования как недоверенный, но не несёт кросс-доменной криптографической привязки:

ЗащитаУтечкиnASR
Без защиты (без проверок)2424100%
Сканер содержимого (ключевые слова/DLP)152462.5%
Парсер намерений на регулярных выражениях152462.5%
Taint потоков данных (базовый IFC)0240%
Привязка происхождения на этапе декодирования (наша)0240%

Taint и привязка происхождения показывают одинаковый результат по ASR в одном домене; они расходятся при состязательной передаче (ниже), в чём и заключается смысл криптографической привязки.

Подмена валидной метки — скомпрометированный агент предъявляет легитимно подписанную привязку TRUSTED от безобидного инструмента, опуская происхождение декодирования UNTRUSTED, которое фактически инициирует вызов. Исправление состоит в том, что слой MCP самостоятельно поддерживает цепочку и принимает решение на основе собственного реестра, а не привязки, предоставленной агентом:

Механизм контроляРешение
Только привязка, предоставленная агентом (наивный)разрешить (утечки)
Поддерживается слоем, зависимость опущенаблокировать
Поддерживается слоем, зависимость в аргументахблокировать
Поддерживается слоем, чистый контекстразрешить

Абляция компонентов — четыре компонента, каждый защищает от отдельной атаки. Отключайте по одному за раз; substitution находится в домене, forged relay — это поддельная метка TRUSTED, пересекающая недоверенную передачу к удалённому верификатору, который располагает только предъявленной привязкой. Ключевой момент: один только HMAC не останавливает подмену (это делает реестр), а один только реестр не выдерживает кросс-доменную передачу (это делает HMAC):

КонфигурацияЧестныйПодменаПоддельный ретранслятор
Полный механизмзаблокированозаблокированозаблокировано
− маркировка декодированияутечкаутечкаутечка
− криптографическая аутентификация (HMAC)заблокированозаблокированоутечка
− отслеживание доверенной линии происхождениязаблокированоутечказаблокировано
− посредничество стокаутечкаутечкаутечка

Межконтекстное распространение — заражение сохраняется через границу сообщения между агентами, а не только через дескриптор возврата инструмента. Недоверенное декодирование в агенте A достигает критического вызова в отдельном контексте агента B, и на опосредованном канале (который модель угроз уже требует для меж­агентной связи) заражение распространяется, и B блокируется. Канал, который слой не опосредует, по построению находится вне модели — это не утечка в рамках области охвата:

Канал A → BКритический вызов B
Опосредованное меж­агентное сообщение (в области охвата)блокировка (заражение распространено)
Неопосредованный побочный канал (вне модели)не покрывается

Масштабирование накладных расходов — MintBinding имеет сложность ~O(1) (~10–14 µs независимо от глубины); EnforceCritical линеен по замыканию зависимостей, которое он обходит (≈10 µs при глубине 1 → ≈0,66 ms при глубине 100 → ≈6,7 ms при глубине 1000) и постоянен (~6–7 µs) по числу одновременных заражённых контекстов. Реалистичные замыкания (глубина в десятках) остаются ниже ~0,1 ms.

Полезность для легитимных задач — проверенный путь доверенного повышения (перемаркировка конкретного декодированного значения, например номера счёта, распознанного OCR, при наличии авторизации) устраняет ложные блокировки, при этом атака остаётся заблокированной:

РежимЗавершениеЛожные блокировкиАтака заблокирована
Без повышения2/3 (67%)1да
Доверенное повышение3/3 (100%)0да

Полнота набора декодеров — допущение о регистрации, проверенное напрямую:

Набор декодеровСтегано-атакаЛегитимный критический вызов
Корректныйзаблокированоразрешено
Отсутствующий декодерутечкаразрешено
Слишком широкийзаблокированоложная блокировка

Целостность метки при передачах — привязка сохраняется при честной ретрансляции и противостоит скомпрометированному воркеру:

Сценарий ретрансляцииРешение верификатора
Честная ретрансляция, 1 / 3 / 5 / 10 переходовподтверждает; заблокировано
Скомпрометирован: перезапись полезной нагрузки, сохранение HMACблокировка (несовпадение HMAC)
Скомпрометирован: подделка TRUSTEDблокировка (несовпадение HMAC)
Скомпрометирован: удаление привязкиблокировка (нет валидной метки)

Накладные расходы — фактически бесплатны в точке принятия решения: создание и проверка привязки занимают ~8–9 µs каждая (~17 µs суммарно) против вызова инструмента декодирования ~11 ms — менее ~0,2% добавки. Искажение носителя низкое (LSB ≈ 76 dB PSNR, метаданные без потерь; DCT ≈ 18 dB — метрика искажения, а не утверждение о перцептивной незаметности).


Что здесь есть

Скачать инструмент