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.