Hacking dan Reverse engineering hardware

Saat ini di jaman IOT, makin banyak orang yang tertarik untuk hacking dan reverse engineering (RE) hardware. Karena sudah cukup banyak orang menanyakan topik ini, maka di artikel ini akan saya bahas dasar-dasarnya, plus tools apa saja yang dibutuhkan jika ingin memulai.

Dalam artikel ini RE hanya bertujuan memahami software dan hardware dalam sebuah sistem. Hacking hardware bermakna lebih luas misalnya menambah atau mengubah sesuatu di hardware, misalnya menjalankan Doom di printer, membuat hardware baru, atau oprekan apapun yang berhubungan dengan hardware.

Supaya bisa mengubah sebuah hardware yang tidak terdokumentasi, kita perlu melakukan dulu reverse engineering untuk memahami cara kerjanya, baru setelah itu kita bisa melakukan perubahan. Untuk hardware open source atau yang dokumentasinya sangat baik, proses RE ini tidak perlu.

Tujuan melakukan Hacking Hardware

Ada banyak tujuan RE dan hacking hardware, misalnya:

  • Mencari key enkripsi untuk mengakses konten gratis atau untuk membuat konten baru (misalnya game homebrew), atau bahkan membajak, contohnya dalam kasus Game Console
  • Memperbaiki, menambah atau menghilangkan fungsionalitas , misalnya menambah SD Card di router
  • Mengekstraksi firmware dengan berbagai tujuan: mencari bug di firmwarenya, mengclone firmwarenya (membuat produk tiruan), mencari key dalam firmwarenya

Perlu dicatat bahwa dalam 99% kasus, ujung dari reversing hardware adalah melakukan reversing software yang berjalan di hardware tersebut. Continue reading “Hacking dan Reverse engineering hardware”

Jadi peserta CTF yang bener dong, jangan malu-maluin

Tahun lalu saya mengkritik panitia Cyber Jawara karena soal CTF-nya ngawur. Sekarang gantian saya mengkritik peserta yang ngawur di penyisihan online. Banyak peserta yang sharing jawaban, seperti mencontek soal ujian.

Tahun ini, panitia Cyber Jawara dan pembuat soal sudah bekerja sangat baik. Soal yang dibuat berkualitas, dan mereka juga mengecek jawaban peserta dengan teliti sehingga kelakuan curang seperti itu bisa diketahui dan didiskualifikasi.

Kutipan komentar dari panitia (Fariskhi Vidyan):

jadi gini ceritanya ya. Ada beberapa tim yang melaporkan ada tim-tim yang minta flag dan juga menawarkan flag dengan bukti screenshot. Jadi ada tim yang kerjaannya minta-minta flag dan mendistribusikan itu ke tim lain dengan syarat minta pap/foto tim. Ada juga yang pakai cara-cara lain. Gara-gara komunikasi pakai telegram jadinya mudah untuk ngelakuin ini.

Selain itu writeupnya juga pada gak bener. Ada yang persis copy paste. Bahkan user terminalnya pun sama persis -,- dan kata-katanya pure copy tanpa ada perubahan satu karakter pun. Banyak juga yang isinya asal-asalan dan bahkan penjelasan yang salah pun diikutin.

Dan katanya ini emang udah terjadi dari tahun2 lalu. Tapi kalau tahun2 lalu nilai akhir itu nilai di web scoring + nilai write up. Makanya yang curang-curang pada datang rombongan. Mana bisa begitu. Untuk tahun ini, ditegasin dengan kasih penalti besar-besaran ke write up yang gak valid, untuk nilai soal yang write upnya gak bener/ngasal dijadikan 0. Ada yang tadinya full score sampai jadi di bawah 500. Yang write up soalnya sama persis juga dikasih penalti dua-duanya.

Saya kesal dengan mentalitas pencontek seperti ini. Dulu waktu saya masih sering ikutan CTF di akhir pekan, banyak juga yang menanyakan apa flag (jawaban) sebuah soal. Sebenarnya kalo ada yang tanya petunjuk (hint) untuk mengerjakan soalnya, biasanya akan saya jawab. Misalnya akan saya jawab dengan: coba SQL injection, atau: coba baca artikel ini.

Untungnya masih ada beberapa yang bertanya seperti itu, dan sampai sekarang pun masih ada yang rajin menanyakan hint dan meminta petunjuk buku atau artikel mana yang perlu dibaca untuk menyelesaikan soal tertentu atau memahami konsep tertentu. Orang-orang seperti ini yang akan sangat dirugikan oleh cheater.

CTF perlu anti contek juga?

Banyak orang mengkritik kalau pejabat pemerintah bobrok, banyak koruptor, dsb. Padahal kelakuan seperti itu dimulai dari kelakuan kecil seperti mencontek ini.  Jangan pikir bahwa mencontek ini tidak merugikan siapa-siapa: di lomba semacam ini, kelakuan curang akan sangat merugikan orang yang jujur dan memiliki keahlian.

Sebenarnya apa sih tujuan main CTF kalau mainnya curang? CTF itu untuk belajar, dan nanti bisa terpakai di dunia nyata di dunia security. CTF juga buat bersenang-senang seperti menyelesaikan puzzle. Kelakuan cheater seperti ini cuma merusak kesenangan orang yang beneran menikmati main CTF.

Andaikan team curang ini lolos ke final, mereka akan bengong melihat soal-soal yang ada. Andaikan panitia tidak teliti, dan semua team cheater yang masuk final, maka ketika ke tahap berikutnya di level ASEAN, mereka akan bengong dan memalukan Indonesia.

