La sicurezza delle applicazioni -dal modello tradizionale al cloud- Simone Riccetti, IT Security Architect IBM Italy 2009 IBM Corporation
Agenda Perchè la sicurezza delle applicazioni? Approcci al Secure Engineering IBM Security Services 2010 IBM Corporation
2010 IBM Corporation
Vulnerabilità riportate dai vendor Rispetto all H1 2009 c è stato un incremento delle vulnerabilità del 36%. Le vulnerabilità più critiche scoperte in H1 2010 sono sfruttabili da remoto. Diverse vulnerabilità critiche sono state pubblicate prima della disponibilità di patch. 2010 IBM Corporation
Perchè il problema continua a crescere? Connettività: Internet L incremento del numero e delle tipologie d vettori di attacco è proporzionale all incremento di connettività. SOA/Web Services Applicazioni legacy non progettate per essere in rete, sono visibili come servizi. Sistemi Legacy Non sempre supportano le moderne funzionalità di sicurezza (es. Autenticazione) Estensibilità: Il software è sempre più estensibile, es browser plug-in, dynamic loadable device driver L estensibilità dei software rende difficile prevederne la superficie di attacco nel tempo Complessità: La complessità delle architetture software è sempre maggiore Nel 1990, Windows 3.1 aveva 2,500,000 linee di codice. Windows XP ha circa 40,000,000 linee di codice. Il numero di bugs è proporzionale al numero di linee di codice 2010 IBM Corporation
2010 IBM Corporation
Secure Engineering Una serie di concetti, principi e best practice con l obiettivo di integrare la sicurezza nel software progettato. Riguarda tutte le fasi del ciclo di sviluppo del software Security by Design Security by Implementation Security by Deployment Secure Engineering non riguarda solo la fase di implementazione, ma è un approccio end-to-end 2010 IBM Corporation
Software sicuro Che caratteristiche deve avere il Software Sicuro? Affidabilità: le funzioni implementate dal software sono quelle attese, in tutte le condizioni di funzionamento Attendibilità: il software non deve contenere vulnerabilità che possono comprometterne l Affidabilità Capacità di recupero: il software deve essere in grado di tollerare eventuali attacchi e recuperare velocemente le funzionalità per cui è stato progettato 2010 IBM Corporation
Quanto costa correggere una vulnerabilità? 80% dei costi di sviluppo sono spesi per identificare e correggere gli errori National Institute of Standards & Technology Quando il prodotto è stato rilasciato Durante la fase di coding $25/difetto Durante la fase di build $100/difetto Durante la fase di test $450/difetto $16,000/difetto + Perdita della fiducia del cliente, danni di immagine, etc. Caper Jones, Applied Software Measurement, 1996 * Source: 2008 GBS Industry standard study. Defect cost derived in assuming it takes 8 hrs to find, fix and repair a defect when found in code and unit test. Defect FFR cost for other phases calculated by using the multiplier on a blended rate of $80/hr. 2010 IBM Corporation
Security Engineering & Software Development Life Cycle Strategia di sicurezza e metriche Definizione dei requisiti Design Implementazione Test Deploy Requisiti di sicurezza Principi di secure design Secure coding Risk analysis Vulnerability management Secure deployment Operational enablement Abuse cases Risk analysis Revisione del codice Security testing Security testing Security education 2010 IBM Corporation
Il processo di Application Security dal modello tradizionale al Cloud
Relatore Alessandro Gai Senior Security Advisor ISECOM OPST OWSE + 5 anni penetration test + 10 anni web analyst and developer Trainer corsi specialisti - master universitari 2
Agenda Che cosa è il Cloud Computing? Rischi, minacce e vulnerabilità Quali domande dobbiamo porre ai nostri fornitori? Conclusioni 3
La nuvola Fino al 2008: = INTERNET Dal 2008 ad oggi =? 4
La nuvola 5
Cosa è il Cloud Computing? PaaS SaaS Managed Hosting 2.0 Virtualization IaaS Cloud Bursting Internal Cloud Public Cloud Private Cloud Mini Cloud 6
Cos è il Cloud Computing? http://www.youtube.com/watch?v=bri4vpo4dyy 7
Caratteristiche del Cloud Computing Potenza di calcolo e di storage «illimitata» On-demand self-service richiedo servizi quali server time o network storage senza iterazione umana Broad network access dati accessibili sulla rete indipendentemente dal client utilizzato (cellulari, laptops o PDAs). 8
Caratteristiche del Cloud Computing Resource pooling Le risorse computazionali sono a disposizione di più clienti usando il modello multi-tenant. Differenti risorse fisiche e virtuali sono assegnate ai vari clienti on demand. 9
Caratteristiche del Cloud Computing Rapid elasticity Measured Service Controllo e ottimizzazione automatica delle risorse Ad esempio: content delivery service (mirror in n paesi nel mondo) 10
Cosa è il Cloud Computing? SaaS SaaS PaaS IaaS Iaas 11
Cosa è il Cloud Computing? Infrastructure as a Service Virtual machine o hardware astratti e relativi sistemi operativi Controllo remoto tramite servizi o API Es: Amazon EC2 and S3, Terremark Enterprise Cloud, Windows Live Skydrive and Rackspace Cloud, etc. 12
Cosa è il Cloud Computing? Platform as a Service Sviluppo di applicazioni tramite API remote Piattaforme offrono tool per lo sviluppo Es: Microsoft Azure, Force and Google App engine, IBM WebSphere CloudBurst Appliance, etc. 13
Cosa è il Cloud Computing? Software as a Service Software offerto da un provider di terze parti Disponibile «on demand» Configurabile remotamente via internet Es: CRM services and web content delivery services, Salesforce CRM, Google Docs, IBM LotusLive, etc. 14
Tipi di Cloud Private Cloud L infrastruttura opera per una solo cliente Community cloud L infrastruttura viene condivisa da una community con gli stessi obbiettivi (ad es. compliance ) Public cloud L infrastruttura è pubblica Hybrid cloud L infrastruttura è composta da due o più cloud (Cloud bursting) In parte sul cloud e in parte no 15
NIST Definition of Cloud Computing http://csrc.nist.gov/groups/sns/cloud-computing/ 16
Evoluzione (prospettiva utente / utilizzatore finale) The stand-alone personal computer Sistema operativo software e dati sono memorizzati in un singolo pc. The Web Sistema operativo e la maggior parte del software di cui un utente ha bisogno è sul suo pc mentre la maggior parte dei dati sono sul web The «Cloud» La maggior parte del software e dei dati è on line (internet based) 17
Evoluzione (prospettiva utente / utilizzatore finale) http://www.saasblogs.com/2008/12/01/demystifying-the-cloud-where-do-saas-paas-and-other-acronyms-fit-in/ 18
Esempi di applicazioni sul cloud http://www.fubiz.net/2011/03/07/real-life-version-of-up/ 19
Esempi di applicazioni sul cloud http://animoto.com/ (online video creator) http://docs.google.com/ (online word processor, spreadsheet, etc.) http://www.zoho.com/ (business applications) http://pixlr.com/ (image editor) http://employease.com/ (online hrms) http://wordpress.com/ (blog) 20
http://www.opencrowd.com/assets/images/views/views_cloud-tax-lrg.png 21
22
2010 IBM Corporation
Le macro categorie di requisiti di sicurezza Auditing & logging Authentication & authorization Session management Input validation & output encoding Exception management Cryptography & integrity Data at rest Data in motion Configuration management 2010 IBM Corporation
Use Cases e Misuse Cases Oltre agli Use Case, che definiscono gli aspetti funzionali dell applicazione, è necessario identificare i possibili scenari di attacco o Misuse Cases. E importante avere la prospettiva dell attacker Rer: http://www.owasp.org/index.php/testing_guide_introduction 2010 IBM Corporation
2010 IBM Corporation
Secure Design..circa il 50% dei problemi di sicurezza sono dovuti ad errori architetturali 2010 IBM Corporation
Definire le priorità: Risk Analysis Analizzare software complessi può risultare un impresa molto lunga e costosa E necessario focalizzare l attenzione sul codice più a rischio (es. componente che gestisce il login degli utenti, componente accessibile via rete, codice legacy etc.) L analisi dei rischi permette di: Definire le priorità di analisi in funzione della criticità e della funzioni di business Definire l approccio all analisi delle vulnerabilità misurare il livello di sicurezza del software prodotto (KPI) Individuare le contromisure più efficaci 2010 IBM Corporation
Agenda Che cosa è il Cloud Computing? Rischi, minacce e vulnerabilità Quali domande dobbiamo porre ai nostri fornitori? Conclusioni 23
Policy and organizational risks R.1 Lock-in Portabilità di servizi / dati o o o SaaS Lock-in: il provider offre un servizio per l esportazione dei dati? Cosa comporterebbe la migrazione su un altro provider? PaaS Lock-in: uso API del provider, il mio codice è portabile? IaaS-Lock-in R.2 Loss of governance Possiamo effettuare port scans, vulnerability assessment o penetration testing? 24
Policy and organizational risks R.3 Compliance challenges Provider garantisce i requirement per la mia compliance? EC2 hosted services non possono essere usati per gestire transazioni di carte di credito (compliance a PCI-DSS) R.4 Loss of business reputation due to cotenant activities L attività malevola di un tenant può influenzare negativamente gli altri tenant (ad es. range di indirizzi IP bloccati) 25
Policy and organizational risks R.5 Cloud service termination or failure Il provider sospende il servizio o è negligente nella sua fornitura. R.6 Cloud provider acquisition Acquisizione del provider da un altra società. R.7 Supply chain failure Se provider da in outsource parte dell attività il livello di sicurezza del provider può dipendere dal livello di sicurezza della terza parte. 26
Technical risks R.8 Resource exhaustion (under or over provisioning) ad es. se le proiezioni statistiche usate per alloccare le risorse sono errate. R.9 Isolation failure (Sql injection?) R.10 Cloud provider malicious insider R.11 Management interface compromise (manipulation, availability of infrastructure) R.12 Intercepting data in transit R.13 Data leakage on up/download (come sopra intra-cloud ) 27
Technical risks R.14 Insecure or ineffective deletion of data se richiesto data wiping? R.15 Distributed denial of service (DDoS) R.16 Economic denial of service (EDOS) L uso improprio delle risorse di un utente porta a un danno economico (DDoS su cliente che paga in base a HTTP request / furto d identità e utilizzo del cloud per scopi malevoli) R.15/R.16 Dos Applicativi 28
Technical risks R.17 Loss of encryption keys Perdita o compromissione delle chiavi segrete (SSL, file encryption, customer private keys, etc) o delle password R.18 Undertaking malicious probes or scans Come controllare le scansioni (network mapping) R.19 Compromise service engine Problemi nel service engine (IaaS / PaaS / SaaS) R.20 Conflicts between customer hardening procedures and cloud environment (seguire le linee guida del proprio provider) 29
30
2010 IBM Corporation
Secure Coding Quali sono le principali cause di vulnerabilità del codice? 1. Requisiti di sicurezza non definiti o poco chiari 2. Implementazione errata di requisiti corretti 3. Nella fase di deployment e configurazione non rispecchia i requisiti e le modalità operative previste Focus sul problema #2 2010 IBM Corporation
The 2010 CWE/SANS Top 25 Most Dangerous Software Errors Codice CWE CWE-79 CWE-89 CWE-120 CWE-352 CWE-285 CWE-807 CWE-22 CWE-434 CWE-78 CWE-311 CWE-798 CWE-805 Descrizione Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') Cross-Site Request Forgery (CSRF) Improper Access Control (Authorization) Reliance on Untrusted Inputs in a Security Decision Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') Unrestricted Upload of File with Dangerous Type Improper Neutralization of Special Elements used in an OS Command Missing Encryption of Sensitive Data Use of Hard-coded Credentials Buffer Access with Incorrect Length Value 2010 IBM Corporation
The 2010 CWE/SANS Top 25 Most Dangerous Software Errors Codice CWE CWE-98 CWE-129 CWE-754 CWE-209 CWE-190 CWE-131 CWE-306 CWE-494 CWE-732 CWE-770 CWE-601 CWE-327 CWE-362 Descrizione Improper Control of Filename for Include/Require Statement in PHP Program Improper Validation of Array Index Improper Check for Unusual or Exceptional Conditions Information Exposure Through an Error Message Integer Overflow or Wraparound Incorrect Calculation of Buffer Size Missing Authentication for Critical Function Download of Code Without Integrity Check Incorrect Permission Assignment for Critical Resource Allocation of Resources Without Limits or Throttling URL Redirection to Untrusted Site ('Open Redirect') Use of a Broken or Risky Cryptographic Algorithm Race Condition 2010 IBM Corporation
Secure coding: Best practice Keep code simple and small Use a consistent coding style Follow secure coding standards and/or guidelines Make code forward and backward traceable Code for reuse and maintainability Allocate memory and other resources carefully Use proper input encoding and validation Use proper output filtering and sanitization Leverage attack patterns Review code during and after coding.. Source: Karen Goertzel, Theodore Winograd Enhancing the Development Life Cycle to Produce Secure Software 2010 IBM Corporation
2010 IBM Corporation
Es. Taint String //... String username = request.getparameter("username"); String password = request.getparameter("password"); //... String query = "SELECT * from tusers where " + "userid='" + username + "' " + "AND password='" + password + "'"; //... ResultSet rs = stmt.executequery(query); 2010 IBM Corporation
Es. Concorrenza. public class Main extends HttpServlet{ int accessi = 0; public void doget(httpservletrequest in, HttpServletResponse out) throws ServletException, IOException { out.setcontenttype("text/plain"); PrintWriter p = out.getwriter(); } } accessi++; try { Thread.sleep(1000); } catch (InterruptedException e) { e.printstacktrace(); } p.println( accessi + Request effettuate "); 2010 IBM Corporation
Code Review/Testing Tools Esistono tre approcci fondamentali per analizzare le vulnerabilità di un applicazione: White Box: viene analizzato il codice sorgente e l applicazione NON viene eseguita Black Box: NON si ha accesso al codice sorgente e l applicazione viene eseguita Gray Box: si ha parzialmente accesso al codice sorgente e l applicazione viene eseguita L analisi delle vulnerabilità può essere fatta a mano e con tool automatici 2010 IBM Corporation
Non solo i tool Architecture review Code review (manuale) Vulnerabilità Static Code Analysis (Whitebox) Dynamic Analysis (Blackbox) 2010 IBM Corporation
Agenda Che cosa è il Cloud Computing? Rischi, minacce e vulnerabilità Quali domande dobbiamo porre ai nostri fornitori? Conclusioni 31
Vulnerabilità V1. AAA Vulnerabilities Autenticazione / Autorizzazione / Accounting o o Impossibilità di tracciare l uso improprio di risorse o gli incidenti Accesso non autorizzato - Privileges escalation: Memorizzazione insicura delle credenziali di accesso al cloud Numero insufficiente di ruoli Problematiche intrinsiche nell autenticazione basata sulla password 32
Vulnerabilità V2. User Provisioning Vulnerabilities V3. User De-Provisioning Vulnerabilities Poco controllo sulla procedura di Provisioning Mancato controllo sull identità V4. Remote Access To Management Interface V5. Hypervisor Vulnerabilities (virtual machine-based Rootkit) es: Cloudburst (VMware vulnerability) 33
Vulnerabilità V6. Lack Of Resource Isolation Vulnerabilità nel hypervisor security model o nelle interfacce di management che possono portare al furto dei dati condivisi sulla stessa macchina V7. Lack Of Reputational Isolation V8. Communication Encryption Vulnerabilities MITM attacks / self-signed certificates / etc. V9. Lack Of Or Weak Encryption Of Archives And Data In Transit Dati sensibili devo essere criptati 34
Vulnerabilità V10. Impossibility Of Processing Data In Encrypted Form il dato non viene mantenuto criptato durante il suo processo V11. Poor Key Management Procedures V12. Key Generation: Low Entropy For Random Number Generation Sistemi virtuali hanno meno entropia dei sistemi fisici. Attaccante su una virtual machine potrebbe essere in grado di guessare una chiave randomica generata da una seconda vm 35
Vulnerabilità V13. Lack Of Standard Technologies And Solutions I dati portrebbero essere locked-in dal provider V14. No Source Escrow Agreement Protezione dal fallimento del provider V15. Inaccurate Modelling Of Resource ad esempio se proiezioni statistiche usate per alloccare le risorse sono errate V16. No Control On Vulnerability Assessment Process 36
Vulnerabilità V17. Possibility That Internal (Cloud) Network Probing Will Occur Scansioni / test da altri clienti all interno del Cloud V18. Possibility That Co-Residence Checks Will Be Performed (Attacchi per determinare quali risorse sono condivise e da chi) V19. Lack Of Forensic Readiness SaaS: accesso al log degli accessi IP? V20. Sensitive Media Sanitization Policy di distruzione dei dati possono essere applicate? Ad es. distruzione fisica del disco. 37
Vulnerabilità V21. Synchronizing Responsibilities Or Contractual Obligations External To Cloud V22. Cross-Cloud Applications Creating Hidden Dependency V23. Sla Clauses With Conflicting Promises To Different Stakeholders V24. Sla Clauses Containing Excessive Business Risk V25. Audit Or Certification Not Available To Customers 38
Vulnerabilità V26. Certification Schemes Not Adapted To Cloud Infrastructures V27. Inadequate Resource Provisioning And Investments In Infrastructure V28. No Policies For Resource Capping V29. Storage Of Data In Multiple Jurisdictions And Lack Of Transparency About This V30. Lack Of Information On Jurisdictions V31. Lack Of Completeness And Transparency In Terms Of Use 39
40
Non solo i tool Architecture review Code review (manuale) Vulnerabilità Static Code Analysis (Whitebox) Dynamic Analysis (Blackbox) 2010 IBM Corporation
Servizi Cloud per lo sviluppo e test 2010 IBM Corporation
IBM Cloud Application Development & Test Deployment rapido di nuovi progetti Attività di transizione Demo Training POC Migration of technology Multi-site, outsourced development & test Accesso multi-sites; remote locations, etc. Team eterogeneo / contractor resources 1 Provision RTC Rational Team Concert Collaborative Development Process Facilitation Source Control Defect Management Rational Requirements Composer Dev Lead Developm ent Developme Developers Lead nt Lead 3 Developers work with RTC using web or rich client interface RTC 2 Customize preinstalled templates 2010 IBM Corporation
Cosa cambia con i servizi tipo Cloud? In generale, la qualità del processo si riflette sulla qualità del prodotto, e questo vale anche per il Secure Engineering Il processo di Secure Engineering deve tener conto di diversi fattori: Skill di sicurezza Tecnologie di analisi disponibili Tipo di applicazioni sviluppate Processo di Sviluppo Tecnologie di comunicazione? Processo di Sviluppo Tecnologie di comunicazione Tipo di applicazioni sviluppate Skill di sicurezza Tecnologie di analisi disponibili Modello Tradizionale Modello cloud 2010 IBM Corporation
Soluzioni di sicurezza applicativa 2010 IBM Corporation
IBM Rational AppScan Ecosystem AppScan Enterprise / Reporting Console / Source Ed Core AppScan AppScan Ent. Source Ed for QuickScan (web Developer / client) Remediation AppScan Source Ed for Automation (scanning agent) (QA clients) AppScan Tester Ed AppScan Enterprise user (web client) AppScan Standard Ed (desktop) Rational Application Developer Rational Software Analyzer Rational ClearCase Rational Build Forge Rational Quality Manager AppScan Source Ed for Security Rational ClearQuest / Issue Management CODE Build security testing into the IDE* BUILD Automate Security / Compliance testing in the Build Process QA Security / compliance testing incorporated into testing & remediation workflows SECURITY Security & Compliance Testing, oversight, control, policy, audits IBM Rational Web Based Training for AppScan 2010 IBM Corporation
Servizi di sicurezza disponibili dal Cloud IBM Hosted X-Force Threat Analysis Service Security Event and Log Management Vulnerability Management Application Vulnerability Assessment Managed Security Services IBM Confidential 2010 IBM Corporation
2010 IBM Corporation
Agenda Che cosa è il Cloud Computing? Rischi, minacce e vulnerabilità Quali domande dobbiamo porre ai nostri fornitori? Conclusioni 41
As we know, there are known knowns. There are things we know we know. We also know there are known unknowns, that is to say we know there are some things we do not know. But there are also unknown unknowns, the ones we don't know we don't know. Feb. 12, 2002, Donald Rumsfeld - Department of Defense news briefing 4
Quali domande dobbiamo porci e dobbiamo fare ai nostri fornitori? (tutte le piattaforme Iaas/Paas/Saas) Quali attività di Secure Development LifeCycle adotta il nostro fornitore di servizi / software? Quali standard di design e codice sicuro usa il nostro fornitore nel suo SDLC? Come è protetto un tenant di una applicazione dagli attacchi che arrivano dagli altri tenant? 43
Domande specifiche per IaaS Quali meccanismi prevede la piattaforma contro attacchi di tipo DoS e DDoS (infrastructure e network layers)? Quali meccanismi prevede la piattaforma per mantenere l integrità delle immagini virtuali? Quali protezioni sono previste contro attacchi a livello BIOS (root kit)? Esistono detection plans e response plans nel caso di verifichi un attacco? 44
Domande specifiche per PaaS La piattaforma prevede meccanismi di log per le applicazioni? Esistono intrusion detection systems attivabili per l application layer? Quali tecniche sono usate per isolare i dati sul client s service bus? Quali meccanismi di protezione sono usati per garantire comunicazioni sicure fra due componenti applicativi? E quali per isolare I dati memorizzati e i dati in uso? 45
Domande specifiche per SaaS Quali standard di Web application security (input validation, encoding output, preventing request forgery and information disclosure) utilizza il nostro fornitore? Quali controlli applicativi e infrastruttorali sono adottati per isolare i dati di un azienda dagl altri tenants? Dati memorizzati Data in transito Data in uso 46
47
Agenda Che cosa è il Cloud Computing? Rischi, minacce e vulnerabilità Quali domande dobbiamo porre ai nostri fornitori? Conclusioni 48
Conclusioni 49
Conclusioni Il «mondo offline» continuerà ad esistere Cloud = evoluzione tecnica e di «business» Con il cloud computing si hanno dei benefici lato security: o o o o disaster recovery anti DDoS community cloud = più risorse per la security? internal audit e risk assessment frequenti Cloud = nuovo paradigma = nuovi rischi e nuove possibili vulnerabilità 50
Documentazione per approfondimenti ENISA (Cloud Computing Risk Assessment) http://www.enisa.europa.eu/ CSA (Cloud Security Alliance ) https://cloudsecurityalliance.org/ IBM (Community and technical resources) http://www.ibm.com/developerworks/cloud/newto.html NIST (Cloud Computing Program) http://www.nist.gov/itl/cloud/index.cfm 51
Grazie per l attenzione. Domande?