Mengenal Hacking UEFI

Dalam tulisan ini saya akan membahas UEFI (Unified Extensible Firmware Interface) dari mulai dasarnya, securitynya, dan sekilas cara reverse engineeringnya, dan hal-hal apa yang perlu diperhatikan ketika berurusan dengan UEFI (misalnya ketika melakuan cloning komputer).

Meskipun tulisan ini cuku panjang, tapi ini hanya perkenalan saja. Ada banyak topik yang tidak saya bahas. Ada beberapa topik yang penjelasannya saya sederhanakan sehingga mungkin kurang akurat. Silakan baca berbagai website yang saya link dari artikel ini jika ingin mendapatkan penjelasan lebih dalam. Jika ingin belajar langsung dari sumbernya, spesifikasi UEFI dan source code dari Intel bisa dibaca.

Setting UEFI

Secara awam UEFI adalah pengganti BIOS (Basic Input Output System). BIOS sendiri adalah software yang sudah tertanam di komputer yang menyediakan akses dasar ke hardware. Sebagai informasi: BIOS hanya ada di arsitektur x86, sedangkan di arsitektur lain, fungsi BIOS ini digantikan oleh software lain. Software low level yang menempel ke hardware ini disebut juga sebagai firmware.

Ketika sebuah komputer dinyalakan, perlu ada firmware yang bisa meload sistem operasi dari suatu media, entah itu dari disk (macam-macam, bisa flash disk, micro sd, harddisk, SSD, NVME, dsb) dari network, atau mungkin dari sumber lain. Di dunia PC, firmware ini dulunya adalah BIOS, tapi sudah belasan tahun ini digantikan oleh UEFI.

Sedikit Sejarah

BIOS untuk x86 usianya sudah sangat tua (dari jaman PC XT), dan memiliki banyak keterbatasan (misalnya hanya bisa berjalan di mode 16 bit). Jadi untuk sistem operasi 32 atau 64 bit, boot loader atau sistem operasi perlu beralih mode dari 16 ke 32/64 bit setelah diload oleh BIOS.

Proses Boot BIOS (Sumber: Wikipedia)

Saya dulu pernah membuat sendiri OS sederhana dari nol, dan proses bootnya cukup panjang: mengimplementasikan kode MBR (yang otomatis diload oleh BIOS, ukurannya maksimal 512 byte), yang akan meload boot loader (memanggil fungsi/interrupt BIOS untuk mengakses disk), lalu boot loadernya meload kernel, switch ke mode 32 bit, lalu baru melakukan jump ke mode 32 bit. Detail proses booting klasik bisa dibaca di sini.

Lanjutkan membaca “Mengenal Hacking UEFI”

Mengganti Batere Gadget

Saat ini kebanyakan gadget elektronik bisa memiliki umur yang panjang, dan biasanya masalah utamanya adalah batere. Kadang batere menjadi menggelembung, atau kadang baterenya tiba-tiba mati. Saat ini sebagian batere bisa mudah dicari gantinya, dan proses penggantiannya juga kadang tidak sulit.

Sudah beberapa kali saya mengalami masalah pada batere, baik itu di ponsel atau di gadget yang lain. Batere Lithium ini memang rawan bisa tiba-tiba mati, atau menggelembung. Jika mengalami masalah seperti ini sebaiknya jangan gunakan devicenya, terutama jika menggelembung karena ada kemungkinan bisa meledak.

iPhone yang menggelembung (bukan batere original)
Lanjutkan membaca “Mengganti Batere Gadget”

Raspberry Pi Pico

Raspberry Pi Pico adalah board microcontroller dari yayasan pembuat board mikrokomputer Raspberry Pi. Microcontroller yang dipakai di Pico adalah RP2040 yang dirancang oleh tim Raspberry Pi. Saya sudah langsung membeli board ini sejak diluncurkan, tapi belum sempat menuliskannya, dan memang baru akhir-akhir ini sempat ngoprek lebih jauh board ini.

Rasberry Pi Pico

Microcontroller RP2040 selain digunakan di Raspberry Pi Pico (selanjutnya saya sebut Pico saja supaya singkat) juga sudah digunakan di berbagai board lain. Di tulisan ini saya akan menuliskan Pico, untuk hal-hal yang spesifik Pico (misalnya ukuran Flash memory), dan RP2040 untuk hal-hal yang sama di semua board yang berdasarkan RP2040.

Lanjutkan membaca “Raspberry Pi Pico”

