Sicurezza applicativa: dalla
         teoria alla pratica



             Paolo Perego
             Owasp Italy R&D Director
             Owasp Orizon Project leader


Security     thesp0nge@owasp.org
Summit,
Milan 2010   Copyright 2010 © The OWASP Foundation
             Permission is granted to copy, distribute and/or modify this document
             under the terms of the OWASP License.




             The OWASP Foundation
             http://www.owasp.org
Agenda

Dalla teoria
  The Owasp Code Review Guide
Alla pratica
  Owasp Orizon
  Owasp O2 Platform




                                 OWASP   2
$ whoami

Owasp Italy R&D director
Owasp Orizon Project
 leader
Open source enthusiast
 since 1996
Developer since 1985
Senior consultant at Reply

          $&&1)!   *"0) 0)()1"&2)3.
                              !


          '$($     !   "#$%&          !   &6"."7,$&6/!   ,$-1%


          ,)(-)#       !   ,+5/!   %)*+,-./       !   %%01*
          .$)4#"30"


                                                                 OWASP   3
Ho un problema...

       More and More application level issues……
            Sept/Oct 2008 – SQL Injection $9,000,000 in 24 Hours
             (RBS)
            Business Logic Exploited in US Army Servers – May,
             2009
            HSBC and Barclays sites were both hit by major XSS
             vulnerabilities - June 2009
            The Telegraph site was exposed by a severe SQL
             injection vulnerability - June 2009
                                                                  “In the last five years, approximately
                                                                  500 million records containing personal
                                                                  identifying information of United States
                                                                  residents stored in government and
                                                                  corporate databases was either lost
                                                                  or stolen.”   - “www.identitytheft.info”
                                                                                           OWASP             4
Courtesy by Eoin Keary, first appeared in Owasp Belgium Day 2009
... che ricorre da molto tempo ...

       Eg: XSS was discovered circa 1996
            Initially is was a curiosity
            Evolved to an exploit
            Further evolution to a worm
                  MySPACE- SAMMY WORM 2005, first self propagating xss worm
            Wide scale problem, 13 years later!
                  Toolkits: Mpack, LuckySploit, ISR-Evilgrade etc
                  Attacking the client: Phisihing, Malware Upload
            Ironically easy to fix and detect but 60%-70% of sites
             are vulnerable..


                                                                     OWASP     5
Courtesy by Eoin Keary, first appeared in Owasp Belgium Day 2009
... e per il quale la soluzione non è banale.

Budget IT // security
  non adeguati
  indirizzati alla sicurezza perimetrale
  dedicati a costose soluzioni commerciali
Mentalità
  eterno conflitto “security guys” vs “developers”
  passare ad un SSDLC significa cambiare modo di lavorare
Know-how
  mettere in piedi un SSDLC non è banale
  sono richieste competenze di sviluppo e di security
  manca la figura dell’application security specialist
                                                    OWASP    6
Dalla teoria...




                  OWASP   7
The Owasp Code review guide

Project leader: Eoin Keary
Progetto nato nel 2005
Punto di riferimento per la tematica di
 sicurezza legata al codice
Indirizza
  come effettuare una revisione del codice
  quali i pattern da cercare
  quali i tool da utilizzare
Secondo libro Owasp più venduto nel
 2008
                                              OWASP   8
Perché fare una code review

Perché un controllo a run-time (dicasi penetration
 test)
  non valuta bene la business logic dell’applicazione
  poco efficace di fronte ad applicazioni complesse
  identifica il sintomo del problema ma non la causa
     mi dice che ho la vulnerabilità X
     non mi dice in che punto del codice introduco la vulnerabilità X
Approccio duplice
  automatico
  manuale


                                                             OWASP       9
Code review automatica

Pro
 accurata nell’identificare anomalie nel codice
 in grado di evidenziare problemi legati alla qualità del
  codice
Contro
 non sempre il codice è disponibile
    legato all’approccio usato dai tool commerciali
    legato all’utilizzo di librerie di terze parti
 enorme mole di falsi positivi
    enorme
       – enorme
           » enorme
           » (no, non mi sono addormentato sulla tastiera :-))

                                                                 OWASP   10
Code review manuale

Pro
 rileva
    problemi di business logic
    backdoor
    problemi legati alla privacy e come i dati sono trattati
 efficace a livello tecnologico tanto quanto la code review
  automatica
 mitiga il numero di falsi positivi
Contro
 attività time-consuming e costosa
    spesso si fa una revisione manuale solo di applicazioni business critical
 necessita di skill adeguate
 codice scritto male può essere difficile o impossibile da rivedere
                                                                     OWASP       11
