2 poin oleh GN⁺ 2024-04-07 | 1 komentar | Bagikan ke WhatsApp
  • Backdoor sshd pada xz sebagian memicu jalur kode tambahan yang lebih sulit dijangkau, melampaui hook RSA_public_decrypt yang pertama terungkap
  • Alur serangan memasang hook mm_answer_keyallowed dengan 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_id dari KEX
  • PoC saat ini menggunakan library klien SSH paramiko yang dimodifikasi besar-besaran, dan perintah 0x03 memungkinkan RCE berbasis system() serta pengaturan uid/gid
  • Bypass autentikasi juga telah dikonfirmasi; jika respons mm_answer_authpassword ditimpa dengan mm_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_keyallowed milik sshd
    • Setelah itu, beberapa kunci publik ssh-rsa palsu diberikan untuk memecah dan menggabungkan “magic buffer
  • “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_id 0x20 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 0x03 pada jalur kode ini
    • Kembali memungkinkan RCE dasar melalui system()
    • Juga mendukung pengaturan uid/gid
  • Masih ada lebih banyak kode yang perlu dipahami, dan karena salah satu perintah backdoor mm_answer_keyallowed pada akhirnya juga meng-hook mm_answer_keyverify, tampaknya bypass autentikasi penuh untuk sesi interaktif dimungkinkan
  • Kemudian bypass autentikasi dikonfirmasi
    • mm_keyallowed_backdoor cmd 1 dapat menimpa respons mm_answer_authpassword dengan 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

 
GN⁺ 2024-04-07
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

    • Sepertinya ekspektasi orang terlalu tinggi saat mendengar “disponsori negara”. Organisasi besar pada akhirnya menjadi mirip organisasi besar lainnya: mengalami birokrasi, tenggat, siklus rilis, dan masalah komunikasi antartim
      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
    • Tidak sulit dipercaya bahwa orang-orang yang mengembangkan kode itu tidak sekaligus menjalankan Valgrind sambil memantau performa
      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
    • Pada 2024-02-29, ada PR yang diajukan agar libsystemd tidak menautkan liblzma [0]
      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...
    • Kalau Google saja bisa merilis Gemini begitu saja, apakah sebegitu sulit dipercaya bahwa organisasi bayangan seperti ini gagal dengan cara yang lebih halus?
      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
    • Kecelakaan juga bisa terjadi pada organisasi yang disponsori negara dan kompeten. Badan intelijen pun kadang tidak sekompeten dan sedingin yang kita bayangkan. Upaya pembunuhan oleh Kremlin di Inggris hampir seperti komedi kesalahan [1]
      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”

    • Ini masuk akal kalau kita menganggap ada tim di balik akun tersebut. Seseorang mungkin mengembangkan fiturnya, lalu orang lain yang lebih ceroboh atau kurang berpengalaman mengintegrasikannya
      Orang lain lagi mungkin mengelola akun-akun palsu dan berinteraksi di komentar serta PR
    • Mungkin saya naif atau terlalu mudah percaya, tetapi setiap kali khawatir bahwa backdoor semacam ini sudah tersebar luas, saya teringat hal ini
      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
    • Kalau ingatan saya benar, regresi performa hanya terjadi ketika kode dikompilasi dengan -fno-omit-frame-pointer yang bukan default. https://mastodon.social/@AndresFreundTec/112187000944648334
    • Jika mereka punya cukup waktu dan melakukan lebih banyak pengujian lokal, kemungkinan besar ini berhasil
      Saya yakin patch @teknoraver pada libsystemd mengubah tenggat waktu mereka
    • Apakah ungkapan “kalau bisa memikirkan setengahnya saja” juga berlaku bagi pihak yang mencoba memecahkan kasus pembunuhan?
  • 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?

    • Faktor terbesar yang membuat orang terpikir pada aktor negara adalah besarnya imbalan yang diharapkan dibanding waktu yang dicurahkan untuk serangan rekayasa sosial
      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
    • Setuju. Peretasan ini membutuhkan banyak keterampilan, tekad, dan waktu
      Tapi bukankah itu juga berlaku bagi cukup banyak pengembang open source. Motivasinya juga jelas. Exploit ini mungkin bernilai jutaan dolar di pasar gelap
    • Tidak ada. Tidak ada yang tahu siapa dia
    • Saya penasaran dari mana Anda melihat dasar untuk istilah “bukti yang tak terbantahkan”
      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

    • Analisis lengkap terhadap backdoor itu sendiri belum keluar. Ada jenis anti-debugging yang bisa dilewati dengan flag, tetapi kali ini ditangani pada tahap kompilasi, jadi agak lebih rumit
      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

    • “Namun saya berpendapat dia sebenarnya berasal dari zona waktu UTC+02 musim dingin/UTC+03 DST, yaitu wilayah yang mencakup Eropa Timur (EET) atau Israel (IST)”
      https://rheaeve.substack.com/p/xz-backdoor-times-damned-time...
    • Ada banyak spekulasi. Kemungkinan besar lebih dari satu orang, dan tampaknya mungkin organisasi ransomware atau badan intelijen negara
    • Seperti saat analisis Satoshi, akan menarik jika komunikasi persona-persona online terkait dianalisis secara semantik untuk memperkirakan arah budaya mereka
      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
    • Apa yang mau didiskusikan? Tidak ada apa pun yang diketahui
  • 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

    • Kalau payload-nya berupa kunci RSA privat, bukankah itu hampir mustahil?
  • 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