
Dawn è uno scanner di sicurezza per analisi statica per applicazioni web scritte in Ruby. Supporta i framework Sinatra, Padrino e Ruby on Rails.
dawn è uno scanner di codice sorgente progettato per analizzare le tue applicazioni web alla ricerca di vulnerabilità di sicurezza.
Lo strumento è in grado di scansionare applicazioni web scritte in Ruby e supporta tutti i principali framework MVC (Model View Controller), fin dall'inizio:
dawn versione 2.0 ha 680+ controlli di sicurezza caricati nella sua base di conoscenza, che viene aggiornata settimanalmente dal National Vulnerability Database del NIST.
Quando esegui dawn sul tuo codice, analizza il file Gemfile.lock del tuo progetto cercando le gemme utilizzate e prova a rilevare la versione dell'interprete Ruby che stai usando o che hai dichiarato nel tuo strumento di gestione delle versioni Ruby preferito (RVM, rbenv, ...).
Poi lo strumento cerca di rilevare il framework MVC utilizzato dalla tua applicazione web e applica i controlli di sicurezza di conseguenza. Ci sono controlli progettati per applicazioni Rails o controlli applicabili a qualsiasi codice Ruby.
dawn può anche comprendere il codice nelle tue viste e risalire ai sink per individuare cross site scripting e sql injection introdotti dal codice che hai effettivamente scritto (nella roadmap del progetto, questo è il codice su cui sarà concentrata la maggior parte degli sforzi di sviluppo futuri).
Il risultato della scansione di sicurezza di dawn è un elenco di vulnerabilità con alcune azioni di mitigazione che puoi seguire per costruire un'applicazione web più sicura.
Puoi installare l'ultima versione di dawn scaricandola da Rubygems digitando:
$ gem install dawnscanner
Dopodiché, devi scaricare la base di conoscenza da GitHub ed estrarre l'archivio nella directory $HOME/dawnscanner/kb.
Un tipico layout della directory kb è simile a questo:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
La base di conoscenza è strutturata in questo modo:
A partire dalla versione 2.0, lo strumento utilizza sottocomandi per avviare attività specifiche, ciascuno con messaggi di aiuto specifici.
Il sottocomando scan dice a dawn di scansionare il target specificato alla ricerca di problemi di sicurezza.
$ dawn scan target
Al momento i risultati sono disponibili solo in formato testo e vengono memorizzati in una directory denominata con il timestamp della scansione, sotto $HOME/dawnscanner/results/target, dove target è il nome dell'applicazione analizzata.
È possibile, con il sottocomando kb, interrogare la base di conoscenza.
dawn kb find # Cerca nella base di conoscenza una vulnerabilità specifica dawn kb help [COMMAND] # Descrive sottocomandi o un sottocomando specifico dawn kb lint # Verifica la correttezza del contenuto della base di conoscenza dawn kb list gem_name[gem_version] # Elenca tutti i problemi di sicurezza che interessano una gemma passata come argomento (la stringa di versione è opzionale). dawn kb status # Verifica lo stato della base di conoscenza dawn kb unpack # Estrae i controlli di sicurezza nel percorso della libreria KB
Profilo Twitter: @dawnscanner Repository Github: https://github.com/thesp0nge/dawnscanner
I feedback sono fantastici e amiamo davvero ascoltare la tua voce.
Se sei un orgoglioso utente di dawn, se lo trovi utile, se lo hai integrato nel tuo processo di rilascio e se vuoi supportare apertamente il progetto, puoi inserire il tuo riferimento qui. Apri semplicemente un issue con una dichiarazione che descriva come ti trovi con lo strumento e, se presente, il logo della tua azienda.
Grazie.
saten: primo issue segnalato su un errore di battitura nel README
presidentbeef: per il suo eccezionale lavoro che mi ha ispirato a creare dawn e per il doppio controllo della matrice di confronto. L'issue #2 è tuo :)
marinerJB: per vari report di bug e ulteriori idee
Matteo: per idee sulle API e il loro utilizzo con gli hook di github.com
Copyright (c) 2013-2023 Paolo Perego [email protected]
Licenza MIT
Con la presente viene concessa, gratuitamente, a qualsiasi persona che ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), l'autorizzazione a utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, nonché a consentire alle persone a cui il Software viene fornito di fare altrettanto, alle seguenti condizioni:
L'avviso di copyright sopra riportato e questa nota di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, IVI INCLUSE, MA NON LIMITATE, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN FINE PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, DERIVANTE DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.