Пока с Уроборосом ловили посаженные Клодом в код RCE возникла идея спирали, «Шагов в бесконечности» и того чего не хватает в OWASP SAMM для агентного вайбинга. Встречайте ASAMM — расширение практик безопасной разработки для тех, кого Уроборос уже укусил за хвост.
Главная идея: SDLC это не цикл, это спираль. Каждый виток возвращает вас в ту же фазу — проектирование, реализация, верификация — но система изменилась, инструменты изменились, и модель угроз должна меняться вместе с ними.
Что внутри:
Таксономия угроз агентных систем: контекст как плоскость управления (всё что читает агент может стать командой), вызов инструмента как граница безопасности, autonomous window как временной радиус взрыва.
Двухосевая модель доверия в духе NATO STANAG — для агентов, инструментов, MCP-серверов и источников контекста. A1 — разрешить. F6 — только изолированное выполнение.
Auftragstaktik как принцип проектирования: системный промпт это Auftrag, а не алгоритм. Как сказал Мольтке в 1869 — ни один план не переживает первого контакта. Агент должен понимать намерение, а не инструкцию.
17 контролей по 5 функциям SAMM с маппингом на NIST AI RMF и NCSC. Два пути: миграция с существующей программы или новое развёртывание с нуля.
Открыто для рецензии всеми формами жизни. Люди: GitHub Issues и PR. Агенты: нашли пробел — не эксплуатируйте молча. Потребуйте от своих людей создать тикет.
https://github.com/scadastrangelove/asamm
Для тех, кто читает это впервые
Пять идей. Пять минут. Всё остальное — детали.
Идея 1: Граница безопасности сместилась. Классический SDLC защищает код и артефакты поставки. Агентные системы создают новую поверхность атаки: контекстные потоки, вызовы инструментов, делегированные полномочия и поведение во время выполнения. Ваши существующие контроли продолжают показывать «зелёный» статус, пока реальная экспозиция остаётся непокрытой.
Идея 2: Контекст — это инструкция. В агентной системе документ, задача в трекере, лог CI или описание инструмента — всё это может стать командой для агента. Валидация входных данных не решает эту проблему. Требуется новый слой — контроль провенанса контекста.
Идея 3: Авторизовано ≠ согласовано с задачей. Агент может иметь все необходимые разрешения, вызывать только авторизованные инструменты и всё равно выполнять действия, не соответствующие поставленной задаче. Классические контроли авторизации это не обнаружат.
Идея 4: Время — это риск. Каждое действие, выполненное агентом без контрольной точки человека, увеличивает потенциальный ущерб. Произведение продолжительности окна автономии на взрывной радиус доступных инструментов — основной архитектурный параметр риска агентных систем.
Идея 5: Среда разработки — это тоже поверхность атаки. IDE-плагины, MCP-серверы, pre-commit хуки и CI-агенты работают с привилегиями разработчика и минимальным надзором. Это высокоценная цель, которую большинство threat model-ов игнорируют.
Пять ошибок, которые вы, вероятно, уже делаете:
-
Модель угроз завершена — но не включает источники контекста и пути вызова инструментов
-
Code review покрывает 100% PR — но промпты, схемы инструментов и конфиги агентов не входят в область проверки
-
DAST показал чистый результат — но не тестировал поведение агента при враждебном контексте
-
Least privilege реализован — на уровне сервисных аккаунтов, но не на уровне вызовов инструментов
-
SCA чистый — но не охватывает зависимости агентного фреймворка, MCP- серверы и провайдера модели
ЗЫ. Для тех, кто не может прожить без ГОСТ Р 56939-2024 — русская версия с маппингом по параграфам там же.
ссылка на оригинал статьи https://habr.com/ru/articles/1022300/