Rabbit hole backdoor xz sshd ternyata jauh lebih dalam dari perkiraan
(twitter.com/bl4sty)- Backdoor sshd pada xz sebagian memicu jalur kode tambahan yang lebih sulit dijangkau, melampaui hook
RSA_public_decryptyang pertama terungkap - Alur serangan memasang hook
mm_answer_keyalloweddengan perintah yang dimanipulasi, lalu merakit buffer perintah menggunakan beberapa kunci publik ssh-rsa palsu - “magic buffer” ini berisi perintah backdoor tambahan dan 2 tanda tangan ed448; tanda tangan tersebut mencerminkan digest SHA256 host key dan
session_iddari KEX - PoC saat ini menggunakan library klien SSH paramiko yang dimodifikasi besar-besaran, dan perintah
0x03memungkinkan RCE berbasissystem()serta pengaturan uid/gid - Bypass autentikasi juga telah dikonfirmasi; jika respons
mm_answer_authpasswordditimpa denganmm_keyallowed_backdoor cmd 1, login dapat dilakukan dengan kata sandi apa pun
Jalur backdoor yang terhubung lebih dalam
- Backdoor xz sshd mencakup fungsi yang lebih dalam daripada perilaku yang pertama diketahui, dan sebagian sudah dalam kondisi terpicu secara langsung
- Titik masuk utamanya adalah hook
RSA_public_decrypt- Jika mengirim perintah yang dibuat dengan benar, hook lain dipasang pada fungsi
mm_answer_keyallowedmiliksshd - Setelah itu, beberapa kunci publik
ssh-rsapalsu diberikan untuk memecah dan menggabungkan “magic buffer”
- Jika mengirim perintah yang dibuat dengan benar, hook lain dipasang pada fungsi
- “magic buffer” adalah buffer yang memuat perintah backdoor tambahan
- Di dalamnya juga terdapat 2 tanda tangan ed448
- Tanda tangan ini diberi salt dengan digest SHA256 host key, seperti tanda tangan backdoor di sisi
RSA_public_decrypt - Tanda tangan terakhir juga mencerminkan
session_id0x20 byte yang diturunkan dari pertukaran kunci awal SSH (KEX)
PoC dan bypass autentikasi
- PoC saat ini diimplementasikan dengan library klien SSH paramiko yang dimodifikasi besar-besaran
- Perintah yang saat ini terpicu adalah
0x03pada jalur kode ini- Kembali memungkinkan RCE dasar melalui
system() - Juga mendukung pengaturan uid/gid
- Kembali memungkinkan RCE dasar melalui
- Masih ada lebih banyak kode yang perlu dipahami, dan karena salah satu perintah backdoor
mm_answer_keyallowedpada akhirnya juga meng-hookmm_answer_keyverify, tampaknya bypass autentikasi penuh untuk sesi interaktif dimungkinkan - Kemudian bypass autentikasi dikonfirmasi
mm_keyallowed_backdoor cmd 1dapat menimpa responsmm_answer_authpassworddengan nilai yang ditentukan pengguna- Jika respons disetel ke
{ u32(9), u8(13), u32(1), u32(0) }, login bisa dilakukan dengan kata sandi apa pun
1 komentar
Pendapat Hacker News
https://threadreaderapp.com/thread/1776691497506623562.html
Kasus ini terasa aneh karena di satu sisi terlihat sangat profesional, tetapi di sisi lain cukup amatir
Mereka membangun identitas tepercaya cukup lama hingga bisa menjadi maintainer paket penting, melancarkan serangan rekayasa sosial yang tampaknya melibatkan beberapa orang, tidak mengungkap identitas asli maupun sumber serangan, dan obfusikasinya juga canggih
Namun tetap saja, fakta bahwa bug dan regresi performa masuk ke versi produksi terlihat ceroboh. Kalau organisasi yang disponsori negara benar-benar kompeten, rasanya mereka akan mengujinya secara tertutup dengan cukup sebelum mengirimkannya ke proyek publik, sehingga penurunan performa yang bisa menimbulkan kecurigaan dapat dihilangkan
Kasus iOS baru-baru ini yang “mungkin backdoor” juga menunjukkan bahwa organisasi yang menimbun banyak kerentanan tidak selalu terlalu peduli ketika sebagian di antaranya terbuang
Targetnya adalah server dan appliance, dan berapa banyak server atau appliance yang menjalankan Valgrind pada image bawaan? Jika dipikir lagi memang terasa “kenapa mereka tidak terpikir itu”, tetapi kemungkinan besar mereka menguji dengan image sistem yang mereka incar, bukan dengan image kustom milik developer umum
Kevin Beaumont berspekulasi bahwa “Jia Tan” melihat ini dan segera menyadari backdoor tersebut bisa dinetralkan, sehingga ia terburu-buru agar kerja besar yang sudah dimasukkan ke eksploit ini tidak sia-sia [1], dan tampaknya itu masuk akal
Karena tekanan tenggat itu, 5.6.0 mengalami crash, dan mungkin tidak ada cukup waktu untuk memolesnya guna mengurangi atau menghilangkan regresi performa yang menjadi penyebab utama kasus ini tertangkap
[0]: https://github.com/systemd/systemd/pull/31550
[1]: https://doublepulsar.com/inside-the-failed-attempt-to-backdo...
Seperti yang dilihat Patrick McKenzie di tempat lain, organisasi kriminal pun bergerak dengan komite dan konsensus, mirip organisasi nonkriminal. Dilihat begitu, kapal yang tenggelam karena penurunan performa akibat bloat fitur juga bisa dimengerti. Perusahaan-perusahaan tempat saya bekerja pernah membuat kesalahan yang lebih amatir lagi
Mungkin saja backdoor lain atau sarana akses alternatif yang mereka gunakan tertutup, sehingga mereka mendadak membutuhkan jalur baru
[1] https://en.wikipedia.org/wiki/Poisoning_of_Alexander_Litvine...
Yang benar-benar menarik di sini adalah kecanggihannya, tetapi akhirnya tertangkap karena regresi performa yang cukup mencolok
Saya teringat kutipan dari program kriminal nyata. “Ada sejuta cara untuk tertangkap karena pembunuhan, dan kalau kau bisa memikirkan setengahnya saja, kau jenius”
Orang lain lagi mungkin mengelola akun-akun palsu dan berinteraksi di komentar serta PR
Saya tidak tahu apakah kali ini mereka hanya sial hingga ketahuan, atau serangan semacam ini memang terlalu sulit untuk benar-benar berhasil. Saya berharap yang kedua, tetapi sebenarnya kita tidak tahu
Saya yakin patch @teknoraver pada libsystemd mengubah tenggat waktu mereka
Dalam insiden seperti ini, ketika banyak tulisan teknis yang menggali detail secara mendalam bermunculan, saya sering heran kenapa semua orang berkata “ini pasti disponsori negara”, “lihat timestamp-nya, itu bukti yang tak terbantahkan”
Memang benar kasus xz ini serangan yang senyap dan dipersiapkan lama, tetapi apakah benar diperlukan sesuatu yang melampaui satu individu yang sangat kompeten? Fakta bahwa individu-individu acak di internet bisa menganalisis dan memahaminya juga berarti ini berada dalam cakupan yang bisa dipahami satu orang
Kenapa tidak mungkin ini dilakukan sendirian oleh satu orang yang pintar tetapi menyimpan ketidakpuasan?
Skema berorientasi laba dengan cara seperti ini tidak rasional. Itu tidak menutup kemungkinan pelakunya aktor tidak rasional atau individu dengan motivasi selain uang, tetapi membuat aktor negara tampak sebagai kandidat kuat
Kalau berhasil, nilainya untuk dijual akan luar biasa besar, tetapi probabilitas memasukkan exploit ke infrastruktur utama lalu tetap tidak terdeteksi cukup lama sampai ada pelanggan yang membeli dan memakainya sangat rendah. Negara bisa menanggung moonshot, sedangkan individu cenderung mencari target dengan nilai harapan yang lebih tinggi, menurut saya
Tentu saja, itu tidak berarti pelakunya aktor negara yang kompeten atau mengalokasikan banyak sumber daya
Tapi bukankah itu juga berlaku bagi cukup banyak pengembang open source. Motivasinya juga jelas. Exploit ini mungkin bernilai jutaan dolar di pasar gelap
Saya melihat banyak dugaan dari orang-orang yang paham, tetapi tidak pernah melihat ungkapan seperti itu
Apakah ada tulisan yang merangkum obfuscation pada backdoor itu sendiri? Maksud saya bukan skrip build untuk instalasi, melainkan backdoor yang sebenarnya
Saya memasukkan binarinya ke Ghidra dan menelusuri fungsi-fungsi yang ditemukan, tetapi karena tidak familier dengan mekanisme ifunc yang dipakai untuk membajak eksekusi, saya menyerah dan menyerahkannya kepada orang lain
Karena ada fitur anti-debugging, saya menganggap kodenya juga diobfuscate. Karena didistribusikan sebagai binari yang tidak transparan, saya sempat berpikir setidaknya sebagian kode dienkripsi dengan kunci yang tidak kita miliki. Seperti sebagian payload STUXNET
Adanya fitur anti-debugging tidak berarti kodenya pasti diobfuscate. Seperti disebutkan di atas, karena itu dilakukan saat build. Ibaratnya sudah memasang perangkap di rumah sendiri
Kejadian ini menunjukkan masalah yang muncul ketika pengelola paket tidak mengambil source dari asal yang benar
Saya tidak mengikuti kasus ini dengan sangat rinci, tetapi sangat aneh bahwa hampir tidak terdengar diskusi tentang pelaku peretasan ini
https://rheaeve.substack.com/p/xz-backdoor-times-damned-time...
Dengan melihat apakah gaya tulisan berubah seiring waktu, kita juga bisa menilai apakah beberapa orang beroperasi di bawah persona yang sama. Kode yang di-commit juga cukup banyak, jadi perbedaan gaya kode layak dilihat untuk menilai apakah lebih dari satu orang terlibat
Cukup beruntung ini ditemukan sebelum menyebar luas
Alasannya bukan hanya hal yang jelas, bahwa kita tidak ingin entitas tak dikenal memiliki remote code execution di infrastruktur kita. Jika orang-orang terus menggalinya, pada akhirnya ada kemungkinan mereka akan membuat payload yang memungkinkan siapa pun memakai backdoor itu
Satu entitas memiliki akses saja sudah buruk, tetapi akses yang bisa dipakai siapa saja jauh lebih buruk
Tautan yang bisa dilihat sebagai pengganti thereaderapp.com:
https://nitter.poast.org/bl4sty/status/1776691497506623562
Mengejutkan bahwa setelah beberapa hari pun ini belum sepenuhnya terurai
Dengan mata seluruh dunia tertuju ke sana dan potongan-potongan kuncinya secara teori sudah terbuka, fakta bahwa ini bisa bertahan sejauh ini berarti obfuscation-nya cukup bagus
Yang mengkhawatirkan dari kasus ini adalah sifatnya sebagai permainan jangka panjang
Pertama, mereka menunggu lama untuk membangun “infrastruktur” guna membuat backdoor. Kedua, setelah exploit benar-benar menyebar ke produksi, mereka mungkin sudah menyiapkan permainan jangka panjang lainnya. Cara yang benar untuk memakai hadiah lotre adalah berinvestasi
Ketiga, saya jadi bertanya-tanya apakah permainan seperti ini masih berlangsung sekarang. Mengerikan