Per quanto ne so, i test di penetrazione possono essere suddivisi in test black-box, gray-box e white-box. Ma che ne è della revisione sicura del codice? Fa parte dei test white-box o è separato?
Security code review is the process of auditing the source code for an application to verify that the proper security controls are present, that they work as intended, and that they have been invoked in all the right places. OWASP
Tenendo presente questo, considera il test della casella grigia:
A black-box tester is unaware of the internal structure of the application to be tested, while a white-box tester has access to the internal structure of the application. A grey-box tester partially knows the internal structure, which includes access to the documentation of internal data structures as well as the algorithms used. Wikipedia
I pentesters identificheranno le vulnerabilità mediante il software di reverse engineering in codice assembly e operando da lì per identificare i vettori di attacco, come un buffer overflow. Tuttavia, con la definizione sopra la revisione del codice sicuro deve essere eseguito un test white-box.
Per rispondere alla tua domanda, la revisione sicura del codice viene eseguita esclusivamente da test white-box. Potrebbero esserci alcuni casi in cui gli individui potrebbero distorcere questa definizione per adattarsi all'esempio precedente, ma poiché il codice dell'assieme di ingegneria inversa non è codice sorgente, non lo riconoscerò.
La differenza tra test della white box e revisione del codice sorgente è che non si canalizza la conoscenza della disponibilità di una vulnerabilità dopo aver esaminato il codice nella revisione del codice sorgente, ma in un test della white box si utilizza questa conoscenza per creare un POC funzionante ( Verifica teorica). Nella revisione del codice sorgente basta segnalare lo snippet di codice interessato dalla vulnerabilità, nei test white box eseguiamo l'intero flusso di esecuzione end-to-end per determinare la vulnerabilità e creare un POC.
La differenza principale è nell'effettiva azione eseguita. Il test della scatola bianca e la revisione sicura del codice condividono obiettivi simili.
Il test della scatola bianca comporta il contatto con il prodotto. A qualsiasi livello di test, viene eseguito con il prodotto sottoposto a test - viene chiamata una funzione e la sua risposta viene convalidata, ad esempio, oppure qualcuno che finge di essere un utente passa attraverso un flusso principale. In ogni caso, il software è testato fisicamente; deve esistere in qualche modo e deve essere utilizzabile in qualche modo. E poi deve essere usato.
Nella revisione del codice protetto, il prodotto non viene toccato. Può essere toccato come un'attività supplementare, forse, ma la funzione principale è piuttosto la lettura. Leggete il codice sorgente, lo analizzate mentre procedete e alla fine provate a identificare e sintetizzare i problemi con esso per correggere. La revisione sicura del codice è un sottoinsieme della normale revisione del codice, che può comportare l'analisi per la progettazione, l'implementazione, le prestazioni, l'estetica, ecc.
Un modo per pensarci è il seguente:
Modifica: il precedente sta esaminando solo la casella bianca (per rispondere al particolare ambito della domanda dell'OP), ma gli stessi principi si applicano ai test di riquadri neri e grigi. In qualsiasi metodologia di test, è necessario utilizzare il prodotto come sottoprodotto intrinseco della natura dell'attività di test. Questo è (come spiegato sopra) non come con la revisione del codice.
Leggi altre domande sui tag terminology