1 poin oleh GN⁺ 2024-07-21 | 1 komentar | Bagikan ke WhatsApp

1 komentar

 
GN⁺ 2024-07-21
Komentar Hacker News
  • Untuk sistem yang berada di jalur kritis seperti ini, seharusnya tidak mungkin lolos dari pipeline CI yang benar
    Saya bukan orang yang sangat ketat soal pengujian otomatis, tetapi untuk sistem sepenting ini, pengelolaan statusnya harus luar biasa baik
    Seharusnya tidak boleh ada deployment produksi tanpa uji integrasi untuk semua lingkungan yang diklaim didukung, dan tidak masuk akal jika perusahaan sebesar dan sepenting ini bahkan tidak punya server staging atau pengujian pengembangan yang memvalidasi seluruh image yang didukung

    • Terlalu banyak asumsi padahal belum ada informasi lebih lanjut. Misalnya, bisa saja sebenarnya ada file yang normal, dan titik gagalnya ada pada kode yang mengunggah artefak tervalidasi ke CDN
      Kalau begitu, masalah baru bisa muncul setelah melewati banyak pemeriksaan sebelum deployment. Saya tidak ingin buru-buru menyimpulkan bahwa mereka sama sekali tidak menguji ekspor ke Windows
    • Siapa bilang lingkungan seperti itu tidak ada? Siapa bilang semua pengujian itu tidak dilewati? Saat ini ada terlalu banyak asumsi
    • Saat saya wawancara beberapa tahun lalu dengan tim yang menangani bahasa yang berjalan di kernel, saya ingat mereka mengatakan CI menjalankan 20 ribu hingga 40 ribu kombinasi mesin/OS dan konfigurasi
      Di antaranya pasti ada Windows default juga
    • Jika kriteria penerimaannya adalah “jika ada tanda tangan data yang salah, cegah mesin booting”, maka karena itu bisa berarti deployment atau jaringan yang rusak, tidak melakukan booting mungkin saja secara retrospektif adalah perilaku yang benar
      Mungkin saja desainnya memang mengharuskan mesin tidak melakukan boot sepenuhnya sampai file dengan tanda tangan yang valid berhasil diunduh
    • Sulit dipercaya bahwa file yang seluruhnya berisi karakter null itu adalah artefak dari pipeline build otomatis
      Saya lebih cenderung bertaruh bahwa setelah sesuatu di-build dan lolos pengujian CI, sistem rusak pada tahap hilir saat file disalin untuk persiapan deployment. Namun saat ini semuanya hanya spekulasi
  • Terkait itu, rasanya bukan kebetulan bahwa dua bencana teknologi terbesar dalam sejarah (CrowdStrike dan peretasan SolarWinds beberapa tahun lalu) sama-sama berasal dari perangkat lunak keamanan yang lepas kendali
    Menurut saya, orang-orang bergaya hacker yang ingin memulai perusahaan perangkat lunak keamanan kemungkinan besar paling tidak tertarik menerapkan bagian-bagian membosankan dari budaya yang berorientasi proses. Dalam kasus SolarWinds, terungkap bahwa budaya keamanan internal perusahaan itu mengerikan, dan untuk kejadian ini pun, ketika akar penyebabnya keluar, besar kemungkinan itu adalah proses deployment yang cepat dan longgar

    • Saya tidak setuju. Perusahaan keamanan mengalami sindrom “terlalu besar untuk gagal”, dan uang mengalir dengan mudah karena pelanggan ingin mencentang kotak kepatuhan
      Keamanan adalah budaya, bukan produk yang dibeli, dan harus ditanamkan sejak hari pertama melalui upaya aktif dan kerja keras. Tidak ada produk di pasar yang benar-benar menyediakan keamanan; yang ada hanya produk untuk dijadikan sasaran pelimpahan tanggung jawab saat masalah terjadi
    • CrowdStrike awalnya didirikan dan berkantor pusat di Irvine, California
      Sebagian besar organisasi engineering pada masa awal bersifat remote/kerja dari rumah atau berada di Irvine, lalu seiring pertumbuhan mereka menambahkan kantor Sunnyvale, dan belakangan memindahkan kantor pusat resmi ke Austin, TX
      Dalam beberapa tahun terakhir mereka juga memperluas operasi engineering di luar negeri, dan ini kemungkinan mencakup offshoring
    • Ini hipotesis terpisah, tetapi keduanya bisa sama-sama benar. Perangkat lunak keamanan umumnya memerlukan hak akses yang luas dan kuat
      Karena itu, jika terjadi kesalahan atau pelanggaran, dampaknya cenderung jauh lebih besar
    • Rekam jejak industrinya memang cukup unik. Yang langsung terlintas saja ada CrowdStrike, SolarWinds, Kaspersky, https://en.wikipedia.org/wiki/John_McAfee
      Sepertinya masih ada lagi yang saya lupakan. Mungkin strukturnya mirip dengan masalah seleksi diri yang mengganggu industri ganja legal
    • Perangkat lunak keamanan memerlukan akses tingkat kernel. Jika ada sesuatu yang rusak, itu berujung pada boot loop dan crash
      Kebanyakan perangkat lunak lain tidak memerlukan akses serendah itu, dan kalau crash pun tidak ikut menjatuhkan seluruh sistem, serta bisa melakukan upgrade otomatis yang cepat
  • Kalau harus mencari sisi positif dari bencana ini, ada sedikit sekali harapan bahwa organisasi-organisasi akan memikirkan ulang akses tingkat kernel
    Tidak bisa diasumsikan bahwa sembarang perusahaan game cukup kompeten untuk memakai perangkat lunak anti-cheat tingkat kernel

    • Kecuali Microsoft menindak dengan sangat keras, sepertinya perangkat lunak game tidak akan terdampak
      Meski begitu, karena ada perusahaan game di bawah Microsoft, kemungkinan besar mereka akan tetap menyediakan hook untuk game. Organisasi korporat tidak akan peduli sedikit pun dengan praktik anti-cheat Riot, karena mereka tidak memasang LoL di mesin kerja
    • Lawan yang harus dihadapi adalah para pembeli cheat yang berkata “driver tingkat kernel acak? Tidak masalah!”
    • Menurut saya anti-cheat seharusnya sebagian besar berbasis perilaku di sisi server
    • Setahu saya di macOS setidaknya akses kernel tidak dimungkinkan, dan itu lumayan melegakan
  • Ini terlihat seperti berkas uji yang mungkin dicoba oleh QA sebagai percobaan kedua atau ketiga setelah berkas kosong dan berkas valid minimal. Tingkat ketidakmampuan menyeluruh yang tampak di sini benar-benar mengejutkan
    Di pasar yang bersaing untuk memukau eksekutif non-teknis lewat presentasi, tidak mengherankan bahwa perusahaan yang kompeten secara teknis tidak punya keunggulan atas perusahaan yang tidak kompeten
    Baru-baru ini saya membaca putusan Craig Wright https://www.judiciary.uk/judgments/copa-v-wright/, dan orang yang secara palsu mengaku sebagai Satoshi Nakamoto itu bahkan tidak memiliki kemampuan teknis dasar di bidang yang ia klaim sebagai keahlian kelas dunianya. Di kursi saksi, ia bahkan tidak tahu arti ‘unsigned’, dan sejak tahun 90-an tampaknya ia menipu orang lewat jargon, demo yang dimanipulasi, dan dokumen palsu sambil mengerjakan keamanan untuk perusahaan besar
    Pendiri sekaligus CEO CrowdStrike, George Kurtz, adalah CTO di McAfee 14 tahun lalu ketika McAfee melakukan hal yang hampir sama: https://old.reddit.com/r/sysadmin/comments/1e78l0g/can_crowd... https://en.wikipedia.org/wiki/George_Kurtz
    CrowdStrike sendiri juga menimbulkan masalah yang sama di Debian stable 3 bulan lalu: https://old.reddit.com/r/debian/comments/1c8db7l/linuximage6...
    Mengerikan bahwa aturan kepatuhan PCI telah mendorong CrowdStrike dan antivirus masuk ke hampir seluruh infrastruktur TI saat ini

    • Ironis juga bahwa kepatuhan justru menciptakan kerentanan terbesar sebagai titik kegagalan tunggal raksasa
      Tapi memang begitulah regulasi pemerintah
    • Hal terburuk dari insiden ini adalah bahwa aktor negara kini mendapat cetak biru yang jelas untuk serangan infrastruktur berskala besar
    • Lucu melihat orang-orang di tautan itu marah karena ini disebut “gangguan Microsoft” dan bersikeras bahwa ini “kesalahan CrowdStrike”
      Tapi ini juga kegagalan Microsoft. Lebih luas lagi, ini satu lagi kegagalan industri
      Berapa kali lagi hal seperti ini harus terulang sebelum terjadi reformasi industri yang memungkinkan kita membangun sistem aman dan andal yang sudah kita teliti selama 70 tahun? Rasanya seperti 1988 terulang lagi
    • Cukup ironis bahwa Craig Wright pernah mengusulkan agar sertifikat digital tidak diterbitkan oleh satu komputer atau klaster saja, melainkan ditempatkan di blockchain
      Jika berada di satu tempat, ia menjadi target, sedangkan jaringan peer-to-peer jauh lebih tangguh terhadap serangan
      Jika masalah ini terkait dengan sertifikat root di semua komputer yang diganti dengan CrowdStrike, sertifikat yang terdaftar di blockchain mungkin bisa menjadi solusi. Saya bukan ahli kriptografi, tapi kedengarannya masuk akal
      Sebagai tambahan, justru ketika mendengar penjelasan Craig Wright tentang blockchain, whitepaper Bitcoin mulai cukup saya pahami. Ia mungkin bukan coder terbaik, tapi bukankah matematikawan tidak sepenuhnya tak berguna dalam keamanan?
    • Saya tidak ingin terdengar seperti teori konspirasi, tetapi rasanya masih terlalu dini untuk menyingkirkan niat jahat hanya dengan Hanlon's razor
      Sebagian besar kesalahan tidak berskala global sekonyol ini. Ini terlihat seperti kesalahan terbesar sejauh ini, seperti Y2K yang tidak terjadi
  • Tulisan ini salah, dan karena tidak ada cara lain untuk menurunkannya dari halaman depan, saya menandainya
    Fakta bahwa berkas berisi nol seluruhnya ditemukan di komputer yang rusak tidak berarti berkas itu sejak awal didistribusikan sebagai berkas berisi nol seluruhnya
    https://x.com/craiu/status/1814339965347610863
    https://x.com/cyb3rops/status/1814329155833516492

    • CrowdStrike memiliki perilaku yang mengganti dengan nol sebuah berkas yang sedang dikirim lewat soket jaringan jika berkas itu cocok dengan signature malware
      Jika berkas-berkas ini adalah berkas signature malware itu sendiri, tidak mengherankan bila ada kecocokan
    • CrowdStrike akhirnya mengonfirmasi langsung: https://www.crowdstrike.com/blog/tech-analysis-channel-file-...
  • Ini cocok dengan apa yang saya dengar dari seorang teman yang mengenal orang yang bekerja di CrowdStrike terkait bug ini
    Bug tersebut telah bersembunyi di dalam driver kernel selama bertahun-tahun, lalu terpicu ketika data cacat masuk. Data itu ditambahkan pada tahap pascapemrosesan pembaruan konfigurasi, setelah pengujian tetapi sebelum disalin ke server pembaruan yang akan diambil klien
    Konfigurasi pengujian CrowdStrike tampaknya baik-baik saja untuk data konfigurasi itu sendiri, tetapi tidak menangkap masalah sebelum masuk produksi. Karena yang diuji adalah hal yang salah
    Jika mereka merilis analisis pascakejadian, saya berharap mereka mengakui masalah ini dan menjelaskan apa yang akan mereka lakukan untuk mencegah kegagalan proses yang berdampak global lainnya

    • Akhirnya ada penjelasan yang cukup masuk akal
      Sysadmin yang kompeten sepertinya sekarang sudah mematikan fitur pembaruan otomatis dari Greenland sampai New Zealand, memblokirnya dengan firewall, dan menyusun rencana untuk mengeluarkan produk ini dari aset server secepat mungkin
      Anggaran pemasaran produk pesaing tampaknya akan naik pada kuartal ini
    • CrowdStrike harus menghadapi sesuatu yang jauh lebih besar daripada sekadar “mengakui”
      Meski kontraknya memuat “batasan tanggung jawab”, saya berharap ada investigasi serius, denda, dan tuntutan hukum
      Skala kerusakan akibat insiden ini sulit dihitung, dan lebih besar lagi jika memasukkan waktu yang terbuang oleh perusahaan dan masyarakat umum. Misalnya, termasuk orang-orang yang hendak naik pesawat
      Kelalaian seperti ini harus ada harganya
  • Ada klaim di Mastodon bahwa file yang diterima Kevin Beaumont berbeda untuk tiap pelanggan
    https://cyberplace.social/@GossiTheDog/112812454405913406
    Cukup gulir sedikit ke bawah

    • Saya kira Windows mewajibkan semua modul kernel ditandatangani
      Jika ini bukan sekadar kebocoran pengujian, melainkan ada beberapa salinan yang rusak, pertanyaannya bagaimana salinan itu bisa lolos verifikasi tanda tangan dan dimuat oleh kernel
  • Bisa jadi ini bukan isi file aslinya, melainkan hasil dari respons manual untuk menghentikan kerusakan
    Mungkin ada yang berharap jika file yang salah ditimpa dengan file berukuran sama yang seluruhnya berisi 0, pembaruannya akan menjadi tidak berbahaya
    Atau jika mengikuti hipotesis bahwa “QA dilewati karena kerentanan kritis”, penghentian distribusi patch sebenarnya bisa jadi upaya untuk mengurangi akses ke data asli dan memperlambat rekayasa balik kerentanan

  • Menurut penjelasan yang diunggah di papan teknologi 4chan, masalahnya terdiri dari dua tahap
    Driver kernel bertanda tangan bernama CSAgent.sys mem-parsing file definisi virus CrowdStrike, dan tidak menangani dengan benar kasus ketika file definisi yang malformed memicu akses memori yang salah
    Ada driver kernel bom waktu yang berjalan tanpa masalah selama berbulan-bulan bersama file definisi normal, lalu pada suatu titik webserver atau CDN yang menyediakan file definisi mulai menyajikan konten yang salah seperti file kosong, byte acak, atau file perangkat lunak lain
    Penjelasannya, klien pembaruan mengunduhnya ke bawah C:\Windows\System32\drivers, lalu CSAgent.sys membacanya lagi dan mem-parsing-nya hingga masuk ke BSOD dan loop reboot dengan PAGE_FAULT_IN_NONPAGED_AREA
    Katanya, jika melihat perbedaan antara CSAgent.sys_18511.sys dan CSAgent.sys_18513.sys, terlihat jejak perubahan pada pemeriksaan ukuran dan ukuran buffer agar file definisi yang salah di masa mendatang tidak menyebabkan crash

    • Terdengar seperti ada fitur perlindungan virus di server yang menyediakan file definisi yang memblokir pembacaan disk, lalu alih-alih mengeluarkan error, menyajikan data keluaran berisi 0
      Kalau benar ada paket antivirus tertentu yang menjadi penyebabnya, itu akan cukup lucu
    • Jika hal seperti ini terjadi berkali-kali, bisa jadi ini serangan peretas yang menargetkan driver kernel yang ditulis dengan buruk
      Terutama dalam konteks momen pemilu seperti sekarang dan perusahaan yang disukai Trump, ini juga bisa menjadi unjuk kekuatan
  • Dulu pernah ada perangkat lunak keamanan yang mengubah seluruh isi file menjadi 0 sehingga merusak kompilasi perangkat lunak
    Saya tidak mengatakan kasus kali ini seperti itu, tetapi tetap saja tidak mengejutkan
    Pada dasarnya, linker di Windows tidak bisa membuka file karena proses lain sedang menguncinya untuk pemindaian. Namun alih-alih mengeluarkan error, proses itu mengubah object code yang akan di-link menjadi 0
    Orang-orang tidak bisa menemukan penyebabnya sampai membuka debugger dan baru melihat bahwa bongkahan besar object code telah diganti dengan 0

    • Saya sudah terlalu sering mengalami Visual Studio tidak bisa menulis ke file yang baru saja dikompilasi
      Antivirus menangkap binary yang baru dibuat tepat pada saat mt.exe perlu menulisnya, sampai-sampai saya membuat wrapper mt.exe yang menambahkan retry. Build CI juga sering gagal secara acak karena ini