SlideShare a Scribd company logo
1 of 18
Download to read offline
Costruire Software Sicuro dalle
          fondamenta

         Net System Security 2007

             Antonio Parata
        antonio.parata@emaze.net




                                    1
Indice
  Introduzione
  Ciclo di sviluppo software
  Attività Security Related
       Attack Patterns
       Abuse Cases
       Security Requirements
       Security Patterns
       Threat Modeling
       Coding Security Principles
       Security Code Review
       Security Testing
       Penetration Testing
  Visione Globale
  Conclusioni e Sviluppi Futuri

                                     2
Introduzione
 Il costo per rimediare ad una vulnerabilità aumenta con il
 progredire delle fase.




                                                              3
Ciclo di sviluppo software




                             4
Ciclo di sviluppo software (Security Oriented)




                                            5
Attack Patterns
  Concetto derivante dai Design Patterns.
  Raggruppano le caratteristiche che hanno in comune
   alcune vulnerabilità.
  Utilizzati per individuare quali sono le maggiori aree a
   rischio nella propria applicazione.
       Vengono utilizzati non solo nella stesura dei requisiti, ma anche nelle
        successive fasi del SDLC
  Non è necessario modificare il SDLC.
       Vengono utilizzati come Knowledge Base aziendale
       Necessitano di uno sforzo iniziale di definizione e catalogazione




                                                                                  6
Attack Patterns
    Buffer Overflow Attack Pattern
    Goal: Sfruttare vulnerabilità da buffer overflow
    per eseguire un codice malevolo sul sistema
    target.
    Precondizioni: Un attaccante deve essere in grado
    di poter eseguire programmi sul sistema target.
    Attacco:
            AND
            1. Identificare programmi eseguibili
               privilegiati sul sistema target che
               siano suscettibili a buffer overflow.
            2. Creare un vettore d’attacco che
               conterrà il codice malevolo che si
               vuole far eseguire.
            3. Creare il codice malevolo che si vuole
               far eseguire (anche detto    payload).
            4. Eseguire il programma in modo che
               prenda in input il vettore d’attacco
               creato al punto 2.
    Postcondizioni: il payload viene eseguito sul
    sistema target.




                                                        7
Abuse Cases
  Anche detti Misuse Cases, vengono utilizzati per
   aiutare il progettista a pensare come un attaccante.
  Generalmente creati tramite sessioni di
   Brainstorming.
  A differenza dei requisiti, gli Abuse Cases dovranno
   avere un corrispettivo piano di mitigazione all’interno
   dell’applicazione.
  L’integrazione all’interno del SDLC avviene nella fase
   dei requisiti.
       Viene aggiunta un’ulteriore fase in parallelo a quelle esistenti.
  Esempio:
       “Un utente malintenzionato può aggirare le restrizioni sull’input che
        vengono applicate sul client, inviando una richiesta appositamente
        forgiata utilizzando tool esterni.”


                                                                                8
Security Requirements

 Utilizzo ortogonale a quello degli abuse cases.
      Il loro compito è specificare in che modo si intende porre rimedio in
       fase di design/sviluppo ai possibili attacchi identificati tramite gli
       abuse cases.
 La loro integrazione all’interno del SDLC è nella fase di
  definizione dei requisiti.
      È una fase parallela a quella di definizione degli abus cases, ma è
       fondamentale tenere le due fasi separate.
 Esempio:
      “Tutte le richieste ricevute dal server vengono convogliate verso un
       unico punto di validazione dell’input, in cui vengono applicati una
       serie di filtri con tipologia white list.”




                                                                                9
Security Patterns
  Utilizzati nella fase di progettazione, per costruire un
   design “sicuro by default”.
  Patterns-Driven Security Design:
       Creare un’architettura (design di alto livello) candidata
        dell’applicazione
       Eseguire un’analisi del rischio sull’architettura prescelta
       Progettare l’applicazione utilizzando i security design conosciuti, in
        modo da soddisfare i requisiti di sicurezza dell’applicazione.
       Se non esiste un security pattern adatto, modificare il design
        dell’applicazione in modo che rispetti il requisito. In seguito
        aggiungere il nuovo pattern di design all’elenco posseduto.
  Come gli attack pattern non vi è una vera e propria
   integrazione all’interno del SDLC.


                                                                                 10
