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
© Copyright 2024 ExpyDoc