Mencegah kecurangan

Sebenarnya ada cara untuk mempersulit kecurangan semacam ini, tapi panitia harus bekerja ekstra. Tiap flag bisa dibuat unik per peserta, jadi flag tidak bisa dishare begitu saja. Tentunya tidak mudah membuat variasi ini untuk semua jenis soal, tapi mungkin bisa dilakukan untuk sebagian soal saja. Ini tidak mencegah peserta untuk sharing cara mereka menyelesaikan soal.

Untuk membuat orang segan berbagi metode, di beberapa CTF, skor untuk satu soal dikaitkan dengan dua faktor: siapa yang menyelesaikan duluan dan berapa banyak yang menyelesaikan soal tersebut.

Peserta yang duluan menyelesaikan soal mendapat skor lebih tinggi dari peserta berikutnya (misalnya 100%, 99%, dst). Jika sebuah soal banyak diselesaikan oleh orang, maka bobot soal dikurangi, artinya soal yang hanya bisa dipecahkan oleh 10 orang bobotnya lebih tinggi dari yang bisa diselesaikan 100 orang.

Dalam metode scoring ini skornya jadi dinamis. Misalnya soal 1 nilai bobot awalnya 1000. Team A menyelesaikan soal 1, dan mendapat skor 1000. Tiba-tiba ada 9 peserta lain yang berhasil menyelesaikan, bobot skor dikurangi jadi 900, sekarang tiba-tiba team A memiliki skor 900 meskipun tidak melakukan apa-apa.

Team yang jagoan, yang bisa menemukan beberapa flag akan malas sharing dengan team lain: buat apa sharing, nanti skor saya akan menurun kalo banyak yang menyelesaikan soalnya.

Penutup

Bagi saya sendiri, CTF untuk bersenang-senang, kenalan dengan banyak orang, dan kadang-kadang juga mendatangkan rejeki dari tawaran pekerjaan. Beberapa CTF (Seperti Flare On) juga menawari peserta untuk mengirimkan resume (jika berhasil menyelesaikan semua challengenya).

CTF yang baik dan fun butuh panitia yang baik, dan juga butuh peserta yang baik. Jadilah peserta CTF yang jujur dan mau belajar. Panitia jadi akan punya lebih banyak waktu untuk membuat soal yang baik daripada susah payah mencegah cheater.

Ke Belanda

Dari RHME2 tahun lalu saya mendapatkan hadiah mengikuti kursus security gratis di Riscure Delft, Belanda. Karena ini bukan perjalanan dinas dari kantor, jadi saya perlu mengurus segala sesuatu sendiri, dan saya bisa bebas menceritakan perjalanannya.

Visa

Di Chiang Mai tidak ada kedutaan Belanda, jadi untuk mengurus Visa saya perlu ke Bangkok. Sebenarnya mengurus Visa bisa dilakukan di kedutaan Belanda atau di VFSGlobal. Saya memilih menggunakan VFSGlobal karena mereka punya jasa kirim balik visa via EMS (menghemat uang dan waktu, tidak perlu kembali ke Bangkok lagi).

Website VFSGlobal sudah sangat bagus, ada checklist mengenai berbagai dokumen yang dibutuhkan sesuai dengan jenis Visa-nya. Karena saya ke sini untuk training, saya menggunakan Visa bisnis. Sebagai catatan, bidang security ini tidak ada hubungannya sama sekali dengan tempat saya bekerja sekarang, tapi tetap butuh surat pengantar dari tempat bekerja.

Tidak ada proses wawancara ketika menyerahkan dokumen. Saya hanya menyerahkan semuanya, diminta scan sidik jari, mengisi alamat pengiriman kembali paspor setelah selesai. Visa saya dapatkan sekitar seminggu, saya masukkan alamat kantor supaya yakin ada selalu orang yang menerima. Karena proses VISA sangat singkat, saya sempat makan siang dengan Pak Kief, alumni Informatika ITB yang saat ini bertugas di KBRI.

Perjalanan

Ada pesawat KLM dari Bangkok langsung ke Belanda. Perjalanannya 11 jam. Karena tidak ada connecting KLM dari Chiang Mai, jadi saya naik airline lain, dengan menyisakan waktu 4 jam. Ternyata 4 jam ini cukup pas, karena butuh menunggu bagasi, antri memasukkan bagasi, antri imigrasi, antri scan.

Di dalam pesawat ada Entertainment System. Kalo saya membawa peralatan yang lengkap, sistemnya sepertinya bisa dijebol. Sistemnya menerima input USB, dan biasanya sistem seperti ini rentan terhadap berbagai macam file yang corrupt. Sistemnya sendiri memakai HTML untuk user interfacenya, ini bisa terlihat dari sifatnya, misalnya file yang memiliki nama &lt; akan muncul sebagai tanda kurang dari (<).

 

Mengunjungi Keluarga Dea

Dulu banget dalam kisah pacaran kami ada Dea, saudara sepupu Risna yang meyakinkan Risna supaya mau pacaran dengan saya. Beberapa tahun kemudian Risna membantu Dea menulis surat ke calon suami Dea (yang sekarang jadi suami Dea saat ini). Karena Delf tidak terlalu jauh, jadi saya bisa mampir ke rumah mereka. Saya menginap semalam, dijamu jalan-jalan, dan diantarkan ke penginapan. Senang rasanya bisa ngobrol dan bertanya-tanya banyak hal mengenai Belanda.

