05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

24
© 2010 IBM Corporation IBM Security Services Application Security per Utility Simone Riccetti IBM Security Services

Transcript of 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

Page 1: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

IBM Security ServicesApplication Security per Utility

Simone Riccetti

IBM Security Services

Page 2: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Agenda

Perchè la sicurezza delle applicazioni?

Secure Engineering

Security & SDLC

Page 3: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

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.

Vulnerabilità riportate dai vendor

Page 4: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Il 55% di tutte le vulnerabilità riguarda le applicazioni web.

Le vulnerabilità che permettono il Cross-Site Scripting & SQL injection sono le più diffuse.

I’ 88% delle vulnerabilità di applicazioni web riguarda i plug-in e non la piattaforma base.

Vulnerabilità riportate dai vendor

Page 5: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Le vulnerabilità più importanti per le Utilities

Buffer overflows

Format string vulnerabilities

Race conditions

Resource leaks

Input/ Output validation and encoding errors

SQL injection Cross-site scripting Cross-site request

forgery OS injection

Error handling and logging vulnerabilities

Insecure error handling Insecure or inadequate

logging Data storage vulnerability

Insecure Components Malicious Code Unsafe native methods Unsupported methods Custom Cookies/ hidden

fields

Cryptography Network communication Application configuration Access control Database and file system use Access control and

authentication errors

Errori nel codiceErrori nel codice Errori nell’architettura e configurazioneErrori nell’architettura e configurazione

Page 6: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Page 7: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

La provenienza del software cambia il problema

Sviluppato internamente – I team di sviluppo devono spesso sviluppare “deliverables” complessi in tempi

ristretti e la sicurezza è solo uno dei tanti requisiti critici

Applicazioni a pacchetto– Anche se configurate in base alle esigenze del cliente, sono normalmente

sviluppate su standard del fornitore che può non essere in linea con i requisiti delle Utility

Sviluppo in outsourcing– Vengono utilizzati sviluppatori esterni per skill e abbattimento dei costi, questo

consiste in un elevato dettaglio di requisiti di sicurezza da chiedere al fornitore, che non sempre viene fatto

Free and open source (FOSS)– Soluzioni a basso costo ma sono realizzati da gruppi di sviluppatori che possono

non applicare i requisiti necessari

Page 8: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 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

– Definizione dei requisiti

– Design dell’architettura

– Implementazione

– Test

– Deploy

– Post deployment

Secure Engineering non riguarda solo la fase di Secure Engineering non riguarda solo la fase di implementazione, ma è un approccio end-to-endimplementazione, ma è un approccio end-to-end

Page 9: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Security educationSecurity education

Strategia di sicurezza e metricheStrategia di sicurezza e metriche

Security & Software Development Life Cycle

Page 10: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Page 11: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Categorie e proprietà dei requisiti di sicurezza

Es. proprietà SMART+

•Specifici

•Misurabili

•Adeguati

•Ragionevoli

•Tracciabili

Ref. http://www.owasp.org

Page 12: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Page 13: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Principi di Secure Design

Page 14: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 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

Page 15: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Page 16: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Improper Input Validation

Improper Encoding or Escaping of Output

Failure to Preserve SQL Query Structure (aka 'SQL Injection')

Failure to Preserve Web Page Structure (aka XSS)

Failure to Preserve OS Command Structure

Clear text Transmission of Sensitive Information

Cross-Site Request Forgery (CSRF)

Race Condition

Error Message Information Leak

Failure to Constrain Operations within the Bounds of a Memory Buffer

External Control of Critical State Data

External Control of File Name or Path

Untrusted Search Path

Es. Vulnerabilità comuni (SANS/MITRE Top 25)

Page 17: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Failure to Control Generation of Code (aka 'Code Injection')

Download of Code Without Integrity Check

Improper Resource Shutdown or Release

Improper Initialization

Incorrect Calculation

Improper Access Control (Authorization)

Use of a Broken or Risky Cryptographic Algorithm

Hard-Coded Password

Insecure Permission Assignment for Critical Resource

Use of Insufficiently Random Values

Execution with Unnecessary Privileges

Client-Side Enforcement of Server-Side Security

Es. Vulnerabilità comuni (SANS/MITRE Top 25)

Page 18: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Page 19: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 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 o con tool automatici

La revisione manuale è efficace per porzioni limitate di applicazione e codice. Spesso non è la strada corretta

– Richiede skill elevati di sicurezza

– Richiede molto tempo (pensate cosa significa controllare 500K LoC…)

Page 20: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

I potenzialiI potenzialiProblemi di sicurezzaProblemi di sicurezza

DynamicDynamicAnalysisAnalysis

StaticStaticAnalysisAnalysis

• Problemi di configurazione• Problemi di Patch Level • Problemi di privileges escalation• Problemi di autenticazione• Problemi in external 3rd party components

• Null Pointer Dereference•Problemi di qualità del codice• Problemi di Dead Code• Crypto Functions non sicure• Problemi nel codice delle Back-End Application (Applicazioni Multi-Tier)

• SQL Injection• Cross Site Scripting• HTTP Response Splitting• OS Commanding• LDAP Injection• …

Application Logic Issues

Runtime Analysis

Runtime Analysis utilizza sia la Static che Dynamic Analysis correlandone i risultati

Tipologie di Analisi

Page 21: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

// ... String password = request.getParameter("password");

// ... "userid='" + username + "' " + "AND password='" + password + "'"; // ...

String username = request.getParameter("username");

String query = "SELECT …" + username

ResultSet rs = stmt.executeQuery(query);

String username = request.getParameter("username");

String query = "SELECT * from tUsers where " +'

ResultSet rs = stmt.executeQuery(query);

Sistemi White-Box (es. SQL Injection)

… a un Sink

da un Source …

Page 22: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

AppScan Standard Ed (desktop)

AppScan Enterprise user (web client)

AppScan Source Ed for Automation

IBM Rational Web Based Training for AppScan

AppScan Source Ed for Developer / Remediation

AppScan Ent. QuickScan (web client) AppScan Tester Ed

(scanning agent)(QA clients)

Rational Build Forge

Rational Quality Manager

Rational Application Developer

Rational Software Analyzer

Rational ClearCase

Rational ClearQuest / Issue Management

AppScan Enterprise / Reporting Console / Source Ed Core

CODEBuild security testing into the IDE*

BUILDAutomate Security / Compliance testing in the Build Process

QASecurity / compliance testing incorporated into testing & remediation workflows

SECURITYSecurity & Compliance Testing, oversight, control, policy, audits

IBM Rational AppScan Ecosystem

AppScan Source Ed for Security

Page 23: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Informazioni utili

NERC – CIP-003 R5 (Access control)– CIP-004 (Personnel & Training)– CIP-007-1 R5 (Account Management)

NIST– NISTIR 7628 1.0

DHS– Software Assurance working group and “Build Security In”

MITRE CVE and CWE– Common Vulnerabilities and Exploits, and Common Weakness Enumeration

OWASP– Open Web Application Security Project

Cigital BSIMM– Building Security in Maturity Model

IBM X-Force– Worldwide cyber threat and risk analysis team

Page 24: 05 sicurezza delle applicazioni per le aziende nel settore della pubblica utilità

© 2010 IBM Corporation

Grazie!

[email protected]