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”

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”

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”

Bereksperimen dengan LoRa

LoRa merupakan teknologi proprietary untuk komunikasi radio jarak jauh yang butuh daya rendah (low power-wide area network). Nama LoRa sendiri singkatan dari “long range“. Di tulisan ini saya akan mempernalkan teknologi ini dan eksperimen yang sudah saya lakukan menggunakan LoRa.

LoRa dan LoRaWAN

LoRa merupakan protokol proprietary (artinya dimiliki perusahaan tertentu, bukan teknologi terbuka) tepatnya dimiliki oleh SemTech. Walau proprietary, tapi LoRa sudah didukung banyak perusahaan lain yang bergabung pada LoRa Alliance. LoRa hanya merupakan bagian standard modulasinya, sedangkan di layer atasnya ada yang namanya LoRaWAN (LoRa Wide Area Network). Di tulisan ini saya hanya membahas LoRa saja.

LoRa memiliki kecepatan rendah (hanya puluhan kilobit per second), jadi hanya cocok untuk mengirim data sensor atau teks singkat. LoRa tidak cocok digunakan mengirimkan data besar (misalnya gambar/video). LoRa memakai daya sangat rendah, sehingga device dengan batere bisa mengirim data selama beberapa tahun.

Lanjutkan membaca “Bereksperimen dengan LoRa”

Konfigurasi Komputer Juli 2021

Setiap beberapa tahun, saya membuat posting catatan pribadi tentang konfigurasi hardware dan software yang saya pakai sehari-hari. Catatan ini kadang berguna untuk mengetahui umur sebuah komponen atau sebagai pengingat kenapa saya membeli komponen atau memiilh konfigurasi tertentu.

Desktop

Sekarang saya memakai Intel di Desktop dan AMD di server. Untuk urusan Windows, AMD sering kali tertinggal dalam hal support software, misalnya dulu akselerasi VM Android hanya bisa dilakukan dengan Intel HAXM. Sekarang ini sepertinya 99% sudah sama saja antara Intel vs AMD, tapi tetap saja ada beberapa hal tertentu yang lebih mudah memakai prosessor Intel. Contoh: jika memakai software spesifik intel seperti Intel Pin, dan ada sesuatu yang tidak berjalan, saya akan bertanya-tanya: apakah ini bug di kode saya? apakah bug di Intel Pin? ataukah karena saya memakai AMD?

Saat ini saya memakai Windows 10 Pro di Intel I5 (Comet Lake, socket 1200 LGA), 6 core (support hyperthreading). Memori DDR4 sebesar 64 GB. Graphic Cardnya Radeon RX570 memori 4GB. Alasannya memakai Graphics Card ini: dulu saya ingin memakai Hackintosh juga, walau akhirnya tidak jadi karena sudah memakai Mac M1.

Saya memakai NVME SSD 1 TB untuk Windows. Karena proyek saya sekarang banyak yang butuh disk space besar, saya juga membeli NVME 2 TB untuk data. Saya juga masih memakai RAID 4TB untuk menyimpan salinan data penting di lokal plus 3TB untuk data yang kurang penting.

Saya membeli monitor termurah resolusi 4K yang bisa saya temukan di Chiang Mai: Philips 27 inch seri 278e1a/67. Dari pengalaman memakai 2 monitor FHD di kantor vs 1 monitor 4K, memakai 1 monitor 4K lebih nyaman untuk saya.

Saat ini desktop saya sebenarnya ada dua, satu lagi adalah Mac Mini M1 (RAM 16 GB, disk 512GB). Desktop ini terhubung ke monitor/keyboard yang sama. Saya memakai program display_switch sebagai switch KVM. Setelah sekian lama memakai mechanical keyboard, akhirnya saya mencoba berganti keyboard ke split keyboard.

Keyboard split yang saya beli pertama adalah FreeStyle 2. Ternyata saya suka memakai split keyboard, posisi tangan terasa lebih natural. Keyboard ini tidak mekanis jadi tidak berisik dan bisa saya bawa ke kantor.

Freestyle 2 split keyboard (dibeli dari Amazon)
Lanjutkan membaca “Konfigurasi Komputer Juli 2021”