Threat Modeling
  Tra le fasi più importanti per la                      START




   produzione di software sicuro.                      Identificazione
                                                       degli assets da



  Lo scopo è quello di identificare, valutare
                                                         proteggere




   e porre rimedio alle minacce identificate.          Identificazione
                                                      degli entry points



       Esistono molteplici definizioni
  Utilizza
                                                      Modellazione del
                                                         sistema




       Attack tree
                                                       Identificazione

       Data flow diagram                               delle minacce




       Risk Evaluation model                         Valutazione delle
                                                       minacce e loro


  Attività di tipo iterativo da affiancare in
                                                         risoluzione




   parallelo alla fase di design.                NO
                                                          Sono state
                                                          identificate
                                                            tutte le
                                                           minacce?



  Produce un documento, il Threat Model,
   contenente le minacce e le vulnerabilità             Generazione
                                                        threat model



   identificate (tra le altre cose).

                                                                           11
Threat Modeling
 Gli Attack Tree rappresentano
  un utile formalismo                                                 Web form
                                                                    Authentication
                                                                       Bypass
  nell’identificazione delle
  minacce.
                                                        2. Furto del                                      4. Attacco di
                              1. Modifica delle                                   3. Attacco di
                                                          token di                                       brute force sul
                               credenziali nel                                  brute force sulla
                                                        sessione di                                          token di
                                    DB                                             web form
                                                       un’altro utente                                      sessione




                                      1.2 Accesso                                     2.2 Il token non   Il token viene
                                                            2.1 ’applicazione           deve essere         creato dal
             1.1 Accesso             indiretto al DB
                                                            è vulnerabile ad             modificato        framework
             diretto al DB            Tramite SQL
                                                              attacchi XSS               durante la        sottostante
                                        Injection
                                                                                         sessione




              L’accesso                                                                    Ad ogni
                                        Le query
            diretto al DB è                                                            richiesta viene
                                       uilizzano i
             mitigato dalla                                                                  data
                                        prepared
            presenza di un                                                             “freschezza” al
                                       statements
                firewall                                                                    token




                                                                                                                          12
Coding Security Principles
 Utilizzo di librerie e funzioni “safe”
      Safe String handling
      Secure random number generator
      Secure unique file creation
 Utilizzo di Secure Coding Convention
      Controllare sempre il valore di ritorno
      Utilizzo di header file che sollevano un errore quando si utilizza una
       funzione considerata “unsafe”
 Eliminare il codice obsoleto o mai raggiungibile (dead
  code)
 Riutilizzo del codice ove possibile




                                                                                13
Security Code Review
 Tra le fasi più efficaci per l’identificazione di errori nel
  codice.
      Sessioni da massimo quattro ore con un intervallo a metà sessione
 Varie strategie di esecuzione
      Bottom Up
      Top Down
      Ibrida
 Attività “Brain Intensive”
      Un buon tool di analisi statica del codice sorgente può far diminuire
       drasticamente i tempi di analisi.
 Attività da includere nella fase di testing e analisi.




                                                                               14
Security Testing
  Il testing è l’attività ortogonale alla fase di analisi.
       A volte è più facile identificare degli errori con dei semplici test
        invece di analizzare il codice
  Viene effettuato utilizzando tutta la conoscenza
   posseduta (no Black Box)
       Non dare nulla per scontato
  Necessità di una fase iniziale di configurazione
   dell’ambiente (Scaffolding)
       Creazione degli eventuali Driver
       Creazione degli eventuali Stub
       Creazione degli oracoli
  La sua integrazione all’interno del’SDLC si basa sulla
   modifica della normale attività di testing.

                                                                               15
Penetration Testing
  Tra le attività più in voga per mettere alla prova la
   sicurezza dei propri applicativi.
  Tipicamente eseguita in fasi inoltrate del SDLC
  Esistono varie tipologie di testing che si differenziano
   sul livello di conoscenza posseduto
       Black Box
       White Box
       Gray Box (anche detto Glass Box)
  In un ciclo di sviluppo security oriented, la finalità
   principale dovrebbe essere di individuare vulnerabilità
   nel Deployment dell’applicazione.



                                                              16
