Le linee guida per la sicurezza applicativa Matteo Meucci, CISSP, CISA -Italy Chair Testing Guide Lead Convegno ABI 22 Maggio 2007, Roma matteo.meucci@owasp.org Copyright 2007 - The Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License. The Foundation http://www.owasp.org
Agenda Introduzione ad Linee guida per la sicurezza applicativa Il ciclo di sviluppo del software e il Framework di Test di Come utilizzare nel proprio SDLC 2
Il progetto Open Web Application Security Project () è una organizzazione dedicata alla creazione e alla diffusione di una cultura per quanto riguarda la sicurezza delle applicazioni web Progetto free, come il materiale disponibile sul portale www.owasp.org Migliaia di membri, 78 capitoli locali e altri partecipanti ai progetti. Milioni di hit su www.owasp.org al mese Defense Information Systems Agency (DISA), US Federal Trade Commission (FTC), VISA, Mastercard, American Express hanno adottato la documentazione nei loro standard e linee guida
-Italy 130 membri di cui 16 fortemente attivi nei progetti Leadership del progetto Testing Guide, con 11 autori italiani Più di 20 seminari e partecipazioni a convegni quali: "Software Security (Firenze Tecnologia), 6th AppSec Conference in Italy, Master on Information Security, University of Rome "La Sapienza, Seminari CLUSIT, University of Rome "La Sapienza, EuSecWest 07, InfoSecurity, Isaca Rome, SMAU, OpenExp, -Boston, Microsoft, IDC - European Banking Forum, Workshop on Computer Crime 2005, AlmaWeb University of Bologna Più di 10 pubblicazioni sul tema dell Application Security su testate quali: Quaderno CLUSIT, ICT Security, Hackin9, ISACA Rome
Code Review Guide Ajax Orizon.NET, Java BuildingGuide Testing Guide WebScarab Validation Certification Top 10 Training Blogs Conferences Project incubator Wiki portal Forums WebGoat Building our brand Chapters 5
Principali progetti Top10 http://www.owasp.org/index.php/_top_ten_project Guida per la progettazione di applicativi web sicuri http://www.owasp.org/index.php/_guide_project Web Application Penetration Testing http://www.owasp.org/index.php/_testing_project Strumenti per tester e code reviewer: WebGoat: http://www.owasp.org/index.php/category:_webgoat_project WebScarab: http://www.owasp.org/index.php/category:_webscarab_project Articoli, standard, news su Application Security
Honeycomb Testing Guide Tools Threat Agents Business Impacts Business Impact Vulnerabilities Vulnerability Code Review Guide System Impacts Countermeasures Asset Attacks Attack Countermeasure Building Guide 7
Top10 mantiene una lista delle 10 vulnerabilità più critiche degli applicativi web. Sempre più accettata come standard: Federal Trade Commission (US Gov) Oracle Foundstone Inc. @ Stake VISA, MasterCard, American Express Tradotta in italiano, disponibile sul sito del CLUSIT A1. Unvalidated Input A2. Broken Access Control A3. Broken Authentication and Session Management A4. Cross Site Scripting (XSS) Flaws A5. Buffer Overflow A6. Injection Flaws A7. Improper Error Handling A8. Insecure Storage A9. Denial of Service A10. Insecure Configuration Management
Building Guide Al fine di comprendere ed eliminare le cause della insicurezza nel software, ha sviluppato la guida per lo sviluppo delle applicazioni web sicure pensata per: Sviluppatori per implementare i meccanismi di sicurezza ed evitare le vulnerabilità; Project manager che la utilizzano per identificare le attività da svolgere (threat modeling, code review, development); Team di sicurezza che la usano per apprendere le tematiche di application security e l approccio per la messa in sicurezza;
Building Guide Applicazioni e Web Services Vengono analizzati e discussi più di 200 controlli: per ogni controllo di sicurezza da implementare si descrive la problematica, come determinare se si è vulnerabili e quali contromisure adottare per proteggersi. Sia teoria che le best practice Tratta esempi in J2EE, ASP.NET e PHP, le più diffuse piattaforme per sviluppare applicazioni web. Vengono puntualmente confrontati gli standard ITIL, CobiT, ISO 17799 con gli Criteria esposti nella guida.
Building Guide Meccanismi di autenticazione Autorizzazione e metodi di controllo degli accessi Validazione dei dati in input e output Gestione delle sessioni web Audit e Logging Riservatezza delle informazioni e crittografia Insecure Configuration Management La gestione degli errori Denial of Service Phishing AJAX Web Services
Testing Guide v2 Descrive la metodologia per testare un applicativo web 272 pagine, 48 controlli Approccio della metodologia: Definita Consistente Ripetibile Di qualità Il documento SANS Top 20 cita la guida in "C1. Web Applications" sezione: http://www.sans.org/top20/?ref=1697#c1 "Congratulations on version 2 of the Testing Guide! It is an impressive and informative document that will greatly benefit the software development community". Joe Jarzombek, the Deputy Director for Software Assurance at Department of Homeland Security 12
Testing Guide: report I. Executive Summary II. Technical Management Overview III Assessment Findings: Risk Rating 13
Il ciclo di vita del software e la sicurezza
Il ciclo di vita del software Il problema della sicurezza del software rappresenta la prossima sfida per le aziende. Il Ciclo di Vita del Software (Sofware Development Life Cycle, SDLC) comprende : Define Design Develop Deploy Maintain Come si individuano le vulnerabilità? Manual Inspections & Reviews Threat Modeling Code Review Penetration Testing 15
Testing Program nel SDLC: fraintendimenti comuni Utilizziamo scanner automatici e penetration test, così siamo coperti su tutte le problematiche di sicurezza. Se un PT da esito positivo l azienda sa che ci sono dei seri problemi Se un PT da esito negativo l azienda ha un falso senso di sicurezza I imigliori application scanner coprono < 20% dei buchi di sicurezza Abbiamo un Web Application Firewall (WAF) che protegge le applicazioni così non abbiamo la necessità di testare le vulnerabilità degli applicativi. I WAF non coprono tutte le vulnerabilità e per niente quelle logiche Testiamo tutto prima che sia in esercizio. Implica un drammatico innalzamento dei costi Normalmente implica solo black-box testing Al fine di costruire software migliore, è necessario costruire un migliore processo di sviluppo del sw (SDLC)
Principi del Testing Non esiste la soluzione La chiave è il SDLC Testare nella fase iniziale e spesso Mindset: pensare out of the box Use the Right Tool for the Right Job Usare Source Code Review quando è disponibile Metriche e miglioramento continuo
Fasee1: Prima cheinizilo sviluppo SDLC and Security Prima che inizi lo sviluppo dell applicativo è necessario: Assicurarsi che esista un SDLC adeguato e che la sicurezza sia inerente in ogni fase Creare le policy e standard necessarie per il team di sviluppo Sviluppare criteri di metrica per assicurare il miglioramento continuo del ciclo Documentare tutto per assicurare la tracciabilità Before SDLC Define&Design Development Deploy&Maintenance 18
SDLC and Security Fase 2: Durante Define e Design Prima che inizi lo sviluppo dell applicativo è necessario: Security Requirements Review: User Management (password reset etc.), Authentication, Authorization, Data Confidentiality, Integrity, Accountability, Session Management,Transport Security, Privacy Design an Architecture Review Create and Review UML Models Come funziona l applicativo Create and Review Threat Models Sviluppare uno scenario di minacce realistiche Before SDLC Define&Design Development Deploy&Maintenance 19
SDLC and Security Phase 3: During Development Code Walkthrough: Ispezione ad alto livello del codice in cui gli sviluppatori posso spiegare la logica ed il flusso Code Review: Revisione statica del codice al fine di validare il codice nei confronti di una serie di checklist: CIA triade Top10, Code Review Sox, ISO 17799, ecc Before SDLC Define&Design Development Deploy&Maintenance 20
SDLC and Security Phase 4: During Deployment Application Penetration Testing Test black-box dell applicazione Configuration Management Testing Controllo di come l infrastruttura è stata messa in campo e come resa sicura Phase 5: Maintenance and Operations Operational management reviews Health check periodici Assicurare il change verification Before SDLC Define&Design Development Deploy&Maintenance 21
SDLC & Before SDLC Define&Design Development Deploy&Maintenance Policy and Standards Develop metrics Security Requirement Threat Modeling Code Walkthrough Code Review Application Testing Management reviews Health checks Awareness Building Review Test Guidelines Building Guide Code Review Guide Testing Guide Security in SDLC Framework
Grazie Matteo Meucci CISSP, CISA Italy founder and Chair Testing Guide lead 2007 matteo.meucci@owasp.org 23