Sandyaa: Autonomous Security Bug Hunter Berbasis LLM
Sandyaa: Autonomous Security Bug Hunter Berbasis LLM

Static analyzer konvensional punya problem klasik: ngasilin daftar panjang “potential issues” yang butuh jam tangan manual researcher buat dipilah — mana yang real bug, mana yang false positive. Sandyaa nggak pakai pendekatan itu. Tool ini pakai LLM buat baca codebase, trace alur data di dalamnya, dan langsung memproduksi exploit code yang berfungsi sebagai bukti kerentanan. SecureLayer7 sendiri udah pakai Sandyaa buat nemuin sejumlah zero-day di penelitian mereka sebelum akhirnya dirilis open-source.
1. Architecture & Scanning Pipeline
Konsep kunci yang membedakan Sandyaa dari LLM-based scanner lain adalah Recursive Language Models (RLM). Bukan cuma “shove files at a model and hope” — tapi model yang aktif mengemudikan Python REPL: nulis regex filter, chunking file, nge-spawn sub-LLM query, dan agregasi hasil secara programatik.
[ARCHITECTURE : RECURSIVE LANGUAGE MODELS (RLM)]
Input: Local directory atau Git URL — langsung dijalankan end-to-end tanpa interactive prompt.
Context building: Baca lintas file, pahami interaksi antar bagian kode, bangun model mental codebase.
Dynamic chunking: Codebase besar dipecah jadi chunks berdasarkan code density dan token budget — bukan fixed size. Ini yang bikin Sandyaa bisa handle repo yang lebih besar dari single context window.
8 recursive passes: Analisis dijalankan berulang dari berbagai sudut pandang, bukan sekali scan.
Output: Folder findings/ berisi analysis writeup, Python PoC, setup guide, dan evidence.json — semua per-bug.
8 Recursive passes — detail:
| Pass | Fungsi |
|---|---|
| Call-chain tracing | Ikutin alur pemanggilan fungsi dari satu titik ke titik lain di seluruh codebase. |
| Data-flow expansion | Trace pergerakan data — dari mana datangnya, ke mana perginya, di mana disanitasi (atau nggak). |
| Self-verification | Model memverifikasi ulang temuannya sendiri sebelum lanjut — ngurangin false positive. |
| Vulnerability chaining | Cari apakah beberapa bug kecil bisa digabung jadi exploit yang lebih powerful. |
| PoC refinement | Perbaiki dan validasi PoC code sampai benar-benar bisa dieksekusi. |
| Contradiction detection | Deteksi kalau ada asumsi yang bertentangan satu sama lain di chain temuan. |
| Assumption validation | Validasi tiap asumsi yang dipakai dalam analisis — pastiin semuanya grounded ke kode nyata. |
| Exploitability proof | Finalisasi bukti: bug ini bisa di-trigger dari untrusted input? Kalau iya, PoC dieksekusi buat confirm. |
Sandyaa juga punya attacker-control filter bawaan: temuan yang nggak reachable dari untrusted input secara otomatis di-drop — ini yang bikin output-nya lebih signal, lebih sedikit noise dibanding static analyzer biasa.
2. Coverage & Evidence Features
Coverage Sandyaa luas — bukan fokus ke satu kategori bug saja, tapi mencakup hampir seluruh spektrum kerentanan source code yang relevan di 2026.
- Memory safety — Use-After-Free, buffer overflow, type confusion, double-free.
- Logic bugs — Authentication bypass, TOCTOU (Time-of-Check Time-of-Use), state machine errors.
- Injection — SQL injection, command injection, XSS, SSRF, path traversal.
- Cryptographic misuse — Penggunaan primitif kriptografi yang salah atau lemah.
- Concurrency races — Race condition di multi-threaded code.
- Unsafe APIs — Insecure deserialization, XXE, prototype pollution.
Evidence per temuan — struktur findings/ folder:
findings/
└── vuln_001_sqli_mariadb/
├── analysis.md # Writeup lengkap: apa, di mana, kenapa exploitable
├── exploit.py # Python PoC yang bisa langsung dieksekusi
├── setup_guide.md # Cara repro environment
└── evidence.json # Link setiap klaim ke file path + line number spesifik
Real bug yang sudah publicly disclosed — dari Sandyaa:
| Target | Tipe Bug | Detail |
|---|---|---|
| Spring AI | SQL Injection | MariaDBFilterExpressionConverter — SQLi di filter expression builder. |
| Spring AI | JSONPath Injection | PgVectorStore AbstractFilterExpressionConverter — injeksi via JSONPath expression. |
Setup & quick start:
git clone https://github.com/securelayer7/sandyaa.git
cd sandyaa
npm install
npm run build
npm link # install command ‘sandyaa’ secara global# Jalanin audit — local directory
sandyaa /path/to/your/project
# Jalanin audit — Git URL langsung
sandyaa https://github.com/target/repo
# Nggak butuh ANTHROPIC_API_KEY
# Sandyaa pakai session Claude Code lo yang udah login
# Output muncul di findings/ folder, jalan sendiri sampai selesai
3. Roadmap & Konteks Proyek
Sandyaa adalah bukti nyata bahwa LLM yang “disuruh nalar” soal code bisa ngasilin signal security yang lebih berguna dibanding static analyzer yang sekedar pattern-matching. Tapi proyek ini masih sangat awal.
[STATUS & ROADMAP]
Status: Alpha — rough edges dan false positive masih ada. Bukan production-ready tool untuk semua skenario.
Native Windows support: Belum ada, welcome sebagai community PR — butuh refactor shell-out dan Claude CLI invocation.
Gemini support: Sudah opsional via CLI routing tanpa API key — otomatis dipakai kalau gemini CLI ada di PATH dan sudah authenticated.
Community case studies: SecureLayer7 mendorong pengguna submit bug real yang ditemukan lewat Sandyaa ke folder case-studies/ — sertakan target repo, commit hash, analysis.md, dan evidence.json.
CVE policy: Hanya submit CVE yang sudah publicly disclosed — jangan submit embargoed findings.
Arah jangka panjang Sandyaa kemungkinan ke dua hal: makin luas model support-nya (bukan cuma Claude/Gemini), dan makin tight pipeline verifikasinya — karena gap terbesar LLM-based auditor masih di false positive rate dan kemampuan reasoning di codebase yang sangat besar dan kompleks.
📌 Sumber: Help Net Security SecureLayer7 blog (21 April 2026).