Durante la mia carriera ho lavorato in ambienti molto incentrati sullo sviluppo e posso confermare che la maggior parte degli sviluppatori porteranno sempre alla vittoria il percorso più breve e, se possibile, scorciatoia a meno che non causi una lenta esecuzione del codice. In genere, i problemi di sicurezza non danno proprio un'occhiata.
Non c'è una risposta giusta o sbagliata a questo poiché ogni sviluppatore / gruppo di sviluppo ha una dinamica diversa e risponde in modi diversi. Detto questo, ci sono cose che puoi fare, come ad esempio:
-
Investi in un addestramento di codifica sicuro in-house. La maggior parte delle principali case PenTest offrirà questo servizio come un servizio in cui invieranno uno dei più brillanti e migliori per venire a lavorare con i tuoi sviluppatori per un periodo di alcuni giorni, guidandoli tra i pericoli dei personaggi che non sfuggono e lasciando i buffer deselezionati: Questo è un ottimo punto di partenza in quanto li fa almeno iniziare a considerare l'errore dei loro modi, ma non dovrebbe essere in isolamento o un'attività fuori dal comune.
-
Successivamente potresti provare a eseguire un po 'di cattura interna del flag / hack-fest che li fa lavorare tutti in un attacco e difendere la capacità di iniziare davvero a vivere i problemi che inavvertitamente creano. Birra gratis & La pizza di solito aiuta a guidare queste sessioni :)
-
Dopo di ciò, per me, il prossimo passo nell'equazione è fornire loro gli strumenti e l'intelligenza necessari per risolvere questi problemi alla fonte mentre vanno. La maggior parte delle boutique di Pen Test ti dirà che le uniche persone che dovrebbero / possono fare l'analisi del codice sono Pen Master con esperienza pluriennale. Questa, ovviamente, è una bugia basata sulle vendite. C'è del vero, in quanto un esperto lettore di codice sorgente può trascinare attraverso migliaia di righe di codice in modo molto più efficiente del tuo sviluppatore medio, quando sta cercando dei bug, ma cosa succede se lo sviluppatore lo fa mentre codifica ? in tal caso, lo sviluppatore sarà più efficiente rispetto al pen tester, ed è qui che inizia a pagare dividendi. In sostanza, prendi un po 'di strumenti gratuiti di revisione del codice sorgente come AppCodeScan, Checkstyle, Hammurapi, JCR (Java Code Reviewer) o2 OWASP e poi rendili parte della build dello sviluppatore, e dai loro il tempo necessario per iniziare a lavorare loro. Se i tuoi sviluppatori possono abbandonare l'ultima funzione che hanno scritto, o cambiamenti importanti, in uno strumento veloce e sporco come quello precedente, prima che colpiscano la compilazione e abbiano la certezza che qualcosa causerà un problema, possono risolverlo rapidamente, pre-release , anche pre alpha.
-
L'ultima parte dell'equazione per me è che il test della penna pre e post release DEVE riportare i risultati nel ciclo di sviluppo, in modo che gli sviluppatori possano vedere i problemi che causano e inserire strategie per fermare la recidiva. . Sembra semplice, ma è spesso trascurato!
Come ho detto all'inizio, non c'è una risposta giusta o sbagliata qui, ma spero che quanto sopra possa darti un'idea o due per andare via e giocare con.