“Non insegniamo agli sviluppatori come scrivere software sicuro” – David A Wheeler della Linux Foundation sull’inversione dell’impennata CVE


Insegna agli sviluppatori i fondamenti della sicurezza per rafforzare la resilienza della catena di approvvigionamento, sostiene Wheeler

Scuola di codifica

Affrontare una carenza di decenni nella codifica dei programmi di studio potrebbe avere un profondo effetto sulla sicurezza della catena di approvvigionamento del software, afferma un importante esperto in materia Il sorso quotidiano.

In particolare, David A Wheeler, direttore della sicurezza della catena di approvvigionamento open source presso la Linux Foundation, traccia un collegamento tra l’incapacità di incorporare la sicurezza nei corsi per sviluppatori di livello base e la stragrande maggioranza delle vulnerabilità appartenenti a un piccolo numero di classi di bug comuni.

Il PhD IT e il Certified Information Systems Security Professional (CISSP) sono anche professore aggiunto di informatica alla George Mason University della Virginia e nel 2020 hanno concluso un periodo di 33 anni presso l’Istituto per le analisi della difesa degli Stati Uniti.

Daily Swig: David, puoi riassumere il tuo background e quali sono i tuoi ruoli attuali?

David A Wheeler: Ho amato i computer sin dalle scuole medie e mi sono pagato per tutta la scuola facendo consulenza informatica. Ho anche gestito brevemente il primo gioco di ruolo multiplayer commerciale, interamente basato su testo, Sceptre of Goth.

Ora insegno alla George Mason University su come sviluppare software sicuro, cosa che ho studiato per molti decenni.

La maggior parte del mio lavoro è con la Open Source Security Foundation, OpenSSF [whose members include AWS, Google, and Microsoft]. Vedo il mio ruolo come una sorta di catalizzatore o acceleratore. Posso correre come esperto in materia per aiutare le organizzazioni a migliorare la sicurezza del loro software.

David Wheeler, La Linux FoundationDavid A Wheeler ha studiato per decenni lo sviluppo sicuro di software

DS: E quali sono i maggiori ostacoli al miglioramento della sicurezza delle applicazioni?

DAW: Il problema fondamentale è che non insegniamo agli sviluppatori di software come scrivere software sicuro.

Non mi interessa se è un corso separato o incorporato [in other coding courses] – non è questo il problema. La domanda è: quando gli sviluppatori di software imparano le basi del loro mestiere, imparano le basi dello sviluppo di software sicuro? E la risposta è principalmente “no”.

Uno studio Forrester del 2019 ha rilevato che nessuna delle migliori scuole di programmazione statunitensi e nessuna delle prime cinque scuole di informatica non statunitensi lo stava insegnando. Un altro studio ha rilevato che solo una scuola l’ha fatto: la UC, San Diego. Così buono per loro, peccato per il resto.

DS: Immaginiamo che tutte le scuole di programmazione abbiano immediatamente rinnovato i loro corsi per incorporare i fondamenti della sicurezza. Vedremmo un costante calo delle vulnerabilità con l’emergere di una nuova ondata di sviluppatori esperti di sicurezza?

DAW: Si stima generalmente che tra il 90% e il 95% di tutte le vulnerabilità si trovino in un insieme relativamente piccolo di vulnerabilità comuni [classes].

Quindi, se educhi gli sviluppatori a prevenirli in modo sistematico e quindi utilizzi strumenti per trovare i ritardatari, possiamo ridurre drasticamente di almeno un ordine di grandezza – e forse due – il numero di vulnerabilità che effettivamente sfuggono.

Possono anche trovare e risolvere i problemi creati in passato.

In questo momento, il rilevamento, la risposta e il ripristino sono sopraffatti dall’enorme numero di vulnerabilità che entrano nei sistemi implementati, quindi sarà molto più facile contrastare gli aggressori quando le vulnerabilità sono molto più rare. E questo è davvero l’argomento dello “spostamento a sinistra” in generale: prima puoi sbarazzarti dei problemi, meglio è.

DS: Perché la sicurezza viene trascurata nel programma di programmazione date le conseguenze potenzialmente gravi delle vulnerabilità del software?

DAW: Il nostro sistema educativo non risponde sempre ai bisogni della società. C’era una lettera aperta scritta da Oracle e da altre persone 10, 15 anni fa o giù di lì, in cui praticamente supplicavano le università [to educate them properly].

Ma a volte loro [universities] vogliono insegnare quello che vogliono insegnare, e non importa quali siano i bisogni della società.

DS: Questo potrebbe riflettere in parte il fatto che molti educatori hanno imparato il loro mestiere quando le minacce informatiche erano meno numerose e gravi?

DAW: Sul [early] le persone su Internet erano per lo più connesse a persone di cui sentivano di potersi fidare. Ma una volta che negli anni ’90 hai visto questa crescita di Internet e del Web mondiale in esecuzione su di esso, allora molto rapidamente [they realized] no, non puoi semplicemente fidarti di computer arbitrari a cui ti connetti.

Ma il conservatorismo educativo non è del tutto negativo. In realtà è sensato insegnare cose che hanno resistito alla prova del tempo, che la sicurezza ha. Il fondamentale [computing] principi di progettazione sono stati conosciuti [about] dagli anni ’70.

CONSIGLIATO “I team di sicurezza spesso combattono contro gli sviluppatori che prendono il controllo” di AppSec: Tanya Janca sulla spinta all’adozione di DevSecOps

