La sicurezza delle applicazioni



Documenti analoghi
Simone Riccetti. Applicazioni web:security by design

Domenico Ercolani Come gestire la sicurezza delle applicazioni web

La sicurezza delle applicazioni

Aspetti di sicurezza per l innovazione nel Web

Early Warning. Bollettino VA-IT A

Applicazioni software e gestione delle vulnerabilità: un caso concreto di successo

Massimo Caprinali. Rational Client Technical Professional La soluzione IBM Rational per la Sicurezza

Security policy e Risk Management: la tecnologia BindView

Application Security Governance

Introduzione all OWASP- Day II

Architetture Web: un ripasso

The approach to the application security in the cloud space

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it

Early Warning Bollettino VA-IT B

Valorizzazione della professionalità di SW Quality Assurance

Come valutare la maturità del proprio modello di sviluppo del software

Product Management & Partnerships Industrial & SCADA Infrastructure Protection. Milano 30 Ottobre 2013

ManageEngine ITSM: HelpDesk ITIL, gestione degli asset IT e MDM. Andrea Mannara Business Unit Manager

KLEIS WEB APPLICATION FIREWALL

Bollettino VA-IT A

IT MANAGEMENT CONSULTING DIGITAL SOLUTION IT SECURITY & COMPLIANCE. La ISA nasce nel 1994

Bollettino VA-IT A

Il processo di sviluppo sicuro. Kimera Via Bistolfi, Milano

N 1 alla versione bilingue (italiano-inglese) NORMA UNI EN ISO 9001 (novembre 2008) Sistemi di gestione per la qualità - Requisiti.

Introduzione ai Web Services Alberto Polzonetti

Concetti base di sicurezza applicativa web. Massimo Carnevali Responsabile Esercizio dei Sistemi Informativi Comune di Bologna

TeamPortal. Servizi integrati con ambienti Gestionali

Test e collaudo del software Continuous Integration and Testing

Secure Code Review: dalla teoria alla pratica

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

OWASP e gli standard per la sicurezza applicativa

Dallo sviluppo all'esercizio: application lifecycle management a 360

Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS)

Analisi di vulnerabilità e prevenzione di attacchi SQL injection e Cross-site Scripting

Workflow di Test. Valerio Mercanti - ISP0607 1

Stima dell'effort. IT Project Management. Lezione 6 Stima dell effort Federica Spiga. Monitoring del progetto (Earned Value)

Open Source Tools for Network Access Control

IT Service e Asset Management

Le linee guida OWASP per la sicurezza applicativa

TeamPortal. Infrastruttura

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

Introduzione all Agile Software Development

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

SPIKE APPLICATION SECURITY: SICUREZZA DIRETTAMENTE ALL INTERNO DEL CICLO DI VITA DEL SOFTWARE

Perché e cosa significa una strategia mobile?

KLEIS A.I. SECURITY SUITE

Lo stato dell'arte dei progetti OWASP ed i falsi miti sull'uso dei tool

L'analisi di sicurezza delle applicazioni web: come realizzare un processo nella PA. The OWASP Foundation. Stefano Di Paola. CTO Minded Security

Architettura MVC-2: i JavaBeans

<Insert Picture Here> Security Summit 2010

Security by design. Come la gestione di un progetto può minimizzare i rischi per il business. Alessio L.R. Pennasilico - apennasilico@clusit.

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Security by example. Alessandro `jekil` Tanasi LUG Trieste. Alessandro Tanasi - alessandro@tanasi.

Introduzione al Simple Cloud API

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

VPN RETI PRIVATE VIRTUALI: ACCESSO REMOTO

IBM UrbanCode Deploy Live Demo

Rational Unified Process Introduzione

ALLEGATO 8.1 DESCRIZIONE PROFILI PROFESSIONALI

DigitPA - P@norama sulle tecnologie innovative

Certificazione ISO 20000:2005 e Integrazione con ISO 9001:2000 e ISO 27001:2005. Certification Europe Italia

Bollettino VA-IT A

Infrastruttura di produzione INFN-GRID

Esempi pratici, risultati e contromisure consigliate. Massimo Biagiotti

Noi siamo quello che facciamo ripetutamente. Perciò l'eccellenza non è un'azione, ma un'abitudine. Aristotele. Qualità del Software

La ISA nasce nel Servizi DIGITAL SOLUTION

I I SISTEMI INFORMATIVI INTEGRATI. Baan IV IV - Enterprise e Orgware NOTE

Tracciabilità degli utenti in applicazioni multipiattaforma

IL NAC alla SAPIENZA-NET

Dott. Marcello Pistilli Business Development Manager. del software alla produzione:

Security Patch Management

Strumenti per la gestione della configurazione del software

Le sfide del Mobile computing

Tecnologie, processi e servizi per la sicurezza del sistema informativo

Transcript:

La sicurezza delle applicazioni -dal modello tradizionale al cloud- Simone Riccetti, IT Security Architect IBM Italy 2009 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.

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

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

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.

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

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

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

Secure Design..circa il 50% dei problemi di sicurezza sono dovuti ad errori architetturali

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

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

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

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);

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 ");

Combinazione dei test di sicurezza Static Analysis Null pointer dereference Threading issues Code quality issues Issues in dead code Insecure crypto functions Issues in back-end application code Stored vulnerabilities Complex SQL injection Vulnerabilità Hybrid Analysis* Client-side issues DOM-based XSS DOM-based Open Redirect HTML5 Notification Phishing HTML5 Client-side SQL Injection Etc. Dynamic Analysis Environment configuration issues Patch level issues Runtime privileges issues Authentication issues Protocol parser/serializer issues Session management issues Issues in external 3rd party web components Cross-site request forgery Malware analysis Dynamic & Static SQL Injection Cross Site Scripting HTTP Response Splitting OS Commanding LDAP Injection XPath Injection Path Traversal Buffer Overflows Format String Issues 21

IBM Rational AppScan Ecosystem AppScan Enterprise / Reporting Console / Source Ed Core AppScan Source Ed for Developer / Remediation AppScan Ent. QuickScan (web client) 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

Non solo i tool Security Architecture Security Implentation Code review (manuale) Vulnerabilità

Servizi Cloud per lo sviluppo e test

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

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