Seminario sulla sicurezza delle applicazioni...

68
27 gennaio 2015 Università degli Studi di Verona Andrea Zwirner – Linkspirit Seminario sulla sicurezza delle applicazioni mobili 1 Seminario sulla sicurezza delle applicazioni mobili Andrea Zwirner [email protected] @AndreaZwirner Sicurezza informatica Università degli Studi di Verona Corso di Laurea Magistrale in Informatica

Transcript of Seminario sulla sicurezza delle applicazioni...

Page 1: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 1

Seminario sulla sicurezza delle applicazioni mobili

Andrea Zwirner

[email protected]

@AndreaZwirner

Sicurezza informatica

Università degli Studi di VeronaCorso di Laurea Magistrale in Informatica

Page 2: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 2

● Mi interesso di sicurezza informatica dallo scorso millennio

– “Connettere” significava “intrecciare”

– Hacker non aveva ancora alcun significato

● Ho fondato Linkspirit, azienda che si occupa di

– Consulenza nella progettazione di software e sistemi

– Verifiche di sicurezza su software e sistemi

– Formazione in materia di sicurezza informatica

Chi sono

Page 3: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 3

Cosa faccio

● Partecipo a diversi progetti liberi legati la divulgazione della cultura sulla sicurezza informatica

www.isecom.org

www.hackerhighschool.org

www.owasp.org

Progetto scuole www.progettoscuole.it

Page 4: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 4

Di cosa parliamo oggi

● OWASP Mobile Security Project: analisi delle 10 vulnerabilità più rischiose in ambito mobile

– Descrizione tecnica

– Scenari ed esempi d'attacco

– Modalità di rilevazione e prevenzione

● Sguardo ai rischi derivanti da reverse engineering e modifica dinamica del codice applicativo

● Scorsa dei 10 controlli di sicurezza più importanti in ambito mobile secondo OWASP ed ENISA

Page 5: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 5

La sicurezza informatica

● Insieme di misure di carattere organizzativo, tecnologico e procedurale mirate a garantire

– CONFIDENZIALITÀ

– INTEGRITÀ

– DISPONIBILITÀ

dell'informazione.

Page 6: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 6

Come funziona

● Definizione di politiche di accesso a servizi e informazioni

– autenticazione

– autorizzazione → chi può fare cosa

● Difesa perimetrale

● Difesa interna

● Formazione degli utenti

Page 7: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 7

Sicurezza informatica offensiva

● Utilizzo di strumenti e metodologie usate dagli attaccanti reali

● Accesso a servizi ed informazioni senza possedere i permessi previsti dalle politiche di sicurezza

– Lettura → Confidenzialità

– Scrittura → Integrità / Disponibilità

● Evidenzia le vulnerabilità di sicurezza

Page 8: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 8

Sicurezza applicativa

● Modellazione ed analisi dei rischi derivanti dal software

Page 9: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 9

Sicurezza applicativa

● Modellazione ed analisi dei rischi derivanti dal software

● Consapevolezza di analisti, sviluppatori, beta tester, utenti finali

– Sviluppo dell'architettura (secure by design)

– Ciclo di sviluppo del software

– Scrittura del codice

– Controlli di sicurezza comuni nelle fasi di test / review

Page 10: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 10

Sicurezza applicativa

● Modellazione ed analisi dei rischi derivanti dal software

● Consapevolezza di analisti, sviluppatori, beta tester, utenti finali

– Sviluppo dell'architettura (secure by design)

– Ciclo di sviluppo del software

– Scrittura del codice

– Controlli di sicurezza comuni nelle fasi di test / review

– Utilizzo consapevole da parte degli utenti finali

Page 11: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 11

Sicurezza applicativa

Il problema non è tecnologico, ma culturale!

Page 12: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 12

Uno sguardo all'architettura mobile

Hardware

Sistema operativo

Librerie / Servizi Applicazione

Page 13: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 13

Uno sguardo all'architettura mobile

Hardware

Sistema operativo

Librerie / Servizi Applicazione

Utente

Page 14: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 14

Uno sguardo all'architettura mobile

Hardware

Sistema operativo

Librerie / Servizi

ApplicazioneUMTSWi-Fi

Internet

Server Web

Hardware

Sistema operativo

Librerie / Servizi Applicazione

Utente

Lato client Lato server

Page 15: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 15

● Piattaforma

– Hardware

– Sistema operativo

– Librerie e servizi

● Applicazioni native

– Contatti

– Email

Superficie d'attacco nativa (out of the box)

Page 16: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 16

● Applicazioni di terze parti

● Backend esposti su Internet

– Tutto quello che ci sta sotto

● App Market

Superficie d'attacco, altro

Page 17: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 17

● Molte applicazioni mobili fanno uso del web

– Alcune sono a tutti gli effetti applicazioni web

– Altre fanno uso di API basate sul web (ReST)

● Il web non è stato progettato per essere sicuro

● Per progettare applicazioni mobili sicure, bisogna avere ben chiare le problematiche di sicurezza ereditate dal web

Superficie d'attacco ereditata

Page 18: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 18

La metodologia

O W A S P

Open Web Application Security Project

Page 19: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 19

● Associazione senza scopo di lucro

● Missione: aumentare la visibilità relativa la sicurezza del software al fine di permettere di prendere decisioni informate ad imprese ed individui

Open Web Application Security Project

Page 20: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 20

● Si occupa di ricerca e divulgazione della cultura della sicurezza

● Mantiene svariati (e rinomati) progetti legati la sicurezza applicativa

● Includono informazioni circa librerie, API, best practices, auditing, suddivisi nelle tre categorie

– Protect

– Detect

– Life Cycle

Di cosa si occupa OWASP

Page 21: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 21

● Descrive le dieci problematiche di sicurezza in ambiente mobile valutate come più rischiose

● Indirizzato a sviluppatori, designer, manager ed organizzazioni● Indipendente da linguaggio / framework utilizzato

OWASP Top 10 Mobile Risks

Page 22: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 22

● Mobile Security Project

– Top Ten Mobile Risks

– Technical Risks of Reverse Engineering and Unauthorized Code Modification

● Development Guide● Secure Coding Practices – Quick Reference Guide● Code Review Guide

● Risk Rating Methodology● Threat Risk Modeling

Progetti OWASP collegati

Page 23: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 23

M1 Weak Server Side Controls

M2 Insecure Data Storage

M3 Insufficient Transport Layer Protection

M4 Unintended Data Leakage

M5 Poor Authorization and Authentication

M6 Broken Cryptography

M7 Client Side Injection

M8 Security Decisions Via Untrusted Inputs

M9 Improper Session Handling

M10 Lack of Binary Protections

Top 10 Mobile Risks - Final List 2014

Page 24: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 24

● Agenti di minaccia: qualunque entità non fidata utilizzata come input al backend

– Utente

– Malware

– Applicazione vulnerabile

● Il problema è di implementazione del backend

– E' una problematica di sviluppo web

M1: Weak Server Side Controls

Page 25: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 25

● Fare uso di tecniche di sviluppo sicuro lato server

● Top Ten Project

– A1 Injection

– A2 Broken Authentication and Session Management

– A4 Insecure Direct Object References

– A7 Missing Function Level Access Control

– A10 Unvalidated Redirects and Forwards

M1: prevenzione

Page 26: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 26

SQL Injection on Infostrada backend database

Page 27: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 27

● Parametrizzazione insicura di una query SQL1. var_id = _post(id);2. query = “SELECT * FROM tab WHERE id = '” + var_id + “'”;3. result = invia_query_al_database(query);4. fai_qualcosa_con(result);

● Parametri attesi_post(id) = n naturale (o, al più, intero)

● Esempio di parametro inatteso_post(id) = 23'; DROP TABLE tab; --

A1: Injection

Page 28: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 28

● Brute force su password o username – password deboli● Predizione di identificativo di sessione o credenziali di

accesso● Replay – autenticazione al di fuori di un canale crittografato● Session spotting – assegnazione di sessione al di fuori di un

canale crittografato● Session fixation – assegnazione malevola di sessione

precedente-mente avviata● Timeout di sessione troppo lunghi o inesistenti● Password non crittografate o non salate nella base dati

