Аудит zeroize
Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C/C++/Rust code handling secrets, keys, passwords, or other sensitive data.
Что делает навык
Skill обнаруживает отсутствие обнуления (zeroize) чувствительных данных в коде C/C++/Rust и выявляет случаи, когда обнуление удаляется оптимизациями компилятора. Анализ включает проверку на уровне ассемблера, LLVM IR, потока управления и генерацию PoC для подтверждения уязвимостей.
Когда применять
- Аудит криптографических реализаций (ключи, сиды, nonces, секреты) на предмет безопасного очищения памяти.
- Проверка систем аутентификации (пароли, токены, сессии) и кода, работающего с PII.
- Выявление случаев, когда вызовы wipe (например, memset) исчезают при компиляции с уровнями оптимизации O1/O2.
- Анализ безопасности распределения памяти (insecure heap alloc) и контроля потока управления (error paths).
Как работает
- Собрать входные данные: указать путь к репозиторию и обязательный контекст сборки (compile_commands.json для C/C++ или Cargo.toml для Rust).
- Запустить оркестратор, который выполняет фазы 0–7 последовательно, используя инструменты из {baseDir}/tools/ (emit_ir.sh, emit_asm.sh и др.).
- Агенты анализируют исходный код, генерируют LLVM IR/MIR/ASM, сравнивают оптимизации и проверяют CFG на наличие путей без очистки.
- Сгенерировать и валидировать Proof-of-Concept (PoC) программы для подтвержденных уязвимостей.
- Сформировать итоговый отчет (final-report.md) с результатами аудита и рекомендациями.
Примеры запросов агенту
Что понадобится
- Для C/C++: clang, compile_commands.json, инструменты {baseDir}/tools/ (emit_ir.sh, emit_asm.sh).
- Для Rust: cargo +nightly, Cargo.toml, инструменты {baseDir}/tools/ (emit_rust_mir.sh, emit_rust_ir.sh).
- uvx (для Serena MCP) и uv (для запуска скриптов Python).
Описание составлено по SKILL.md навыка, сверено 05.10.2026.
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.