Come leggere il software nei microcontrollori protetti

I firmware dei microcontrollori protetti possono essere letti utilizzando tecniche di hacking. I microcontrollori sono largamente utilizzati nei moderni dispositivi elettronici, utilizzati sia da amatori o da piccole imprese, che da professionisti o da organizzazioni di importanza critica come gli eserciti, le banche e i servizi medici. Da ciò si evince come la sicurezza sia diventata un punto fondamentale e sia in continuo aggiornamento. A volte, però, quando si ha bisogno di leggere il software in un microcontrollore protetto, si può ricorrere a diverse soluzioni.

Introduzione sulle tecnologie di attacco

Prima di passare a vedere come leggere il software in un microcontrollore protetto, introduciamo brevemente le tecnologie di attacco. Benché i sistemi di difesa abbiano raggiunto uno standard molto elevato, la resistenza alle manomissioni non è assoluta: chi ha accesso all'apparecchiatura di testing di un semiconduttore, può recuperare il materiale chiave da un chip, con la manipolazione ed osservazione diretta delle parti componenti il chip stesso. É credenza diffusa, infatti, che dati sufficienti investimenti, ogni dispositivo della grandezza di un chip può essere "sprotetto" nel modo appena descritto. Quindi, il livello di resistenza alla manomissione, offerta da un particolare prodotto, si può misurare con il tempo ed il costo impiegati per portare a termine un attacco. É possibile dividere gli attacchi tecnologici in quattro categorie principali:

- Tecniche di Microprobing: si utilizzano per accedere direttamente alla superficie del chip, con conseguente manipolazione ed interferenza con il circuito integrato.

- Tecniche di Eavesdropping: controllano le caratteristiche analogiche di tutte le connessioni di fornitura e di interfaccia, ed ogni alta radiazione elettromagnetica proveniente dal processore durante la normale operatività

- Attacco software: scopre le vulnerabilità nel protocollo, negli algoritmi criptati o nelle loro implementazioni, utilizzando una normale interfaccia di comunicazione

- Tecniche di generazione di errore: utilizzano condizioni ambientali anomale per creare malfunzionamenti nel processore che garantisce accesso supplementare. Tutte le tecniche di Microprobing sono attacchi invasivi e richiedono ore o settimane in laboratori specializzati e, durante il processo, distruggono l'involucro. Gli altri tre tipi di attacchi non sono invasivi; la scheda attaccata non viene danneggiata fisicamente e la strumentazione utilizzata viene di solito mascherata come un normale lettore di schede. Vediamo adesso un esempio di hacking del microcontrollore PIC 18F1320

Come leggere il software nei microcontrollori protetti

I microcontrollori PIC sono di solito forniti con un set di fusibili di configurazione, che includono le impostazioni per evitare la modifica o il readback di alcune regioni della memoria. A volte, però, diventa legittimo il bisogno di leggere i contenuti di un PIC protetto. Un tipico esempio è quello di un'azienda che ha perso la documentazione o il personale che aveva originariamente creato i codici per un PIC sicuro. Questo di solito accade quando un'azienda deve revisionare o aggiornare la linea di dei prodotti.

Analizziamo il microcontrollore PIC18F1320

Ecco come appare un PIC18F1320 nel suo stato nativo.

La prima cosa da fare è togliere il top, in modo da vedere il silicio. Per svolgere questa applicazione, invece di applicare fumi di acido solforico o nitrico, che sono cose piuttosto pericolose da tenere in giro per casa, si potrebbe optare per una soluzione più sicura, inviando la parte ad un laboratorio specializzato. In breve tempo, e con una spesa non troppo elevata, si risolve il problema. Per questa prova, sono state private del 'cap' due parti, mentre la terza è stata completamente decapsulata, quindi ne è rimasto solo un die in silicio senza involucro.

In figura sono mostrate le caratteristiche.

Da notare un set di strutture in metallo sopra i transistor; scudi in metallo a protezione di un dispositivo sono piuttosto rari nel silicio, quindi meritano particolare importanza.

Il significato di questo scudo metallico è dovuto al fatto che la memoria Flash può essere cancellata anche utilizzando la luce UV, poiché i transistor hanno una struttura simile a quelli dei dispositivi UV-EPROM. Incapsulare un dispositivo Flash impedisce alla luce UV di raggiungere il die. Ma adesso che l'involucro intorno al die è stato rimosso, è possibile applicare la luce e vedere cosa accade. É stato eseguito un semplice esperimento, in cui il dispositivo PIC è stato programmato con un RAMPING PATTERN (0x00->0xFF) e poi è stato messo in un cancellatore EPROM UV.

Una volta ripreso il dispositivo dal cancellatore, la memoria Flash era stata riportata al suo stato normale di tutti 1, e i fusibili di sicurezza non erano stati toccati. É significativo che, se il dispositivo non viene tenuto nel cancellatore per un tempo abbastanza lungo, si possono ottenere letture strane, come tutti 0; questo probabilmente è dovuto a qualcosa che provoca una cancellazione incompleta.

Le protezioni in metallo sui fusibili di sicurezza sono state inserite per ostacolare i tentativi di cancellazione selettiva sugli stessi fusibili, lasciando così intatta la memoria Flash.

La figura sopra mostra il problema e la sua soluzione.

Per cancellare il transistor della memoria Flash, deve essere emessa luce UV ad alta intensità sul floating gate. Lo scudo di metallo riflette efficacemente tutta la luce incidente.

Tuttavia, a causa della discrepanza di indice ottico tra le interfacce di ossido e di silicio, la luce, per certi angoli, verrà riflessa lontano dalla superficie di silicio. Questa riflessione può essere utilizzata per provocare un rimbalzo della luce sullo scudo di metallo, per poi tornare indietro sul floating gate.

Quindi, angolando il PIC all'interno del cancellatore, è possibile ottenere abbastanza luce che possa finire sul transistor della memoria Flash ed eseguire la cancellazione. Per sviluppare la tecnica adatta serve prima qualche tentativo.

Questa sopra è l'immagine del chip all'interno del cancellatore UV.

Per impedire la cancellazione dei dati, è stata realizzata una maschera di protezione usando un pezzo di nastro isolante tagliato molto accuratamente e messo sulla superficie del die, con mano molto ferma, due pinzette ed un microscopio. Il nastro adesivo blocca la luce UV che altrimenti colpirebbe le aree della memoria Flash, e assorbe anche la luce rimandata indietro dal substrato di silicio.

In questo modo, è stato possibile resettare i fusibili in modo efficace, e senza impatto eccessivo sulla sequenza del codice della memoria Flash.

Fonte

Scarica subito una copia gratis
Tags:,

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend