Eksploitasi BadUSB mematikan, tetapi hanya sedikit yang terkena

Sembilan tahun yang lalu, saya mencipta apa yang saya percaya adalah cacing USB pertama di dunia. Dengan bermain-main dengan pemacu ibu jari USB dan meletakkan fail tersembunyi di atasnya, saya dapat membuat komputer di mana pemacu USB "dijangkiti" terpasang ke secara automatik menyebarkan fail ke komputer host, dan kembali lagi ketika USB baru peranti dipasang.

Ia berfungsi dalam kamera digital dan telefon bimbit. Saya dapat mendapatkan sebarang peranti USB - sebenarnya, mana-mana peranti media yang boleh ditanggalkan - untuk menjalankan fail worm saya. Saya seronok bermain dengannya.

Saya melaporkan penemuan itu kepada majikan saya dan penjual yang terlibat; mereka pada gilirannya meminta kesunyian saya untuk sejumlah masa, sehingga mereka dapat menutup lubang. Saya telah merancang untuk menyampaikan penemuan saya di sebuah persidangan keselamatan nasional yang besar dan harus memilih antara kepercayaan penggodam yang diperoleh dan keselamatan awam. Saya pergi dengan yang terakhir.

Sejujurnya, saya tidak mahu mengecewakan vendor ini kerana ia mungkin bakal pelanggan atau majikan. Lubangnya ditambal, dan orang ramai tidak lebih bijak. Bertahun-tahun kemudian, saya terkejut melihat kaedah yang sangat serupa yang digunakan dalam program malware Stuxnet.

Tetapi pengalaman saya menjadikan saya tidak pernah mempercayai peranti yang terpasang lagi. Sejak itu, saya tidak pernah memasang peranti USB atau kad media yang boleh ditanggalkan ke komputer yang saya miliki yang tidak berasal dan tetap berada di bawah kawalan saya. Kadang-kadang, paranoia sesuai.

BadUSB adalah ancaman serius sekarang di alam liar

Itu membawa saya ke hari ini. Kini ada diposting di GitHub kod sumber untuk BadUSB (tidak boleh dikelirukan dengan program malware palsu yang disebut BadBIOS), yang menjadikan percubaan saya sembilan tahun lalu kelihatan seperti permainan kanak-kanak. BadUSB adalah ancaman nyata yang membawa kesan serius kepada peranti input perkakasan komputer.

BadUSB menulis - atau menimpa - kod firmware peranti USB untuk melakukan tindakan jahat. Pertama kali diumumkan pada bulan Julai 2014, BadUSB ditemui oleh sepasang penyelidik komputer di Security Research Labs di Berlin, yang kemudian menunjukkan penemuan mereka di Black Hat Conference.

Serangan itu dikhuatiri kerana semua kaedah tradisional untuk memeriksa niat jahat pada peranti storan USB tidak berfungsi. Kod jahat dimasukkan ke dalam firmware USB, yang dijalankan semasa peranti dipasang ke host. Host tidak dapat mengesan kod firmware, tetapi kod firmware dapat berinteraksi dan mengubah perisian pada komputer hos.

Kod firmware yang berniat jahat boleh menanam perisian hasad lain, mencuri maklumat, mengalihkan lalu lintas Internet, dan banyak lagi - sambil melewati imbasan antivirus. Serangan itu dianggap sangat berkesan dan berbahaya sehingga para penyelidik hanya melakukan eksploitasi. Dengan berhati-hati, mereka tidak melepaskan kod bukti konsep atau peranti yang dijangkiti. Tetapi dua penyelidik lain merekayasa ulang eksploit tersebut, membuat kod demonstrasi, dan mengeluarkannya ke dunia di GitHub.

Ikuti drama yang sudah muncul di laman berita dan teknologi pengguna seperti CNN, Atlanta Journal-Constitution, the Register, dan PC Magazine, sambil berseru, "Dunia akan penuh dengan peranti USB jahat!"

Mengapa eksploitasi BadUSB melampaui USB

Pertama, penting untuk menyedari bahawa ancaman itu nyata. Firmware USB boleh diubah untuk melakukan apa yang dituntut oleh saintis penyelidikan. Penggodam di seluruh dunia mungkin memuat turun kod bukti konsep, membuat peranti USB yang berniat jahat, dan menggunakan kod bukti-konsep sebagai titik pelancaran untuk tindakan yang jauh lebih berbahaya daripada eksploitasi ujian penyelidik.

Kedua, masalahnya tidak terhad pada peranti USB. Sebenarnya, peranti USB adalah puncak gunung es. Mana-mana peranti perkakasan yang dipasang ke komputer anda dengan komponen firmware mungkin boleh dibuat jahat. Saya bercakap mengenai peranti FireWire, peranti SCSI, cakera keras, peranti DMA dan banyak lagi.

Agar peranti ini berfungsi, firmware mereka harus dimasukkan ke dalam memori peranti host di mana ia kemudian dijalankan - supaya perisian hasad dapat berjalan dengan mudah untuk perjalanan tersebut. Mungkin ada peranti firmware yang tidak dapat dimanfaatkan, tetapi saya tidak tahu sebab mengapa tidak.

