
grep rough audit - strumento di auditing del codice sorgente
graudit è un semplice script e un insieme di firme che consente di individuare potenziali difetti di sicurezza nel codice sorgente utilizzando l'utility GNU grep. È paragonabile ad altre applicazioni di analisi statica come RATS, SWAAT e flaw-finder, mantenendo al minimo i requisiti tecnici e offrendo grande flessibilità.
L'installazione può essere effettuata come utente o globalmente come root, è sufficiente eseguire make con l'argomento userinstall o install. Si consiglia tuttavia di utilizzare graudit direttamente clonando il repository git, poiché include regole di database aggiuntive non incluse nei file di distribuzione. Questo consente anche di ottenere aggiornamenti tra le release. Per farlo eseguire il seguente comando:
git clone https://github.com/wireghoul/graudit
È quindi possibile aggiungere graudit al proprio path, utilizzando i valori appropriati per la propria shell preferita:
echo 'PATH="$HOME/graudit:${PATH:+:${PATH}}"; export PATH;' >> ~/.bashrc
Se graudit non si trova nella propria home directory, potrebbe essere necessario impostare la variabile
d'ambiente GRDIR sulla directory delle firme nel file .bashrc.
export GRDIR=/path/to/graudit/signatures
graudit supporta diverse opzioni e cerca di seguire le buone pratiche della shell. Per un elenco delle opzioni è possibile eseguire graudit -h o vedere di seguito. Il modo più semplice per utilizzare graudit è;
graudit [opts] /path/to/scan
OPTIONS
-d <dbname> database to use or /path/to/file.db (uses default if not specified)
-A scan unwanted and difficult (ALL) files
-x exclude these files (comma separated list: -x *.js,*.sql)
-i case in-sensitive scan
-c <num> number of lines of context to display before and after a match, default is 1
-B suppress banner
-L vim friendly lines
-b colour blind friendly template
-z suppress colors
-Z high contrast colors
-l lists databases available
-v prints version number
-h prints this help screen
È possibile impostare le opzioni predefinite della riga di comando tramite la variabile d'ambiente GRARGS. Ciò potrebbe influire sull'uso di graudit negli script, quindi si consiglia di utilizzare a questo scopo solo le opzioni B, L, b, z e Z.
echo 'GRARGS="-b -L"; export GRARGS' >> ~/.bashrc
graudit utilizza espressioni regolari estese (POSIX) come firme e viene fornito con diversi database pronti all'uso. È possibile estendere i database esistenti o crearne di propri se si richiedono firme aggiuntive.
I database possono essere caricati da più posizioni, l'ordine di precedenza è il seguente:
Un elenco dei file di database in ordine di precedenza viene mostrato con l'opzione -l:
graudit -l
Sono inclusi i seguenti database:
Un video tutorial/introduttivo è disponibile all'indirizzo: https://youtu.be/b8Xbzer1n94
Se desideri contribuire a graudit, esegui il fork del repository su https://github.com/wireghoul/graudit e utilizza quello. In particolare, regole per i linguaggi, script aggiuntivi e contributi alla documentazione sono molto ben accetti. Se ti piace graudit, ringrazia e condividilo.
Se desideri metterti in contatto con me, scrivimi su github @wireghoul.