セキュアブヌトずフラッシュ暗号化をバむパスしおESP32をハッキングするCVE-2020-13629

Espressif ESP32マむクロシステムの、チップの動䜜に障害を導入する方法フォヌルトむンゞェクションによっお実行される攻撃に察する耐性に぀いお調査を実斜したした。私たちは、電磁界によっお匕き起こされる1぀の障害だけで、セキュアブヌトおよびフラッシュ暗号化メカニズムをバむパスできる脆匱性の発芋に埐々に取り組んできたした。さらに、攻撃を成功させた埌、任意のコヌドを実行できるだけでなく、埩号化されたフラッシュメモリデヌタも受信したした。 Espressifは、コヌドCVE-2020-13629でCVEデヌタベヌスにこの脆匱性を報告しおいたす。







..。この蚘事で説明されおいる攻撃を芋るずきは、ESP32チップのリビゞョン0および1に適甚されるこずに泚意しおください。新しいESP32 V3は、この攻撃で䜿甚されるUARTブヌトロヌダヌ無効化機胜をサポヌトしたす。



UARTブヌトロヌダヌ



ESP32では、UARTブヌトロヌダヌはROMコヌドで実装されおいたす。これにより、ずりわけ、倖郚フラッシュメモリにプログラムを曞き蟌むこずが可胜になりたす。 ROMに栌玍されたコヌドずしおUARTブヌトロヌダヌを実装するこずは䞀般的な解決策です。このようなコヌドは簡単に砎損しないため、非垞に信頌性がありたす。この機胜が倖郚フラッシュメモリに保存されおいるコヌドに基づいおいる堎合、そのようなメモリが損傷するず、マむクロコンピュヌタが完党に動䜜しなくなりたす。



通垞、このような機胜ぞのアクセスは、チップが特別なモヌド、぀たりブヌトモヌドでロヌドされたずきに線成されたす。このモヌドの遞択は、デバむスを再起動する前に取り付けられたコンタクトゞャンパヌたたはゞャンパヌを䜿甚しお実行されたす。 ESP32はこれにピンを䜿甚したすG0。



UARTブヌトロヌダヌは倚くの興味深いものをサポヌトしおいたすメモリずレゞスタの読み取り/曞き蟌み、さらにはSRAMからのプログラムの実行にも䜿甚できる呜什。



▍任意のコヌド実行



UARTロヌダヌは、コマンドを䜿甚した任意のコヌドのロヌドず実行をサポヌトしおいload_ramたす。ESP32 SDKには、SRAMから実行できるコヌドをコンパむルするために必芁なすべおのツヌルが含たれおいたす。たずえば、次のコヌドスニペットは文字列SRAM CODE\nをシリアルむンタヌフェむスに出力したす。



void __attribute__((noreturn)) call_start_cpu0()
{
    ets_printf("SRAM CODE\n");
    while (1);
}


esptool.pyESP32 SDKの䞀郚である ツヌルを䜿甚しお、コンパむルされたバむナリをSRAMにロヌドできたす。次に、これらのファむルを実行できたす。



esptool.py --chip esp32 --no-stub --port COM3 load_ram code.bin


興味深いこずに、UARTブヌトロヌダヌを無効にするこずはできたせん。したがっお、セキュアブヌトずフラッシュ暗号化が有効になっおいる堎合でも、垞にアクセスできたす。



▍远加のセキュリティ察策



明らかに、远加のセキュリティ察策が講じられない限り、UARTブヌトロヌダヌの垞時可甚性により、フラッシュメモリのセキュアブヌトおよび暗号化メカニズムは実質的に圹に立たなくなりたす。したがっお、Espressifは、eFuseテクノロゞヌに基づく远加のセキュリティメカニズムを実装しおいたす。



これらは、セキュリティパラメヌタを構成するために䜿甚されるビットであり、OTPメモリワンタむムプログラマブルメモリず呌ばれるこずが倚い特別なメモリに栌玍されたす。このようなメモリ内のビットは、0から1にのみ倉曎できたすが、反察方向には倉曎できたせん。これにより、機胜を有効にするビットが蚭定されおいる堎合、その機胜が再床クリアされるこずはありたせん。ESP32がUARTブヌトロヌダヌモヌドで動䜜しおいる堎合、OTPメモリの次のビットを䜿甚しお特定の機胜を無効にしたす。



  • DISABLE_DL_ENCRYPT: -.
  • DISABLE_DL_DECRYPT: -.
  • DISABLE_DL_CACHE: MMU- -.


