2 poin oleh GN⁺ 2024-10-08 | 2 komentar | Bagikan ke WhatsApp
  • Eksperimen eskalasi hak lokal berhasil dilakukan dengan hanya menggunakan pemantik rokok piezoelektrik untuk memicu fault elektromagnetik pada bus memori DDR3 laptop, dari pengguna Linux tanpa hak istimewa hingga memperoleh shell root
  • Pada laptop Samsung S3520, resistor 15Ω dan kabel yang berperan sebagai antena disolder ke pin data SODIMM, lalu pemantik diklik di dekatnya untuk membuat error memori yang membalik bit tertentu
  • Dalam eksperimen CPython, fault pada jalur DQ7 membalik bit 7 pada pointer objek sehingga merujuk ke struktur bytearray palsu di dalam bytes, lalu membangun primitive baca/tulis memori arbitrer
  • Eskalasi hak Linux bekerja dengan menyemprotkan page table dalam jumlah besar ke memori fisik, lalu memicu fault bit 29 saat pembacaan PTE sehingga mapping yang dapat diakses pengguna menunjuk ke page table
  • Setelah berhasil, halaman pertama /usr/bin/su dicari di memori fisik dan diganti dengan ELF setuid root kecil untuk mencemari page cache; di lingkungan eksperimen, reliabilitas yang dirasakan sekitar 50% saat terhubung lewat SSH dan sekitar 20% pada shell grafis

Titik awal eksperimen EMFI berbasis pemantik

  • Bahkan ketika tidak ada bug perangkat lunak, fault injection dapat menciptakan perilaku yang tidak biasa
    • Metode fault injection mencakup perusakan data yang dikendalikan perangkat lunak, glitch daya, glitch clock, pulsa elektromagnetik, laser, dan lainnya
  • Fault injection perangkat keras biasanya membutuhkan presisi waktu dan lokasi tempat fault dimasukkan, sehingga memerlukan peralatan khusus dan biaya
  • Titik awalnya adalah pendekatan yang menggabungkan penyulut BBQ piezoelektrik dengan induktor untuk digunakan sebagai alat electromagnetic fault injection (EMFI) beranggaran rendah
    • Sebelumnya, pendekatan ini berhasil menyerang implementasi perangkat lunak AES yang berjalan di Arduino dengan DFA
  • Dalam konteks pengumuman Nintendo Switch 2 yang semakin dekat, eksperimen EMFI murah ini dijalankan kembali dengan asumsi software sistem yang mirip Switch 1 dan kelangkaan bug perangkat lunak

Target pengujian dan fault bus DDR

  • Target pengujian adalah laptop Samsung S3520 buatan 2011 dengan CPU Intel i3-2310M dan RAM DDR3 1GB
    • Dipilih sebagai perangkat yang dapat menjalankan Arch, distribusi Linux desktop ringan, dan tidak terlalu bermasalah jika rusak
  • Tujuannya adalah menulis eksploit eskalasi hak lokal yang bekerja berdasarkan fault perangkat keras yang disuntikkan
  • Titik yang dipilih sebagai bagian paling rentan secara fisik adalah bus DDR yang menghubungkan memori DRAM dan sistem
    • SODIMM memiliki 64 pin DQ, DQ0~DQ63, yang membawa bit data baca/tulis
  • Perangkat eksperimen memiliki struktur berupa satu resistor 15Ω dan kabel yang disolder ke pin yang diduga DQ26
    • Kabel menerima interferensi elektromagnetik sekitar seperti antena dan meneruskannya ke bus data
    • Resistor berfungsi membatasi kekuatan interferensi agar tidak terus mengganggu operasi memori normal, dan dalam praktiknya mungkin tidak diperlukan
  • Hanya dengan mengeklik pemantik piezoelektrik biasa di dekat kabel antena, error memori muncul secara stabil di memtest
    • Semua error yang ditampilkan berbentuk bit 29 yang terbalik
    • Meski pin yang disolder diduga DQ26, alasan bit 29 yang terbalik mungkin karena pin salah dihitung atau motherboard menukar jalur data dalam routing-nya
  • Karena hanya setingkat kecepatan reaksi jari, kontrol timing fault injection tidak presisi
    • Jika fault terjadi, kemungkinan besar bit yang sama akan terbalik pada pembacaan atau penulisan 64-bit tertentu