Visione globale

                             Attack Patterns        Security Patterns


                                      Knowledge Base
     Requisiti e
     Casi d’uso




                                                          Security
                            Abuse Cases
                                                        Requirements


                                                                             Data Flow
                                                                              Diagram
                                                           Utilizza
     Software




                                            Threat
      Design




                                           Modeling        Utilizza


                                                                            Attack Trees
     Implementazione e
          Testing




                         Security         Penetration         Secure Code
                         Testing           Testing              Review




                                                                                           17
Conclusioni e Sviluppi Futuri

  Correzione delle vulnerabilità già dalle prime fasi del
   SDLC.
  Esistono svariate attività che possono essere incluse
   nel SDLC per aumentare la sicurezza
   dell’applicazione già dalle prime fasi.
       Includere tali attività in modo incrementale all’interno del proprio
        SDLC.
  In futuro si prevede:
       Un’ulteriore evoluzione per le attività presenti nelle prime fasi del
        SDLC.
       Comparsa di tool per automatizzare o comunque facilitare buona
        parte delle attività presentate.
       Comparsa di (ulteriori) metodologie per quantificare
        (qualitativamente o quantitativamente) la sicurezza del proprio
        software.
                                                                                18

More Related Content

What's hot

Software Open Source, Proprierio, Interoperabilita'
Software Open Source, Proprierio, Interoperabilita'Software Open Source, Proprierio, Interoperabilita'
Software Open Source, Proprierio, Interoperabilita'
Marco Morana
 

What's hot (8)

Simulazione di un Penetration Test
Simulazione di un Penetration TestSimulazione di un Penetration Test
Simulazione di un Penetration Test
 
Per i virus cattivi ci vuole un antivirus buono - by Achab - festival ICT 2015
Per i virus cattivi ci vuole un antivirus buono - by Achab - festival ICT 2015Per i virus cattivi ci vuole un antivirus buono - by Achab - festival ICT 2015
Per i virus cattivi ci vuole un antivirus buono - by Achab - festival ICT 2015
 
Antivirus & Antivirus Evasion
Antivirus & Antivirus EvasionAntivirus & Antivirus Evasion
Antivirus & Antivirus Evasion
 
Minded Security - Fabrizio Bugli - (3rd) party like nobody's watching...
Minded Security - Fabrizio Bugli - (3rd) party like nobody's watching...Minded Security - Fabrizio Bugli - (3rd) party like nobody's watching...
Minded Security - Fabrizio Bugli - (3rd) party like nobody's watching...
 
Software Open Source, Proprierio, Interoperabilita'
Software Open Source, Proprierio, Interoperabilita'Software Open Source, Proprierio, Interoperabilita'
Software Open Source, Proprierio, Interoperabilita'
 
Nessus
NessusNessus
Nessus
 
Owasp parte1-rel1.1
Owasp parte1-rel1.1Owasp parte1-rel1.1
Owasp parte1-rel1.1
 
Pentesting Android with BackBox 4
Pentesting Android with BackBox 4Pentesting Android with BackBox 4
Pentesting Android with BackBox 4
 

Similar to Nss 2007

05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
IBM Italia Web Team
 
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
fcecutti
 
Sicurezza delle applicazioni web eseguire web application penetration test co...
Sicurezza delle applicazioni web eseguire web application penetration test co...Sicurezza delle applicazioni web eseguire web application penetration test co...
Sicurezza delle applicazioni web eseguire web application penetration test co...
Simone Onofri
 
Progetti Open Source Per La Sicurezza Delle Web Applications
Progetti Open Source Per La Sicurezza Delle Web ApplicationsProgetti Open Source Per La Sicurezza Delle Web Applications
Progetti Open Source Per La Sicurezza Delle Web Applications
Marco Morana
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
Yeser Rema
 

Similar to Nss 2007 (20)

Infosecurity 2008
Infosecurity 2008Infosecurity 2008
Infosecurity 2008
 
CCI 2019 - SQL Injection - Black Hat Vs White Hat
CCI 2019 - SQL Injection - Black Hat Vs White HatCCI 2019 - SQL Injection - Black Hat Vs White Hat
CCI 2019 - SQL Injection - Black Hat Vs White Hat
 
Dedagroup Security
Dedagroup SecurityDedagroup Security
Dedagroup Security
 
Sicurezza nelle web apps
Sicurezza nelle web appsSicurezza nelle web apps
Sicurezza nelle web apps
 
CloudWALL VAM | Vulnerability Management
CloudWALL VAM | Vulnerability ManagementCloudWALL VAM | Vulnerability Management
CloudWALL VAM | Vulnerability Management
 
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
05 sicurezza delle applicazioni per le aziende nel settore della pubblica uti...
 
Sicurezza della virtualizzazione - SMAU 2009
Sicurezza della virtualizzazione - SMAU 2009Sicurezza della virtualizzazione - SMAU 2009
Sicurezza della virtualizzazione - SMAU 2009
 
La sicurezza delle informazioni nell’era del Web 2.0
La sicurezza delle informazioni nell’era del Web 2.0La sicurezza delle informazioni nell’era del Web 2.0
La sicurezza delle informazioni nell’era del Web 2.0
 
La Sicurezza delle Informazioni nel Web 2.0
La Sicurezza delle Informazioni nel Web 2.0La Sicurezza delle Informazioni nel Web 2.0
La Sicurezza delle Informazioni nel Web 2.0
 
EVENTO PARADIGMA
EVENTO PARADIGMAEVENTO PARADIGMA
EVENTO PARADIGMA
 
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilità
 
LinuxDay 2005: Computer Virus e rilevamento
LinuxDay 2005: Computer Virus e rilevamentoLinuxDay 2005: Computer Virus e rilevamento
LinuxDay 2005: Computer Virus e rilevamento
 
Computer Virus e rilevamento
Computer Virus e rilevamentoComputer Virus e rilevamento
Computer Virus e rilevamento
 
Cyber risks impatti, valutazioni e ragioni light
Cyber risks impatti, valutazioni e ragioni lightCyber risks impatti, valutazioni e ragioni light
Cyber risks impatti, valutazioni e ragioni light
 
Sicurezza delle applicazioni web eseguire web application penetration test co...
Sicurezza delle applicazioni web eseguire web application penetration test co...Sicurezza delle applicazioni web eseguire web application penetration test co...
Sicurezza delle applicazioni web eseguire web application penetration test co...
 
Automotive Security
Automotive SecurityAutomotive Security
Automotive Security
 
Mutagenesis
MutagenesisMutagenesis
Mutagenesis
 
Progetti Open Source Per La Sicurezza Delle Web Applications
Progetti Open Source Per La Sicurezza Delle Web ApplicationsProgetti Open Source Per La Sicurezza Delle Web Applications
Progetti Open Source Per La Sicurezza Delle Web Applications
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 

More from Antonio Parata

More from Antonio Parata (13)

Demystify web application vulnerability assessment
Demystify web application vulnerability assessmentDemystify web application vulnerability assessment
Demystify web application vulnerability assessment
 
Program Analysis: a security perspective
Program Analysis: a security perspectiveProgram Analysis: a security perspective
Program Analysis: a security perspective
 
Jackpot! sbancare un atm con ploutus.d
Jackpot! sbancare un atm con ploutus.dJackpot! sbancare un atm con ploutus.d
Jackpot! sbancare un atm con ploutus.d
 
EyePyramid and other .NET malware. How to analyze them?
EyePyramid and other .NET malware. How to analyze them?EyePyramid and other .NET malware. How to analyze them?
EyePyramid and other .NET malware. How to analyze them?
 
HackInBo2k16 - Threat Intelligence and Malware Analysis
HackInBo2k16 - Threat Intelligence and Malware AnalysisHackInBo2k16 - Threat Intelligence and Malware Analysis
HackInBo2k16 - Threat Intelligence and Malware Analysis
 
Securing your web applications a pragmatic approach
Securing your web applications a pragmatic approachSecuring your web applications a pragmatic approach
Securing your web applications a pragmatic approach
 
.NET for hackers
.NET for hackers.NET for hackers
.NET for hackers
 
Web Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code ReviewWeb Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code Review
 
Smau 2006
Smau 2006Smau 2006
Smau 2006
 
Smau 2007
Smau 2007Smau 2007
Smau 2007
 
Hat 2008
Hat 2008Hat 2008
Hat 2008
 