DISABLE_DL_DECRYPTフラッシュメモリに保存されおいるデヌタの透過的な埩号化を無効にする ため、OTPメモリビットに最も関心がありたす。



このビットが蚭定されおいない堎合、UARTブヌトロヌダヌを䜿甚しおマむクロコンピュヌタヌをロヌドするずきに、フラッシュメモリに栌玍されおいるデヌタぞの簡単なアクセスを敎理し、通垞のテキストず同じように操䜜できたす。



このビットが蚭定されおいる堎合、UARTブヌトロヌダヌを䜿甚したブヌトモヌドでは、暗号化されたデヌタのみをメモリから読み取るこずができたす。ハヌドりェアに完党に実装され、プロセッサに察しお透過的なフラッシュ暗号化機胜は、ESP32が通垞モヌドで起動した堎合にのみ有効になりたす。



ここで説明しおいる攻撃を実行するずき、これらのビットはすべお1に蚭定されたす。



デバむスのホットリセット埌もSRAMデヌタが持続する



ESP32マむクロプロセッサで䜿甚されるSRAMは非垞に䞀般的です。同じこずが倚くのチップで䜿甚されおいたす。これは通垞ROMず組み合わせお䜿甚​​され、フラッシュメモリから最初のブヌトロヌダヌを起動する圹割を果たしたす。このようなメモリは、䜿甚する前に䜕も蚭定する必芁がないため、ロヌドの初期段階で䜿甚するず䟿利です。



以前の調査の経隓によるず、SRAMに保存されおいるデヌタは、䞊曞きされるか、メモリセルに電力が䟛絊されなくなるたで倉曎されたせん。チップのコヌルドリセット぀たり、電源のオン/オフサむクルの埌、SRAMの内容はデフォルトの状態にリセットされたす。このようなメモリの各チップは、倀0および1に蚭定されたビットの䞀意のセミランダムず蚀うこずもある状態によっお区別されたす。



ただし、ホットリブヌト埌、電源を切らずにチップをリブヌトするず、SRAMに保存されおいるデヌタがそのたた残る堎合がありたす。これを次の図に瀺したす。





コヌルドリブヌト䞊ずホットリブヌト䞋がSRAMコンテンツに䞎える圱響



䞊蚘がESP32に圓おはたるかどうかを確認するこずにしたした。ハヌドりェアりォッチドッグタむマヌを䜿甚しお、゜フトホットブヌトを実行できるこずがわかりたした。UARTブヌトロヌダヌを䜿甚しお、チップがブヌトモヌドの堎合でも、このタむマヌを匷制的に起動できたす。その結果、このメカニズムを䜿甚しお、ESP32を通垞のブヌトモヌドにするこずができたす。



SRAMにロヌドされ、UARTブヌトロヌダヌを䜿甚しお実行されたテストコヌドを䜿甚しお、SRAM内のデヌタは、りォッチドッグタむマヌによっお開始されたホットリセット埌も実際に存続するこずを確認したした。これは、SRAMに必芁なものを蚘録した埌、通垞どおりESP32を起動できるこずを意味したす。



次に、これをどのように䜿甚できるかに぀いおの質問が私たちの前に起こりたした。



倱敗ぞの道



攻撃のためのホットリブヌト埌にデヌタがSRAMに保存されるずいう事実を利甚できる可胜性があるず想定したした。最初の攻撃は、UARTブヌトロヌダヌを䜿甚しおSRAMにコヌドを蚘述し、次にりォッチドッグタむマヌを䜿甚しお、デバむスのホットリブヌトを実行するこずでした。次に、通垞の起動䞭にROMコヌドがそのコヌドをフラッシュブヌトロヌダヌコヌドで䞊曞きするため、実行しおクラッシュしたした。



以前の実隓の過皋でデヌタ転送プロセスをコヌド実行プロセスに倉えた埌、このアむデアを思い぀きたした。次に、ブヌトロヌダヌがコピヌを完了する前に、チップが開始アドレスからコヌドの実行を開始するこずに気付きたした。



時々、䜕かを達成するために、あなたはそれを詊す必芁がありたす...



▍SRAMにロヌドされ、攻撃を実行するために䜿甚されるコヌド



これは、UARTブヌトロヌダヌを䜿甚しおSRAMに曞き蟌んだコヌドです。



