ОБСУЖДЕНИЕ Soft 

aiegis: open-source оркестратор ИИ-агентов для AppSec-аудита кода

0 ответов 33
Автор темы
Всем привет. Выкладываю свой инструмент и прошу жёстко его потестить.

Коротко: aiegis запускает Claude Code или pi в фоне и превращает их в аудитора по чек-листу. Вы даёте требования (ASVS, свой стандарт, что угодно в MD/PDF/DOCX), режете проект на модули, а агент проходит матрицу «требование × модуль» и ставит вердикт со ссылками на код. Находки, сигналы сканеров, SCA и история лежат в одной базе.

Лицензия MIT, macOS / Windows / Linux, плюс бинарник-сервис без GUI для Linux.

Репозиторий: GitHub - seelentov/aiegis: Desktop app on top of Claude Code or pi for AppSec audits: requirement matrices, entry-point maps, SAST/SCA triage, PoC checks

matrix.png


Зачем​


Агент в чате на запрос «найди уязвимости» каждый раз выдаёт разный отчёт и не говорит, что пропустил. SAST выдаёт сотни сигналов без контекста. Хотелось, чтобы агент видел всё сразу: точки входа, выдачу сканеров, требования, зависимости, прошлые решения, и писал результат в базу, а не в чат.

Что умеет​


  • Матрица требований. Отсев неприменимого дешёвой моделью, потом вердикты pass / finding / needs_human со ссылками. Вердикт привязан к коммиту и становится stale, когда меняются файлы-доказательства.
  • Карта точек входа. HTTP, gRPC, GraphQL, очереди, cron, WebSocket, с middleware, авторизацией и цепочками до синков.
  • Сигналы. Semgrep, Gitleaks, Trivy один раз на коммит, нормализация, подавления с причиной и сроком. Импорт SARIF (CodeQL и что угодно ещё).
  • SCA с достижимостью. Уязвимость в зависимости становится находкой, только если уязвимый код реально вызывается.
  • Находки. suspected → verified / false_positive / accepted_risk / fixed, статус ставит только человек. Независимая перепроверка в изолированной сессии, проверка исправления.
  • PoC-тестировщик. Поднимает инстанс из worktree и проверяет находку запросами только на base_url, в песочнице ОС.
  • Проверка ветки перед мержем, расписания по cron, CLI с тем же набором команд, что в GUI.

Всё (промпты ролей, права, модели, лимиты, сканеры) лежит в YAML/Markdown и переопределяется каскадом: глобально, на проект, на модуль.

Безопасность самого инструмента​


Раз форум профильный, скажу сразу, как оно изолировано:

  • фоновые прогоны идут в отдельном git worktree на зафиксированном коммите, рабочее дерево не трогается;
  • у каждого прогона свой токен к MCP-серверу с ограниченной областью;
  • у ролей allow/deny-списки инструментов в синтаксисе Claude Code, для pi их применяет отдельное расширение;
  • PoC ходит только на заданный base_url в песочнице ОС.

Если найдёте способ из этого вылезти, пишите через Security → Report a vulnerability на GitHub, не в публичные issue.

Насколько он находит​


Замерял на CWE-Bench-Java (15 CVE + 21 контрольная, код без тестов и истории, без подсказок). Sonnet low + Haiku для отсева:

  • полнота 57% на основном наборе, 40% на контрольном;
  • ложные на исправленной версии 9–11%;
  • около $0,22 за прогон.

Модель могла видеть эти CVE при обучении, так что на вашем коде будет скорее хуже.

Установка​


Нужны git и Claude Code (залогиненный, claude в PATH) или pi с настроенным провайдером. Semgrep, Gitleaks, Trivy по желанию.

Сборки: Releases · seelentov/aiegis (не подписаны; на macOS первый раз через ПКМ → Открыть).

Из исходников:

Код:
git clone https://github.com/seelentov/aiegis.git
cd aiegis
npm install
npm run setup
npm start

Что от вас нужно​


  1. Прогнать на своём проекте, особенно не на Java. Где ошибся отсев, что потеряла карта точек входа, сколько вышло по деньгам.
  2. Попробовать сломать изоляцию.
  3. Погонять pi с не-Anthropic моделями.
  4. Предложить сканеры, которых не хватает.

Буду отвечать в треде.
 
AI-выжимка (тезисы)
- aiegis запускает Claude Code или pi как аудитора по матрице «требование × модуль» с вердиктами со ссылками на код.
- Сигналы Semgrep, Gitleaks, Trivy, SCA с достижимостью и карта точек входа лежат в одной базе с находками.
- Статус находки меняет только человек; перепроверка идёт в изолированной сессии.
- На CWE-Bench-Java: полнота 57% и 40% на контрольном наборе, ложные 9–11%, около $0,22 за прогон.
- MIT, нужны тестировщики на не-Java проектах, Windows и Linux.
Домен (таксономия витрины «Разборы»)
AppSec