EMFI je jeden z typů útoků na mikrokontroléry – jedná se o elektromagnetický výboj, který, pokud proběhne ve správný čas, výkonem a pozicí, dokáže změnit chování běhu programu. Typicky přeskočení podmínky, čímž můžete docílit toho, že program skočí jinam než by za normálních okolností skočil.
O tento typ útoků jsem se začal zajímat po zhlednutí tohoto tweetu
10$ EMFI on STM32.
For-loop iteration skipped in custom test app…
⚡️⚡️ == 😁 pic.twitter.com/CPUnxtygjp— LimitedResults (@LimitedResults) July 2, 2019
Jak můžete z tweetu vyčíst, díky správnému načasování byl dotyčný schopen donutil STM32 změnit výsledek podmínky (číslo 97 bylo přeskočeno).
Na zakládě toho jsem našel článek o překonání Secure Bootu ESP32. Níže uvedený článek detailně popisuje samotný útok na ESP32 a vysvětluje princip samotného útoku.
K útoku byl použit open-source projekt iceGLITCH.
Jako cíl útoku byl použit ESP32 NodeMCU s modulem ESP32-WROOM-32.
Celý článek najdete na https://raelize.com/posts/espressif-systems-esp32-bypassing-sb-using-emfi/
A ještě jedno vysvětlující video