DS: Potrebbe esserci un incentivo commerciale sul lavoro che favorisca la codifica rapida rispetto alla codifica sicura?

DAW: Forse in una certa misura per il profitto, ma penso che il problema più grande per il profitto sia che se sai come fare [secure development]probabilmente puoi guadagnare il doppio o il triplo nell’industria [compared to teaching]. Non insegnerai.

Insegno, ma questo è il mio lavoro secondario. Mi piace insegnare. La George Mason University è a 20 minuti da me ed è più collegata all’industria rispetto ad altre università.

DS: Come persuadere o incentivare i fornitori di servizi di istruzione a incorporare la sicurezza nei corsi di codifica?

DAW: Penso che questo sia un problema risolvibile: fondamentalmente, la società ha bisogno di urlare più forte.

Gli Stati Uniti spendono un’enorme quantità di denaro per finanziare lauree, inclusa l’informatica. Se dobbiamo pagare, forse potremmo avere dei criteri?

DS: Lo slancio dietro lo “spostamento a sinistra” o DevSecOps potrebbe aiutare a convincere i fornitori di servizi di istruzione a cambiare enfasi?

DAW: Mi piacerebbe pensarlo, ma penso che sia molto più la pressione della società e dell’industria che continua per un periodo di tempo [that will make the difference].

In questo momento DevSecOps [is practised properly by] una minoranza, e dobbiamo assicurarcelo [secure development is practised] non solo la maggioranza, ma lo è [a baseline] aspettativa [of all developers].

ddddAgli sviluppatori non vengono insegnati i principi di sicurezza generali, per non parlare di come applicarli, afferma Wheeler

Anni fa, ho spinto molto per ottenere l’aggiunta della sicurezza a un corso di ingegneria del software e dopo molte pressioni e dibattiti [the provider] alla fine ha aggiunto la parola “sicurezza” – nessun contenuto, solo che la sicurezza potrebbe essere importante!

La guida del curriculum di ingegneria del software ACM parla almeno di sapere come sviluppare software sicuro, ma manca di specifiche chiave.

Ma sono disposto a credere che con un’enfasi continua possiamo coinvolgere il mondo accademico e molte altre organizzazioni assicurandoci che gli sviluppatori di software conoscano i fondamenti.

DS: Quali nozioni di base dovrebbero essere insegnate agli sviluppatori principianti?

DAW: Quali sono i problemi comuni? Come li preveniamo in generale? Come si progetta il software in modo che sia meno probabile che venga attaccato? E che tipo di strumenti possono aiutare gli sviluppatori ad affrontarlo?

Questi principi generali e la capacità di applicarli sono importanti [skills] ma oggi manca.

Leggi altre notizie sullo sviluppo di software sicuro

La prima cosa che ho fatto quando sono entrato a far parte della Linux Foundation nel 2020 come dipendente è stato sviluppare un corso sullo sviluppo dei fondamenti del software sicuro. Migliaia di persone ora si sono iscritte.

La George Mason University inizialmente ha accettato di fare il mio corso ogni due semestri e, molto rapidamente, è in ogni semestre: è molto richiesto.

Ma è un corso di laurea facoltativo. Abbiamo bisogno, nella società, di persone che approfondiscano e [become experts]ma abbiamo anche bisogno che ogni sviluppatore conosca le basi.

DS: Quanto è importante che gli sviluppatori capiscano come utilizzare gli strumenti di sicurezza?

DAW: Se stai facendo DevOps, hai praticamente bisogno di una pipeline CI e questo è un posto ovvio per inserire strumenti di sicurezza. Ma se lo sviluppatore non sa cosa sta facendo, non saprà cosa sta dicendo loro lo strumento e cosa fare al riguardo.

Uno sciocco con uno strumento è ancora uno sciocco. Non sono stupidi, è solo che nessuno gliel’ha detto. Istruzione e attrezzatura vanno di pari passo.

Gli strumenti mancheranno di cose o segnaleranno cose che in realtà non sono problemi nel contesto. I programmi per computer non – non possono – conoscere il contesto completo.

Ma finché gli sviluppatori sanno quali strumenti utilizzare e come, allora possono farlo [some] cose stupefacenti.

DS: Infine, qualcosa da dire sulle varie iniziative di OpenSSF volte a rafforzare la sicurezza della catena di fornitura del software?

DAW: Che si tratti dell’industria, del mondo accademico o dei governi, utilizziamo tutti software open source, quindi la mia prima proposta sarebbe: essere coinvolti con OpenSSF. Ci piacerebbe vedere più persone coinvolte.

Sono stato profondamente coinvolto nelle guide concise per lo sviluppo di software sicuro e la valutazione del software open source. E in precedenza, OpenSSF ha pubblicato guide per progetti open source e ricercatori sulla sicurezza [handling] coordinato [vulnerability] chiarimenti.

Il progetto Alpha-Omega ha finanziato la Python Software Foundation e sta finanziando Eclipse, Node… Stanno annunciando una nuova partnership con Rust. Hanno rilasciato alcuni strumenti per trovare le vulnerabilità, ancora una volta, cercando di spostarsi a sinistra.

Ci sono anche dei finanziamenti per il lavoro SBOM, uno strumento per una libreria Python per SPDX [Software Package Data Exchange]e un [enterprise] al via il gruppo di lavoro degli utenti finali.

IMPARENTATO Gli sviluppatori stanno ancora lottando con problemi di sicurezza durante le revisioni del codice, rileva lo studio

Leave a Comment

Your email address will not be published. Required fields are marked *