Aperti e sicuri 1 Temi di innovazione per la sicurezza informatica: La protezione dei VIP dalle minacce informatiche La messa in sicurezza delle applicazioni mobili
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.
Aperti e sicuri 11 Le applicazioni mobili
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.
Aperti e sicuri 13 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
Aperti e sicuri 14 App Reverse Engineering: esempi
Aperti e sicuri 15 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
Aperti e sicuri 16 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
Aperti e sicuri 17 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
Aperti e sicuri 18 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)
Aperti e sicuri 19 Hardening: protezione stratificata Checksum Network di guardie Control Flow Graph Repair Checksum Encryption Checksum Obfuscation 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
Aperti e sicuri 21 Hardening: tecniche utilizzate Tecniche di protezione Code obfuscation (DEFEND) Symbol stripping (DEFEND) Symbol renaming (DEFEND) String encryption (DEFEND) Anti-debug (DETECT) Descrizione Protegge contro il reverse-engineering rendendo non intelligibili il codice sorgente e il flusso di controllo Rimuove simboli di programma inutilizzati Rinomina i simboli di programma, non rimuovibili dal codice, con un nome privo di significato Nasconde le stringhe in chiaro tramite cifratura Inserisce nell app logica per rilevare l utilizzo di debugger
Aperti e sicuri 22 Hardening: tecniche utilizzate Tecniche di protezione Checksum (DETECT) Response (REACT) Self-repair (REACT) Alerts (REACT) Descrizione Inserisce nell app controlli di integrità sul codice e sui dati statici contenuti Termina l app se posta sotto attacco o altre funzioni custom Protegge contro il tampering inserendo logica per cancellare questi tentativi di modifica o per ripristinare i valori originali di codice e dati a runtime Invio di alert locali all utente o a server remoti
Aperti e sicuri 23 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
Aperti e sicuri 24 Integrazione nel processo di build di ios App source clang bit code objects Target Application Hardening Tools System Tools GuardSpec clang ensureit Protected bit code linker linked binary finalizer Protected binary
Aperti e sicuri 25 Il processo di hardening
Aperti e sicuri 26 Runtime Integrity Checker IL CONTROLLO DI INTEGRITÀ È AUTOMATICAMENTE INIETTATO NEL CODICE Verifica continuadi compromissione dell eseguibile Previeneattacchi in memoria e a runtimedi: Backdoors Rootkits Privilege Escalation e altri
Aperti e sicuri 27 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
Aperti e sicuri 28 Obfuscation Codificata prima del rilascio Application Key Cert Decodifica, utilizzo e distruzione Applicatio n Key Cert Concealer Decode Use Application Key Cert Destroy Protegge: Materiale crittografico (key) Algortimi proprietari e porzioni di codice sensibili Dati at rest sul device (ad es. credenziali)
Aperti e sicuri 29 Risposte agli attacchi MESSAGING BEACON SELF-HEALING STOP EXECUTION LOCK DOWN LOGGING CUSTOM
Aperti e sicuri 30 Modalità di funzionamento Nessuna alterazione della correttezza del software Nessunimpattosui processidi software quality assurance Può proteggere oggetti pre-compilati
Aperti e sicuri 31 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)
Aperti e sicuri 32 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
Aperti e sicuri 33