Openexp 2006
Openexp 2006Openexp 2006
Openexp 2006
 
Infosecurity 2007
Infosecurity 2007Infosecurity 2007
Infosecurity 2007
 

Nss 2007

  • 1. Costruire Software Sicuro dalle fondamenta Net System Security 2007 Antonio Parata antonio.parata@emaze.net 1
  • 2. Indice  Introduzione  Ciclo di sviluppo software  Attività Security Related  Attack Patterns  Abuse Cases  Security Requirements  Security Patterns  Threat Modeling  Coding Security Principles  Security Code Review  Security Testing  Penetration Testing  Visione Globale  Conclusioni e Sviluppi Futuri 2
  • 3. Introduzione Il costo per rimediare ad una vulnerabilità aumenta con il progredire delle fase. 3
  • 4. Ciclo di sviluppo software 4
  • 5. Ciclo di sviluppo software (Security Oriented) 5
  • 6. Attack Patterns  Concetto derivante dai Design Patterns.  Raggruppano le caratteristiche che hanno in comune alcune vulnerabilità.  Utilizzati per individuare quali sono le maggiori aree a rischio nella propria applicazione.  Vengono utilizzati non solo nella stesura dei requisiti, ma anche nelle successive fasi del SDLC  Non è necessario modificare il SDLC.  Vengono utilizzati come Knowledge Base aziendale  Necessitano di uno sforzo iniziale di definizione e catalogazione 6
  • 7. Attack Patterns Buffer Overflow Attack Pattern Goal: Sfruttare vulnerabilità da buffer overflow per eseguire un codice malevolo sul sistema target. Precondizioni: Un attaccante deve essere in grado di poter eseguire programmi sul sistema target. Attacco: AND 1. Identificare programmi eseguibili privilegiati sul sistema target che siano suscettibili a buffer overflow. 2. Creare un vettore d’attacco che conterrà il codice malevolo che si vuole far eseguire. 3. Creare il codice malevolo che si vuole far eseguire (anche detto payload). 4. Eseguire il programma in modo che prenda in input il vettore d’attacco creato al punto 2. Postcondizioni: il payload viene eseguito sul sistema target. 7
  • 8. Abuse Cases  Anche detti Misuse Cases, vengono utilizzati per aiutare il progettista a pensare come un attaccante.  Generalmente creati tramite sessioni di Brainstorming.  A differenza dei requisiti, gli Abuse Cases dovranno avere un corrispettivo piano di mitigazione all’interno dell’applicazione.  L’integrazione all’interno del SDLC avviene nella fase dei requisiti.  Viene aggiunta un’ulteriore fase in parallelo a quelle esistenti.  Esempio:  “Un utente malintenzionato può aggirare le restrizioni sull’input che vengono applicate sul client, inviando una richiesta appositamente forgiata utilizzando tool esterni.” 8
  • 9. Security Requirements  Utilizzo ortogonale a quello degli abuse cases.  Il loro compito è specificare in che modo si intende porre rimedio in fase di design/sviluppo ai possibili attacchi identificati tramite gli abuse cases.  La loro integrazione all’interno del SDLC è nella fase di definizione dei requisiti.  È una fase parallela a quella di definizione degli abus cases, ma è fondamentale tenere le due fasi separate.  Esempio:  “Tutte le richieste ricevute dal server vengono convogliate verso un unico punto di validazione dell’input, in cui vengono applicati una serie di filtri con tipologia white list.” 9
  • 10. Security Patterns  Utilizzati nella fase di progettazione, per costruire un design “sicuro by default”.  Patterns-Driven Security Design:  Creare un’architettura (design di alto livello) candidata dell’applicazione  Eseguire un’analisi del rischio sull’architettura prescelta  Progettare l’applicazione utilizzando i security design conosciuti, in modo da soddisfare i requisiti di sicurezza dell’applicazione.  Se non esiste un security pattern adatto, modificare il design dell’applicazione in modo che rispetti il requisito. In seguito aggiungere il nuovo pattern di design all’elenco posseduto.  Come gli attack pattern non vi è una vera e propria integrazione all’interno del SDLC. 10
  • 11. Threat Modeling  Tra le fasi più importanti per la START produzione di software sicuro. Identificazione degli assets da  Lo scopo è quello di identificare, valutare proteggere e porre rimedio alle minacce identificate. Identificazione degli entry points  Esistono molteplici definizioni  Utilizza Modellazione del sistema  Attack tree Identificazione  Data flow diagram delle minacce  Risk Evaluation model Valutazione delle minacce e loro  Attività di tipo iterativo da affiancare in risoluzione parallelo alla fase di design. NO Sono state identificate tutte le minacce?  Produce un documento, il Threat Model, contenente le minacce e le vulnerabilità Generazione threat model identificate (tra le altre cose). 11
  • 12. Threat Modeling  Gli Attack Tree rappresentano un utile formalismo Web form Authentication Bypass nell’identificazione delle minacce. 2. Furto del 4. Attacco di 1. Modifica delle 3. Attacco di token di brute force sul credenziali nel brute force sulla sessione di token di DB web form un’altro utente sessione 1.2 Accesso 2.2 Il token non Il token viene 2.1 ’applicazione deve essere creato dal 1.1 Accesso indiretto al DB è vulnerabile ad modificato framework diretto al DB Tramite SQL attacchi XSS durante la sottostante Injection sessione L’accesso Ad ogni Le query diretto al DB è richiesta viene uilizzano i mitigato dalla data prepared presenza di un “freschezza” al statements firewall token 12
  • 13. Coding Security Principles  Utilizzo di librerie e funzioni “safe”  Safe String handling  Secure random number generator  Secure unique file creation  Utilizzo di Secure Coding Convention  Controllare sempre il valore di ritorno  Utilizzo di header file che sollevano un errore quando si utilizza una funzione considerata “unsafe”  Eliminare il codice obsoleto o mai raggiungibile (dead code)  Riutilizzo del codice ove possibile 13
  • 14. Security Code Review  Tra le fasi più efficaci per l’identificazione di errori nel codice.  Sessioni da massimo quattro ore con un intervallo a metà sessione  Varie strategie di esecuzione  Bottom Up  Top Down  Ibrida  Attività “Brain Intensive”  Un buon tool di analisi statica del codice sorgente può far diminuire drasticamente i tempi di analisi.  Attività da includere nella fase di testing e analisi. 14
  • 15. Security Testing  Il testing è l’attività ortogonale alla fase di analisi.  A volte è più facile identificare degli errori con dei semplici test invece di analizzare il codice  Viene effettuato utilizzando tutta la conoscenza posseduta (no Black Box)  Non dare nulla per scontato  Necessità di una fase iniziale di configurazione dell’ambiente (Scaffolding)  Creazione degli eventuali Driver  Creazione degli eventuali Stub  Creazione degli oracoli  La sua integrazione all’interno del’SDLC si basa sulla modifica della normale attività di testing. 15
  • 16. Penetration Testing  Tra le attività più in voga per mettere alla prova la sicurezza dei propri applicativi.  Tipicamente eseguita in fasi inoltrate del SDLC  Esistono varie tipologie di testing che si differenziano sul livello di conoscenza posseduto  Black Box  White Box  Gray Box (anche detto Glass Box)  In un ciclo di sviluppo security oriented, la finalità principale dovrebbe essere di individuare vulnerabilità nel Deployment dell’applicazione. 16
  • 17. Visione globale Attack Patterns Security Patterns Knowledge Base Requisiti e Casi d’uso Security Abuse Cases Requirements Data Flow Diagram Utilizza Software Threat Design Modeling Utilizza Attack Trees Implementazione e Testing Security Penetration Secure Code Testing Testing Review 17
  • 18. Conclusioni e Sviluppi Futuri  Correzione delle vulnerabilità già dalle prime fasi del SDLC.  Esistono svariate attività che possono essere incluse nel SDLC per aumentare la sicurezza dell’applicazione già dalle prime fasi.  Includere tali attività in modo incrementale all’interno del proprio SDLC.  In futuro si prevede:  Un’ulteriore evoluzione per le attività presenti nelle prime fasi del SDLC.  Comparsa di tool per automatizzare o comunque facilitare buona parte delle attività presentate.  Comparsa di (ulteriori) metodologie per quantificare (qualitativamente o quantitativamente) la sicurezza del proprio software. 18