#define a "addi a6, a6, 1;"
#define t a a a a a a a a a a
#define h t t t t t t t t t t
#define d h h h h h h h h h h

void __attribute__((noreturn)) call_start_cpu0() {
    uint8_t cmd;

    ets_printf("SRAM CODE\n");

    while (1) {

        cmd = 0;
        uart_rx_one_char(&cmd);

        if(cmd == 'A') {                                    // 1
            *(unsigned int *)(0x3ff4808c) = 0x4001f880;
            *(unsigned int *)(0x3ff48090) = 0x00003a98;
            *(unsigned int *)(0x3ff4808c) = 0xc001f880;
        }
    }

    asm volatile ( d );                                     // 2

    "movi a6, 0x40; slli a6, a6, 24;"                       // 3
    "movi a7, 0x00; slli a7, a7, 16;"
    "xor a6, a6, a7;"
    "movi a7, 0x7c; slli a7, a7, 8;"
    "xor a6, a6, a7;"
    "movi a7, 0xf8;"
    "xor a6, a6, a7;"

    "movi a10, 0x52; callx8  a6;" // R
    "movi a10, 0x61; callx8  a6;" // a            
    "movi a10, 0x65; callx8  a6;" // e               
    "movi a10, 0x6C; callx8  a6;" // l               
    "movi a10, 0x69; callx8  a6;" // i               
    "movi a10, 0x7A; callx8  a6;" // z               
    "movi a10, 0x65; callx8  a6;" // e               
    "movi a10, 0x21; callx8  a6;" // !               
    "movi a10, 0x0a; callx8  a6;" // \n               

    while(1);
}


このコヌドは、以䞋を実装したすリスト項目番号はコメントで指定された番号に察応したす。



  1. りォッチドッグタむマヌをリセットする単䞀のコマンドコマンドハンドラヌ。
  2. NOP指瀺に基づくアナログaddi。
  3. シリアルむンタヌフェむスに文字列を出力するアセンブリコヌドRaelize!。


▍攻撃のタむミングの遞択



F次の図に瀺すように、 比范的小さな攻撃りィンドりを自由に䜿甚できたした。以前の実隓から、この時点でブヌトロヌダヌコヌドがフラッシュメモリからコピヌされおいるこずがわかりたした。





攻撃りィンドりはFで衚されたす



。SRAMコンテンツがフラッシュメモリからの正しいブヌトロヌダヌコヌドによっお完党に䞊曞きされる前に、障害が発生する必芁がありたす。



▍攻撃サむクル



各実隓では、攻撃のアむデアが機胜するこずを確認するために次の手順を実行したした。障害の敎理が成功するず、シリアル回線むンタヌフェむスに出力されるはずRaelize!です。



  • ピンをG0ロヌに蚭定し、コヌルドブヌトを実行しおUARTブヌトロヌダヌモヌドに入りたす。
  • コマンドload_ramを䜿甚しおSRAMから攻撃コヌドを実行したす。
  • プログラムAをホットリブヌトに送信し、通垞のブヌトモヌドに戻したす。
  • ROMからのコヌドを䜿甚しおフラッシュメモリからブヌトロヌダヌをコピヌするプロセスでの障害の線成。


▍結果



この実隓を1日以䞊行い、100䞇回以䞊行っおも、ただ成功したせんでした。



▍予期しない結果



しかし、私たちが望むこずを達成するこずができなかったずいう事実にもかかわらず、私たちは実隓の結果を分析しお、予期しない䜕かを発芋したした。



ある実隓では、シリアルむンタヌフェむスは、障害が䟋倖IllegalInstruction無効な呜什をもたらしたこずを瀺すデヌタを報告したした。これはそれがどのように芋えたかです



ets Jun  8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:4
load:0x3fff000c,len:3220
load:0x40078000,len:4816
load:0x40080400,len:18640
entry 0x40080740
Fatal exception (0): IllegalInstruction
epc1=0x661b661b, epc2=0x00000000, epc3=0x00000000, 
excvaddr=0x00000000, depc=0x00000000


チップ障害を匕き起こそうずするず、これらの䟋倖が頻繁に発生したす。同じこずがESP32にも圓おはたりたす。これらの䟋倖のほずんどでは、レゞスタはPC期埅倀に蚭定されたす぀たり、正しいアドレスがそこにありたす。このPCような興味深い意味が珟れるこずはめったにありたせん。アドレスに正しい呜什がないため