Mengeksploitasi bit flip di CPython

  • Eksperimen pertama adalah membuat eksploit berbentuk sandbox escape di CPython
    • Karena CPython sendiri bukan sandbox, ini bukan bypass batas keamanan yang sesungguhnya, melainkan tahap persiapan dengan memanfaatkan struktur internal yang familier
  • Dalam eksperimen ini, kabel yang disolder ke DQ7 digunakan alih-alih DQ26 pada foto sebelumnya
  • Objek CPython berada di heap garbage collection, dan header objek memiliki refcount serta pointer objek tipe, diikuti field sesuai tipe
    • Objek bytes memiliki field panjang lalu data itu sendiri dalam alokasi heap yang sama
    • Objek bytearray memiliki field panjang lalu pointer ke buffer penyimpanan data sebenarnya
  • Strategi intinya adalah memasukkan struktur bytearray palsu sebagai data di dalam objek bytes
    • Jika CPython dapat dikelabui agar memberikan referensi ke objek palsu ini, field panjang dan pointer dari bytearray yang dipilih penyerang memungkinkan baca/tulis memori arbitrer
  • Fault yang membalik bit 7 memiliki efek menambah atau mengurangi 128 pada pointer di word 64-bit
    • Jika bytearray palsu ditempatkan pada offset +128 byte di dalam objek bytes, pointer objek bytes dapat menjadi pointer bytearray palsu akibat fault
    • Transformasi ini memiliki peluang 50% untuk terjadi ke arah yang diinginkan
  • Penting bahwa yang di-glitch adalah operasi baca/tulis pada bus memori, bukan isi memori itu sendiri
    • Tidak seperti Rowhammer yang mengubah data tersimpan, pendekatan ini merusak akses yang sedang berlangsung di bus
  • Referensi objek yang sama diisikan ke tuple besar agar akses pointer yang diinginkan mendominasi aktivitas bus
    • Karena cache CPU mengurangi akses DRAM, struktur yang lebih besar dari cache 3MiB diakses secara berurutan agar setiap kali dibaca dari DRAM
    • is di Python berperilaku seperti perbandingan pointer, sehingga digunakan untuk memeriksa apakah pointer telah berubah
  • Sumber lengkap eksploit CPython tersedia di ddr3_dq7.py
    • Variabel TESTING dapat digunakan untuk menyimulasikan bit flip di perangkat lunak tanpa perangkat keras

Struktur memori yang diperlukan untuk eskalasi hak Linux

  • Dalam eskalasi hak lokal Linux, cache, memori virtual dan page table, serta TLB digunakan sebagai struktur utama
  • Karena DRAM relatif lambat, CPU menggunakan cache L1, L2, dan L3
    • Cache L3 laptop eksperimen adalah 3MiB
    • Saat cache hit, DRAM tidak diakses; pembacaan DRAM terjadi saat cache miss
  • Unit minimum dari sudut pandang cache adalah cache line, yaitu 64 byte pada laptop ini
    • Bahkan jika hanya membaca satu byte, jika data belum di-cache, pembacaan DRAM 64 byte akan terjadi
    • Karena bus data DDR lebarnya 64-bit, pembacaan ini diproses sebagai burst 8 akses berurutan
  • Memori virtual x86-64 diimplementasikan dengan halaman 4KiB dan page table berbentuk pohon
    • Platform ini memiliki page table 4 tingkat
    • Setiap page table adalah halaman 4KiB dan memuat 512 PTE 64-bit
    • PTE tingkat atas menunjuk ke alamat fisik page table tingkat berikutnya, sedangkan PTE level 0 menunjuk ke halaman fisik target
    • Alamat fisik page table root disimpan di register CPU CR3
  • Bagian PTE yang diperlukan adalah field alamat fisik
    • Jika bit flag di-mask, yang tersisa adalah alamat memori fisik yang selaras halaman
  • TLB adalah perangkat keras internal CPU yang meng-cache mapping halaman dari alamat virtual ke alamat fisik
    • Ukuran TLB persis pada laptop eksperimen tidak diketahui, tetapi tampaknya sekitar 1024 entri

