
Scanner di sicurezza per applicazioni web creato da lcamtuf per google - Mirror non ufficiale
http://code.google.com/p/skipfish/
Scritto e mantenuto da:
Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]
Copyright 2009 - 2012 Google Inc, tutti i diritti riservati.
Rilasciato secondo i termini e le condizioni della Apache License, versione 2.0.
Skipfish è uno strumento attivo di ricognizione per la sicurezza delle applicazioni web. Prepara una mappa interattiva del sito preso di mira effettuando una scansione ricorsiva e sonde basate su dizionari. La mappa risultante viene poi annotata con l'output di una serie di controlli di sicurezza attivi (ma, si spera, non disturbanti). Il rapporto finale generato dallo strumento è pensato per servire come base per valutazioni professionali della sicurezza delle applicazioni web.
Sono facilmente disponibili numerosi strumenti commerciali e open source con funzionalità analoghe (ad es. Nikto, Nessus); usa quello che preferisci. Detto questo, skipfish cerca di risolvere alcuni dei problemi comuni associati agli scanner di sicurezza web. I vantaggi specifici includono:
Alte prestazioni: sono state osservate 500+ richieste al secondo contro target Internet reattivi, 2000+ richieste al secondo su reti LAN / MAN e 7000+ richieste contro istanze locali, con un footprint molto modesto di CPU, rete e memoria. Questo può essere attribuito a:
Modello di elaborazione dei dati e I/O di rete completamente asincrono, single-thread e multiplexato, che elimina la gestione della memoria, la pianificazione e le inefficienze IPC presenti in alcuni client multi-thread.
Funzionalità avanzate di HTTP/1.1 come richieste di intervallo, compressione dei contenuti e connessioni keep-alive, oltre al forzato limite della dimensione delle risposte, per tenere sotto controllo l'overhead a livello di rete.
La cache intelligente delle risposte e le avanzate euristiche sul comportamento dei server vengono utilizzate per ridurre al minimo il traffico non necessario.
Implementazione in puro C orientata alle prestazioni, inclusa una pila HTTP personalizzata.
Facilità d'uso: skipfish è altamente adattivo e affidabile. Lo scanner offre:
Riconoscimento euristico di schemi oscuri di gestione dei parametri basati su percorso e query.
Gestione elegante di siti multi-framework in cui determinati percorsi seguono semantica completamente diversa, o sono soggetti a regole di filtraggio differenti.
Costruzione automatica della wordlist basata sull'analisi del contenuto del sito.
Funzionalità di scansione probabilistica per consentire valutazioni periodiche e con limite di tempo di siti arbitrariamente complessi.
Controlli di sicurezza ben progettati: lo strumento ha lo scopo di fornire risultati accurati e significativi:
Dizionari artigianali offrono un'ottima copertura e consentono test approfonditi di $keyword.$extension in un lasso di tempo ragionevole.
Per rilevare le vulnerabilità, si preferiscono sonde differenziali a tre passaggi rispetto ai controlli tramite firme.
La logica in stile ratproxy viene utilizzata per individuare sottili problemi di sicurezza: cross-site request forgery, cross-site script inclusion, contenuti misti, problemi di MIME e incongruenze di charset, direttive di cache errate, ecc.
I controlli di sicurezza inclusi sono progettati per gestire scenari complessi: XSS persistenti (percorso, parametri, header), SQL o XML injection ciechi, o shell injection cieca.
Firma di contenuti in stile Snort che evidenziano errori del server, fughe di informazioni o applicazioni web potenzialmente pericolose.
La post-elaborazione del rapporto riduce drasticamente il rumore causato da eventuali falsi positivi rimanenti o trucchetti del server, identificando modelli ripetitivi.
Detto questo, skipfish non è una soluzione magica e potrebbe non essere adatto a determinati scopi. Ad esempio, non soddisfa la maggior parte dei requisiti delineati nel WASC Web Application Security Scanner Evaluation Criteria (alcuni intenzionalmente, altri per necessità); e, a differenza della maggior parte degli altri progetti di questo tipo, non viene fornito con un ampio database di vulnerabilità note per controlli basati su banner.
Di seguito è riportato un elenco approssimativo dei controlli di sicurezza offerti dallo strumento.
Difetti ad alto rischio (che potrebbero portare al compromissione del sistema):
Difetti a rischio medio (che potrebbero portare a compromissione dei dati):
Problemi a basso rischio (impatto limitato o bassa specificità):
Avvisi interni:
Voci informative non specifiche: