Domanda:
Bypassare la protezione dalla copia nei microcontrollori utilizzando glitch
Cybergibbons
2013-04-10 15:04:45 UTC
view on stackexchange narkive permalink

I microcontrollori ATmega hanno generalmente due bit di blocco, LB1 e LB2. Uno impedisce l'ulteriore programmazione e l'altro impedisce la rilettura del flash. Se sono impostati entrambi, il chip deve essere cancellato prima di poter essere programmato di nuovo. Ciò impedisce che la memoria flash venga letta e decodificata. Meccanismi simili possono essere trovati su molte altre famiglie di microcontrollori.

Alcuni altri processori hanno bypass ampiamente documentati, ad es. PIC 18F452, in cui un singolo blocco può essere cancellato e il firmware può essere scritto per leggere altri blocchi ( documentato in "Heart of Darkness - Exploring the uncharted backwaters of HID iCLASSTM security").

Di tanto in tanto, i post del forum sono pubblicati da aziende che offrono i loro servizi per leggere chip ATmega protetti. Esistono anche siti, generalmente .ru, che offrono questi servizi. Il prezzo tende ad essere di circa $ 500- $ 1500 con un tempo di consegna di poche settimane.

Sospetto che a questi costi, non stiano decapsulando il chip e utilizzando una sonda laser per ripristinare i bit del fusibile. Ho chiesto se restituiscono il chip integro, ma non ho ricevuto risposta.

In questa ricerca ("Protezione dalla copia nei microcontrollori moderni"), è menzionato nella sezione "Attacchi non invasivi su microcontrollori" a cui molti microcontrollori possono bypassare la protezione dalla copia utilizzando clock, alimentazione o glitch dei dati. Tuttavia, non ho visto esempi pratici o ulteriori ricerche in questo settore.

Diversi anni fa, il glitching era molto popolare per bypassare la protezione sulle smart card utilizzate nei ricevitori della TV satellitare, ma ancora una volta, non ho trovato molte informazioni qui al di fuori di alcuni schemi circuitali dei glitcher.

Qualcuno ha ulteriori informazioni sull'uso dei glitch per aggirare la protezione dalla copia?

Odio fare queste dichiarazioni di congratulazioni e improduttive, ma domanda IMPRESSIONANTE.
L'azienda [RussianSemiResearch] (http://RussianSemiResearch.com) può leggere molti MCU con protezione.
Bene, se il blocco è implementato correttamente, non puoi giocare con il boot loader per modificare i bit di blocco e leggere il codice. Ma allo stesso tempo le persone hanno scritto per ottenere avr sbloccato per 500 $, come ci riescono? qualche idea?
In questo canale YouTube fa molti esempi pratici di glitch e spiega ogni passaggio, potrebbe aiutarti: https://www.youtube.com/channel/UCaEgw3321ct_PE4PJvdhXEQ.
Cinque risposte:
ixje
2013-04-11 12:35:05 UTC
view on stackexchange narkive permalink

Che tipo di ulteriori informazioni stai cercando? Presumo che il tuo obiettivo sia leggere il contenuto flash di un microcontrollore ATmega. Hai trovato informazioni su come funzionano i glitcher, ora immagino che tu voglia una conferma che questo è generalmente possibile prima di impegnarti a costruirne uno? In tal caso sì, è possibile. Non posso fornirti alcun documento perché si basa sull'esperienza pratica (non necessariamente su un ATmega mcu).

Poiché generalmente non c'è modo di fornire tu stesso il core clock a una scheda incorporata (a differenza delle smartcard ) dovrai eseguire glitch elettrici, laser o elettromagnetici. Supponendo che tu fornisca energia, in pratica devi sostituire la fonte di alimentazione principale del bersaglio con una fornita da te. In questo puoi iniettare i tuoi problemi di alimentazione (negativi o positivi).

