Steffen fa buoni punti nella sua risposta, ma vorrei aggiungere qualcosa. Il perché, penso, può essere suddiviso nei seguenti argomenti:
- Mancanza di conoscenza o formazione degli sviluppatori
- Abbandono in un ambiente di sviluppo aziendale
- Pressione per fornire in anticipo sulla pianificazione
- Poca enfasi dall'alto sulla sicurezza
Quindi analizziamoli.
Formazione per sviluppatori
Oggigiorno si dà molta importanza all'istruzione degli utenti. Insegna agli utenti come mantenere password complesse. Insegna agli utenti come identificare il phishing. Insegna agli utenti come ... Hai capito. Alcune imprese, molto probabilmente, ma posso solo parlare della mia esperienza professionale e non ho lavorato in molte imprese;), hanno programmi di formazione. Ma questi programmi di formazione possono essere incompleti o non raggiungere la profondità di conoscenza necessaria. Questo non è per screditare il duro lavoro che richiede la creazione di quei programmi. Ma per dire che proprio come nell'ambiente scolastico, persone diverse imparano in modo diverso. E a meno che tu non abbia un programma di formazione continua per sviluppatori, sarà difficile comunicare "usa query parametrizzate, ed ecco come farlo in PHP, Java, Python, Ruby, Scala, NodeJS, ...". È un duro lavoro sviluppare, fornire e mantenere programmi per sviluppatori che raggiungano efficacemente il pubblico.
Abbandono degli sviluppatori
Sopra, una delle cose a cui ho accennato 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 spostati da un progetto all'altro in società diverse. E le aziende non hanno sempre la stessa maturità di sicurezza. Una società potrebbe non avere affatto 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 richieste per tutti i sei mesi prima di trasferirsi in un'altra società. È triste, ma succede.
Consegna del progetto
Consegna del progetto nei tempi previsti o addirittura in anticipo. Il percorso più rapido per completare il progetto di solito, purtroppo, non è completare il progetto con i controlli di sicurezza. Lo sta facendo nel modo più rotto che funziona ancora. Sappiamo che ciò causerà più lavoro, più tempo e più denaro in seguito quando arriverà il momento di mantenere il progetto e risolvere i problemi, ma la direzione vuole solo che il progetto venga risolto.
Un altro elemento che ho toccato è sviluppare programmi di formazione sulla sicurezza per una miriade di linguaggi di programmazione. Molte aziende non hanno una o due lingue impostate. Quindi agli sviluppatori piace (o sono incoraggiati) provare il nuovo hotness. Ciò include linguaggi e framework. Ciò significa che i programmi di sicurezza devono evolversi continuamente.
Comprensione della gestione
E qui siamo alla direzione. Ogni volta, sembra come in una violazione pubblica, c'erano controlli che avrebbero potuto essere implementati, che non sono così difficili, ma sono stati persi. Spinge a consegnare prima i prodotti e poi a preoccuparsi sempre, nonostante lezione dopo lezione dopo lezione, ritorna sulle aziende produttrici. La direzione deve spingere dall'alto per prendere il tempo necessario per costruire la 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 che il problema è la consegna del prodotto, non le multe o i lavori di manutenzione richiesti. Quelle equazioni devono cambiare, e questo arriva, in parte, all'istruzione (wooo, cerchio completo) a livello di MBA. Ai manager aziendali deve essere insegnato che per avere successo in un panorama di violazioni in costante aumento, la sicurezza deve essere al centro e al centro.
Conclusione
Il perché, nonostante SQLi abbia quasi 20 anni , è irto di diversi motivi. In qualità di professionisti della sicurezza, possiamo solo fare molto per educare e aumentare la consapevolezza di ciò che accade quando la sicurezza non è considerata parte integrante dell'SDLC.