A2: Broken Authentication and Session Management

Page 29: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 29

1. conto = _post['conto'];

2. query = prepara('SELECT * FROM conti WHERE conto = %',

conto);

3. result = invia_al_database(query);

4. fai_qualcosa_con(result);

A4: Insecure Direct Object References

Page 30: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 30

● E' necessario effettuare una mappatura degli oggetti cui l'utente ha diritto di accesso

1. query = prepara('SELECT prendiContiDaSessione(%)', session_id);

2. conti[] = invia_al_database(query);

3. metti_conti_in_dropdown(conti[], dropdown);

… interazione dell'utente …

A4: prevenzione

Page 31: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 31

1. map_conto = prendi_indice_selezionato(dropdown);

2. query = prepara('SELECT verificaPermessi(%,%)',

conti[map_conto], session_id);

3. result = invia_al_database(query);

4. if (result) {

5. tutto_ok_procedi();

6. } else {

7. biasima_utente_e_disconnetti(session_id);

8. }

A4: prevenzione

Page 32: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 32

● Un utente non è in grado di autenticarsi all'applicazione, ma può richiamare direttamente una funzione, ad esempio:

– backend/esegui_qualcosa.php?comando=fai_questo

● Una funzione contiene un parametro che specifica l'azione da eseguire, il livello di autorizzazione non viene verificato:

– dalla chiamata backend/gestisci.cgi?azione=mostra

– alla chiamata backend/gestisci.cgi?azione=modifica

A7: Missing Function Level Access Control

Page 33: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 33

● Contrariamente ad A4 la verifica avviene a livello di funzione

1. function funzione(id_sessione, …) {

2. aut_rich = CO_LIVELLO_AUTORIZZAZIONE_RICHIESTO;

3. if verifica_autorizzazione(id_sessione, aut_rich) {

4. tutto_ok_procedi();

5. } else {

6. disconnetti(id_sessione);

7. }

8. }

A7: prevenzione

Page 34: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 34

● L'applicazione usa una pagina per il redirect che attende in input un parametro contenente l'URL di destinazionebackend/go.cgi?to=www.malware.ru/get_malware.html

● L'applicazione usa forward per ruotare le richieste da una funzione applicativa alla successiva usando un parametro per determinare la destinazione:backend/funzione1.cgi?fwd=funzione2.cgi

● Questo porta alla possibilità di alterazione del normale flusso di controllo

A10: Unvalidated Redirects and Forwards

Page 35: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 35

● Agenti di minaccia: furto o smarrimento del dispositivo, malware, app ripacchettizzata

● Vettori d'attacco: navigazione all'interno del filesystem del dispositivo

● Debolezza: deriva dallo storage insicuro sul dispositivo

– Può essere molto grave: credenziali, token di autenticazione, cookies

– Dati geografici, personali, bancari, ID personale (!), etc

M2: Insecure Data Storage

Page 36: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 36

● Nulla di ciò che non c'è può essere rubato

– Non salvare nulla in locale se non è strettamente necessario

– Non salvare credenziali d'accesso

– Se si salvano token, far scadere le sessioni!

– Utilizzare api di crittografia di sistema standard

– Considerare l'utilizzo di altri livelli di crittografia al di sopra di quelli forniti dal sistema

– Applicare i permessi opportuni sui file utilizzati

– Non utilizzare chiavi hardcoded

M2: Prevenzione

Page 37: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 37

● Agenti di minaccia: informazioni in transito fra dispositivo e backend.

● Vettori d'attacco:

– Rete wifi compromessa o monitorata (MITM)

– dispositivi del fornitore di accesso

– infrastruttura lato server

– malware sul dispositivo

M3: Insufficient Transport Layer Protection

Page 38: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 38

● Debolezza: deriva dalla mancanza di

– mutua autenticazione degli endpoint

– crittografia delle informazioni in transito

– Spesso SSL/TLS viene usato in sola fase di autenticazione e scambio token

– Usare SSL non significa necessariamente usarlo bene

M3: Insufficient Transport Layer Protection

Page 39: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 39

● Mancata verifica del certificato o dell'endpoint

– Certificato corretto e firmato da CA fidata