Menarik page table ke memori pengguna

  • Strategi eksploit Linux terinspirasi dari elemen eksploit Rowhammer milik Mark Seaborn
  • Tujuannya adalah memetakan page table proses sendiri sebagai memori yang dapat diakses pengguna
    • Dengan begitu, PTE dapat dimodifikasi untuk mengakses memori fisik arbitrer
  • Alih-alih mengontrol tata letak memori fisik secara presisi, tepat 50% memori fisik diisi dengan page table level-0
  • Setelah itu, mapping R/W diakses berulang kali untuk melewati TLB
    • Karena jumlah mapping melebihi ukuran TLB, page table walk dapat dipaksa pada setiap akses
    • Targetnya adalah memicu fault bit 29 saat pembacaan PTE level-0 dalam walk tersebut
  • Jika bit 29 terbalik, alamat fisik yang ditunjuk PTE berubah sebesar offset 512MiB
    • Jika beruntung, alamat yang berubah itu menunjuk ke salah satu page table level-0 yang telah disemprotkan sebelumnya
    • Dalam kasus ini, mapping yang semestinya terlihat sebagai halaman R/W biasa akan mengekspos page table seperti halaman R/W biasa
  • Secara teori, bit flip apa pun dari bit 29 hingga bit 12 dapat bekerja
    • Bit 12 setara dengan offset 4KiB
    • Intinya adalah PTE menunjuk ke “tempat lain”, dan sekitar 50% memori fisik telah diisi dengan page table yang dapat dieksploitasi
  • Penyolderan kabel antena mungkin tidak mutlak diperlukan
    • Jika dapat menciptakan interferensi elektromagnetik yang cukup kuat, kemungkinannya ada, tetapi peluang crash atau kerusakan sistem jauh lebih tinggi

Cara menyemprot page table level-0

  • Pertama, file berbasis memori dibuat dengan memfd_create di Linux
    • Ini berperan sama seperti file /dev/shm/ pada eksploit Mark Seaborn, tetapi tanpa menyentuh filesystem secara langsung
  • Buffer yang sama dipetakan berkali-kali dengan mmap
    • Opsi MAP_FIXED memaksa setiap mapping selaras 2MiB di memori virtual
    • Penyelarasan ini menjamin pembuatan page table level-0 baru setiap kali
  • Linux memiliki batas sekitar 2^16 pada jumlah mapping per proses, yaitu VMA
    • Setiap mapping dibuat sepanjang 32MiB agar satu mapping menghasilkan 16 page table level-0
  • Setiap mapping memakai 32MiB di ruang alamat virtual, tetapi PTE-nya menunjuk ke halaman fisik yang sama
    • Biaya memori fisik hanya page table level-0
    • Dengan cara ini, page table dapat disemprotkan sampai memori penuh

