Temi di innovazione per la sicurezza informatica: • La

1
Aperti e sicuri
Temi di innovazione per la sicurezza informatica:
• La protezione dei VIP dalle minacce informatiche
• La messa in sicurezza delle applicazioni mobili
2013 Copyright(C) CryptoNet Srl
Aperti e sicuri
Una storia istruttiva
Secondo alti rappresentanti del Pentagono il
vantaggio USA sulla Cina in termini di tecnologia
Stealth era, nel 2009, di 15 anni
Lookheed F22 Raptor
http://online.wsj.com/article/SB124027491029837401.html
Computer Spies Breach Fighter-Jet
Project
Chengdu J-20
Gennaio 2011
Aperti e sicuri
Una seconda storia istruttiva
3
Aperti e sicuri
Come funziona? (1)
Aperti e sicuri
Come funziona? (2)
Aperti e sicuri
Come funziona? (3)
Aperti e sicuri
Qual’ e’ la lezione? (1)
• Un attacco aereo contro gli impianti iraniani per l’arricchimento dell’uranio sarebbe stato:
Di enorme difficolta’ tecnica (una flottiglia di cacciabombardieri
che sfugge ai radar, rifornimenti in volo, bombe capaci di penetrare
corazze da 2 metri e mezzo 25 metri sotto terra –nella piu’
semplice delle ipotesi- )
di grande costo economico (v. sopra)
ad altissimo rischio di fallimento (v. sopra)
con conseguenze politiche incalcolabili (quale reazione degli
alleati dell’Iran ad un attacco aereo USA / Israele?)
• Un attacco informatico:
Di bassa difficolta’ tecnica (6 persone molto esperte per un
anno)
di bassi costo economico (circa 2M US$)
ad basso rischio di fallimento (1 MUS$ per comprare un
impianto identico a quello da attaccare)
con conseguenze politiche inesistenti (basta controllare i
giornali!)
Aperti e sicuri
Qual’ e’ la lezione? (2)
• Quando si parla di protezione delle persone si pensa alla protezione fisica:
Guardie del corpo, auto blindate, controllo degli accessi agli
edifici, comunicazioni da postazioni controllate
background check sui conoscenti della persona
esclusione di luoghi pericolosi (affollati, poco controllabili,
difficili da evacuare…)
attenzione alle minacce provenienti da sconosciuti
…..
…..
• e si trascurano i pericoli piu’ovvi:
Un SW in grado di spiare tutte le comunicazioni consente di
aggirare tutte le difese fisiche
Costa pochissimo
a bassissimo rischio di fallimento: non e’sufficiente individuarlo,
occorre essere in grado di attribuirne la responsabilita’
un tale Sw e’alla portata di quasi tutte le tasche.
Aperti e sicuri
I sistemi di sicurezza informatica di oggi
proteggono dalle minacce informatiche di
ieri
Annuncio a pagamento di Google, Wall Street
Journal del 23 febbraio 2012:
“Fate attenzione a quando aprite la mail.
Se avete dubbi NON aprite gli allegati”.
Produrre software malevolo, capace di
gestire remotamente microfono, telecamera,
comunicazioni di rete e di sfuggire al
rilevamento dei sistemi difensivi oggi diffusi
e’banale.
Aperti e sicuri
Come difendersi?
CryptoNet propone un servizio di Digital Bodyguard
le tecnologie necessarie a proteggere la sfera digitale della persona
(smartphone, tablet, PC…)
Le competenze necessarie ad usare le tecnologie
livelli differenziati di protezione per ottimizzare l’uso delle risorse:
la sfera collettiva (ufficio, reparto…),
la sfera personale lavorativa (il PC, la postazione di lavoro),
la sfera personale (BYOD: l’uso di dispositivi personali a scopo
professionale).
un sistema installato presso la sede del Cliente
gestito da persone CryptoNet sotto il monitoraggio e controllo di personale
del Cliente
con capacita’che vanno dalla detection degli attacchi alla loro mitigazione
alla investigazione dell’ origine
a costi inferiori a quelli di un servizio di protezione fisica per minacce dagli
impatti potenziali molto superiori a quelli degli attacchi fisici.
11
Aperti e sicuri
Le applicazioni mobili
2013 Copyright(C) CryptoNet Srl
Aperti e sicuri
Il contesto: dove lavorano le App?
Fonte: OWASP Top 10 Mobile Risk
(Appsec USA, 23/9/2011)
2013 Copyright(C) CryptoNet S.r.l.
13
Aperti e sicuri
App Reverse Engineering
• Le App su un dispositivo mobile sono prive di protezione per la propria integrità,
soprattutto in caso di jailbreak/root
• Il codice binario di un’applicazione mobile può essere facilmente sottoposto a Reverse
Engineering, tramite strumenti open-source o commerciali
Native iOS app
• Decryption
• Disassembler
• Decompiler
App source
code
2013 Copyright(C) CryptoNet Srl
14
Aperti e sicuri
App Reverse Engineering: esempi
2013 Copyright(C) CryptoNet Srl
15
Aperti e sicuri
App Reverse Engineering: motivazioni
Individuare le parti di codice della logica applicativa più importanti
Ad es. per ottenere dati dell’utente (credenziali o dati della carta di credito) tramite
malware, oppure per sovvertire i controlli di licensing dell’app
2013 Copyright(C) CryptoNet Srl
16
Aperti e sicuri
App Reverse Engineering: motivazioni
Un’app compromessa
può essere strumento
per realizzare frodi
Conseguenze:
• danni economici
• perdita di reputazione
• o di proprietà intellettuale
• impatto sulla compliance
• responsabilità legali
2013 Copyright(C) CryptoNet Srl
17
Aperti e sicuri
Mobile App Hardening
• Il concetto di attacco Man-in-the-middle (o MIM) è conosciuto da molti: il malintenzionato
tenta di infiltrarsi nella sessione applicativa o nella comunicazione per compromettere il
protocollo, i dati o entrambi
• Le applicazioni su piattaforme “open” – siano PC o dispositivi mobili – devono affrontare
una classe di minacce più severa, il Man-At-The-End (MATE)
L’app mobile stessa pertanto
diventa il nuovo perimetro
che richiede di essere protetto
2013 Copyright(C) CryptoNet Srl
18
Aperti e sicuri
Mobile App Hardening
• “Auto-protegge” l’app contro attacchi di hacking per prevenire tampering, reverseengineering e furti di proprietà intellettuale
• La protezione è ottenuta iniettando nelle parti sensibili dell’app porzioni di codice
(guardie) che formano una rete di protezione multi-livello e in profondità
• Queste porzioni di codice permettono all’app di:
– Difendere se stessa (DEFEND)
– Rilevare se sotto attacco (DETECT)
– Allertare e reagire se viene modificata (REACT)
• Non sono richieste modifiche al codice sorgente
• Nessun impatto sulla user experience
• Non sono utilizzati componenti software aggiuntive sul device (come agenti o container)
Piattaforme supportate: Android, iOS, Blackberry (oltre al mondo applicativo desktop)
2013 Copyright(C) CryptoNet Srl
19
Aperti e sicuri
Hardening: protezione stratificata
Network di guardie
Checksum
•
Control Flow Graph
Encryption
•
Checksum
•
•
Checksum
Repair
Obfuscation
2013 Copyright(C) CryptoNet Srl
•
Più guardie proteggono la medesima
sezione di codice
Quando un attacco è rilevato, può
scattare una reazione, eventualmente
programmabile
Le guardie hanno differenti
implementazioni, quindi non sono
individuabili con signature
La protezione può avvenire in modo
selettivo ad es. solo sulle parti più
critiche
le guardie si proteggono l’uno con l’altro
20
Aperti e sicuri
Hardening: sviluppo di uno schema di protezione
• Per implementare un’efficace protezione è necessaria una fase di analisi iniziale
• Bisogna comprendere:
• quali sono le componenti dell’applicazione, in particolare
- le routine di controllo accessi, usate per autenticazione e autorizzazione
- le porzioni di codice “sensibili” (ad es. algoritmi proprietari)
- le parti critiche per le performance (ad es. procedure di rendering)
• quali sono le minacce e i rischi, ad esempio:
-
accessi non autorizzati
violazioni dell’integrità (tampering)
exploitation (di funzioni, algortimi, ecc.)
analizzabilità del codice con strumenti statici o dinamici
• quali sono i vincoli esistenti: dimensioni, performance o tecnici
• Definire infine i security requirement che derivano da questo scenario
2013 Copyright(C) CryptoNet Srl
21
Aperti e sicuri
Hardening: tecniche utilizzate
Tecniche di protezione
Descrizione
Code obfuscation (DEFEND)
Protegge contro il reverse-engineering
rendendo non intelligibili il codice sorgente e il
flusso di controllo
Symbol stripping (DEFEND)
Rimuove simboli di programma inutilizzati
Symbol renaming (DEFEND)
Rinomina i simboli di programma, non
rimuovibili dal codice, con un nome privo di
significato
String encryption (DEFEND)
Nasconde le stringhe in chiaro tramite cifratura
Anti-debug (DETECT)
Inserisce nell’app logica per rilevare l’utilizzo di
debugger
2013 Copyright(C) CryptoNet Srl
22
Aperti e sicuri
Hardening: tecniche utilizzate
Tecniche di protezione
Descrizione
Checksum (DETECT)
Inserisce nell’app controlli di integrità sul
codice e sui dati statici contenuti
Response (REACT)
Termina l’app se posta sotto attacco o altre
funzioni custom
Self-repair (REACT)
Protegge contro il tampering inserendo
logica per cancellare questi tentativi di
modifica o per ripristinare i valori originali di
codice e dati a runtime
Alerts (REACT)
Invio di alert locali all’utente o a server
remoti
2013 Copyright(C) CryptoNet Srl
23
Aperti e sicuri
Integrazione nel processo di build per Android App
•
•
•
•
•
Class Encryption
Trasforma file class in un formato non intelligibile
(ciphertext)
Control Flow Obfuscation
Introduce “confusione” nel bytecode Java, rendendo
difficoltosa la comprensione del flusso di controllo ad
un malintenzionato che sia riuscito a disassemblare o
decompilare l’app
Debug Info
Rimuove le informazioni contestuali dai file class
Renaming
Sostituisce i nomi di package, classi, metodi e campi
con simboli non intelligibili
String Encryption
Transforma le stringhe nelle classi target in un formato
non comprensibile
2013 Copyright(C) CryptoNet Srl
24
Aperti e sicuri
Integrazione nel processo di build di iOS App
source
Target Application
clang
Hardening Tools
bit code
objects
GuardSpec
clang
System Tools
ensureit
Protected
bit code
linker
linked binary
finalizer
Protected
binary
2013 Copyright(C) CryptoNet Srl
25
Aperti e sicuri
Il processo di hardening
2013 Copyright(C) CryptoNet Srl
26
Aperti e sicuri
Runtime Integrity Checker
IL CONTROLLO DI INTEGRITÀ È AUTOMATICAMENTE “INIETTATO” NEL CODICE
Verifica continua di
compromissione
dell’eseguibile
Previene attacchi in
memoria e a runtime di:
•
•
•
•
Backdoors
Rootkits
Privilege Escalation
e altri
2013 Copyright(C) CryptoNet Srl
27
Aperti e sicuri
Runtime Integrity Checker
•
•
Il punto centrale è prevenire modifiche del codice:
–
se il codice è alterato, niente può essere considerato sicuro
–
anche i dati statici sono importanti
Automaticamente inietta controlli di integrità nell’app
• Estrema varianza: non ci sono due controlli identici
• Codice interposto nel programma senza cambiamenti funzionali
• I controlli sono difficili da individuare perché la difesa contro la loro rimozione è la chiave per
proteggere l’app
• La topologia dei check protegge equamente l’intero codice binario
-
non ci sono aree sprotette e tutte le porzioni di codice sono verificate da controlli multipli
-
questo vale anche per i dati statici
2013 Copyright(C) CryptoNet Srl
28
Aperti e sicuri
Obfuscation
Codificata prima del rilascio
Decodifica, utilizzo e distruzione
Cert
Cert
Application
Applicatio
n
Key
Key
Decode
Concealer
Use
Destroy
Cert
Application
Key
Protegge:
•
Materiale crittografico (key)
•
Algortimi proprietari e porzioni di codice sensibili
•
Dati “at rest” sul device (ad es. credenziali)
2013 Copyright(C) CryptoNet Srl
29
Aperti e sicuri
Risposte agli attacchi
MESSAGING
BEACON
SELF-HEALING
STOP EXECUTION
LOCK DOWN
CUSTOM
LOGGING
2013 Copyright(C) CryptoNet Srl
30
Aperti e sicuri
Modalità di funzionamento
• Nessuna alterazione della correttezza
del software
• Nessun impatto sui processi di
software quality assurance
• Può proteggere oggetti pre-compilati
2013 Copyright(C) CryptoNet Srl
31
Aperti e sicuri
L’ integrazione nel SDLC
Services
Services
1.
il codice sorgente viene attrezzato “on-the-fly” durante il processo di build
2.
Il codice preparato è consegnato al proprio compilatore
-
E’ una procedura transitoria – non è modificato alcun sorgente
3.
Le procedure di compilazione e link sono completate normalmente
4.
Il tool sistema l’eseguibile finale
Piattaforme supportate: Android NDK, iOS, Blackberry (oltre al mondo applicativo desktop)
2013 Copyright(C) CryptoNet Srl
32
Aperti e sicuri
L’offerta di CryptoNet
CryptoNet è in grado di indirizzare la protezione delle applicazioni mobili
con due approcci:
1. Per chi commissiona App a terze parti
• Mobile App Hardening
• servizio di protezione applicato ad App del cliente;
• non è necessario disporre del codice sorgente
2. Per i team di sviluppo di Mobile App
• Integrazione della protezione nel ciclo di sviluppo software
• in questo caso si opera sul codice sorgente
• inserendo le tecnologie necessarie nel processo di build
2013 Copyright(C) CryptoNet srl
33
Aperti e sicuri
2013 Copyright(C) CryptoNet Srl