
Scanner di vulnerabilità del codice sorgente basato sul web

Raptor è uno scanner di vulnerabilità sorgente basato sul web (web-service + UI) incentrato su GitHub; scansiona un repository semplicemente con l'URL del repo GitHub. Puoi configurare webhook per garantire scansioni automatiche ogni volta che fai un commit o unisci una pull request. La scansione avviene in modo asincrono e i risultati sono disponibili solo all'utente che ha avviato la scansione.
Alcune funzionalità di Raptor:
Questo strumento è un tentativo di aiutare la comunità e le startup a sottolineare l'importanza del secure-coding. Questo strumento potrebbe non eguagliare le funzionalità/qualità delle alternative commerciali, nulla è garantito e siete stati avvertiti. Questo strumento è pensato per essere utilizzato da revisori di sicurezza e/o sviluppatori con esperienza di secure-coding per individuare punti di ingresso delle vulnerabilità durante audit del codice o revisioni tra pari. Per favore NON fidatevi ciecamente dell'output dello strumento. È meglio utilizzarlo inserendo Raptor nella vostra pipeline CI/CD.
0.1 beta
Plugin integrati:
Nota: La maggior parte dei seguenti strumenti/moduli/librerie sono stati modificati pesantemente per poter integrarsi bene nel framework.
Rulepack disponibili:
Video di installazione: YouTube Install
$ wget https://github.com/dpnishant/raptor/archive/master.zip -O raptor.zip
$ unzip raptor.zip
$ cd raptor-master
$ sudo sh install.sh
Video di installazione: YouTube Usage
cd raptor-master
sudo sh start.sh #avvia il web-service backend
Ora punta il browser a Raptor Home (http://localhost/raptor/)
Accedi con il nome utente registrato sul corrispondente server GitHub a cui sei connesso e qualsiasi password (ma ricorda il nome utente per visualizzare la cronologia delle scansioni)
Per esempio:
Se sei registrato come foobar su https://github.com, usa lo stesso nome utente quando scansiona repo su https://github.com. Se invece sei registrato come foobar_corp sul tuo GitHub personale/aziendale (ad esempio https://github.corp.company.com) usa lo stesso nome utente se intendi scansionare repo su https://github.corp.company.com
Tuttavia, al momento la password può essere qualsiasi cosa, poiché NON abbiamo implementato un database nella versione di sviluppo.
Puoi utilizzare l'editor di regole lato client integrato e leggero per aggiungere nuove regole personalizzate per le tue esigenze specifiche, o qualsiasi altro editor di testo semplice poiché i file rulepack sono semplici strutture JSON. Usa il browser per aprire le regole situate in 'backend/rules'. Quando hai finito, salva il file delle regole nuovo/modificato nella stessa directory, cioè 'backend/rules'. Ora devi solo fare una modifica minore, qui: Init Script. Aggiungi il nome del tuo nuovo file rulepack a questo array senza l'estensione '.rulepack' e riavvia il server backend. Il gioco è fatto! 👍
Puoi accedervi qui: Rules Editor (http://localhost/raptor/editrules.php)
Aggiungi un pattern di nome file o directory da escludere dalla scansione. Utile per ignorare file noti come jquery.min.js o l'intera directory /test/. Ad esempio, nel contenuto di esempio qui sotto, jquery significa jquery ed è case-sensitive, quindi fai attenzione. Nella sezione plugins, il name del plugin è il nome del file rulepack senza estensione ".rulepack" come disponibile nella directory rules/. Il campo issue è l'ID del problema menzionato in ogni regola dei file rulepack: Esempio #1, Esempio #2. Il valore del campo match_type può essere regex o start o end. Il campo value è la stringa esatta da abbinare nel caso in cui match_type sia start o end. Se match_type è regex, il value deve contenere il pattern RegEx grezzo che deve essere codificato in Base64 per evitare problemi di escape della sintassi JSON. regex è un'abbinamento basato su espressioni regolari, start abbina l'inizio del frammento e end abbina la fine del frammento.
Il funzionamento è: quando lo scanner ha finito di scansionare per i problemi, itererà attraverso tutti i problemi trovati e rimuoverà quelli che corrispondono ai pattern (basati sul tipo di corrispondenza) di ciascun plugin menzionato nel file ignore_list.rulepack.