、䟋倖がIllegalInstructionスロヌされたす0x661b661b。この倀はレゞスタヌのPCどこかから取埗する必芁があり、それ自䜓ではそこに衚瀺できないず刀断したした。



説明を求めお、SRAMにロヌドしたコヌドを分析したした。以䞋にスニペットを瀺すバむナリコヌドを衚瀺するこずで、質問に察する答えをすばやく芋぀けるこずができたした。぀たり、ここで意味を芋぀けるのは簡単です0x661b661b..。これは2぀の呜什addi a6, a6, 1で衚され、その助けを借りおアナログがコヌドに実装されたすNOP。



00000000  e9 02 02 10 28 04 08 40  ee 00 00 00 00 00 00 00  |....(..@........|
00000010  00 00 00 00 00 00 00 01  00 00 ff 3f 0c 00 00 00  |...........?....|
00000020  53 52 41 4d 20 43 4f 44  45 0a 00 00 00 04 08 40  |SRAM CODE......@|
00000030  50 09 00 00 00 00 ff 3f  04 04 fe 3f 4d 04 08 40  |P......?...?M..@|
00000040  00 04 fe 3f 8c 80 f4 3f  90 80 f4 3f 98 3a 00 00  |...?...?...?.:..|
00000050  80 f8 01 c0 54 7d 00 40  d0 92 00 40 36 61 00 a1  |....T}.@...@6a..|
00000060  f5 ff 81 fc ff e0 08 00  0c 08 82 41 00 ad 01 81  |...........A....|
00000070  fa ff e0 08 00 82 01 00  4c 19 97 98 1f 81 ef ff  |........L.......|
00000080  91 ee ff 89 09 91 ee ff  89 09 91 f0 ff 81 ee ff  |................|
00000090  99 08 91 ef ff 81 eb ff  99 08 86 f2 ff 5c a9 97  |.............\..|
000000a0  98 c5 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 3e 0c  |...f.f.f.f.f.f>.|
000000b0  1b 66 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 1b 66  |.f.f.f.f.f.f.f.f|
000000c0  1b 66 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 1b 66  |.f.f.f.f.f.f.f.f|
000000d0  1b 66 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 1b 66  |.f.f.f.f.f.f.f.f|
...
00000330  1b 66 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 1b 66  |.f.f.f.f.f.f.f.f|
00000340  1b 66 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 1b 66  |.f.f.f.f.f.f.f.f|
00000350  1b 66 1b 66 1b 66 1b 66  1b 66 1b 66 1b 66 1b 66  |.f.f.f.f.f.f.f.f|


これらの呜什を䜿甚しお「小刻みに動く郚屋」を甚意し、NOP必芁になるたでコヌドの実行を遅らせるために、コマンドのシヌケンスが゚クスプロむトでよく䜿甚される方法ず同様の方法で䜿甚したした。これらの呜什がレゞスタヌに栌玍されるずは予想しおいたせんでしたPC。



しかし、もちろん、私たちはこれを䜿甚するこずに反察しおいたせんでした。PCフラッシュメモリからのデヌタがROMコヌドを䜿甚しおコピヌされたずきに発生したクラッシュ時に、SRAMからレゞスタにデヌタをロヌドできるず刀断したした。



セキュアブヌトずフラッシュ暗号化システムを1回のグリッチでバむパスする攻撃を準備するためのすべおの芁玠が揃ったこずにすぐに気付きたした。ここでは、前述の攻撃の実行䞭に埗られた経隓を䜿甚したしたレゞスタヌの制埡を取埗できたずきPC。



成功ぞの道



この攻撃では、UARTブヌトロヌダヌを䜿甚しお以前にSRAMにロヌドされたコヌドのほずんどを䜿甚したした。シリアルむンタヌフェむスに文字を出力するためのコマンドのみがこのコヌドから削陀されたした。これは、レゞスタPCを必芁な倀に蚭定するこず、぀たりシステムを制埡できるようにするこずが目暙であったためです。



#define a "addi a6, a6, 1;"
#define t a a a a a a a a a a
#define h t t t t t t t t t t
#define d h h h h h h h h h h

void __attribute__((noreturn)) call_start_cpu0() {
    uint8_t cmd;
   
    ets_printf("SRAM CODE\n");

    while (1) {

        cmd = 0;
        uart_rx_one_char(&cmd);

        if(cmd == 'A') {
            *(unsigned int *)(0x3ff4808c) = 0x4001f880;
            *(unsigned int *)(0x3ff48090) = 0x00003a98;
            *(unsigned int *)(0x3ff4808c) = 0xc001f880;
        }
    }

    asm volatile ( d );

    while(1);
}


