Ragioni per cui usare microcontroller sicuri

Ogni giorno abbiamo a che fare con dispositivi a microcontroller incorporati o con microprocessore logico. Alcuni di questi dispositivi o applicazioni potrebbero essere di estrema utilità se un hacker riuscisse a mettere mano sul codice presente all’interno del micro.

Per questo motivo, “microcontroller sicuri” sono comparsi sul mercato per garantire un alto livello di protezione: card reader sicure, tecnologie per videogiochi, stampanti fiscali, applicazioni per la misurazione, terminali di pagamento, protezione di documenti e dispositivi di crittografia ecc. Questo genere di dispositivi sono considerati immuni da attacchi hacker, grazie all’impiego di misure protettive a livello chip software. Risulta molto difficile reperire informazioni su di esse in maniera lecita o descrizioni dettagliate direttamente dai produttori. I lettori presenti sul mercato non hanno la possibilità di condividere apertamente tali informazioni sui propri siti web e non è facile ottenerle su richiesta (si dovrebbe giustificare un ampio volume di ordine ed aver dimestichezza col campo della progettazione per mettere le mani su simili documenti).

Attacchi Diretti
In teoria, tutti i microcontrollori non sicuri sono potenzialmente soggetti ad attacchi diretti come l’applicazione iniettiva di codice. Il metodo più diffuso di code injection è noto come “buffer overflow” ed ha lo scopo di forzare il micro controller per poi controllarlo facendogli eseguire il programma impostato dall’hacker. Questo metodo sfrutta le debolezze del software (non solo hardware) corrompendo lo stack e forzando l’instruction counter a saltare su un determinato indirizzo dopo un’interruzione.

Simili metodi di hacking sono facilitate dalla complessità dei sistemi odierni che includono memorie esterne usate dai microcontrollori. E’ relativamente semplice rimuovere fisicamente un flash chip o un modulo RAM e far fare al microcontrollore ciò che si vuole.

Alcuni metodi di difesa sono stati sviluppati contro gli attacchi di buffer overflow. Il primo è di limitare inerentemente l’accesso memoria all’interno dei microcontroller e definire i limiti stack.

Un secondo metodo di protezione, piuttosto costoso, (ma in alcune applicazioni di sicurezza il prezzo non sempre è il primo criterio), è di fornire il microcontroller di uno scudo fisico di fili metallici sottili che andranno ad incapsulare le parti critiche del sistema. L’accesso all’interno del sistema integrato è impossibile senza alterare tale rete, costantemente monitorata dal componente stesso. Ogni tentativo di rompere la rete sfocia in una cancellazione della memoria impedendo l’accesso ai suoi contenuti. Il terzo metodo di protezione riguarda i tentativi di sniffing e la sostituzione dei dati sui bus di memoria esterna e ciò è connesso con l’encrypting del trasferimento dati tra micro e chip di memoria esterna.

L’interfaccia all-around useful JTAG è attualmente un accesso secondario all’interno del microntroller. Per un microcontroller sicuro, comunque, si tratta di una debolezza indesiderata. I produttori hanno deciso semplicemente di rimuoverla dai micro sicuri, per assicurare ai progettisti un programmino ed un debugging veloce. Vengono generalmente rilasciate due versioni di uno stesso microcontroller sicuro: uno dotato di JTAG e destinato allo sviluppo, uno senza JTAG e destinato ad essere integrato nel sistema.

SPA (Simple Power Analysis)/DPA (Differential Power Analysis)
Un approccio “hardware” per spiare un microcontroller è quello della power analysis. Si tratta di un metodo non invasivo, ovvero nessun componente viene dissaldato e nessuna copertura viene rimossa. La verità è che ogni dispositivo logico perde informazioni nella gestione momentanea di dati. Tali informazioni possono essere catturate sia analizzando le emissioni radio del microcontrollore (processo piuttosto costoso e può essere fatto in un laboratorio EMC con attrezzature specifiche) sia analizzando il consumo energetico del dispositivo (piuttosto economico e realizzabile soltanto con la solita strumentazione da laboratorio).

Ciascuna istruzione di esecuzione genera uno specifico consumo energetico e per questo motivo può essere determinata. Persino i dati trasferiti tra la CPU e la memoria possono essere calcolati in base a tale consumo energetico. Si tratta di una vera minaccia per i microcontrollori che utilizzano la crittografia ed altri algoritmi, poiché nel momento del trasferimento dati tra memoria e processore, vengono svelate le chiavi degli algoritmi stessi. Questi metodi di attacchi sono detti Simple Power Analysis or Differential Power Analysis, che presentano delle dettagliate differenze tra loro.

Fortunatamente, sebbene simili attacchi siano pericolosi, ci si può difendere utilizzando adeguate protezioni. I micro sicuri sono costruiti in maniera tale che eseguono istruzioni fittizie in modo casuale, consumi di corrente aggiuntivi errati, alterano le fasi del clock, sospendono il sistema casualmente ecc. Tra questi metodi il più efficace è lo scrambling del consumo di corrente dal momento che non è connesso con la reale attività della CPU e non fornisce alcuna informazione utile all’intruso.

Canale parallelo ed attacchi fault injection
Questi tipi di attacchi possono essere intrusivi e non intrusivi. Il loro scopo è disturbare la regolare attività della CPU garantendo un vantaggio agli hacker. Gli attacchi side channel generalmente consistono in anomalie applicate sia a pin del micro controller o a livello di chip software.

Ora descriveremo due situazioni. La prima si riferisce ad un applicazione in cui il micro controller viene usato per leggere in numero di accesso PIN, confrontarlo ed attivare l’apertura di una porta.

Un metodo power analysis (SPA/DPA) è utile per determinare se il micro sta eseguendo le esatte istruzioni, verificando il PIN immesso attraverso tastierino numerico e confrontandolo con quello presente in memoria.

La seconda situazione descrive un micro con regolare protezione di memoria. Un attacco glitch può determinare una falsa esecuzione delle istruzioni o un falso jump restituendo l’impostazione di corretta protezione della configurazione bit. Gli attacchi glitch risultano più efficaci se applicati a livello chip, piuttosto che sul pin di un microcontroller.

Una simile architettura ha il vantaggio di prevenire attacchi sulla memoria e prevenire il reperimento di informazioni segrete. Essa può essere usata in vari campi. Altre applicazioni per micro sicuri possono essere l’encryption on-the-fly per il trasferimento dati tra due macchine, il controllo accesso rete basato sui tokens, strumenti di misurazione , pagamenti tramite terminali ecc.
Quando si parla di micro sicuri, la prima cosa che viene in mente è la protezione IP.

Molti dispositivi hanno un hardware semplice che può essere facilmente clonato ed al fine di prevenire la clonazione dell’intero sistema, si deve usare un micro sicuro per la protezione del software presente nella memoria del programma. Si può evitare l’inevitabile diffusione di copie pirata grazie all’uso di simili dispositivi. Questa è probabilmente la ragione principale per cui è nato il mercato dei micro sicuri. E’ dovere del project manager convincere I produttori di microcontroller che si tratta di un progetto reale e valido, poichè, come ho detto in precedenza, simili dispositivi possono essere venduti solo a client fidati.

Leggi la versione in Inglese: Ragioni per cui usare microcontroller sicuri

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend