Steffen ha buoni punti nella sua risposta, ma mi piacerebbe aggiungerlo. Il perché, penso, può essere suddiviso nei seguenti argomenti:
- Mancanza di conoscenza o formazione degli sviluppatori
- abbandona un ambiente di sviluppo aziendale
- Pressione da fornire in anticipo rispetto alla pianificazione
- Non abbastanza enfasi da parte superiore sulla sicurezza
Quindi rompiamoli.
Formazione per sviluppatori
Al giorno d'oggi c'è molta enfasi sulla formazione degli utenti. Insegna agli utenti come mantenere password complesse. Insegna agli utenti come identificare il phishing. Insegna agli utenti come ... Hai avuto l'idea. Alcune imprese, molto probabilmente, ma posso solo parlare con la mia esperienza professionale e non ho lavorato in molte aziende;), ho programmi di formazione. Ma quei programmi di formazione possono essere incompleti o non raggiungere la profondità delle conoscenze necessarie. Ciò non significa screditare il duro lavoro svolto nella realizzazione di quei programmi. Ma per dire che, proprio come nell'ambiente scolastico, diverse persone imparano in modo diverso. E a meno che tu non abbia un programma di formazione continua per gli sviluppatori, sarà difficile comunicare "usa query parametrizzate, ed ecco come farlo in PHP, Java, Python, Ruby, Scala, NodeJS, ...". È un duro lavoro sviluppare, offrire e mantenere programmi di sviluppo che raggiungono effettivamente il pubblico.
Churn dello sviluppatore
In alto, una delle cose a cui alludo era raggiungere il pubblico in modo efficace per diversi tipi di apprendimento. Uno dei motivi è che molte aziende hanno un alto tasso di abbandono per gli sviluppatori, perché gli sviluppatori sono appaltatori che vengono trasferiti da un progetto all'altro in diverse aziende. E le aziende non hanno sempre la stessa maturità di sicurezza. Una società potrebbe non avere un programma di sicurezza, mentre un'altra potrebbe avere un eccellente programma di sicurezza e lo sviluppatore viene improvvisamente bombardato da nuove informazioni che saranno loro richieste per tutti e sei mesi prima di trasferirsi in un'altra azienda. È triste, ma succede.
Consegna del progetto
Consegna del progetto nei tempi previsti o addirittura in anticipo rispetto alla pianificazione. Il percorso più veloce per completare il progetto solitamente, purtroppo, non sta completando il progetto con i controlli di sicurezza. Lo sta facendo nel modo più rotto che funzioni ancora. Sappiamo che più tardi, quando arriverà il momento di mantenere il progetto e risolvere i problemi, causerà più lavoro, più tempo e più denaro, ma la gestione vuole solo il progetto.
Un altro elemento che ho toccato sta sviluppando programmi di formazione sulla sicurezza per una miriade di linguaggi di programmazione. Molte aziende non hanno una o due lingue impostate. Quindi gli sviluppatori amano (o sono incoraggiati) provare la nuova hotness. Ciò include le lingue e le strutture. Ciò significa che i programmi di sicurezza devono evolversi continuamente.
Management buy-in
E qui siamo a gestione. Ogni volta, sembra che ci sia stata una violazione pubblica, c'erano controlli che avrebbero potuto essere implementati, che non sono poi così difficili, ma che sono stati persi. Spinge a consegnare i prodotti prima e preoccuparsi secondo sempre, nonostante le lezioni dopo le lezioni dopo le lezioni, ritorna sulle aziende di prodotto. La direzione deve spingere dall'alto per prendersi il tempo di costruire in sicurezza all'inizio. Devono capire che più lavoro, più tempo e più soldi saranno spesi per risolvere problemi, mantenere il prodotto e pagare multe. Ma le analisi costi-benefici indicano il problema della consegna del prodotto, non delle multe o dei lavori di manutenzione richiesti. Queste equazioni devono cambiare, e questo viene, in parte, all'istruzione (wooo, full circle) a livello di MBA. Ai dirigenti aziendali deve essere insegnato che per avere successo in un contesto di violazioni sempre maggiori, la sicurezza deve essere al centro dell'attenzione.
Conclusione
Il perché, nonostante SQLi abbia quasi 20 anni, è pieno di molte ragioni. Come operatori della sicurezza, possiamo fare molto per educare e aumentare la consapevolezza di ciò che accade quando la sicurezza non è considerata parte integrante del SDLC.