Jonathan, Clicker Game dan Auto Clicker

Ada jenis video game yang namanya clicker game, atau disebut juga incremental game. Di game ini, pemain sekedar menekan tombol (atau mengklik mouse, atau mentap layar) untuk mendapatkan poin atau koin (atau in-game currency apapun). Ini merupakan penyederhanaan dari banyak game, yang sebenarnya ya hanya klik-klik saja. Kenapa nggak disederhanakan, tap atau klik apapun dapat koin?

Game sejenis ini bisa dimainkan dengan mudah dengan “auto clicker”, yang akan mengotomasi proses mengklik tombolnya. Auto clicker ini bisa berupa hardware atau software yang mensimulasikan keyboard/mouse. Bagi sebagian orang, ini tidak menyenangkan, dan bagi sebagian orang ini sangat menyenangkan.

Cell To Singularity

Jonathan menemukan game gratis di Steam namanya Cell To Singularity. Ketika memainkan game ini, dia jadi sering asal-asalan menekan tombol keyboard. Saya bilang: kalau kamu melakukan itu terus, keyboardnya akan cepat rusak. Akhirnya saya bilang: kalau kamu nggak bisa setup auto clicker, kamu nggak boleh main game ini.

Lanjutkan membaca “Jonathan, Clicker Game dan Auto Clicker”

Perjuangan menginstall VMware ESXi

Ini cuma sekedar cerita: kadang instalasi sesuatu yang seharusnya sederhana bisa jadi rumit dan lama. Ini kisahnya tentang VMWare ESXi, sebuah Hypervisor dari VMWare. Penjelasan awamnya Hypervisor: ini seperti sebuah server khusus untuk menjalankan virtual machine.

Kalau kita menjalankan emulator VMware/VirtualBox/Parallel PC di Windows/Linux/Mac, ada sistem operasi utama (host) di mana kita menjelankan emulator dan ada sistem operasi yang kita install dalam VM. Sebuah hypervisor menggantikan peran sistem operasi, jadi hypervisor ini seperti sebuah OS sendiri yang hanya bisa menjalankan virtual machine.

Kenapa saya ingin menginstall ESXi? ada banyak alternatif sejenis seperti ProxMox, Xen, dsb. Saya ingin mempelajari lebih jauh karena saya lihat ESXi dipakai di banyak perusahaan. Berbagai lab pentest juga memakai solusi ini. Contoh: labnya Offsensive Security (yang mengeluarkan sertifikat OSCP, OSWE, dsb) juga memakai solusi ini.

ESXi yang sudah terinstal

Dari dulu saya belum pernah menginstall VMWare ESXi di hardware beneran (ESXi ini bisa diinstall di VMWare juga dengan nested virtualization). Tapi saya lakukan karena kebetulan ada hardware tersedia. Beberapa waktu lalu komputer yang dipakai Joshua sering error, jadi akhirnya Joshua diberi laptop lama Risna. Komputer dengan prosessor AMD ini setelah saya cek dengan memtest, ternyata salah satu keping memorinya error. Jadi saya belikan saja satu keping RAM lagi.

VMWare ESXi ini hanya disertifikasi untuk bisa berjalan di hardware dengan konfigurasi tertentu saja. Karena saya tadinya tidak merencanakan memakai komputer ini untuk ESXi, masalah mulai bermunculan.

Tes memori sebelum mulai
Lanjutkan membaca “Perjuangan menginstall VMware ESXi”

Joshua dan Jonathan memprogram dengan Scratch

Ini sekedar catatan kehidupan, sebulan terakhir ini Joshua (sudah hampir 7 tahun) sedang senang sekali memprogram dengan Scratch (seperti dibahas Risna di posting ini). Semangatnya ini sekarang ditularkan juga ke Jonathan.

Tadinya Joshua tidak pernah mau menyimpan program buatannya di komputer lokal, tapi sekitar awal bulan ini (tanggal 6 Mei) saya membuatkan account Scratch online. Kami pergi ke Bangkok Seminggu (selama libur tidak memprogram Scratch), dan dua hari yang lalu saya cek ternyata dia sudah menshare 45 Project. Ketika saya menuliskan ini, dia sudah menshare 71 project.

Gaya belajar Joshua adalah belajar mandiri, tidak mau diajari. Dia membaca sendiri buku Scratch dan melihat video di Youtube. Dia akan merewind video berkali-kali jika masih belum paham bagian tertentu.

