
Piattaforma VAPT ospitata localmente e isolata dalla rete (air-gapped) che esegue 8 moduli di scansione in parallelo, attribuisce punteggi deterministici ai risultati con CVSS v3.1 e genera report PDF con remediation opzionale generata da IA tramite LLM locale.
Realizzato da maverickaayush.
Uno strumento VAPT auto-ospitato e isolato dalla rete (air-gapped): puntalo su un dominio target autorizzato e lancia 8 moduli di scansione in parallelo, valuta in modo deterministico ogni risultato (CVSS v3.1), aggiunge opzionalmente descrizioni in inglese semplice generate dall'IA tramite un LLM locale e produce un report PDF oltre a una dashboard web live. Nessuna chiamata API esterna: tutto gira sulla tua rete.
Due modi per eseguire ONUS:
- Self-hosted (questo repository):
docker compose up→ inserisci un dominio → spunta la casella di autorizzazione → scansiona. Nessun account, nessun accesso, nessuna verifica email: è monoperatore per design, e tutto ciò che segue riguarda questo percorso.- Hosted: un'istanza gestita è disponibile su tryonus.tech. Aggiunge funzionalità solo di produzione (account / accesso OAuth, coda di scansione, cronologia per utente) che in questo repository sono disattivate di default, così l'auto-hosting resta semplice. Vedi Self-hosted vs hosted.
| Self-hosted (questo repository) | Hosted (tryonus.tech) | |
|---|---|---|
| Setup | docker compose up | nessuno - basta aprire il sito |
| Accesso | nessuno - monoperatore | account / Google / GitHub OAuth |
| Flusso di scansione | dominio → casella di autorizzazione → scansione | uguale, dopo l'accesso |
| Extra | - | coda di scansione, cronologia per utente, email gestita |
| Esecuzione | sulla tua rete, air-gapped | cloud gestito |
Il percorso self-hosted di default è volutamente il più semplice: nessuna registrazione, nessuna verifica email, nessun OAuth. Le funzionalità solo-hosted (autenticazione, coda di scansione) stanno dietro flag di configurazione che di default sono off (REQUIRE_AUTH=false, HOSTED_QUEUE_ENABLED=false; vedi Configurazione) e non sono impostate in docker-compose.yml - quindi eseguire ONUS localmente non ti mette mai dietro un login. Preferisci zero setup? Usa il sito hosted su tryonus.tech.
| Nuova Scansione | Stato Scansione Live |
|---|---|
![]() | ![]() |
| Dashboard Report | Scoperta Scansioni |
|---|---|
![]() | ![]() |
domain → [recon | webscan | ssl_tls | headers | owasp | tech_fingerprint | nuclei | enumeration] (parallel, Celery)
→ any module failed/timed out? → pause for operator retry/continue/cancel
→ aggregator (dedup + OWASP-map + sort)
→ confidence verification (passive re-observation)
→ deterministic CVSS scoring
→ Ollama (Qwen 2.5 7B) AI analysis
→ WeasyPrint PDF + PostgreSQL
→ dashboard / PDF download
Sei livelli: frontend Next.js → FastAPI → Celery/Redis → 8 moduli di scansione in parallelo → Ollama (Qwen 2.5 7B) → PDF WeasyPrint + dashboard. Dettagli completi in ARCHITECTURE.md (schemi, contratti, salvaguardie) e docs/QUICK_REF.md (riferimento rapido per le modifiche comuni).
mem_limit: 4g), e Postgres, Redis, l'API, il worker e il frontend girano insieme ad esso.Vedi Prerequisiti sopra: ~8GB di disco e ~6GB di RAM, e aspettati una prima compilazione di 10-15 minuti.
cp .env.example .env
cp backend/subfinder-config/provider-config.yaml.example backend/subfinder-config/provider-config.yaml
docker compose up -d
docker compose ps # wait for zap to report healthy (~2 min)
Apri http://localhost:3000, inserisci un dominio, spunta la casella di autorizzazione e avvia la scansione.
Nessun accesso, registrazione o verifica email. ONUS self-hosted è monoperatore di default: non c'è alcun passaggio di account tra l'apertura della dashboard e la scansione.
Funziona senza installare Ollama. La valutazione CVSS/gravità/priorità è sempre deterministica (analysis/cvss_scorer.py) - senza Ollama in esecuzione, i risultati ricevono semplicemente un modello di descrizione basato su regole invece di testo generato dall'IA. Vedi "Opzionale: abilita le descrizioni generate dall'IA" sotto per attivarlo.