(Catatan: untuk privasi, foto-foto orang lain tampak depan biasanya tidak akan ditampilkan tanpa ijin orangnya, dan foto-foto seperti itu biasanya saya share di Facebook untuk “Friends” saja)

Kebetulan sedang ada Pasar Raya Indonesia, jadi saya bisa beli makan malam sebelum diantar ke hotel.

Transportasi

Tempat pelatihan dan hotel jaraknya hanya 4 km, jadi saya punya beberapa opsi: jalan kaki, naik sepeda, taksi, dan Uber. Di hari pertama saya sudah menyewa sepeda, tapi tiba-tiba hujan yang agak deras dan tidak terlihat akan berhenti, jadi akhirnya manggil Uber. Padahal saya sudah susah payah mempelajari gimana cara mengamankan sepeda, cara membuka dan menutup kunci (dari Youtube), juga membaca seksama aturan dari hotel (misalnya hotel tidak bertanggung jawab kalo ban kempes, pompa aja sendiri).

Ternyata saya beruntung sekali di hari pertama bisa mendapatkan uber, karena di kota Delft ini saat ini uber sangat sedikit, sampai-sampai Uber akan memberikan bonus untuk driver yang melakukan 5 perjalanan di Delft. Pagi itu saya beruntung karena ada driver yang kebetulan baru mengantarkan salah satu peserta training yang sama ke Riscure. Benar saja pulangnya nggak  dapet uber, jadi saya mencoba jalan dan ternyata rasanya cukup menyenangkan.

Di Belanda rasanya aneh kalo tidak mencoba naik sepeda, jadi saya akhirnya mencoba menyewa sepeda lagi. Untuk memandu perjalanan, saya set tujuan di Google Maps, saya kantongi HP-nya dan mendengarkan petunjuknya dengan earphone. Perjalanan dengan sepeda lebih menyenangkan dari jalan kaki. Pulang dari pelatihan, saya sempat berkelana menyusuri suasana pedesaan walau sebenarnya itu nyasar, karena Google Maps/HP saya ngaco.

Kincir Angin

Pelatihan

Materi training yang saya ambil adalah “Embedded Systems Security“. Dalam banyak hal, materinya sebenarnya terlalu dasar buat saya. Tapi saya mengambil ini karena ingin menstrukturkan segala macam pengetahuan yang sudah saya miliki (dan menambal lubang dalam pengetahuan saya). Pelajaran terbanyak justru saya dapatkan dari ngobrol dengan pelatih dan peserta lain.

Dalam bidang lain (misalnya pemrograman), saya bisa dengan percaya diri menyusun materi pengajaran dengan struktur yang baik, tapi di bidang embedded security saya merasa masih bingung jika harus mengajarkan ilmunya ke orang lain. Ternyata belajar mereview semua hal dasar sangat berguna, dan bahkan orang-orang dari Riscure sendiri kadang diikutkan dalam training mereka (bukan sekedar mengisi slot, tapi mereka benar-benar belajar), misalnya ada karyawan yang ikut dalam kelas, karena meskipun jago enkripsi (memiliki PhD), tapi masih lemah dalam embedded system.

Training yang ada ditujukan untuk mengenali dan mencegah berbagai serangan terhadap embedded systems. Ini biasanya sangat berguna untuk berbagai perusahaan yang membuat hardware sendiri (supaya aman, tidak mudah dicopy pesaing, dsb), tapi juga berguna untuk mengevaluasi berbagai produk yang ada.

Misalnya salah satu target yang diberikan adalah webcam WIFI, yang ternyata mengirimkan statusnya ke China, dan semua semua streamnya bisa diakses dari seluruh dunia, dan bahkan secara teori bisa dipakai untuk menjebol jaringan internal karena melakukan NAT Traversal. Bayangkan jika Anda memilih webcam ini untuk dipakai di lembaga negara atau kamar pribadi Anda. Contoh hardware berbahaya lain adalah router, saat ini berbagai modem default dari ISP ternyata memiliki lubang yang membuat semua orang bisa masuk. Jika ada yang mengerti dan melakukan pengecekan dasar hardware, kasus semacam itu tidak akan terjadi.

Anak-anak

Saya jarang sekali pergi meninggalkan keluarga, walaupun hanya beberapa hari, karena anak-anak akan sangat kangen (dan saya kangen mereka). Jika kantor bisa mengirimkan orang lain, saya akan sangat senang daripada saya yang pergi. Di hari pertama sudah ada insiden: Joshua jatuh, gigi depannya lepas sampai ke akarnya. Risna pun segera dibantu oleh Bos dan Office Manager kami untuk ke UGD, lalu diteruskan ke dokter gigi (untuk memastikan tidak ada pecahan tersisa). Hasilnya: Joshua akan tumbuh gigi depan lagi yang permanen beberapa tahun yang akan datang, tapi tetap butuh dikontrol perkembangannya.

Pulang

Untuk menghemat, pulang dilakukan dengan naik Uber ke stasiun, disambung dengan naik kereta. Waktu sampe Belanda masih agak  nggak konsen baca kelas kereta dan jadwalnya (jam 8 malam, atau jam 2 pagi waktu Thailand), waktu pulang lebih jelas rasanya.

Perjalanan ke Thailand lancar, mendarat di Bangkok, dan beberapa jam kemudian diteruskan ke Chiang Mai. Joshua “ngambek” karena papanya pergi lama, setelah diajak main di mall dan naik kereta keliling mall, baru dia peluk papanya dan bilang “hug papa”.