Ci sono molte ragioni per cui la protezione dalla copia potrebbe essere aggirata, tutte a seconda dell'implementazione del meccanismo di protezione. Alcuni momenti nel tempo che puoi provare sono:

  • Subito dopo un ripristino a freddo. Supponi che il valore del bit di protezione dalla copia sia memorizzato in OTP. Un sistema esegue alcune inizializzazioni subito dopo il ripristino. Ciò può includere il trasferimento del valore del bit di protezione a un registro interno. Un glitch in questo momento può ad esempio "annullare" il trasferimento, modificare il valore sul bus o impedire che il valore venga memorizzato nel registro di destinazione.
  • In qualsiasi momento durante il tempo di esecuzione . Il glitch durante il runtime può influire su qualsiasi registro. È uno scatto folle ma possono accadere cose divertenti (ciao sblocco JTAG!)
  • Durante il controllo delle autorizzazioni . Se la lettura flash è protetta, significa che a un certo punto deve verificare se si dispone dell'autorizzazione. Se puoi influenzare l'esito di questa decisione, puoi concederti l'accesso per recuperare i contenuti
  • E ce ne sono molte altre a cui puoi pensare, ma anche molte ragioni per ciò che può impedire il successo (ad es. disconnessione fisica permanente dell'interfaccia JTAG con antifusibili ecc.)
Grazie per la risposta. Non volevo specificamente bypassare un ATmega, era solo un esempio di un microncontrollore in cui non esiste un metodo comunemente noto. Stavo davvero cercando un esempio pratico hardware e software di questo - tutto sembra molto prolisso.
mncoppola
2013-04-13 10:56:18 UTC
view on stackexchange narkive permalink

Non è direttamente mirato a bypassare la protezione dalla copia, ma c'è una ricerca sostanziale sul glitch dei sistemi embedded tramite iniezione di guasti di Jasper van Woudenberg. Le applicazioni della sua ricerca includono la manipolazione delle decisioni dei rami e la perdita di istruzioni e chiavi crittografiche, quindi è probabile che ci siano anche strade per applicarle al tuo obiettivo.

Le diapositive del suo discorso nel 2012 possono essere trovate qui: http://www.riscure.com/news-events/fault-injection-attacks-on-embedded-chips (altre pubblicazioni dell'azienda sono disponibili qui)

Recentemente ha tenuto un discorso a Infiltrate 2013 che ha toccato pesantemente quest'area, quindi tieni d'occhio le diapositive e i video.

potrebbe essere utile conoscere l ' glitch hack di Xbox 360 e il relativo processo.

Il collegamento per l'hack del glitch di Xbox è morto
user2659
2013-08-15 14:00:38 UTC
view on stackexchange narkive permalink

Per leggere il contenuto flash di un MCU Atmel AVR ATmega , puoi rompere il chip master. Non restituisce il chip integro, ma fornisce il codice e il programma.

Hai stappato il chip e letto il flash visivamente o hai utilizzato un laser? Questo è possibile, ma non è la domanda che sto facendo.
Mellowcandle
2013-04-11 16:28:03 UTC
view on stackexchange narkive permalink

Questa non è veramente una risposta alla tua domanda, ma un approccio diverso a cui ho pensato per alcune ore.

Dalla mia esperienza, il blocco del codice JTAG > port viene eseguita dal software, impostando un registro specifico su un valore specifico. questa informazione può essere facilmente ottenuta dal manuale del microcontrollore.

La mia idea è di attaccare dal lato software, non dall'hardware.

Presupposti:

  1. Il dispositivo consente l'aggiornamento del firmware sul campo tramite USB, UART, ecc.

  2. Il firmware non è crittografato (beh, dalla mia esperienza a volte non lo è).

La mia idea è di modificare il file del firmware e iniettare il codice operativo specifico che cancella il registro di blocco.

Questa è solo un'idea, non l'ho mai provata prima, ma immagino sia possibile ....

Se il blocco è implementato correttamente, dovrebbe essere impossibile modificare il firmware senza un ripristino.
Non posso parlare per tutti i microcontrollori, ma nel SAM3 di Atmel (Arm Cortex M3) è un po 'che può essere cambiato avanti e indietro.
Allora non è un gran lucchetto, vero? Non credo che sia il caso dei loro controller AVR.
hai ragione riguardo agli AVR, come affermato qui: http://electronics.stackexchange.com/questions/53282/protecting-avr-flash-from-reading-through-isp
Poiché non si tratta di glitch, non penso che questa dovrebbe essere una risposta qui.
Con l'iniezione di codici operativi possiamo anche leggere e inviare firmware, non c'è bisogno di patch per la maggior parte delle volte credo.
Riguardo al punto 2: ogni firmware prezioso viene crittografato e la decrittografia viene eseguita nella memoria MCU. Tranne i casi in cui lo sviluppatore è molto stupido.
Se il firmware non è crittografato, puoi fermarti lì, hai il firmware nel file di aggiornamento.
WalterH
2015-10-06 00:03:37 UTC
view on stackexchange narkive permalink

Ho visto una di queste società in Cina, ho visto molti microscopi, quindi presumo di decapsulare il chip e di apportare alcune modifiche al chip.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...