
Автономный аудитор безопасности (белый хакер) для анализа кода на основе ИИ, исследования баг-баунти, создания эксплойтов и верификации, основанной на выполнении.
configs/ — опциональные контекстные профилиЭти JSON-файлы — опциональные контекстные профили, не содержащие ответов. Они не являются режимами продукта Flounder и не загружаются по умолчанию. Они существуют для случаев, когда оператор намеренно хочет дать модели знакомую рамку для класса целей.
| Файл | Опциональный контекст |
|---|---|
vulnerability-audit.default.json | общий контекст аудита безопасности (независимый от домена) |
zk-constraint-audit.default.json | схемы с нулевым разглашением / системы ограничений |
solidity-contract-audit.default.json | смарт-контракты Solidity / EVM |
thegraph-contracts.default.json | контракты протокола The Graph |
cairo-starknet-audit.default.json | контракты Cairo и компоненты, связанные со Starknet |
Каждый из них является каркасом projectContext для этого класса: типы активов, возможности атакующего, границы доверия, инварианты и фокусные области, которые обычно присущи известному стеку. Модель по-прежнему владеет стратегией аудита, а фреймворк всё ещё требует доказательства выполнения.
Фреймворк никогда не загружает их самостоятельно. По умолчанию flounder run / flounder map / flounder audit не содержит никаких предустановленных знаний об ошибках: запуск слеп и основан на выполнении, поэтому модель должна перечислить поверхность атаки из фактического исходного кода, прежде чем любая проверка аудита сможет что-либо найти. Передача модели предварительно написанного списка того, где обычно живут ошибки, смещает её внимание в сторону перечисленных областей и в сторону от неперечисленных, и рискует превратить аудит в проверку по контрольному списку вместо чтения. Это противоположно тому, как этот инструмент предназначен для поиска новых ошибок, поэтому профили отключены, если вы не запросите их.
Они существуют для случаев, когда этот компромисс оправдан: хорошо изученный класс уязвимостей, где засеивание общей поверхности действительно полезно, ограниченный бюджет, требующий форы по фокусу/выходу за рамки, или быстрое определение рамок для знакомого стека. Профили Solidity/EVM и ZK являются распространёнными примерами с высоким сигналом. В таких ситуациях подключайтесь:
flounder run --config ./configs/solidity-contract-audit.default.json \
--target my-protocol --source ./contracts --corpus ./docs
--config <file> объединяется в конфигурацию запуска (applyConfigOverrides), затем флаги командной строки переопределяют её — поэтому --target / --source / --corpus / --max-steps, которые вы передаёте в CLI, имеют приоритет над файлом. Из projectContext до модели сейчас доходят только summary, focusAreas и outOfScope (вплетённые в её служебную заметку о рамках). Более богатые поля ниже являются документацией/каркасом на сегодняшний день — они фиксируют модель угроз для человека-автора, но ещё не внедрены в промпт.
{
"targetName": "…",
"sourcePaths": [], // usually left empty; pass the real target via --source
"corpusPaths": [], // usually left empty; pass the project's own docs via --corpus
"thinkingLevel": "xhigh",
"projectContext": {
"summary": "…", // ── injected into the model's scope note
"focusAreas": ["…"], // ── injected
"outOfScope": ["…"], // ── injected
"criticalAssets": ["…"], // scaffold only (declared, not yet prompted)
"attackerCapabilities": ["…"], // scaffold only
"trustBoundaries": ["…"], // scaffold only
"securityInvariants": ["…"], // scaffold only
"scenarioGuidance": ["…"] // scaffold only
}
}
Оставьте sourcePaths / corpusPaths пустыми в профиле и передавайте реальную цель и собственные спецификации/документы проекта через командную строку. Профиль — это рамка, а не замена реального материала цели.
Профиль — это контекст, а не вердикт. Он может указать модели, куда смотреть; он не может сказать модели, что она найдёт. Подтверждение по-прежнему приходит только от выполнения — находка реальна, потому что PoC запущен, а не потому что он совпал с профилем. (Собственное scenarioGuidance профилей говорит об этом прямо: «Не пишите статические правила, которые заявляют о находках.»)
Это опциональное хранилище для пакетов контекста доменов. Чтобы добавить такой пакет, сделайте его общим для класса и не содержащим ответов: зафиксируйте поверхность атаки и инварианты, которые обычно присущи классу, но никогда не конкретную известную ошибку в конкретной цели. Всё, что специфично для цели, относится к --corpus этого аудита, а не сюда.