La sicurezza si comporta come qualsiasi altra proprietà di qualità :
Se il tuo software non è affidabile e causa danni al tuo cliente, potresti essere citato in giudizio per il risarcimento dei danni e / o ottenere cattiva copertura della stampa. Lo stesso identico è vero per i problemi di sicurezza.
Proprio come altre proprietà di qualità, l'utilizzo di un'enorme quantità di denaro per eventi una tantum non ha probabilmente un effetto duraturo. Garantire la qualità a lungo termine richiede strutture che lo supportano.
Per essere più concreti: una formazione di sicurezza generale di 3 giorni per tutti gli sviluppatori può essere piuttosto costosa, ma probabilmente non è un modo efficace per spendere i soldi.
Un approccio a lungo termine può essere questo: nominare un piccolo numero di esperti di sicurezza ed educarli (ad esempio permettendogli di visitare i corsi, ottenere una consulenza esterna, ...). Questo gruppo sarà
- identifica gli aspetti di sicurezza che sono importanti per i loro colleghi sviluppatori (per esempio uno sviluppatore di applicazioni Web che utilizza Java dovrebbe concentrarsi su OWASP invece che su buffer overflow)
- supporta il gruppo di sviluppo dell'architettura per ridurre al minimo il rischio di errori relativi alla sicurezza
- insegna ai colleghi sviluppatori sugli aspetti di sicurezza basati sull'architettura concreta in uso nella loro azienda
- fai recensioni su codice
- incoraggiare le discussioni sugli aspetti di sicurezza.
Lasciatemi fare un esempio: un'azienda sviluppa un'applicazione web utilizzando il framework basato su componenti di Java Server Faces. In JSF, i componenti dell'interfaccia utente generano codice HTML e JavaScript. Quindi gli sviluppatori di componenti devono essere a conoscenza di XSS e sfuggire a tutti gli input.
Gli sviluppatori di funzioni aziendali utilizzano questi componenti dell'interfaccia utente. Non hanno bisogno di scrivere codice HTML, quindi non hanno bisogno di uscire dall'input (e non possono farlo perché l'escaping è l'attività dei componenti). Tuttavia, gli sviluppatori di funzioni aziendali devono capire come utilizzare i componenti in modo sicuro (ad esempio non generare codice HTML da soli aggirando i componenti).