– Presentato da server malevolo

● Negoziazione di protocollo di cifratura debole

– SSL3 e BEAST attack basato sulla debolezza di degli IV nel caso TLS 1.0 e CRC

● Perdita di informazioni sensibili

– Invio di informazioni sensibili verso altri endpoint attraverso canali non crittografati

M3: scenari d'attacco

Page 40: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 40

● Assumere come non sicure le connessioni di rete● Utilizzare SSL/TLS, quanto meno al trasporto di credenziali e

token di sessione● Utilizzare protocolli di cifratura standard e sicuri, scegliere

chiavi adeguatamente lunghe e complesse● Utilizzare certificati firmati da CA accreditate, ove possibile

preferire il pinning (accordo)● Non disabilitare o ignorare la verifica della catena SSL● Stabilire connessioni sicure solo dopo aver verificato l'identità

del server endpoint

M3: prevenzione

Page 41: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 41

● Avvertire l'utente attraverso l'UI in caso di riscontrato errore nei certificati

● Non inviare informazioni confidenziali attraverso canali alternativi (sms, mms, etc)

● Ove possibile aggiungere un livello di crittografia prima di SSL

– E' possibile intercettare il traffico all'interno del dispositivo prima che venga crittografato in SSL

M3: prevenzione

Page 42: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 42

● Agenti di minaccia: malware, applicazioni ripacchettizzate, accesso fisico al dispositivo

● Vettori d'attacco: API per l'accesso alle zone di memoria condivise, strumenti di analisi forense

● Debolezza:

– Salvataggio involontario (OS, libs, etc) di informazioni sensibili in zone di memoria condivisa

– Deriva dalla mancata consapevolezza di come le informazioni gestite vengono trattate

M4: Unintended Data Leakage

Page 43: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 43

● Per ogni asset strategico è necessario conoscere le modalità di gestione a basso livello di:

– cache, cookie

– buffer di copia/incolla, tastiera

– modalità di background

– log e modalità di debug

● E' importante sapere come queste informazioni vengono processate da sistema operativo, librerie e framework

M4: prevenzione

Page 44: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 44

● Agenti di minaccia: richieste al backend, forzatura di autenticazione locale

● Vettori d'attacco:

– inclusione delle informazioni di autenticazione mediante richieste dirette al backend

– attacco locale all'applicazione (→ M10)

● Debolezza:

– il formato del dispositivo porta all'utilizzo di PIN

– possibilità di utilizzo offline: delegazione all'app delle decisioni in merito all'autorizzazione

M5: Poor Authorization and Authentication

Page 45: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 45

● Attacchi al frontend (modalità offline)

– Rimozione dei controlli di autorizzazione

– Visualizzazione di informazioni scaricate ma non rese disponibili a livello di presentazione

● Attacchi al backend

– Esecuzione di funzioni in modalità anonima (rimuovendo i token di sessione dalle richieste) → A7

– Esecuzione diretta di funzioni non mostrate nella UI, per le quali l'utente non ha i diritti di esecuzione → A7

M5: Scenari d'attacco

Page 46: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 46

● Assumere aggirabili tutti i controlli di autenticazione ed autorizzazione lato client

– Ove possibile devono essere fatti lato server

– Nel caso siano necessari controlli locali, effettuare verifiche di integrità del codice dell'applicazione (→ M10)

● Non permettere di usare PIN come password

– Brute force lato client

– Se rubate bastano “pochi” tentativi per romperle, anche se salvate in maniera sicura

M5: prevenzione

Page 47: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 47

● Agenti di minaccia: qualunque entità possa accedere a dati crittografati in maniera errata

● Vettori d'attacco: decrittografia dei dati tramite accesso fisico al dispositivo, cattura del traffico di rete, malware sul dispositivo

● Debolezza: utilizzo di algoritmi di cifratura deboli o errori nel processo di crittografia

M6: Broken Cryptography

Page 48: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 48

“If you're typing the letters A-E-S into your code,

you're doing it wrong”

Thomas Ptacek

M6: Broken Cryptography

Page 49: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 49

● Affidamento a processi di crittografia implementati localmente