Jonathan menunjukkan kalo dia beli kartu Bingo, tapi tidak bisa main dengan fun karena tidak bisa menghasilkan bilangan acak, jadi dia minta dibuatkan appnya. Akhirnya saya buatkan versi HTML5.

Dan Jonathan juga ingin makan telur karena oleh-oleh egg timer yang saya bawakan yang akan memainkan melodi tertentu tergantung level matang telurnya. Ternyata lagu terakhir adalah lagu kebangsaan Belanda, kalau misalnya mau bikin sendiri atau hack yang sudah ada, boleh nggak ya pake lagu kebangsaan Indonesia dalam telur rebus?

Telur Rebus

Ponsel Anda disadap? (bagian 2)

Setelah Anda membaca bagian pertama posting ini, pertanyaan yang kemungkinan muncul adalah: jadi bagaimana saya tahu kalau ponsel saya sudah terinstall program untuk menyadap? Jawaban sederhananya: jika yang menyadap level biasa, maka penyadapan akan sangat mudah dideteksi. Jika yang menyadap level negara, akan sangat sulit dideteksi.

Sebelum mengecek Ponsel

Sebelum mencurigai ponsel Anda, cek dulu semua account online Anda. Cek sejarah login Anda untuk melihat ada yang mencurigakan atau tidak.  Seperti telah dibahas sebelumnya: cara seseorang bisa masuk ke HP Anda ada banyak, jadi meskipun Anda bisa membersihkan HP, kalau cara masuknya masih terbuka ya masih bisa kena lagi.

Cek juga desktop/laptop Anda. Tidak ada satu resep khusus untuk melakukan ini, jika ragu: backup data, lalu reinstall semuanya, dan update semua software yang Anda pakai ke versi terbaru. Hati-hati dengan software bajakan, meski pembajak awal mungkin jujur dan tidak memberikan backdoor, orang lain mungkin menambahkan backdoor.

Cek juga apakah kecurigaan Anda bisa dijelaskan dari sudut pandang lain. Misalnya apakah informasi yang bocor hanya yang diterima orang tertentu saja. Mungkin orang tersebut dihack, mungkin pula dia yang membocorkan informasinya.

Pemeriksaan Ponsel

Ada beberapa titik di HP yang bisa diperiksa. Pertama coba perhatikan semua notifikasi yang muncul. Lihatlah jika ada yang tidak wajar atau mencurigakan. Dalam kasus di bawah ini saya memang sengaja menginstall certificate supaya bisa melakukan monitoring koneksi jaringan. Informasi mengenai WhatsApp juga wajar karena saya sedang mengakses WhatsApp via web.

Salah satu metode yang dipakai untuk memata-matai adalah dengan tidak menginstall aplikasi baru, tapi mengganti aplikasi Anda dengan versi lain yang sudah dimodifikasi. Versi yang sudah dimodifikasi ini bisa mengirimkan pesan ke orang lain. Ini yang dilakukan dengan software dari Hacking Team yang dijual ke berbagai pemerintah.

Sebagai catatan: beberapa orang memang dengan sengaja memodifikasi WhatsAppnya untuk mengaktifkan fitur tertentu, misalnya agar meskipun kita sudah membaca pesan seseorang, tapi tidak diketahui oleh orang lain sampai kita tekan sebuah tombol (tujuannya supaya tidak dikira malas, bisa beralasan belum baca message).

Aplikasi yang sudah dimodifikasi ini tentunya tidak bisa diupdate dari Google Play, jadi cara pertama adalah: coba install lagi aplikasi Whats App dari Google Play. Jika ada WhatsApp “palsu”, maka akan muncul opsi “Install” (dianggap belum terinstall).

Berikutnya lagi kemungkinan HP Anda sudah diroot. HP yang sudah diroot bisa dimodifikasi sehingga aplikasi tertentu bisa membaca aplikasi lain.  Tergantung versi Android yang Anda pakai (dan dari vendor mana), proses ini bisa memakan waktu beberapa menit saja. Jika Anda adalah orang awam yang merasa tidak pernah me-root HP Anda, maka Anda perlu mengecek apakah HP Anda sudah diroot oleh orang lain. Sebagai catatan tambahan: HP China yang tidak bermerk kadang sudah diroot “dari pabriknya”.

Sebagai catatan tambahan: “membaca aplikasi lain” ini bisa sekedar screen capture saja. Saya pernah membuat aplikasi Blackberry dan aplikasi Dekstop sehingga kita bisa mengendalikan Blackberry dari PC. Prinsip program tersebut hanyalah melakukan screen capture secara kontinyu dan mengirimkan ke PC (via USB/Bluetooth/WIFI), dan tentu saja ini bisa dimodifikasi untuk mengirim ke komputer lain jika dideteksi aplikasi yang aktif adalah aplikasi tertentu. Program serupa bisa dibuat untuk sistem operasi lain, tapi di OS lain  butuh akses root.

Anda bisa memakai aplikasi Root Checker untuk mengecek apakah HP Anda sudah diroot. Alternatif lain adalah menginstall aplikasi bangking seperti Sakuku, tidak perlu sampai mendaftar, ketika dijalankan aplikasi ini langsung mengecek apakah HP Anda diroot atau tidak dan tidak mau jalan jika diroot.

Jika Anda merasa tidak pernah me-root tapi sudah ter-root, maka cara terbaik adalah mereset HP Anda ke factory setting. Lebih bagus lagi kalau diinstall ulang dengan stock firmware dari web produsennya.

Keberadaan root juga bisa disembunyikan dengan aplikasi tertentu atau dengan modul XPosed. Dengan ini hampir semua aplikasi tidak bisa mendeteksi keberadaan root dan keberadaan program penyadap. Saat ini Google memiliki fitur Safety Net untuk bisa mengetahui apakah HP dimodifikasi atau tidak. Salah satu caranya adalah memakai SafetyNet Playground. Sayangnya ini hanya berlaku untuk ponsel bermerk, bukan ponsel murah dari China (akan gagal Safety Net karena dianggap sudah dimodifikasi).

Apakah setelah dicek dengan Safety Net sudah pasti aman? belum tentu juga, dalam bahasa orang awam: di Android versi tertentu ada cara supaya aplikasi bisa mengakses aplikasi lain. Dalam bahasa teknis: mungkin saja sebuah aplikasi melakukan kernel exploit temporer, dan menghapus lagi jejaknya setelah itu. Ada juga software bernama Magisk yang biasanya bisa membypass SafetyNet (tapi biasanya tiap beberapa bulan diupdate oleh Google).

Jika Anda adalah orang security, maka tentunya pernah mendengar mengenai rootkit level kernel di berbagai sistem operasi. Android pada dasarnya memakai kernel Linux, jadi tidak sulit membuat rootkit yang sulit dideteksi.

Selain ponselnya sendiri, pengecekan berikutnya yang bisa dilakukan adalah pengecekan paket jaringan. Cara ini lebih sulit karena mewajibkan kita tahu mengenai koneksi jaringan yang umum dan tidak umum oleh aplikasi. Inipun tidak selalu berhasil, bisa saja program penyadapnya mengirimkan hasil sadapan jam 3 pagi ketika semua orang tertidur.

Penutup

Secara umum cukup sulit bagi orang awam untuk mendeteksi penyadapan di ponselnya. Kemungkinan yang dirasakan adalah efeknya (misalnya akses jaringan jadi lambat, atau secara umum HP menjadi lambat). Pengecekan yang proper hanya bisa dilakukan ahlinya.

JIka Anda cukup mahir, cara termudah yang bisa dilakukan jika mencurigai ada penyadapan adalah: backup semua data, reset/reinstall firmware ponsel, reinstall PC Anda. Ganti semua password Anda.

Dan yang paling penting adalah: Jika Anda tidak ingin ada informasi yang penting tersebar, jangan gunakan ponsel untuk mengkomunikasikan hal tersebut. Jangan simpan foto atau video yang tidak boleh tersebar.

Ponsel Anda disadap? (bagian 1)

Beberapa waktu yang lalu ada yang mengirim pesan di Facebook: “Mas, saya merasa ada yang mengintip pesan WhatsApp saya”. Pertanyaan dilanjutkan dengan bagaimana caranya mengetahui apakah memang benar disadap, bagimana cara membersihkannya, dan juga bagaimana orang tersebut bisa masuk?

Ada banyak alasan kenapa seseorang mungkin mau menyadap Anda. Mungkin Anda orang penting dan pemerintah mau menyadap Anda. Mungkin ada rekan atau lawan bisnis yang ingin tahu soal bisnis Anda. Mungkin Anda berteman dengan orang penting yang terlalu sulit didekati untuk disadap. Mungkin Anda punya mantan pacar yang masih belum bisa melupakan Anda.

Secara umum, seseorang bisa saja tidak bertujuan menyadap. Bisa saja seseorang masuk ke HP Anda untuk  sekedar merampok: mengakses rekening bank Anda atau informasi kartu kredit Anda, atau bahkan sekedar mengambil pulsa Anda. Bahkan kadang sekedar agar uang dari iklan yang tampil di berbagai aplikasi masuk ke rekening penyerang.

Serangan Massal vs Serangan Spesifik

Tidak selamanya kita menjadi korban karena kita ditargetkan spesifik. Sering kali ada serangan massal (menebar jala), dengan harapan dapat korban empuk. Ketika ada sebuah serangan massal dan penyerang menyadari Anda punya akses penting, mungkin mereka akan memfokuskan diri pada Anda.

Ada contoh yang baru saja terjadi. Ada software open source OS X bernama Handbrake yang servernya dihack dan softwarenya disisipi malware selama 3 hari. Siapapun yang mendownload dan menginstall dalam rentang 3 hari tersebut kena malware. Sebenarnya sekarang ini software ini sudah cukup jarang dipakai karena selain untuk konversi video fungsi utamanya dulu adalah me-rip (menyalin film dari) DVD.

Ada satu developer OS X dari perusahaan Panic.com kebetulan saja sedang mengupdate software Handbrake di dalam rentang waktu 3 hari tersebut. Karena orang itu merupakan developer maka dia memiliki akses source code perusahaan, dan hasilnya: source code produk perusahaan mereka dicuri.

OS X merupakan sistem operasi yang relatif aman, jumlah penggunanya tidak sebanyak Windows, dan jumlah malware yang ada juga tidak sebanyak Windows, tapi karena sedang apes ya tetap saja bisa kena. Pembuat malwarenya tentunya tidak bisa memprediksi siapa yang akan mendownload softwarenya, tapi kebetulan saja ada korban menarik yang ketemu.

