Come integrare le pratiche di sicurezza software

TL;DR
La sicurezza del software richiede di integrare modellazione delle minacce, revisione del codice e penetration testing nel ciclo di sviluppo. Il modello delle minacce individua i possibili fallimenti, ne valuta il rischio e orienta sia l’analisi statica sia i test, mentre la revisione del codice localizza le cause delle vulnerabilità e gli strumenti moderni aiutano a distinguere i problemi sfruttabili da quelli meno critici.
Transcript
Ciao, mi chiamo Jacob West. Sono direttore delle ricerche sulla sicurezza presso Fortify Software, recentemente acquisita da Hewlett Packard. Oggi voglio parlare dell'evoluzione dell'assicurazione della sicurezza del software, delle origini, delle pratiche che diamo per scontate e, eh, della direzione che queste prenderanno in futuro. Per prima cos... Read More
Key Insights
- La sicurezza software combina competenze sugli attacchi con capacità di sviluppo e collaudo.
- La separazione di hardware, software e servizi ha reso la sicurezza un problema di integrazione.
- Una minaccia è una potenziale violazione, mentre l’attacco è l’azione che può realizzarla.
- La modellazione delle minacce elenca i possibili fallimenti e li ordina per rischio aziendale.
- Il modello di minaccia consente di concentrare la revisione sul codice esposto agli attacchi.
- Il penetration testing usa le minacce previste come riferimento per valutare la propria copertura.
- La revisione del sorgente individua la riga in cui nasce una vulnerabilità da correggere.
- L’analisi statica moderna distingue meglio i difetti sfruttabili dai risultati meno critici.
Install to Summarize YouTube Videos and Get Transcripts
Explore YouTube Video Summarizer or Get YouTube Transcript Extractor
Questions & Answers
Q: Che cos’è l’assicurazione della sicurezza del software?
L’assicurazione della sicurezza del software è la convergenza tra due gruppi di competenze. Da una parte vi sono i professionisti che conoscono sicurezza, minacce, attacchi e contromisure, spesso abituati a configurare firewall o ad attaccare sistemi distribuiti localmente. Dall’altra vi sono sviluppatori, ingegneri della qualità e persone che sanno progettare, costruire e collaudare sistemi software. L’obiettivo è integrare queste conoscenze attraverso attività come modellazione delle minacce, revisione del codice e penetration testing, collegandole inoltre alla gestione del rischio e alla conformità.
Q: Perché la separazione tra hardware e software ha creato nuove esigenze di sicurezza?
La decisione di IBM di separare software e servizi dall’hardware, tra la fine degli anni Sessanta e l’inizio degli anni Settanta, contribuì alla nascita di un’industria indipendente del software. I consumatori iniziarono così ad acquistare hardware da un fornitore e sistemi, servizi o soluzioni da altri, dovendo poi assemblare componenti diversi in un sistema adatto alle esigenze aziendali. Poiché non tutti i componenti offrivano le stesse caratteristiche, la loro integrazione generò un problema di sicurezza che richiedeva competenze sia tecniche sia organizzative.
Q: Come funziona un processo di modellazione delle minacce?
Il processo comincia comprendendo cosa deve fare il sistema, come è progettato, quali componenti contiene, dove sono implementate le funzioni e quali tecnologie sottostanti possono influire sulla sicurezza. Il team elenca quindi gli scenari ipotetici nei quali la sicurezza potrebbe fallire, considerando attaccanti, attacchi e possibili vulnerabilità. L’elenco viene analizzato e ordinato in base al rischio per l’azienda. Infine, ogni minaccia prioritaria riceve una risposta, come una modifica progettuale, un’accettazione motivata del rischio o un intervento rinviato a una versione o patch futura.
Q: Qual è la differenza tra minaccia, vulnerabilità, attacco e attaccante?
Una minaccia è una potenziale violazione della sicurezza. Può essere descritta attraverso più elementi collegati: una possibile vulnerabilità, cioè una debolezza del sistema che potrebbe essere sfruttata, un attaccante motivato a compromettere la sicurezza e un attacco, ossia l’interazione usata per ottenere dal software una risposta desiderata. La minaccia non implica quindi che la vulnerabilità esista già o che l’attacco sia avvenuto. Durante la modellazione si formulano ipotesi su ciò che potrebbe andare storto, anche quando non esistono ancora prove di uno specifico difetto.
Q: Come può la modellazione delle minacce guidare la revisione del codice?
La modellazione delle minacce permette di identificare la superficie di attacco dell’applicazione e le porzioni di codice che potrebbero essere esposte o diventare bersaglio degli scenari ipotizzati. Queste informazioni aiutano il gruppo di sicurezza a stabilire dove concentrare la revisione manuale e quali risultati prodotti dall’analisi statica esaminare per primi. Invece di trattare ogni segnalazione come equivalente, il team può collegare i difetti al modello specifico dell’applicazione, dare precedenza ai problemi con maggiore rilevanza e orientare meglio le attività di correzione.
Q: Come migliora il modello delle minacce un penetration test?
Il penetration testing cerca di emulare le azioni che un hacker o un altro attaccante potrebbe compiere contro il sistema. Il modello delle minacce può quindi funzionare come una scheda di valutazione della copertura del test. Il gruppo verifica se gli attacchi eseguiti durante la prova affrontano tutte le possibili minacce individuate per il sistema distribuito. Quando emergono lacune, il repertorio del penetration test può essere ampliato o modificato usando gli scenari già documentati, rendendo più esplicito il rapporto tra i rischi previsti e le verifiche effettivamente svolte.
Q: Quali vantaggi offre la revisione del codice sorgente per la sicurezza?
La revisione del codice consente di ispezionare il software senza eseguirlo e senza dover portare il programma in tutti gli stati che si vorrebbero verificare. Secondo la presentazione, questo approccio offre una copertura completa e coerente dell’intera base di codice. Un altro vantaggio è l’individuazione della causa principale: invece di segnalare soltanto un URL o un parametro potenzialmente vulnerabile, la revisione può mostrare allo sviluppatore la riga nella quale risiede il difetto e dove deve essere applicata la correzione necessaria.
Q: Come si sono evoluti gli strumenti di analisi statica?
I primi strumenti citati, come RATS e Flow Finder, erano sostanzialmente ricerche testuali avanzate. Analizzavano il programma per trovare funzioni o metodi potenzialmente rischiosi, ma non riuscivano a distinguere bene i casi realmente sfruttabili da quelli innocui. Di conseguenza producevano molti falsi positivi e un carico eccessivo per gli sviluppatori. Gli strumenti moderni costruiscono invece un modello dell’applicazione durante una fase di traduzione e possono applicare più tipi di analisi, con il vantaggio di assegnare maggiore priorità alle vulnerabilità sfruttabili rispetto ai risultati meno critici.
Summary & Key Takeaways
-
La sicurezza del software unisce competenze su minacce, attacchi e contromisure con la capacità di progettare, costruire e collaudare sistemi. Questa convergenza è diventata necessaria con la separazione tra hardware, software e servizi.
-
La modellazione delle minacce parte dalla comprensione del sistema, elenca i possibili fallimenti, assegna loro una priorità in base al rischio aziendale e associa risposte come modifiche progettuali, accettazione motivata o interventi futuri.
-
La revisione del codice offre copertura della base sorgente e localizza la causa di una vulnerabilità. Rispetto ai primi strumenti simili a ricerche testuali, l’analisi statica moderna privilegia i problemi sfruttabili e riduce il carico inutile.
Read in Other Languages (beta)
Share This Summary 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator
Explore More Summaries from RSAC Cybersecurity 📚






Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator