Strix - Foglio di aiuto per l’agente di penetration testing basato su IA
Strix è uno strumento penetration testing basato su IA open-source che opera come un ricercatore di sicurezza piuttosto che come uno scanner statico. Invece di eseguire il pattern matching del codice sorgente, esegue dinamicamente l’applicazione di destinazione, interagisce con essa, sonda le vulnerabilità e convalida ogni risultato con un exploit proof-of-concept funzionante. Questo step di convalida è il differenziale: i risultati vengono forniti con prove che sono effettivamente sfruttabili, il che riduce il rumore dei falsi positivi che rende costoso il triage dell’output degli scanner tradizionali.
Solo test autorizzati. Strix attacca attivamente l’obiettivo e genera exploit funzionanti. Utilizzalo esclusivamente su sistemi che possiedi o per i quali hai un’autorizzazione scritta esplicita. L’uso non autorizzato è illegale.
Installazione
| Metodo | Comando |
|---|
| pip | pip install strix-agent |
| Docker | docker run -it strixagent/strix |
| Dal codice sorgente | git clone https://github.com/usestrix/strix && pip install -e . |
| Chiave LLM | export OPENAI_API_KEY=... (o un altro provider) |
| Verifica | strix --version |
Utilizzo principale
| Comando | Descrizione |
|---|
strix --target ./repo | Testa una base di codice locale |
strix --target https://staging.example.com | Testa un’applicazione in esecuzione |
strix --target ./repo --instruction "focus on auth" | Guida l’agente |
strix --help | Elenco completo delle opzioni |
Come funziona
| Fase | Cosa fa l’agente |
|---|
| Recon | Mappa l’app: route, input, superfici di autenticazione |
| Hypothesis | Ragiona sulle probabili classi di vulnerabilità |
| Exploit | Crea e invia veri payload |
| Validate | Conferma l’impatto con un PoC funzionante |
| Report | Documenta il risultato + passaggi di riproduzione |
La fase di convalida è ciò che distingue Strix da uno scanner: un risultato emerge solo se l’agente è riuscito effettivamente a attivarlo.
Classi di vulnerabilità
| Classe | Esempi |
|---|
| Injection | SQLi, command injection, SSTI |
| XSS | Reflected, stored, DOM-based |
| Access control | IDOR, privilege escalation, broken authz |
| SSRF | Accesso ai servizi interni |
| Business logic | Abuso del flusso di lavoro che uno scanner non può modellare |
| Auth | Gestione della sessione, difetti del token |
Controlli di ambito e sicurezza
| Controllo | Scopo |
|---|
| Obiettivo esplicito | Solo l’obiettivo dichiarato è testato |
| Esecuzioni in sandbox | Esegui l’agente in un contenitore isolato |
| Modalità di sola lettura | Limita le azioni distruttive dove supportato |
| Rate limiting | Evita di sovraccaricare l’obiettivo |
| Rivedi i PoC | Ispeziona sempre gli exploit generati prima del riutilizzo |
Esegui Strix contro staging, non produzione, e circoscrivi l’uscita di rete dal contenitore.
Workflow comuni
# Valuta un'implementazione di staging che possiedi
strix --target https://staging.internal.example.com
# Revisione mirata di un modulo di autenticazione
strix --target ./app --instruction "audit the login and session handling"
# Esegui all'interno di un contenitore per l'isolamento
docker run --rm -it -e OPENAI_API_KEY strixagent/strix \
--target https://staging.example.com
Lettura dell’output
| Campo | Significato |
|---|
| Finding | La classe di vulnerabilità e la posizione |
| PoC | La richiesta/payload concreto che l’ha attivato |
| Impact | Cosa guadagna un attaccante |
| Reproduction | Passaggi per confermare manualmente |
Poiché ogni risultato include un PoC, il triage diventa verifica piuttosto che investigazione.
Strix vs Strumenti tradizionali
| Aspetto | Strix | SAST (Semgrep) | DAST (ZAP) |
|---|
| Metodo | Agente IA, dinamico + convalidato | Pattern matching statico | Crawl + attack |
| Falsi positivi | Basso (PoC-validato) | Più alto | Medio |
| Business logic | Sì (ragiona sull’intenzione) | No | Limitato |
| Velocità | Più lento (agentico) | Veloce | Medio |
| Migliore per | Valutazione convalidata in profondità | Copertura ampia del codice | DAST a livello di app |
Complementare piuttosto che sostitutivo: utilizza Semgrep per l’ampiezza, ZAP per il DAST di crawling, e Strix per la profondità convalidata.
Risorse