– In genere i sistemi di crittografia implementati localmente possono essere aggirati

– Esempio: protezione locale degli eseguibili di iOS

● Processo di gestione delle chiavi insicuro

– Inclusione delle chiavi con il contenuto (file system)

– Inclusione delle chiavi nel codice (hard-coding)

● Utilizzo di algoritmi insicuri, deprecati o propri(etari)

M6: cosa non fare

Page 50: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 50

● Agenti di minaccia: qualunque entità possa inviare dati all'applicazione, utenti esterni o interni, altre applicazioni, file o l'applicazione stessa

● Vettori d'attacco: attacchi testuali che sfruttano la sintassi di un interprete o iniezione di codice applicativo

● Debolezza:

– l'input malevolo forza un cambio di contesto e viene interpretato come eseguibile, anche con alti privilegi

– iniezione diretta di codice eseguibile all'interno dell'app (→ M10)

M7: Client Side Injection

Page 51: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 51

● SQL Injection su SQLite (→ A1)

– Accesso ai dati dell'applicazione

● JavaScript Injection (XSS → A3)

– Furto di sessioni

● Local File Inclusion

– Accesso a file e contenuto delle directory dell'app

M7: scenari d'attacco all'applicazione

Page 52: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 52

● Attacchi al codice eseguibile (→ M10)

– Modifica del livello di presentazione

– Buffer overflow ed esecuzione di codice arbitrario

M7: scenari d'attacco al codice

Page 53: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 53

● Validare tutti gli input all'applicazione● Parametrizzare le query SQL● Inibire l'esecuzione di JavaScript nei controlli WebView o

preferire l'uso dei browser mobili● Validare l'input ai file manager e disabilitare l'accesso al

filesystem alle WebView● Su iOS avere cura di proteggere C ed Objective-C

– Proteggere le funzioni Objective-C prone ad attacchi di tipo format string

– Non usare funzioni C prone all'iniezione (strcat, strcpy, strncat, strncpy, etc)

M7: prevenzione

Page 54: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 54

● Agenti di minaccia: IPC (Inter Process Communication)● Vettori d'attacco: lettura o modifica dei messaggi IPC utilizzati

per prendere decisioni di sicurezza (→ A10)

● Debolezza: utilizzare informazioni non fidate per prendere decisioni di sicurezza

M8: Security Decisions via Untrusted Inputs

Page 55: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 55

● Non passare informazioni confidenziali attraverso IPC, in quanto in molti scenari possono essere lette (→ !)

● Utilizzare white-list di applicazioni fidate da cui accettare input attraverso IPC

● Per il passaggio di informazioni, utilizzare funzioni che permettano di ottenere il BundleID dell'app chiamante

● Validare tutti gli input ricevuti tramite IPC

M8: prevenzione

Page 56: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 56

● Agenti di minaccia: qualunque entità abbia accesso al traffico http(s), ai cookie, ai token di sessione, etc

● Vettori d'attacco: accesso fisico al dispositivo, cattura del traffico di rete o malware

● Debolezza: esposizione di token di sessione in fase di assegnazione, salvataggio o utilizzo degli stessi (→ A2)

M9: Improper Session Handling

Page 57: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 57

● Chiusura di sessioni lato client (e non lato server)

● Mancanza di timeout di sessione

● Mancanza di rotazione dei token al cambio di livello di autorizzazione

● Creazione insicura dei token di sessione

M9: scenari d'attacco

Page 58: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 58

● Chiudere le sessioni lato server

● Impostare timeout di sessione adeguati in base al livello di autorizzazione

● Ruotare i token ad ogni cambio del livello di autorizzazione

● Creare token in maniera casuale

M9: prevenzione

Page 59: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 59

● Agenti di minaccia: analisi, reverse e modifica dell'applicazione

● Vettori d'attacco: modifica dell'app

– inserimento di funzionalità malevole

– esposizione di dati confidenziali e proprietà intellettuale

– superamento di blocchi (sicurezza, licenza, etc)

● Debolezza: l'applicazione non implementa controlli sulla propria integrità

M10: Lack of Binary Protections

Page 60: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 60