Firmware sememangnya tidak lebih dari arahan perisian yang disimpan pada silikon. Pada peringkat asasnya, ini hanyalah pengaturcaraan perisian. Dan firmware diperlukan untuk membolehkan peranti perkakasan bercakap dengan peranti komputer hos. Spesifikasi API peranti memberitahu pengaturcara peranti bagaimana menulis kod yang menjadikan peranti berfungsi dengan baik, tetapi spesifikasi dan arahan ini tidak pernah disusun dengan mempertimbangkan keamanan. Tidak, mereka ditulis untuk mendapatkan item untuk bercakap antara satu sama lain (seperti Internet).

Tidak memerlukan banyak arahan pengaturcaraan untuk membolehkan aktiviti berbahaya. Anda boleh memformat kebanyakan peranti storan atau "bata" komputer dengan beberapa petunjuk. Virus komputer terkecil yang pernah ditulis hanya berukuran 35 bait. Beban muatan dalam contoh bukti konsep GitHub hanya 14K, dan ia merangkumi banyak kesalahan ralat dan pengekodan yang tepat. Percayalah, 14K kecil dalam dunia perisian hasad sekarang ini. Sangat mudah untuk membenamkan dan menyembunyikan perisian hasad di mana-mana pengawal firmware.

Sebenarnya, ada kemungkinan besar penggodam dan negara telah lama mengetahui dan menggunakan firmware ini di luar rumah. Pemerhati NSA telah membuat spekulasi panjang lebar mengenai peranti tersebut, dan kecurigaan ini disahkan oleh dokumen NSA yang baru dikeluarkan.

Kebenaran yang menakutkan adalah bahawa penggodam telah menggodam peranti firmware dan memaksa mereka melakukan tindakan yang tidak sah selama firmware telah ada.

BadUSB adalah ancaman terbesar yang boleh anda hilangkan dari senarai panik anda

Kenyataannya ialah anda semestinya sedikit gementar dengan peranti firmware yang dipasang ke komputer anda - USB atau sebaliknya - untuk masa yang lama. Saya sudah hampir sedekad.

Satu-satunya pertahanan anda ialah anda memasang peranti firmware dari vendor yang anda percayai dan menyimpannya di bawah kawalan anda. Tetapi bagaimana anda tahu bahawa peranti yang anda pasangkan belum dikompromikan secara besar-besaran atau tidak diusik antara vendor dan komputer anda? Kebocoran dari Edward Snowden menunjukkan bahawa NSA telah memintas komputer dalam perjalanan untuk memasang peranti mendengar. Tentunya pengintip dan penggodam lain telah mencuba taktik yang sama untuk menjangkiti komponen di sepanjang rantaian bekalan.

Namun, anda boleh berehat.

Perkakasan berniat jahat mungkin berlaku dan mungkin digunakan dalam beberapa senario terhad. Tetapi tidak mungkin tersebar luas. Peretasan perkakasan tidak mudah. Ia memerlukan banyak sumber. Set arahan yang berbeza digunakan untuk set cip yang berbeza. Kemudian ada masalah yang menyedihkan apabila mangsa yang dimaksudkan menerima alat jahat dan memasukkannya ke dalam komputer mereka. Untuk sasaran yang sangat tinggi, serangan gaya "Mission Impossible" seperti itu masuk akal, tetapi tidak begitu banyak bagi Joe yang rata-rata.

Penggodam hari ini (termasuk agensi perisik di Amerika Syarikat, Inggeris, Israel, China, Rusia, Perancis, Jerman, dan sebagainya) menikmati kejayaan yang jauh lebih banyak menggunakan kaedah jangkitan perisian tradisional. Sebagai contoh, sebagai penggodam, anda boleh membina dan menggunakan alat serangan hypervisor Blue Pill yang canggih dan hebat atau menggunakan program Trojan perisian sehari-hari biasa yang telah berfungsi dengan baik selama beberapa dekad untuk menggodam sejumlah besar orang.

Tetapi andaikan peranti firmware atau USB jahat mula muncul secara meluas? Anda boleh yakin bahawa vendor akan bertindak balas dan menyelesaikan masalahnya. BadUSB tidak memiliki pertahanan hari ini, tetapi dapat dengan mudah dipertahankan di masa depan. Bagaimanapun, itu hanyalah perisian (disimpan dalam firmware), dan perisian dapat mengalahkannya. Badan standard USB mungkin akan mengemas kini spesifikasi untuk mencegah serangan tersebut, vendor mikrokontroler akan membuat niat jahat cenderung berlaku daripada firmware, dan vendor sistem operasi mungkin akan bertindak balas lebih cepat.

Sebagai contoh, beberapa vendor sistem operasi sekarang menghalang peranti DMA daripada mengakses memori sebelum komputer boot sepenuhnya atau sebelum pengguna log masuk, semata-mata untuk mengelakkan serangan yang dijumpai datang dari peranti DMA yang dipasang. Windows 8.1, OS X (melalui kata laluan Open Firmware), dan Linux mempunyai pertahanan terhadap serangan DMA, walaupun biasanya mereka memerlukan pengguna untuk mengaktifkan pertahanan tersebut. Jenis pertahanan yang sama akan dilaksanakan sekiranya BadUSB tersebar luas.

Jangan takut kepada BadUSB, walaupun rakan penggodam memutuskan untuk memperdayakan anda menggunakan pemacu ibu jari USB yang dikod jahat. Jangan seperti saya - jangan gunakan peranti USB yang tidak berada di bawah kawalan anda sepanjang masa.

Ingat: Sekiranya anda bimbang akan diretas, jauh lebih bimbang tentang apa yang berjalan di penyemak imbas anda daripada yang berjalan dari firmware anda.