Автор темы
Всем привет. Выкладываю свой инструмент и прошу жёстко его потестить.
Коротко: 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
Агент в чате на запрос «найди уязвимости» каждый раз выдаёт разный отчёт и не говорит, что пропустил. SAST выдаёт сотни сигналов без контекста. Хотелось, чтобы агент видел всё сразу: точки входа, выдачу сканеров, требования, зависимости, прошлые решения, и писал результат в базу, а не в чат.
Всё (промпты ролей, права, модели, лимиты, сканеры) лежит в YAML/Markdown и переопределяется каскадом: глобально, на проект, на модуль.
Раз форум профильный, скажу сразу, как оно изолировано:
Если найдёте способ из этого вылезти, пишите через Security → Report a vulnerability на GitHub, не в публичные issue.
Замерял на CWE-Bench-Java (15 CVE + 21 контрольная, код без тестов и истории, без подсказок). Sonnet low + Haiku для отсева:
Модель могла видеть эти CVE при обучении, так что на вашем коде будет скорее хуже.
Нужны
Сборки: Releases · seelentov/aiegis (не подписаны; на macOS первый раз через ПКМ → Открыть).
Из исходников:
Буду отвечать в треде.
Коротко: 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
Зачем
Агент в чате на запрос «найди уязвимости» каждый раз выдаёт разный отчёт и не говорит, что пропустил. 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
Что от вас нужно
- Прогнать на своём проекте, особенно не на Java. Где ошибся отсев, что потеряла карта точек входа, сколько вышло по деньгам.
- Попробовать сломать изоляцию.
- Погонять pi с не-Anthropic моделями.
- Предложить сканеры, которых не хватает.
Буду отвечать в треде.
- AI-выжимка (тезисы)
- - aiegis запускает Claude Code или pi как аудитора по матрице «требование × модуль» с вердиктами со ссылками на код.
- Сигналы Semgrep, Gitleaks, Trivy, SCA с достижимостью и карта точек входа лежат в одной базе с находками.
- Статус находки меняет только человек; перепроверка идёт в изолированной сессии.
- На CWE-Bench-Java: полнота 57% и 40% на контрольном наборе, ложные 9–11%, около $0,22 за прогон.
- MIT, нужны тестировщики на не-Java проектах, Windows и Linux.
- Домен (таксономия витрины «Разборы»)
- AppSec