Baca/tulis memori fisik dan pencemaran page cache su

  • Sambil menunggu fault, mapping R/W diakses berulang kali, dan fault terdeteksi ketika nilai yang berbeda dari perkiraan dikembalikan
    • Jika data yang dikembalikan terlihat seperti PTE, berarti akses R/W ke page table telah diperoleh
  • Langkah berikutnya adalah mencari page table ini terkait dengan alamat virtual mana
    • PTE dimodifikasi agar menunjuk ke alamat fisik 0
    • Mapping R/W dipindai lagi untuk menemukan mapping mana yang berubah
  • Meski PTE dimodifikasi, MMU tidak langsung menyadarinya
    • Sebab mapping virtual-fisik di-cache di TLB
    • Karena tidak diketahui cara melakukan flush TLB langsung dari userspace, ribuan mapping R/W diakses berulang kali untuk mengisi TLB dengan nilai baru dan mengusir nilai lama
  • Pada titik ini, akses baca/tulis ke seluruh memori fisik menjadi tersedia
  • Selanjutnya, file executable /usr/bin/su dibuka sebagai read-only dan halaman pertamanya di-mmap
    • /usr/bin/su adalah executable setuid root
    • Seluruh memori fisik dipindai untuk menemukan halaman yang sama
    • Halaman fisik yang ditemukan ditulis untuk menggantinya dengan payload ELF berukuran di bawah 4KiB yang membuka shell root
  • Saat su dijalankan berikutnya, Linux menganggap halaman pertama sudah ada di memori dan tidak membacanya lagi dari disk
    • Page cache yang tercemar digunakan kembali untuk menjalankan ELF yang disuntikkan
    • ELF yang disuntikkan mengosongkan page cache dengan echo 1 > /proc/sys/vm/drop_caches, sehingga eksekusi su berikutnya kembali normal
  • Sumber lengkap eksploit Linux tersedia di linux_x86_64_lpe.c

Reliabilitas dan batasan lingkungan

  • Dalam eksekusi demo, glitch yang bagus terjadi hanya dengan satu klik pemantik karena faktor keberuntungan
    • Pada beberapa percobaan sebelumnya, seluruh sistem mengalami crash
  • Reliabilitas eksploit secara keseluruhan tidak diukur secara ketat
    • Saat layar laptop dimatikan dan tersambung lewat SSH, secara subjektif terlihat sekitar 50%
    • Pada shell grafis, angkanya mendekati sekitar 20%
  • Sistem eksperimen menggunakan grafis terintegrasi
    • Akses memori oleh GPU kemungkinan mengganggu eksploit
  • Layanan latar belakang terkait pipewire, sshd, systemd, dan swap juga aktif
    • Ini adalah pilihan untuk mempertahankan lingkungan Linux desktop yang realistis; jika dinonaktifkan, reliabilitas dapat meningkat
  • Jika RAM yang terpasang lebih banyak, proporsi yang lebih tinggi dapat diisi dengan page table sehingga reliabilitas keseluruhan dapat meningkat

Kemungkinan pemanfaatan dan pertanyaan tersisa

  • Jika eskalasi hak lokal EMFI yang andal dimungkinkan di Windows, ini dapat berdampak pada situasi ketika anti-cheat berbasis TPM membatasi software yang diizinkan di sistem
  • Cerita serupa mungkin berlaku untuk SafetyNet atau pemeriksaan Play Integrity di Android, tetapi memasang modchip glitch pada ponsel lebih sulit
  • Dalam optimasi performa tingkat rendah, pengetahuan tentang page table dan TLB sering kali tidak langsung penting, tetapi dalam eksploit ini, struktur yang mempertahankan ilusi memori virtual menjadi target serangan langsung
  • Masih banyak hal yang perlu dikonfirmasi terkait cakupan penerapannya
    • Apakah bekerja juga pada DDR4 dan DDR5
    • Apakah bekerja juga pada ARM
    • Sejauh mana berbagai jenis ECC, terutama DDR5 Link-ECC, dapat memitigasi hal ini
    • Apa cara paling sederhana untuk memicu fault serupa secara elektronik dengan perangkat seperti RP2040
    • Apakah dapat digunakan untuk hypervisor escape
    • Apakah dapat dibuat menjadi eksploit WebKit atau eksploit kernel Nintendo Switch

2 komentar

 
mammal 2024-10-08