このコヌドをコンパむルした埌、バむナリバヌゞョンで、呜什addiをアドレスに眮き換えたした0x4005a980。このアドレスには、シリアルむンタヌフェむスにデヌタを出力するROM内の関数がありたす。この関数の呌び出しが成功するず、攻撃が成功したこずがわかりたす。



以前の実隓で䟋倖を匕き起こした原因ず䞀臎する障害を凊理する準備をしたしたIllegalInstruction。しばらくしお、PC指定されたアドレスをレゞスタにロヌドするためのいく぀かの実隓が正垞に完了したこずを発芋したした。ケヌスコントロヌルは、PC任意のコヌドを実行できるこずを意味する可胜性が非垞に高いです。



▍なぜこれが可胜ですか



このセクションのタむトルには、答えるのが簡単ではない良い質問が含たれおいたす。



残念ながら、明確な答えはありたせん。確かに、デヌタ操䜜によっおレゞスタ制埡が可胜になるずは思っおいたせんでしたPC。これに぀いおはいく぀かの説明がありたすが、それらのいずれかが真実であるず完党に確信するこずはできたせん。



1぀の説明は、障害時に、呜什の䞡方のオペランドがldr倀をにロヌドするために䜿甚されたずいうこずa0です。これは、この攻撃で芋たものず䌌おいPCたす。この攻撃では、デヌタを倉曎するこずでレゞスタを間接的に制埡できるようになりたした。



さらに、ROMに栌玍されおいるコヌドに、この攻撃の成功に寄䞎する機胜が含たれおいる可胜性がありたす。぀たり、障害が発生したために、ROMから正しいコヌドを実行できたす。これにより、SRAMからのデヌタがレゞスタにロヌドされPCたす。



䜕がこの攻撃を実行できるようになったのかを正確に知るためには、さらに調査を行う必芁がありたす。しかし、チップをハッキングするこずを決めた誰かの目を通しお問題を芋るず、レゞスタヌに圱響を䞎える可胜性に基づいお゚クスプロむトを䜜成するのに十分な知識がありたすPC。



フラッシュメモリの内容をプレヌンテキストずしお抜出したす



PC必芁なものを レゞスタに曞き蟌むこずはできたすが、フラッシュメモリの内容をプレヌンテキストずしお取埗するこずはただできたせん。そのため、UARTブヌトロヌダヌ機胜を利甚するこずにしたした。



぀たり、チップが通垞のブヌトモヌドのずきに、UARTブヌトロヌダヌに盎接移動するこずにしたした。この攻撃を実行するために、addi代わりにUARTブヌトロヌダヌコヌドの開始アドレス0x40007a19を䜿甚しお、RAMにロヌドされたコヌドの呜什を曞き盎したした。



UARTブヌトロヌダヌは、以䞋に瀺す行をシリアルむンタヌフェヌスに出力したす。この事実を䜿甚しお、攻撃の成功を刀断できたす。



waiting for download\n"


この実隓が成功したら、それesptool.pyを䜿甚しおコマンドを実行read_memし、フラッシュメモリ内のプレヌンテキストデヌタにアクセスできたす。たずえば、次のコマンドは、倖郚フラッシュアドレススペヌス0x3f400000から4バむトを読み取りたす。



esptool.py --no-stub --before no_reset --after no_reset read_mem 0x3f400000


残念ながら、そのようなコマンドは機胜したせんでした。䜕らかの理由で、プロセッサの応答はのよう0xbad00badに芋えたした。これは、割り圓おられおいないメモリからデヌタを読み取ろうずしおいるこずを瀺しおいたす。



esptool.py v2.8
Serial port COM8
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Crystal is 40MHz
MAC: 24:6f:28:24:75:08
Enabling default SPI flash mode...
0x3f400000 = 0xbad00bad
Staying in bootloader.


UARTブヌトロヌダヌの開始時にかなり倚くの蚭定が行われおいるこずに気づきたした。これらの蚭定はMMUにも圱響を䞎える可胜性があるず想定したした。



他のこずを詊すために、UART0x40007a4eブヌトロヌダヌ自䜓のコマンドハンドラヌに盎接移動するこずにしたした。ハンドラヌに入るず、独立しおコマンドread_memをシリアルむンタヌフェむスに盎接送信できたす。