Belajar dengan membaca sendiri
Lanjutkan membaca “Joshua dan Jonathan memprogram dengan Scratch”

Supaya Komputer Tetap Hidup

Setelah tidak pulang beberapa tahun, rencananya saya akan pulang ke Indonesia bulan Juli. Saya jadi sadar bahwa banyak sekali hal yang sudah saya setup di sini, dan mungkin akan butuh akses berbagai komputer dan data saya dari Indonesia nanti.

Ada device/komputer yang ingin bisa diakses setiap waktu. Contohnya: asya ingin agar NAS saya tetap membackup data-data terbaru dari Internet ke harddisk lokal (agar tidak terjadi kasus account diblok seperti yang pernah saya alami). Andaikan internet di Indonesia sangat lancar, mudah dan bisa diandalkan, saya mungkin hanya akan butuh sebagian server saya ini di sini (misalnya server backup saja).

Untuk komputer yang ingin agar selalu menyala: harapannya adalah:

  • Komputer selalu on
  • Komputer tidak hang

Ada beberapa komputer yang hanya dibutuhkan sesekali. Contoh kasusnya: komputer powerful dengan RAM besar yang punya GPU dan hanya dipakai sesekali untuk traning AI atau cracking password. Untuk ini yang diinginkan adalah:

  • bisa menyalakan komputer jika dibutuhkan
  • bisa mematikan komputer jika tidak dibutuhkan.
  • bisa troubleshooting jika ada masalah startup

Setting BIOS: After Power Loss

Jika listrik mati dan kemudian menyala lagi, kita ingin agar komputer otomatis menyala lagi. Cara paling sederhana yang tidak butuh modal ekstra adalah mengganti setting di BIOS. Nama settingnya: “After Power Loss”, “AC Power Recovery” dan sejenisnya, intinya adalah kita ingin agar jika power dicolok, komputer langsung menyala.

Setelah settingnya diaktifkan, coba cabut power dan colok lagi. Seharusnya komputer akan langsung menyala. Perlu diperhatikan: kadang ini tidak selalu berhasil. Dua kegagalan yang pernah saya temui:

  • Ketika power ON/OFF berkali-kali dalam waktu singkat, kadang setting di komputer saya akan tereset menjadi off
  • Batere CMOS lemah dan setting BIOS ter-reset

Jika komputer yang dipakai adalah Windows, dan gagal boot berkali-kali (baru mulai booting lalu listrik mati lagi) maka kadang bisa gagal boot atau masuk ke safemode.

Uninterruptible Power Supply (UPS)

Supaya bisa tetap hidup walau mati listrik, ya tentunya menggunakan UPS. Dengan cara ini komputer saya sudah ada yang uptime-nya sampai lebih dari 500 hari.

Biasanya gabungan antara UPS dan setting BIOS sudah cukup untuk membuat komputer tetap menyala. UPS ini kapasitasnya terbatas, jadi hanya akan mengurangi kemungkinan komputer restart karena mati lampu sebentar. Jika UPS habis batere, lalu listrik menyala lagi, maka komputer otomatis hidup lagi dengan setting BIOS yang dijelaskan sebelumnya.

Tapi kemarin ketika hujan badai besar, listrik nyala dan mati berkali-kali (mungkin sampai 20 kali dalam waktu sangat singkat) dan hasilnya: UPS-nya sempat gagal juga dan komputernya restart berkali-kali.

Saya ingat waktu ke Medan dulu, mati listrik ini sering terjadi. Di sini saya lebih beruntung: sejak 2019, di komplek ini listrik tidak pernah mati lama. Terakhir kali di bulan Mei 2019 ada pemadaman 8 jam.

Jangan lupa kalau batere UPS juga punya batas usia. UPS saya merk APC bisa diakses statusnya dengan apcaccess. Ternyata kapasitas batere salah satu UPS saya sudah sangat sedikit, sehingga cepat sekali mati (padahal baru 2 tahun).

Akses info UPS merk APC dengan apcaccess

UPS yang agak mahal biasanya gampang diganti baterenya, sedangkan UPS murah sering kali semuanya disegel jadi sulit dibuka. Selain itu UPS mudah juga tidak bisa dikalibrasi ulang setelah baterenya diganti (jadi UPS tidak tahu bahwa baterenya sudah baru).

Mengganti Batere UPS
Lanjutkan membaca “Supaya Komputer Tetap Hidup”