Tiap hari ribuan malware didistribusikan dengan berbagai cara, dengan email, dengan link web, dsb. Para pembuat malware ini tidak berfokus pada orang tertentu. Jika kebetulan pembuat malwarenya mengamati bahwa Anda adalah target penting (atau mungkin berhubungan dengan orang penting), maka dia bisa meneruskan manual proses penyerangan.

Serangan spesifik juga bisa dilakukan, tingkat kesulitannya tergantung banyak hal. Tapi biasanya yang pertama dilakukan adalah mengenal target dulu. Kemudian titik lemahnya bisa dicari. Yang dimaksud titik lemah adalah titik manapun untuk bisa menguping: bisa HP-nya langsung, bisa account onlinenya, bisa Laptopnya, bisa routernya, dsb.

Keamanan Sistem Operasi Ponsel

Pertama perlu dicatat bahwa keamanan ponsel berbeda-beda tergantung sistem operasi dan versinya, saat ini yang paling aman adalah iPhone (sistem operasinya iOS), dan bisa dibilang yang paling tidak aman adalah Android (kebanyakan model selain yang terbaru).

Ada trade-0ff antara kenyamanan dan keamanan. Di Android hampir semua aplikasi bisa mengakses apapun, bahkan aplikasi apapun bisa diganti dengan aplikasi lain. Contoh sederhana: SMS bisa ditangani oleh program tertentu, di iOS tidak bisa. Dengan adanya akses SMS, di Android bisa ada program auto forward SMS ke email atau ke SMS lain, sementara hal ini tidak bisa di iOS.

iOS bisa dibuat jadi lebih nyaman dengan jailbreak, tapi ini mengurangi keamanannya. Dengan jailbreak, berbagai software yang tidak diijinkan Apple bisa diinstall.

Kenyamanan Android ditukar dengan keamanannya: program yang semestinya memforward SMS ke email Anda bisa saja ternyata jahat dan sekaligus memforward SMS bank Anda ke email penjahat. Di sini pengguna Android perlu belajar percaya pada pembuat aplikasi. Jika Aplikasi didapat dari Play Store resmi Google, maka kemungkinan besar aplikasi itu aman.

Akses SMS hanyalah salah satu contoh saja, masih banyak contoh lain yang dibolehkan di Android tapi tidak di iOS. Lebih mudah membuat dan menginstall aplikasi ke sebuah handset Android, dalam hitungan menit saya bisa menginstall aplikasi buatan saya ke HP orang lain, cukup dengan mengganti sedikit setting. Untuk iOS, agar bisa menginstall aplikasi kita perlu mendaftar jadi developer di situs Apple, dan jika kita tidak membayar 99 USD/tahun, aplikasi yang diinstall di device akan expired dalam seminggu.

Keamanan Aplikasi Messaging

Berbagai macam aplikasi messaging (misalnya WhatsApp, BBM, Line, Telegram) sudah sangat aman, sehingga data yang ada di perjalanan tidak bisa disadap, tapi data yang ada di ponsel bisa disadap. Jika Anda tidak percaya bahwa ada bentuk enkripsi yang tidak bisa dibuka, Anda bisa membaca artikel saya tentang ubreakable encryption.

Sekali lagi: meskipun ISP atau orang lain tidak bisa menyadap data di perjalanan, tapi data yang ada di salah satu ujung bisa disadap. Ibaratnya jika ada orang mengintip di belakang Anda waktu Anda mengetik pesan, maka orang itu akan bisa membaca pesan Anda, tidak peduli dikirim dengan metode apapun.

Yang di belakang Anda bisa ngintip

Aplikasi messaging juga perlu menyimpan data di ponsel Anda, menyimpan semua pesan masuk dan keluar. Ini ibaratnya seperti surat datang ke rumah Anda, jika surat ini ingin bisa dibaca berulang, maka perlu disimpan.

Beberapa aplikasi messaging, seperti Line menyimpan pesan di database dalam bentuk plaintext. Ini lebih mudah dibaca. Ini seperti menaruh surat di atas meja, sedangkah yang lain seperti WhatsApp dan BBM, pesan yang tersimpan di ponsel/sd card ini juga dienkripsi. Perlu dicatat bahwa ini hanya mempersulit saja, isi pesan tetap bisa dibuka, karena jika tidak bisa dibuka maka tidak mungkin bisa ditampilkan di ponsel kita. Ibaratnya kita hanya memasukkan pesan ke dalam lemari besi. Bisa dibuka, tapi kuncinya masih ada di dalam rumah.

Aplikasi lain di ponsel Anda, dalam situasi tertentu bisa mengintip seperti seseorang di belakang Anda. Aplikasi-aplikasi di ponsel itu seperti orang yang berada di “rumah” yang sama. Jika aplikasi “nakal”, maka ada kemungkinan bisa mengintip data aplikasi lain. Sekarang ini di sistem operasi yang baru sudah lebih sulit untuk bisa mengakses data aplikasi lain, tapi tetap saja terkadang masih ada celah.

Beberapa aplikasi messaging, seperti WhatsApp, Telegram dan BBM memungkinkan kita mengakses pesan di Desktop/Web. Untuk memonitor orang awam, hal ini bisa dipakai. Pinjam HP orang tersebut sebentar saja, aktifkan chat via web, dan semua pesan bisa dilihat online. Metode ini tidak akan bekerja untuk orang yang aware dengan security. WhatsApp akan menampilkan bahwa koneksi web aktif dan notifikasi ini tidak bisa dihilangkan dengan swipe.

 

Notifikasi Web WhatsApp

