
VisualCodeGrepper - Strumento di scansione della sicurezza del codice.
VCG (VisualCodeGrepper)
Versione corrente: 2.3.2
====================================================================================
Contenuti:
VCG è uno strumento automatizzato per la revisione della sicurezza del codice che supporta C/C++, Java, C#, VB, PL/SQL, PHP e COBOL. Dispone di alcune funzionalità che dovrebbero renderlo utile a chiunque conduca revisioni di sicurezza del codice, in particolare quando il tempo è limitato:
Ho cercato di realizzare qualcosa che non restituisca il gran numero di falsi positivi restituiti da alcuni strumenti e che cerchi inoltre in modo intelligente di identificare buffer overflow e confronti con segno/non segno.
Nuove funzionalità: 1) Una modifica alla GUI fa sì che la selezione del linguaggio di destinazione avvenga tramite un elenco a discesa anziché tramite menu (come nella V2.3.1). 2) La funzionalità beta ora include la scansione di R Script (come nella V2.3.1). 3) Correzioni di bug minori per affrontare varie problematiche e ripristinare la possibilità di eseguire più istanze dell'applicazione.
File di input/codebase:
Prima di scansionare il codice, assicurarsi che sia selezionato il linguaggio corretto, poiché VCG testerà solo i problemi relativi al linguaggio selezionato e scansionerà solo i tipi di file pertinenti. Il linguaggio può essere selezionato nel menu delle impostazioni o nella finestra di dialogo delle opzioni. Selezionare la directory che contiene il codice da scansionare tramite File=>New Target... VCG caricherà quindi tutti i file con le estensioni specificate.
I valori predefiniti sono riportati di seguito, ma possono essere modificati tramite la finestra di dialogo Opzioni: C/C++: .c .h .cpp .hpp Java: .java .jsp web.xml config.xml (i file xml sono inclusi per verificare la validazione degli input da parte di Struts, ecc.) PL/SQL: .pls .sql .pkb .pks C#: .cs .asp .aspx web.config (il file web.config è incluso per verificare la validazione degli input, le impostazioni di debug, ecc.) VB: .vb .asp .aspx web.config (il file web.config è incluso per verificare la validazione degli input, le impostazioni di debug, ecc.) PHP: .php php.ini (il file php.ini è incluso per verificare configurazioni errate come register_globals) COBOL: .cob .cbl .clt .cl2 .cics R: .r
Opzioni e impostazioni:
Tipi di file - Usare questa opzione per modificare i tipi di file che VCG analizzerà per ciascun tipo di codice. Per analizzare tutti i file in una directory, aggiungere .* all'elenco oppure eliminare tutti i tipi e inviare una stringa vuota. File di configurazione - Specificare un file di configurazione per ciascun linguaggio. Questo contiene un elenco di funzioni o frammenti di codice che possono essere considerati a rischio e richiedere una segnalazione. Questa funzionalità aggiunge essenzialmente un ulteriore livello di controlli alle operazioni più complesse eseguite nell'ambito dell'analisi del codice. Gravità - VCG può essere impostato per segnalare solo errori al di sopra di un certo livello di gravità. Ad esempio, selezionare 'Medium' per ottenere nel report solo Medium, High e Critical. Impostazioni COBOL - Occorre specificare la colonna iniziale, ovvero la prima colonna dopo i numeri di riga. Generalmente sarà 1 per un listing senza numeri di riga o 7 per un listing che include i numeri di riga. Potrebbe essere necessaria un'impostazione diversa se le righe di codice/commento nel listing iniziano in una colonna diversa. L'impostazione z/OS può essere utilizzata per includere controlli sull'uso sicuro dell'API CICS, ecc. Impostazioni OWASP (solo Java) - Se selezionate, identificheranno due violazioni delle best practice OWASP per la programmazione Java elencate nelle pagine OWASP secure coding. Verranno segnalate le classi annidate e le classi pubbliche non final, poiché è probabile che vi siano numerose violazioni di questo tipo senza un grande rischio, è data l'opzione di disattivare una o entrambe queste analisi. File di output - L'output ASCII verrà scritto in questo file se selezionato. Funzionalità beta - Selezionare se utilizzare eventuali funzionalità beta facendo clic sulla casella di controllo appropriata in Options -> Beta Functionality. Attualmente la funzionalità beta disponibile è l'individuazione del confronto Signed/Unsigned in C (molto inaffidabile) e l'analisi di R (testata e funzionante in modo ragionevolmente buono - prossima all'inclusione nella prossima release).
Analisi:
L'analisi può essere eseguita in tre modi:
File di configurazione:
Esistono file di configurazione per ciascuno dei sei linguaggi analizzati da VCG. Questi forniscono un ulteriore livello di analisi a integrazione delle complesse analisi integrate per ciascun linguaggio. Il contenuto dei file di configurazione consiste in un elenco di funzioni/frammenti di codice da cercare, insieme a una descrizione associata che appare nei risultati. La descrizione include un'impostazione di gravità opzionale tra parentesi quadre ed è separata dalla funzione tramite '=>' con il seguente formato: nome funzione[=>][[N]][descrizione] (dove N è un valore di gravità da 1 (Critical) a 3 (Medium) (o, opzionalmente, 0 per 'normal'))
Ad esempio: strcat=>[3]String concatenation function which facilitates buffer overflow conditions. Appears in Microsoft's banned function list.
Output:
Il Visual Code Breakdown verrà mostrato al termine dell'analisi.
I risultati vengono scritti nel riquadro dei risultati nell'ordine in cui sono stati individuati. I risultati hanno il seguente formato: SEVERITY: Code issue Line number - File name Description [code fragment]