Ottenere una revisione manuale del codice di sicurezza fatta - A cosa fare attenzione?

16

Abbiamo un'applicazione PHP che vogliamo ottenere la revisione del codice da un consulente di sicurezza esterno, ma non sono chiaro su come "andare" su quel processo.

Abbiamo specificato quale tipo di test avrebbe dovuto fare, e la prima parte del suo rapporto presentato solo indica MOLTI "problemi" standard nell'uso di eval (), fopen (), ecc. sotto il titolo "Problemi di convalida dell'input".

Ho visto TUTTI questi problemi riportati da solo quando ho eseguito uno strumento automatico di revisione del codice di sicurezza.

(A) I dont know if that's the extent of the problem within my code and the guy did a good job, OR
(B) he's just running these automated tools and just filtering the output to remove noise and that's it!

Domande:

  1. What should I be asking him to do?
  2. How can I cross check his work so that I know he's actually doing a good job?

(copiato da link )

    
posta Community 30.11.2010 - 11:47
fonte

3 risposte

7

Rendersi conto che hai già una domanda del genere ti mette già davanti al gioco.
Vorrei anche aggiungere:

(C) He's not very good at reviewing code, so you'll only get "low hanging fruit"
(D) He's really a pentester, that thinks its "oh so easy" to branch out into code, so you'll get similar results as a pentest, only traced to the actual code.
(E) He's a developer, without much understanding of security, but knows some bad code.
etc...

Il punto è che sembra che non sia molto trasparente con te, quindi non importa quale sia l'opzione. Anche (A) My code has no problems non vale molto, a meno che non possa eseguire il backup con la prova di quali problemi il tuo codice non ha (sic).
E no, l'esecuzione di uno strumento automatico non vale come revisione del codice di sicurezza, a quanto pare, in modo corretto.

Quindi, alle tue domande:

1. What should you ask him to do "Revisione del codice di sicurezza". Lui dovrebbe dire a tu cosa farà e / o raccomandare ciò di cui hai bisogno (potrebbe / dovrebbe essere una lista piuttosto lunga). Naturalmente, puoi / dovresti dargli ulteriori informazioni, come ad esempio cosa fa la tua applicazione, chi ha accesso, quanto sensibili sono i dati, ecc. Ecc. Ma anche se non lo facessi, dovrebbe chiedere queste informazioni. Senza di esso, non è semplicemente una revisione del codice a livello professionale.

2. How do I cross-check his work - Direi che in generale ci sono 3 possibilità:

  • Impara abbastanza sull'argomento per capire cosa pretende di fare e per porre domande difficili - o per ottenere qualcuno che lo faccia (Sempre vero quando si tratta di un fornitore di un servizio che non capisci ...)
  • Chiedi a un altro consulente di fare una revisione concorrente, anche se solo su un sottoinsieme dell'applicazione.
  • (E questo è quello giusto) Esegui un test di penetrazione blackbox esterno. Questo è il modo migliore per convalidare la revisione del codice. Ovviamente, chiedi a qualcun altro di fare il pentimento e confronta i risultati. Nota che non tutte le vulnerabilità rilevate in Pentest sono rilevanti per essere trovate in una revisione del codice e viceversa, ma dovrebbero darti qualche indicazione.
risposta data 30.11.2010 - 12:53
fonte
5

Vengo a questo dalla posizione di essere il ragazzo che esegue la revisione del codice di sicurezza (anche se non l'ho fatto io ;-). Quindi quello che vuoi scoprire è se il codice potrebbe essere distribuito a basso rischio, e se non poi quali sono i rischi. Pertanto dovresti chiedere al tuo consulente che, piuttosto che chiedere "puoi trovare alcune vulnerabilità nel mio codice". La risposta alla domanda relativa al rischio dovrebbe includere:

  • ciò che ha provato per identificare i rischi
  • quali attacchi è considerato (presumo che un'app PHP sia basata sul web, nel qual caso la lista dei primi 10 OWASP è appropriata come antipasto)
  • perché ha considerato tali attacchi (in altre parole, quale modello di minaccia ha usato)
  • quale rischio residuo rimane
risposta data 30.11.2010 - 12:53
fonte
2

Devi considerare sia l'ampiezza che la profondità della recensione. Per ampiezza, intendo quale gamma di rischi / attacchi / minacce saranno trattati nella revisione. Dovresti iniziare con lo standard di verifica della sicurezza delle applicazioni di OWASP per avere un'idea di ciò che dovrebbe essere coperto qui. Con profondità, intendo quanto bene il consulente verificherà che ogni area sia stata adeguatamente difesa. Nella fascia bassa, una scansione automatizzata degli strumenti fornisce poche garanzie. All'estremità alta, un'ispezione manuale o un caso di test effettivo dovrebbe essenzialmente dimostrare che le difese corrette sono state predisposte, sono state progettate correttamente e utilizzate ovunque debbano essere.

    
risposta data 03.12.2010 - 19:18
fonte

Leggi altre domande sui tag