Line hanya menampilkan pesan sekali dan bisa diswipe, jadi kalau seseorang baru saja meminjam HP dan login ke Line di PC, tidak akan terlihat dengan mudah.

Saat ini untuk Line kita harus pergi ke Settings, Account, Devices. Parahnya lagi jika seseorang sudah logout, tapi sempat sebelumnya login, kita tidak bisa mengeceknya (tidak ada historynya).

 

Informasi device yang login di Linux

Sebagai catatan tambahan: ada banyak aplikasi baik mobile app maupun web online untuk membuat chat palsu, baik WhatsApp ataupun yang lain. Bagaimana membuktikan keasliannya? hanya dengan akses ponsel orang tersebut, dan melakukan proses forensik yang benar. Benar di sini artinya terdokumentasi dengan jelas semua proses akuisisi datanya, supaya yakin tidak ada tampering (modifikasi) terhadap data yang diselidiki.

Screenshot posting Facebook/instagram atau apapun juga gampang dipalsukan.  Saya kadang tertawa melihat banyak kubu yang yang share bahwa chat WA gampang dipalsukan, tapi di posting berikutnya memposting fitnah kepada seseorang berdasarkan screenshot Facebook yang mungkin juga palsu.

Keamanan Account Online

Rasanya tidak ada orang yang memakai smartphone tanpa account online, baik itu email, Facebook, Instagram, maupun layanan lainnya. Sangat penting untuk mengamankan account-acount tersebut.

Contoh: Jika seseorang memiliki akses ke account facebook Anda, maka orang itu bisa melihat semua foto dan pesan yang pernah Anda kirim di Facebook messenger tanpa perlu akses ke HP Anda. Jika seseorang memiliki akses email, maka orang tersebut bisa mereset banyak password (misalnya password Facebook).

Contoh lain kejadian besar yang pernah terjadi adalah bocornya foto-foto artis dari iCloud dari berbagai artis terkenal. Jika mungkin aktifkan Two Factor Authentication, agar ketika login dibutuhkan token tambahan.

Sebagai catatan, berbagai macam hack yang dilakukan berikutnya biasanya tujuan utamanya adalah: menginstall aplikasi di ponsel Anda yang menjadi “mata-mata”. Sebuah ponsel adalah komputer mini.

If someone can persuade you to run his program on your computer, it’s not your computer anymore.

David Salomon (Elements of Computer Security)

Keamanan Komputer Desktop/Laptop

Bagian ini ditujukan bagi mereka yang menghubungkan komputernya ke ponsel, untuk backup/sinkronisasi, atau untuk pembuatan aplikasi (khusus untuk developer). Bayangkan saja kejadian seperti kasus Panic.com yang saya sebutkan di atas.

Jika seseorang mengambil alih komputer Anda dengan malware/RAT (Remote Access Trojan), dan Anda menghubungkan ponsel ke komputer, maka data dari ponsel biasanya bisa diambil. Apalagi jika ternyata datanya memang sudah dibackup di komputer Anda, maka tinggal diambil tanpa repot masuk ke ponsel Anda.

Pada kebanyakan komputer orang awam yang saya cek, biasanya saya menemukan malware jinak. Biasanya malware tersebut hanya mengganti search engine yang default, menampilkan popup, dsb, malware yang menghasilkan uang recehan dari iklan. Kalau software jinak bisa dengan mudah masuk, tentunya yang ganas pun kemungkinan masuknya cukup besar.

Jika punya akses fisik ke komputer yang tidak dipassword, maka serangannya cukup mudah, cukup install sebuah aplikasi dari USB atau dari Internet.

Keamanan Koneksi Data

Meskipun secara umum program messaging saat ini sudah aman terhadap penyadapan online, tapi keamanan koneksi data tetap perlu diperhatikan, karena bisa menjadi batu loncatan untuk serangan lain. Perlu dicatat bahwa di ponsel ada puluhan aplikasi, tidak semuanya memakai HTTPS untuk melakukan koneksi data. Jika salah satu aplikasi ini bisa dibajak, maka bisa menjadi batu loncatan masuk ke ponsel secara umum.

Jika Anda melakukan koneksi via WIFI, seseorang bisa membuat access point dengan nama dan password yang sama, dan kebanyakan ponsel akan otomatis melakukan koneksi ke access point tersebut.

Banyak modem ADSL atau fiber di Indonesia yang tidak aman, seseorang bisa gampang masuk. Bahkan baru-baru ini modem-modem di Indonesia pernah dijadikan bagian dari botnet. Di rumah biasanya modem ini terhubung ke komputer, atau ke ponsel melalui WIFI. Biasanya ada beberapa device (komputer/laptop/game console) yang terhubung.

Kadang kalau saya sedang iseng chat dengan seseorang, saya memberikan URL ke server saya yang akan diklik orang tersebut. Dari server saya bisa melihat alamat IP orang tersebut. Dari alamat IP kadang saya bisa masuk ke dalam modemnya.

Dari modem saya bisa melakukan banyak hal, tergantung kecanggihan modemnya. Beberapa modem berbasis Linux sudah sangat canggih, saya bisa langsung melakukan serangan ke rumah orang tersebut dengan sangat mudah.

Beberapa modem fiturnya sangat sederhana, tapi inipun sudah cukup untuk masuk. Contohnya yang bisa dilakukan di modem jenis murahan adalah mengganti alamat server DNS (Domain Name System) di modem.

