Trail of Bits · Testing Handbook
✓ Generación completada

Testing Handbook Skill Generator

Meta-skill orquestadora · Cliente: SecureStack Auditors S.L. · Engagement de auditoría C/C++ y Rust
Iniciado 18 Jun 2026 · 09:14 UTC Handbook appsec.guide · commit c070b9b Modo Paralelo (Pasada 1) + Serie (Pasada 2) Duración 4 min 22 s
5
Skills generadas
2
Pasadas
18
Referencias cruzadas
100%
Validación OK
0
Errores
Pipeline de generación
0
Setup
Handbook localizado
✓ ~/testing-handbook
1
Discovery
5 secciones clasificadas
✓ 3 fuzzer · 1 tool · 1 technique
2
Planning
Plan presentado al usuario
✓ Aprobado
3
Generación
5 agentes en paralelo
✓ Pasada 1 + Pasada 2
4–5
Validate + Fin.
Validador + README actualizado
✓ 0 warnings
Skills generadas
Fuzzer
libfuzzer
Coverage-guided fuzzer in-process LLVM. Ideal para C/C++ con Clang. Primer fuzzer a ejecutar por su simplicidad.
Líneas: 342 Sección: fuzzing/c-cpp/10-libfuzzer/ Template: fuzzer-skill.md
Secciones incluidas
Referencias cruzadas (Pasada 2)
fuzz-harness-writing aflpp semgrep
Fuzzer
aflpp
Fuzzer multi-core basado en AFL. Cobertura avanzada con múltiples mutators. Ideal cuando libFuzzer se estanca.
Líneas: 418 Sección: fuzzing/c-cpp/20-aflpp/ Template: fuzzer-skill.md
Secciones incluidas
Referencias cruzadas (Pasada 2)
fuzz-harness-writing libfuzzer cargo-fuzz
Fuzzer
cargo-fuzz
Wrapper oficial de libFuzzer para Rust vía cargo. Integrado con el toolchain de Rust; zero-config para proyectos estándar.
Líneas: 297 Sección: fuzzing/rust/10-cargo-fuzz/ Template: fuzzer-skill.md
Secciones incluidas
Referencias cruzadas (Pasada 2)
fuzz-harness-writing libfuzzer
Técnica
fuzz-harness-writing
Metodología completa para escribir harnesses de fuzzing efectivos: estructura, reglas, anti-patrones y técnicas avanzadas.
Líneas: 383 Sección: fuzzing/techniques/writing-harnesses/ Template: technique-skill.md
Secciones incluidas
Referencias cruzadas (Pasada 2)
libfuzzer aflpp cargo-fuzz
Tool
semgrep
Análisis estático rápido con reglas YAML. Primera herramienta a ejecutar en cualquier auditoría por su facilidad de uso, sin necesidad de compilar el código.
Líneas: 471 Sección: static-analysis/semgrep/ Template: tool-skill.md
Secciones incluidas
Referencias cruzadas (Pasada 2)
codeql bandit sarif-parsing
Quick Reference extraído
semgrep --config=auto .
semgrep --config=rule.yaml --json .
semgrep --test rules/
semgrep --metrics=off --quiet .
Muestra: skill generada — libfuzzer/SKILL.md (fragmento)
skills/libfuzzer/SKILL.md markdown + yaml frontmatter
--- name: libfuzzer type: fuzzer description: > Coverage-guided fuzzer built into LLVM. Use for fuzzing C/C++ projects that can be compiled with Clang; first choice for fast, low-config setup. --- # libFuzzer libFuzzer is an in-process, coverage-guided fuzzer part of the LLVM project. It's the recommended starting point for C/C++ due to its simplicity and native integration with Clang sanitizers. ## When to Use | Fuzzer | Best For | Complexity | |--------|----------|------------| | libFuzzer | Quick setup, single-threaded | Low | | AFL++ | Multi-core, diverse mutations | Medium | | LibAFL | Custom fuzzers, research | High | ## Quick Start ```c++ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { my_parse_function(data, size); return 0; } ``` ```bash clang++ -fsanitize=fuzzer,address -g harness.cc target.cc -o fuzz_target ./fuzz_target corpus/ ``` ## Related Skills | Skill | When to Use Together | |-------|---------------------| | **fuzz-harness-writing** | Harness patterns avanzados y structure-aware fuzzing | | **aflpp** | Multi-core o cuando libFuzzer se estanca | | **semgrep** | Análisis estático previo para priorizar superficies |
Grafo de referencias cruzadas (Pasada 2)
libfuzzer
aflpp
cargo-fuzz
fuzz-harness-writing
semgrep
Fuzzers (alternativas)
Técnicas (dependencia)
Herramientas (complementarias)
— sólido: dependencia primaria  /  ⋯ discontinuo: alternativa
Resultados de validación — validate-skills.py
Skill Tipo Líneas Frontmatter Secciones X-Refs Estado
libfuzzer fuzzer 342 / 500 ✓ 8/8 ✓ 3 resueltas PASS
aflpp fuzzer 418 / 500 ✓ 9/9 ✓ 3 resueltas PASS
cargo-fuzz fuzzer 297 / 500 ✓ 7/7 ✓ 2 resueltas PASS
fuzz-harness-writing technique 383 / 500 ✓ 8/8 ✓ 3 resueltas PASS
semgrep tool 471 / 500 ✓ 11/11 ✓ 3 resueltas PASS
Log de generación (extracto)
testing-handbook-generator · session 20260618-0914 5 skills · 2 pasadas
09:14:01Handbook localizado en ~/testing-handbook (commit c070b9b)
09:14:03Discovery: escaneando content/docs/...
09:14:08Clasificados: 3 fuzzer, 1 technique, 1 tool · 0 skip (draft)
09:14:10Plan presentado al usuario · Aprobado ✓
09:14:12PASADA 1 — lanzando 5 agentes en paralelo
09:14:12 Agent 1 → libfuzzer [fuzzer-skill.md]
09:14:12 Agent 2 → aflpp [fuzzer-skill.md]
09:14:12 Agent 3 → cargo-fuzz [fuzzer-skill.md]
09:14:12 Agent 4 → fuzz-harness-writing [technique-skill.md]
09:14:12 Agent 5 → semgrep [tool-skill.md]
09:15:44PASADA 1 completada — todas las skills escritas · Related Skills: DEFERRED
09:15:45PASADA 2 — poblando referencias cruzadas (serie)
09:15:46 Leyendo skills/*/SKILL.md → 5 skills detectadas
09:16:01 libfuzzer → xrefs: fuzz-harness-writing, aflpp, semgrep ✓
09:16:08 aflpp → xrefs: fuzz-harness-writing, libfuzzer, cargo-fuzz ✓
09:16:14 cargo-fuzz → xrefs: fuzz-harness-writing, libfuzzer ✓
09:16:20 fuzz-harness-writing → xrefs: libfuzzer, aflpp, cargo-fuzz ✓
09:16:28 semgrep → xrefs: codeql, bandit, sarif-parsing ✓ (external)
09:16:30PASADA 2 completada — 18 referencias cruzadas insertadas
09:16:31Ejecutando validate-skills.py...
09:16:36✓ 5/5 skills válidas · 0 warnings · 0 broken refs
09:16:37Actualizando README.md con tabla de skills generadas...
09:16:38Actualizando Skills Cross-Reference (mermaid graph)...
09:16:39Finalizado · 5 skills · 4 min 22 s · 0 errores
Nota de auto-mejora (Phase 5)
Observación: Los harnesses de cargo-fuzz con el macro fuzz! requieren que se documente el trait Arbitrary explícitamente; el template actual de fuzzer-skill.md no tiene sección dedicada.
Acción: Actualizado templates/fuzzer-skill.md con sección opcional ## Input Generation para Rust.