● Decrittografia del codice dell'app o analisi mediante debugger● Visualizzazione delle strutture di controllo (diagramma di

flusso)● Modifica al livello di presentazione (html,js, css) ed

esecuzione di codice JavaScript modificato● Sostituzione di chiavi di crittografia o certificati per decifrare il

traffico generato● Superamento di controlli di sicurezza mediante modifica di

applicazione o spazio di memoria

M10: Lack of Binary Protections

Page 61: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 61

● Implementare controlli di sicurezza per la rilevazione di

– Ambiente jailbroken

– Ambiente di debug

– Modifiche ai checksum

– Modifiche al pinning dei certificati

– Modifiche del codice a runtime

M10: prevenzione

Page 62: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 62

● Ripacchettizzazione di applicazione modificata

– Decrittografia, modifica malevola e fornitura attraverso canali non ufficiali dell'applicazione

● Swizzling dei metodi mediante la fornitura di librerie esterne

– Fornitura di metodi malevoli con medesima firma di quelli richiamati dall'applicazione

● Aggiramento dei controlli di sicurezza mediante la modifica del flusso di controllo

– Autenticazione, autorizzazione e gestione delle sessioni

– Validazione di dati, verifica di firme, gestione licenze

Rischi derivanti dalla modifica del codice

Page 63: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 63

● Aggiramento dei sistemi di verifica di ambienti jailbroken

● Modifica del livello di presentazione

– Modifica dei file che definiscono il livello di presentazione

● Sostituzione di chiavi di crittografia

– Esecuzione di attacchi di tipo MITM (Man In The Middle)

Rischi derivanti dalla modifica del codice

Page 64: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 64

● Possibilità di analisi di logiche applicative o di business mediante

– Esposizione delle firme dei metodi

– Monitoraggio di API, librerie e chiamate di sistema

– Esposizione delle strutture dati (nomi degli attributi)

– Esposizione delle stringhe

– Intercettazione di chiavi di crittografia

– Decompilazione degli algoritmi

– Decrittografia delle applicazioni

Rischi derivanti da reverse ed analisi del codice

Page 65: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 65

● C1 Identify and protect sensitive data on the mobile device● C2 Handle password credentials securely on the device● C3 Ensure sensitive data is protected in transit● C4 Implement user authentication,authorization and

session management correctly● C5 Keep the backend APIs (services) and the platform

(server) secure● C6 Secure data integration with third party services and

applications

Top Ten Mobile Controls

Page 66: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 66

● C7 Pay specific attention to the collection and storage of consent for the collection and use of the user’s data

● C8 Implement controls to prevent unauthorized access to paid-for resources (wallet, SMS, phone calls etc.)

● C9 Ensure secure distribution/provisioning of mobile applications

● C10 Carefully check any runtime interpretation of code for errors

Top Ten Mobile Controls

Page 67: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 67

● Network intelligence – SSL/TLS attacks: Part 1 – BEAST Attack● HP Enterprise Security – HP Fortify Taxonomy – Software Security

Errors● Infosecurity magazine – Two Thirds of Personal Banking Apps

Found Full of Vulnerabilities● Defuse Security – Password Hashing Security: Salted Password

Hashing – Doing it right● Thomas Ptacek – If You're Typing The Letters A-E-S Into Your

Code, You're Doing It Wrong.● OWASP – Format string attack● PenTest Magazine – SSH Tunnels: How to Attack Their Security● ENISA – Smartphone Secure Development Guideline● LifeHacker – How to Crack Just About Any Mac App (and How to

Prevent It)

Qualche riferimento

Page 68: Seminario sulla sicurezza delle applicazioni mobiliprofs.sci.univr.it/~mastroeni/.../sicurezza_mobile... · OWASP Top 10 Mobile Risks. 27 gennaio 2015 Università degli Studi di Verona

27 gennaio 2015Università degli Studi di Verona

Andrea Zwirner – LinkspiritSeminario sulla sicurezza delle applicazioni mobili 68

Seminario sulla sicurezza delle applicazioni mobili

Andrea Zwirner

[email protected]

@AndreaZwirner

Sicurezza informatica

Università degli Studi di VeronaCorso di Laurea Magistrale in Informatica