target.write(b'\xc0\x00\x0a\x04\x00\x00\x00\x00\x00\x00\x00\x40\x3f\xc0')


残念ながら、ハンドラヌに盎接移動するず、UARTブヌトロヌダヌに入った埌に衚瀺される行぀たり- waiting for download\nは衚瀺されたせん。このため、成功した実隓を特定するための簡単で䟿利な方法が倱われたす。その結果、成功したかどうかに関係なく、すべおの実隓で䞊蚘のコマンドを送信するこずにしたした。このタむムアりトに関連する远加のタむムアりトを最小限に抑えるために、非垞に短いシリアルタむムアりトを䜿甚したした。これは、ほずんどの堎合に圓おはたりたす。



しばらくしお、最初の成功した実隓の結果を芋たした



結果



この蚘事では、ESP32ぞの攻撃に぀いお説明したした。この攻撃では、フラッシュメモリのセキュアブヌトおよび暗号化システムをバむパスし、マむクロプロセッサに1぀の障害のみを配眮したす。さらに、攻撃䞭に悪甚された脆匱性を䜿甚しお、暗号化されたフラッシュメモリの内容をプレヌンテキストで抜出したした。FIRM



を䜿甚しお、この攻撃をステップスルヌできたす。





攻撃の進行状況



䞊蚘の攻撃のさたざたなステップで䜕が起こるかに぀いお簡単に説明したす。



  1. アクティブ化攻撃を実行するためのツヌルの遞択-ここでは、Riscure InspectorFIコンプレックスが䜿甚されたす。
  2. 泚入攻撃-調査䞭のマむクロコンピュヌタヌに察しお電磁効果が実行されたす。
  3. Glitch ( ) — , (, , ).
  4. Fault ( ) — , , , . , - .
  5. Exploit ( ) — UART , SRAM, . UART PC read_mem.
  6. Goal ( ) — - .


興味深いこずに、この攻撃の成功は、ESP32の2぀の匱点に䟝存しおいたす。最初の匱点は、UARTブヌトロヌダヌを無効にできないこずです。その結果、い぀でも利甚できたす。 2番目の匱点は、デバむスのホットリセット埌のSRAM内のデヌタの氞続性です。これにより、UARTブヌトロヌダヌを䜿甚しおSRAMに任意のデヌタを入力できたす。攻撃に぀いお蚀及しお



いる情報レポヌトで、Espressif瀟は、新しいバヌゞョンのESP32には、そのような攻撃を䞍可胜にするメカニズムがあるず報告しおいたす。



すべおの暙準的な組み蟌みシステムは、デバむス砎壊攻撃に察しお脆匱です。したがっお、ESP32マむクロプロセッサがサむドチャネル攻撃に察しおも脆匱であるこずは驚くべきこずではありたせん。このようなチップは、そのような攻撃に耐えるように蚭蚈されおいたせん。しかし、重芁なこずに、これはそのような攻撃がリスクを䌎わないこずを意味するものではありたせん。



私たちの調査によるず、チップの匱点を利甚するこずで、攻撃や混乱を成功させるこずができたす。オヌプン゜ヌスから孊ぶこずができるほずんどの攻撃は、チェックのバむパスに䞻な焊点が圓おられおいる埓来のアプロヌチを䜿甚しおいたす。私たちが説明したような攻撃の報告はあたり芋られたせん。



このような攻撃の可胜性に぀いおは、ただ十分に怜蚎されおいないず確信しおいたす。最近たで、ほずんどの研究者はチップの動䜜を䞭断する方法ステップActivate、Inj​​ect、Glitchのみを研究しおいたしたが、障害埌に脆匱なチップを操䜜する可胜性ステップFault、Exploit、Goalを考慮しお、さらに進んでいたす。





2020幎たでの研究ず2020幎以降の研究



新しいチップ障害モデルを創造的に䜿甚するこずで、さたざたな目暙を達成するために興味深い脆匱性掻甚戊略を䜿甚する攻撃方法が増えるず確信しおいたす。



この資料で取り䞊げられおいるトピックに興味がある堎合は、ここ、ここ、ここで、ESP32の研究に特化した他の資料をご芧ください。



この蚘事で説明したのず同様の方法でデバむスをハッキングするこずに実際に遭遇したこずがありたすか










All Articles