Ini mengingatkan saya pada trik mencabut pemantik dari korek rokok untuk menaikkan koin mesin arcade.

 
GN⁺ 2024-10-08
Opini Hacker News
  • Inspirasi di sini adalah mendapatkan akses root di Switch 2, sedangkan mendapatkan root di Linux hanyalah pembuktian konsep.
    Tujuannya bukan menunjukkan kerentanan keamanan mendasar yang bisa dieksploitasi secara praktis, melainkan lebih ke merebut kembali kepemilikan nyata atas perangkat keras sendiri tanpa membobol TPM atau anticheat game yang berjalan dengan hak kernel.

    • Saya paham maksudnya, tapi kurang menangkap intinya. Ini lebih masuk akal 20 tahun lalu, ketika konsol adalah komputer kuat yang dijual rugi atau dengan margin rendah; tetapi sekarang Nintendo menjual konsol dengan untung, dan Switch 2 kemungkinan besar juga begitu.
      Ini mengesankan dan saya senang ada upaya menjaga kebebasan perangkat lunak, tetapi saya lebih ingin mendukung alternatif. Mengapa memberi mereka angka yang tampak seperti basis instalasi dan juga keuntungan? Beli saja Steam Deck atau perangkat genggam lain yang sejak awal menyediakan akses root sebagai fitur.
  • Tulisannya sangat bagus dan tantangannya juga hebat, tetapi kepala saya bereaksi ke arah akal sehat hacking: “kalau ada akses fisik, semuanya sudah selesai.”
    Yang pertama terpikir adalah: kalau punya akses fisik, tinggal flash ulang BIOS, pasang backdoor driver, boot dengan live OS lalu utak-atik /etc/{passwd,shadow,groups, etc}.
    Namun lalu saya teringat bahwa jika disknya terenkripsi, sebagian besar serangan dengan akses fisik menjadi mustahil, dan saat itu serangan seperti ini terlihat sangat menarik. Ide antenanya bisa diperluas menjadi perangkat keras dengan alat interferensi bawaan, dan dibuat berkomunikasi dengan dunia luar lewat media nirkabel sehingga penyerang bisa memicu interferensi dari jarak jauh. Jika ditambah situs web yang dikendalikan penyerang dan digunakan untuk menipu korban agar berkunjung, skenarionya jadi terasa realistis.

    • Motivasi di bagian pendahuluan adalah me-root/jailbreak konsol game portabel. Ini cukup masuk akal sebagai situasi ketika Anda punya akses fisik, tetapi tetap ingin mendapatkan akses yang “tidak diizinkan”.
    • Menurut saya, flash ulang BIOS tidak banyak hasilnya. Sebelum eksekusi dimulai, perangkat keras CPU memeriksa tanda tangan private key yang benar, jadi Anda harus menandatanganinya terlebih dahulu.
      Teknik interferensi elektromagnetik ini menipu CPU itu sendiri, jadi saya kurang tahu bagaimana cara memperbaikinya kecuali muncul algoritma paging baru.
    • Pernyataan “jika disk terenkripsi, sebagian besar peretasan dengan akses fisik mustahil” hanya benar kalau PC sedang mati dan datanya belum didekripsi dengan keyfile atau passphrase untuk boot ke sistem.
      PC saya juga memakai enkripsi seluruh disk, tetapi saat boot, keyfile untuk dekripsi digunakan, dan sejak saat itu PC tersebut bisa diakses secara fisik.
  • Saya suka. Intinya adalah terjadi pembalikan bit elektrostatik saat membaca atau menulis memori, dan jika sampai menyolder, pointer yang “aman” bisa diubah secara deterministik menjadi pointer berbahaya yang saya inginkan.
    Secara historis, pandangan tentang akses fisik adalah “kalau lawan sudah memegang perangkatnya, tamat.” TPM dan trusted execution environment mengubah pandangan ini menjadi “meski pengguna punya akses fisik, operasi tertentu di dalam enclave tetap bisa dipercaya.”
    Langkah berikutnya yang paling menarik. Bisakah hasil yang cukup andal diperoleh tanpa menyolder? Karena sudah ada banyak pemikiran untuk menangani interferensi listrik, sepertinya jauh lebih sulit, tetapi mungkin saja bisa. Jika setiap kali korek ditekan satu bit acak dalam pembacaan 64-bit terbalik, dan exploit bisa berjalan hanya dengan salah satu dari, misalnya, empat pembalikan bit tertentu, maka jumlah percobaan rata-ratanya mungkin tidak terlalu banyak.

    • Kalau punya akses fisik sampai bisa menyolder antena, Anda bisa memasang DIMM khusus yang dapat diprogram dari “belakang” dan menembus TPM atau apa pun.
      Karena bagian memori mana pun bisa diubah ke nilai apa pun pada waktu yang diinginkan, tidak perlu mengandalkan pembalikan bit acak. Cukup injeksikan seluruh program.
    • Tanpa antena, sepertinya sulit membatasi pembalikan hanya ke satu bit. Setidaknya itu dugaan saya.
  • Dari judulnya saja saya kira ini tulisan tentang seseorang mendapatkan akses root pada korek api, dan saya sudah siap untuk mempercayainya.
    Oven orang tua saya saja menerima pembaruan perangkat lunak secara berkala, jadi saya bahkan tidak mempertanyakan kemungkinan korek api itu “pintar”.

    • Dari judulnya saja, saya setengah berharap ini adalah versi pembakaran dari kriptoanalisis selang karet.
    • Saya terpikir bagaimana kalau ada korek dengan panel surya kecil dan baterai, lalu saat lidar mendeteksi rokok atau cerutu di dekatnya, ia memercikkan api seperti taser kecil. Tidak bereaksi terhadap jari atau hot dog, tanpa tombol, dan bahan bakar koreknya tidak perlu diisi ulang selamanya.
      Tentu saja perlu chip untuk menjalankan lidar, sekaligus menghasilkan kilatan LED kuat dengan fade, hentakan haptik, dan efek suara. Semoga ada yang membuat demonya. Akan bagus kalau bentuknya seperti revolver kecil, tetapi demi keamanan jari dan hot dog, virtual memory controller tampaknya harus diperkuat.
    • Solder yang paling sering saya pakai juga menjalankan firmware yang bisa dimodifikasi di RISC-V SoC. (https://pine64.com/product/pinecil-smart-mini-portable-solde...)
      Ternyata pekerjaan melelehkan timah bisa serumit ini. Jadi saya bisa saja percaya pada tulisan tentang me-root korek api.
    • Saya kira mereka menghitung akar kuadrat lewat bentuk nyala api.
  • Saya jadi teringat exploit yang dulu dilakukan pada mesin arcade di Sydney pada era 80–90-an. Pemanas gas di sekolah punya pemantik piezoelektrik yang kami sebut “clicker”, dan itu bisa dilepas dari pemanas.
    Kalau clicker itu dibawa ke arcade setempat lalu diklik di salah satu sudut CRT, sistemnya terkena kejutan dan kredit game bertambah. Dugaan saya, itu karena ground CRT secara fisik berbagi kabel ground yang sama dengan perangkat yang memverifikasi koin.
    Seiring waktu pemiliknya sadar dan menambahkan semacam alarm, tapi sebelum itu masa-masa tersebut benar-benar luar biasa.

    • Saya melakukan hal yang sama pada awal 80-an, tetapi kami memakai clicker dari korek sekali pakai.
      Setelah beberapa tahun melakukannya, pemilik mulai sadar dan menutupi kabinet mesin arcade dengan plastik transparan. Pada saat yang sama, karena kabinetnya tertutup rapat oleh plastik, mereka membuat lubang di bagian belakang untuk ventilasi, dan kami menemukan bahwa tuas yang mencatat pemasukan koin bisa ditekan dengan batang bambu.
      Lalu ventilasinya dipindahkan ke atas, bukan di belakang, agar tuas tidak bisa dijangkau, tetapi kali ini kami mengetahui bahwa jika koin didorong naik melalui lubang pengembalian, koin itu bisa menyentuh tuas pencatat koin, jadi game gratis terus berlanjut. Akhirnya mereka memasang sekrup tajam di dalam kotak lubang pengembalian agar jari terluka, dan setelah itu kami membeli SEGA. Benar-benar menyenangkan.
    • Saya jadi teringat sebuah mesin yang kalau teman saya masuk ke belakang mesin arcade lalu mematikan dan menyalakan dayanya, satu token gratis akan muncul.
      Saya tidak tahu apakah itu memang sengaja dirancang agar staf bisa mengujinya secara gratis, tetapi teman saya merangkak ke belakang dan terus bermain gratis.
    • Ini juga berhasil di AS. Sekitar 1990-an, sebagian besar arcade memakai token milik sendiri alih-alih koin tunai, dan banyak juga mesin judi berbasis keterampilan tempat token bertumpuk berjajar seperti meluncur.
      Pada versi “Jungle Jive”, jika lubang masuk logam diberi kejutan kecil dengan pemantik listrik dari korek rokok, token akan keluar dari sisi lain mesin. Kalau diklik terlalu banyak dan terlalu cepat, mesin masuk mode peringatan. Bisa dilakukan sendirian, tetapi konfigurasi optimalnya adalah trio: 1 orang mengawasi staf, 1 orang bertugas mengklik, dan 1 orang mengumpulkan token.
    • Saya samar-samar ingat bahwa kalau sisi mesin pinball dipukul dengan tepat, game gratis akan muncul. Mungkin prinsipnya sama.
    • Saya ingat pernah membaca di buku ini bahwa hacker Pengo dikenal menambahkan kredit mesin arcade dengan cara yang sama.
      https://www.amazon.com/CYBERPUNK-Outlaws-Hackers-Computer-Fr...
  • Kalau dibaca sebagai orang Australia, tafsirnya berbeda. Tergantung kemampuan negosiasi, Anda bisa mendapatkan root hanya dengan satu korek rokok.

  • Ini bukan hanya exploit yang menarik, tetapi juga pengantar mini yang keren untuk menjelaskan cara kerja cache di CPU.
    Saya ingat sekitar setahun lalu ada tulisan yang menjelaskan bagaimana komputer bekerja dan dibuat, dimulai dari bagian terkecil seperti gerbang logika. Ada yang ingat situs webnya apa?

  • “Yang dilakukan hanyalah menyolder satu resistor 15 ohm dan satu kabel ke DQ26. Kabel itu bertindak seperti antena, menangkap interferensi elektromagnetik di sekitarnya dan mengalirkannya langsung ke bus data.”
    Hack yang benar-benar keren. Membuat interferensi elektromagnetik dengan korek, ya. Saya harus coba menyalakan api di dekat bus DDR dan melihat apa yang terjadi.

  • Tentu saja, kalau harus menyolder antena ke memori terlebih dahulu, itu mungkin :-)
    Tetap saja, ini tulisan yang bagus dan teliti tentang cara mengeksploitasi glitch seperti ini secara nyata. Korek rokok juga bisa dipakai untuk mondar-mandir di pintu belakang data center sambil menunggu admin keluar untuk merokok.

    • “Secara teori, ini bekerja jika bit flip terjadi di posisi mana pun antara bit 29 dan bit 12. Jadi, jika interferensi elektromagnetik yang cukup kuat bisa dibuat, menyolder kabel antena mungkin tidak sepenuhnya wajib.”
    • Salah satu kegunaan di bagian “penggunaan praktis” adalah melewati proteksi salinan pada konsol.
  • Saat melihat judulnya, saya kira ini cerita tentang meretas mobil Hyundai dengan perangkat korek rokok USB-C.