Server DNS adalah server yang menerjemahkan nama menjadi alamat. Jika saya ganti DNS menjadi milik saya, maka  saya bisa melihat domain situs mana yang dikunjungi orang tersebut (dan biasanya jadi tahu aplikasi mana yang dipakai orang tersebut).

Jika saya tahu bahwa salah satu domain yang dikunjungi ternyata tidak memakai HTTPS, saya bisa mengarahkan domain tersebut ke server saya, yang memforward requestnya ke server asli. Hasilnya: saya bisa melihat koneksi yang dilakukan, saya bisa tahu sistem operasi apa yang dipakai di ponsel atau komputer di rumah tersebut (baik dari User-Agent saja, atau dari javascript yang disisipkan di web). Jika saya sudah yakin akan sebuah target (misalnya ada PC Windows), saya bisa mengeset firewall di modem untuk mengijinkan koneksi dari luar masuk ke PC yang spesifik.

Semua yang saya bicarakan di atas adalah sesuatu yang sifatnya real dan bisa dilakukan relatif mudah (bahkan kedua adik saya mengganti modem mereka setelah saya berhasil masuk).

Sebagai catatan tambahan: modem 4G juga banyak yang memakai Linux. Jika seseorang cukup punya niat, maka modem 4G juga bisa ditukar (atau diflash ulang) dengan firmware yang berisi backdoor. Beberapa investigasi awal sudah dilakukan teman saya y3dips terhadap modem Bolt.

Keamanan benda lain

Saya tidak bisa mengcover semua hal yang mungkin bisa menjadi jalan masuk untuk penyerang. Ada banyak teknologi baru terus bermunculan, dan ada risiko baru. Contoh: banyak smartwatch yang bisa dijadikan unlock method, artinya ponsel tidak akan meminta passcode atau PIN jika smartwatch itu di dekat ponsel.

Meskipun itu sangat praktis, tapi juga jadi jalan masuk baru. Jika Anda sedang mandi dan meninggalkan ponsel dan smartwatch Anda di luar, maka seseorang mudah sekali mengakses ponsel tanpa perlu tahu PIN/Password.

Di masa lalu, charger USB juga dengan mudah bisa mencuri data kita karena tidak diperlukan otorisasi dari pengguna. Sekarang HP sudah akan menanyakan: Allow access to device data? atau semacam itu jika HP dihubungkan ke komputer  atau device lain yang berusaha mengakses data. Tentunya walaupun ada pengamanan ekstra ini, pengguna awam yang masih saja menekan: Yes, akan tetap kena.

Penutup

Posting bagian ini sekedar menunjukkan dua hal. Pertama Anda tidak harus jadi orang penting atau terkenal untuk disadap, dan kedua: ada banyak cara untuk masuk ke ponsel seseorang. Cara-cara ini ada yang sangat mudah, dan ada juga yang cukup rumit dan butuh waktu.

Jika seseorang memiliki niat dan dana untuk menyadap Anda, kemungkinan besar mereka akan bisa melakukannya.

Unbreakable Encryption

“Emangnya nggak bisa dibongkar virusnya?”. Masih terkait dengan ransomware. Banyak orang yang sulit menerima bahwa dalam kasus tertentu tidak ada cara membongkar file yang terenkripsi tanpa mengetahui keynya walaupun kita bisa membongkar algoritmanya sampai sangat detail.

Konsep yang sepertinya sulit diterima oleh orang awam yang tidak memiliki dasar dalam kriptografi: bahwa ada kriptografi yang tidak bisa dijebol meskipun kita tahu dengan tepat apa algoritmanya. Bahwa satu-satunya cara menjebol adalah dengan mengetahui kunci-nya. Dan bahwa kadang satu-satunya cara mencari keynya adalah dengan mencoba semua kemungkinan yang ada yang jumlahnya sangat besar.

Enkripsi Simetrik

Mari kita mulai dengan satu konsep kriptografi yang sederhana: one time pad. Ini adalah bentuk enkripsi sangat sederhana, tapi tidak mungkin bisa dipecahkan tanpa mengetahui key-nya. Dalam one time pad, keynya harus sama panjangnya atau lebih panjang dari pesan yang akan kita enkrip, dan keynya hanya boleh dipakai sekali.

Saya contohkan sederhana sekali: anggap huruf A=1, B=2, C=3, … , Z=26 dan 0 adalah spasi.  Sekarang jika saya punya pesan rahasia ini:XYZABCD. Apakah isi pesannya? Kuncinya adalah serangkaian bilangan, bisa negatif ataupun positif. Continue reading “Unbreakable Encryption”

Ransomware WannaCry

Posting ini sekedar klarifikasi untuk berbagai misinformasi mengenai ransomware, khususnya WannaCry/WannaCrypt yang baru saja beredar. Sejujurnya saya malas menuliskan ini, tapi nggak tahan juga melihat banyak informasi salah yang beredar. Sekalian juga saya bahas Ransomware secara umum baik penyebaran maupun penanganannya. Posting ini akan saya update jika ada sesuatu yang baru.

Ransomware adalah jenis malware (software jahat) yang mengenkripsi data milik korban lalu meminta tebusan uang (biasanya melalui bitcoin) agar file korban bisa dibuka lagi. Ransomware bisa menyebar melalui email, website, network share, ataupun media lain. Khusus untuk WannaCry, malware ini juga memanfaatkan bug di OS Windows. Jika komputer Windows di jaringan yang sama belum diupdate (dan setting SMB-nya belum diubah), maka tanpa melakukan apapun, komputer tersebut bisa kena. Continue reading “Ransomware WannaCry”