Ehi... ma ho comprato un tool di analisi statica
che...
La sola analisi dinamica è debole verso
  applicazioni senza i dovuti controlli di security
     niente controlli = niente codice da revisionare
     niente codice = nessun finding da parte del tool
     nessun finding = applicazione sicura
  controlli di tipo matematico
     gestione degli overflow numerici
     conversione tra unità di misura differenti
  funzionalità con precisi vincoli di policy
     password policy




                                                         OWASP   12
... alla pratica




                   OWASP   13
Owasp Orizon Project 2.0

Project leader: Paolo Perego
Progetto
  nato nel 2006
  revisionato profondamente nel 2009
  in attesa di definitiva incarnazione nel 2010
La versione 2.0 “dovrebbe” essere rilasciata a Giugno durante
 l’Owasp AppSEC conference a Stoccolma
Highlight
  scritto in Java
  +29.000 linee di codice (commenti inclusi) per la versione 1.39
  svn co https://orizon.svn.sourceforge.net/svnroot/orizon orizon
      download it
      read it
      love it

                                                               OWASP   14
Owasp Orizon Project 2.0

            osh                          web gui


                  Owasp Orizon SkyLine

                                         Owasp
                                         orizon library



        Owasp Orizon core


                                         (candlekeep

                   database backend



                                                          OWASP   15
Owasp Orizon Project 2.0

Pro
 analizza il codice sorgente
    (i tool commerciali analizzano l’equivalente compilato)
    l’analisi non è influenzata dalle scelte di ottimizzazione del
     compilatore
    la mancata presenza di librerie di terze parti non inficia l’analisi
 supporto per vari linguaggi di programmazione
Contro
 difficile da utilizzare
 limitata libreria di pattern di programmazione insicura
 scarsa documentazione

                                                                OWASP       16
Owasp O2 Platform Project

Project leader: Dinis Cruz
Progetto nato nel 2008
Si appoggia su diversi motori di scansione
  commerciali
      IBM Rational AppScan Source edition (aka Ounce)
      Fortify
  opensource
        codecrawler
        yasca
        CAT.NET
        Findbugs
Ha lo scopo di aiutare un revisore di codice a tener traccia
  del flusso delle variabili e dell’esecuzione del programma
  della propagazione dei pattern d’attacco all’interno della logica
   applicativa
                                                                  OWASP   17
Owasp O2 Platform Project

       Insieme di moduli
       Sviluppato in C#                                                              O2 MODULES - DEVELOPMENT STATE




                                                                   ACTIVE                                      LEGACY
                                                                                                                 •   O2 Scanners
                                                                        •   O2 Tool - Findings Viewer            •   O2 Tool - DotNet Callbacks Maker
                                                                        •   O2 Tool - CirViewer                  •   O2 Tool - Findings Query
                                                                        •   O2 Tool - Rules Manager              •   O2 Tool - Search Assessment Run
                                                                        •   O2 Cmd - Findings Filter             •   O2 Tool - View Assessment Run
                                                                        •   O2 Cmd - Spring MVC                  •   O2 Tool - WebInspect Converter
                                                                        •   O2 Tool - Join Traces
                                                                        •   O2 Debugger Mdbg
                                                                        •   O2 Tool - CSharpScripts
                                                                        •   O2 Scanner - MsCatNet
                                                                        •   O2 Tool - Host Local Website
                                                                        •   O2 Tool - Java Execution
                                                                        •   O2 Tool - O2 Scripts
                                                                        •   O2 Tool - Python
                                                                        •   O2 Tool - Search Engine




                                                                                                                                                              O2
                                                                                                                                                              developer
                                                                                                                                                              senior
                                                                                                                                                              consultant

                                                                         • O2 Tool - Filter Assessment Files                                                  security
                                                                                                                                                              consultant

                                                                         • O2 Tool - O2 Reflector                                                             analyst

                                                                                                                                                             manager

                                                                                                                                                           GEEK-O-METER



                                                    Wednesday, 19 August 2009




                                                                                                                                                        OWASP              18
Courtesy by Dinis Cruz, first appeared in O2 presentation in Ottawa, Canada, August 2009
Qualche link

Owasp   Code review guide:http://svel.to/v2
Owasp   Orizon blog: http://svel.to/cw
Owasp   Orizon@twitter: http://svel.to/cx
Owasp   O2 Platform project: http://svel.to/v1

Mail me: thesp0nge@owasp.org




                                             OWASP   19
Thanks!




          OWASP   20