2 poin oleh GN⁺ 17 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Framework sabotase tak terdokumentasi yang dibuat pada 2005, dirancang untuk menambal kode di memori pada perangkat lunak komputasi tertentu agar mendistorsi hasil numerik
  • svcmgmt.exe secara lahiriah tampak seperti service wrapper, tetapi di dalamnya memuat mesin virtual Lua 5.0, bytecode terenkripsi, DLL pendukung, dan driver fast16.sys untuk mengeksekusi payload per tugas secara terpisah
  • fast16.sys adalah driver filesystem boot-start yang dimuat pada tahap sangat awal, lalu memilih .EXE yang dibangun dengan Intel C/C++ compiler dan melakukan patch memori di tingkat kernel
  • Mesin patch bekerja dengan 101 aturan, dan khususnya meninggalkan jejak yang menargetkan alat komputasi khusus seperti rekayasa sipil, fisika, dan simulasi proses dengan menggunakan blok instruksi FPU untuk mengubah penskalaan nilai array internal
  • Jika digabungkan dengan penanda fast16 dari kebocoran ShadowBrokers, terlihat bahwa sabotase industri presisi pada era sebelum Stuxnet sudah ada dalam bentuk gabungan embedded scripting, penargetan sempit, dan patch kernel

Ikhtisar dan petunjuk identifikasi

  • fast16 adalah framework sabotase siber tak terdokumentasi dengan komponen inti dari 2005, di mana fast16.sys secara selektif menargetkan perangkat lunak komputasi presisi tinggi, menambal kode di memori, dan mendistorsi hasil perhitungan
  • svcmgmt.exe secara lahiriah tampak seperti service wrapper umum pada era Windows 2000/XP, tetapi di dalamnya memuat mesin virtual Lua 5.0 dan kontainer bytecode terenkripsi yang dibuka oleh service entry point
  • Dalam proses penelusuran malware berbasis Lua, magic byte bytecode 1B 4C 75 61, byte versi, LUA_PATH, dan C API khas menjadi petunjuk, dan dalam alur itu svcmgmt.exe berhasil diidentifikasi
  • String C:\buildy\driver\fd\i386\fast16.pdb di dalam svcmgmt.exe menjadi petunjuk forensik yang menghubungkan executable layanan dengan proyek driver kernel
  • Dalam kebocoran ShadowBrokers 2017 drv_list.txt, nama fast16 yang sama juga muncul, sehingga string PDB svcmgmt.exe dan driver untuk sabotase presisi dapat disatukan dalam satu alur
  • Signature penghindaran dari pihak ShadowBrokers mencakup frasa fast16 *** Nothing to see here – carry on***

Struktur carrier dan cara eksekusi

  • svcmgmt.exe dirancang sebagai carrier adaptif yang mengubah perilaku berdasarkan argumen command line
    • Tanpa argumen: dijalankan sebagai layanan Windows
    • -p: mengatur InstallFlag = 1 lalu dijalankan sebagai layanan
    • -i: mengatur InstallFlag = 1 lalu mengeksekusi kode Lua
    • -r: mengeksekusi kode Lua tanpa flag instalasi
    • Selain itu <filename>: beroperasi dalam mode Wrapper/Proxy yang membuat dua child process, yaitu perintah asli dan perintah yang ditambahi argumen -r
  • Penyimpanan internalnya berisi bytecode Lua terenkripsi, DLL pendukung, dan driver fast16.sys
  • Lingkungan Lua diperluas melampaui kondisi default, dengan menyediakan modul wstring, fungsi kripto simetris bawaan b, serta modul binding untuk API Windows NT filesystem, registry, kontrol layanan, dan jaringan
  • Binary carrier eksternal dijaga relatif stabil, sementara payload per tugas dipisahkan dalam bentuk terenkripsi agar dapat digunakan ulang sesuai lingkungan dan sasaran operasi
  • Nilai identifikasi svcmgmt.exe adalah sebagai berikut
    • Nama file svcmgmt.exe
    • Ukuran 315,392 bytes
    • MD5 dbe51eabebf9d4ef9581ef99844a2944
    • SHA1 de584703c78a60a56028f9834086facd1401b355
    • SHA256 9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525
    • Tipe PE32 executable for MS Windows 4.00 (console), Intel i386
    • Link time 2005-08-30 18:15:06 UTC

Struktur propagasi wormlet dan penghindaran

  • svcmgmt.exe bertindak seperti carrier munisi klaster yang dapat memuat beberapa wormlet, dan pada sampel yang terkonfirmasi hanya terdapat satu SCM wormlet
  • Alur eksekusinya berlanjut dari persiapan konfigurasi, konversi wide string, eskalasi hak istimewa, instalasi dan start layanan SvcMgmt, deployment kondisional fast16.sys, pelepasan wormlet, jeda awal, hingga eksekusi berulang sampai ambang kegagalan atau kondisi penghentian eksternal tercapai
  • SCM wormlet menargetkan lingkungan Windows 2000/XP, lalu mencari server jaringan dengan memanfaatkan file share yang dipasang dengan kata sandi admin yang lemah atau default, menyalin payload, dan memulai layanan jarak jauh
  • Propagasi dilakukan bukan lewat protokol jaringan kustom, melainkan dengan mengandalkan fungsi administrasi standar Windows seperti service control API dan file share API
  • Sebelum instalasi, ok_to_install() memanggil ok_to_propagate() untuk memeriksa lingkungan, dan jika tidak ada pemaksaan manual, kelayakan propagasi ditentukan berdasarkan keberadaan registry key dari produk keamanan tertentu
  • Jika salah satu registry key berikut ada, instalasi dihentikan untuk menghindari deployment ke lingkungan pemantauan
    • HKLM\SOFTWARE\Symantec\InstalledApps
    • HKLM\SOFTWARE\Sygate Technologies, Inc.\Sygate Personal Firewall
    • HKLM\SOFTWARE\TrendMicro\PFW
    • HKLM\SOFTWARE\Zone Labs\TrueVector
    • HKLM\SOFTWARE\F-Secure
    • HKLM\SOFTWARE\Network Ice\BlackIce
    • HKLM\SOFTWARE\McAfee.com\Personal Firewall
    • HKLM\SOFTWARE\ComputerAssociates\eTrust EZ Armor
    • HKLM\SOFTWARE\RedCannon\Fireball
    • HKLM\SOFTWARE\Kerio\Personal Firewall 4
    • HKLM\SOFTWARE\KasperskyLab\InstalledProducts\Kaspersky Anti-Hacker
    • HKLM\SOFTWARE\Tiny Software\Tiny Firewall
    • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Look n Stop 2.05p2
    • HKCU\SOFTWARE\Soft4Ever
    • HKLM\SOFTWARE\Norman Data Defense Systems
    • HKLM\SOFTWARE\Agnitum\Outpost Firewall
    • HKLM\SOFTWARE\Panda Software\Firewall
    • HKLM\SOFTWARE\InfoTeCS\TermiNET
  • connotify.dll berperan sebagai kanal pelaporan minimal
    • Didaftarkan melalui API Windows AddConnectNotify() dan dipanggil setiap kali koneksi jaringan baru berbasis RAS dibuat
    • Mendekripsi string yang diobfusksi untuk memperoleh named pipe \\.\pipe\p577, terhubung ke pipe lokal, mencatat nama koneksi jarak jauh dan lokal, lalu berhenti
    • Bukan modul eksekusi mandiri dan memerlukan registrasi oleh proses host
    • Nama file svcmgmt.dll
    • Ukuran 45056 bytes
    • MD5 410eddfc19de44249897986ecc8ac449
    • SHA1 675cb83cec5f25ebbe8d9f90dea3d836fcb1c234
    • SHA256 8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9
    • Link time 2005-06-06 18:42:45 UTC
    • Tipe PE32 DLL (i386, 4 sections)

Struktur driver dan metode patch memori

  • fast16.sys adalah komponen paling kuat dalam framework ini, dikonfigurasi sebagai boot-start filesystem driver sehingga dimuat pada tahap sangat awal bersama driver disk
  • Konfigurasinya adalah Start=0, Type=2, grup kelas SCSI, dan menyisipkan dirinya di atas NTFS, FAT, MRxSMB
  • Pada masuk awal, ia mengatur nilai EnablePrefetcher di bawah Session Manager\PrefetchParameters menjadi 0 agar permintaan code page berikutnya melewati seluruh stack filesystem
  • Dengan enkripsi string XOR sederhana dan pemindaian ntoskrnl.exe, ia menyelesaikan API kernel secara dinamis dan mengekspos \Device\fast16, \??\fast16, serta DeviceType kustom 0xA57C
  • Dengan IoRegisterFsRegistrationChange, ia menempelkan worker device object di atas perangkat filesystem yang aktif maupun yang baru, lalu membypass IRP_MJ_CREATE, IRP_MJ_READ, IRP_MJ_CLOSE, IRP_MJ_QUERY_INFORMATION, IRP_MJ_FILE_SYSTEM_CONTROL dan jalur Fast I/O terkait
  • Meski dimuat saat boot, mesin injeksi kode level kernel yang sesungguhnya baru aktif setelah explorer.exe dibuka
  • Target patch harus memenuhi dua syarat sekaligus
    • nama file berakhir dengan .EXE
    • tepat setelah header section PE terakhir terdapat string ASCII yang dapat dicetak dan diawali dengan Intel
  • Kondisi ini menargetkan file executable yang dibangun dengan Intel C/C++ compiler, menunjukkan bahwa pelaku mengetahui toolchain perangkat lunak target
  • Pada file yang cocok, diterapkan modifikasi header PE di memori, menyuntikkan dua section baru yaitu .xdata dan .pdata, serta mengisi byte section kode asli untuk mempertahankan salinan kode yang bersih
  • Nilai identifikasi fast16.sys adalah sebagai berikut
    • nama file fast16.sys
    • ukuran 44,580 bytes
    • MD5 0ff6abe0252d4f37a196a1231fae5f26
    • SHA1 92e9dcaf7249110047ef121b7586c81d4b8cb4e5
    • SHA256 07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529
    • tipe PE32 executable for MS Windows 5.00 (native), Intel i386, 5 sections
    • link time 2005-07-19 15:15:41 UTC

Mesin patch berbasis aturan dan karakteristik target

  • Mesin patch terdiri dari 101 aturan, sebuah pemindai minimalis berbasis status, yang secara diam-diam mengubah kode eksekusi di memori melalui pencocokan pola dan logika penggantian saat file dibaca dari disk
  • Untuk menjaga performa, ia memakai dispatch array 256-byte untuk cepat menyaring sebagian byte awal, mengizinkan wildcard di dalam pola, dan beberapa aturan mengatur serta memeriksa state flag untuk menjalankan urutan modifikasi bertahap
  • Sebagian besar pola patch menyesuaikan urutan instruksi umum pada kode x86 yang membajak atau memengaruhi alur eksekusi, tetapi satu di antaranya terdiri dari blok instruksi FPU yang jauh lebih besar
  • Blok FPU ini adalah kode khusus untuk aritmetika presisi dan penskalaan nilai array internal, menunjukkan sifat yang berbeda dari injeksi berbahaya pada umumnya
  • Para peneliti mengubah aturan patch menjadi pola heksadesimal signature YARA dan menerapkannya pada korpus perangkat lunak sezaman; file yang cocok dengan dua atau lebih pola sangat sedikit, kurang dari 10
  • File yang terkena secara umum adalah alat komputasi bidang khusus seperti teknik sipil, fisika, dan simulasi proses fisik
  • Patch FPU mengubah perhitungan secara halus dengan menskalakan nilai yang diteruskan ke tiga array internal, menunjukkan bahwa tujuannya bukan akses tanpa izin atau penyebaran umum, melainkan manipulasi hasil numerik
  • Karena binary target yang tepat dan workload-nya belum semuanya teridentifikasi, makna array tersebut belum dapat dipastikan sepenuhnya
  • Sabotase semacam ini bisa gagal jika perhitungan diverifikasi pada sistem terpisah, tetapi jika driver yang sama disebarkan ke beberapa sistem yang berbagi jaringan dan lingkungan keamanan yang sama, kemungkinan ketidaksesuaian dalam verifikasi independen juga berkurang
  • Lampiran memuat sebagian pola hasil ekstraksi dari mesin patch apa adanya
    • 48 89 84 24 9C 00 00 00 4B 0F 8F 79 FF FF FF 00
    • D8 E1 D9 5D FC D9 04 00
    • 55 8B EC 83 EC 14 53 56 57 8B 3D ?? ?? ?? ?? 8B 0D 00
    • 8D 1D ?? ?? ?? ?? 52 8D 05 ?? ?? ?? ?? 51 8D 15 ?? ?? ?? ?? 8D 0D ?? ?? ?? ?? 53 50 52 51 56 57 E8 ?? ?? ?? ?? 83 C4 38 EB 0E 83 EC 04 00
    • B9 01 00 00 00 C1 E7 02 8B BF ?? ?? ?? ?? 8B D7 85 FF 8B 55 30 8B 45 30 D8 C9 8B 75 2C 00 9A 8B 00 00 00 1B 00 90 0F 94 C3 0B D8 33 D2 83 3D 00

Kandidat target patch

  • Target dengan tumpang tindih hasil pencocokan pola paling kuat adalah LS-DYNA 970, PKPM, dan MOHID
  • LS-DYNA 970 adalah perangkat lunak simulasi rekayasa yang menganalisis perilaku material dan struktur dalam kondisi ekstrem, mencakup tabrakan kendaraan, ledakan, benturan, pembentukan logam, dan proses manufaktur, serta digunakan di bidang otomotif, kedirgantaraan, riset pertahanan dan militer, manufaktur, dan ilmu material
    • Telah dikembangkan sejak 1976
    • MD5 1d2f32c57ae2f2013f513d342925e972
    • SHA1 2fa28ef1c6744bdc2021abd4048eefc777dccf22
    • SHA256 5966513a12a5601b262c4ee4d3e32091feb05b666951d06431c30a8cece83010
    • Ukuran file 5,225,591 bytes
    • Waktu link 2003-10-24 16:34:57 UTC
    • Tipe file PE32 executable for MS Windows 4.00 (console), Intel i386, 7 sections
  • PKPM adalah rangkaian produk CAD rekayasa struktur yang digunakan secara luas di Tiongkok, terdiri dari berbagai modul eksekusi yang mencakup seluruh siklus desain struktur bangunan
    • SATWE adalah mesin inti yang menangani analisis struktur 3 dimensi untuk lantai, balok, kolom, dinding, dan keseluruhan rangka
    • Nilai identifikasi modul desain geser beton
      • MD5 af4461a149bfd2ba566f2abefe7dcde4
      • SHA1 586edef41c3b3fba87bf0f0346c7e402f86fc11e
      • SHA256 09ca719e06a526f70aadf34fb66b136ed20f923776e6b33a33a9059ef674da22
      • Ukuran file 7716864 bytes
      • Tipe file PE32 executable for MS Windows 4.00 (GUI), Intel i386, 6 sections
      • Waktu link 2011-08-26 10:58:17 UTC
    • Nilai identifikasi modul Building Structure CAD
      • MD5 49a8934ccd34e2aaae6ea1e6a6313ffe
      • SHA1 3ce5b358c2ddd116ac9582efbb38354809999cb5
      • SHA256 8b018452fdd64c346af4d97da420681e2e0b55b8c9ce2b8de75e330993b759a0
      • Ukuran 11849728 bytes
      • Waktu link 2005-12-01 08:35:46 UTC
      • MD5 e0c10106626711f287ff91c0d6314407
      • SHA1 650fc6b3e4f62ecdc1ec5728f36bb46ba0f74d05
      • SHA256 06361562cc53d759fb5a4c2b7aac348e4d23fe59be3b2871b14678365283ca47
      • Ukuran 16355328 bytes
      • Waktu link 2012-07-07 08:47:11 UTC
    • Nilai identifikasi mesin analisis struktur SATWE
      • MD5 2717b58246237b35d44ef2e49712d3a2
      • SHA1 d475ace24b9aedebf431efc68f9db32d5ae761bd
      • SHA256 bd04715c5c43c862c38a4ad6c2167ad082a352881e04a35117af9bbfad8e5613
      • Ukuran 9908224 bytes
      • Waktu link 2011-01-12 06:37:39 UTC
      • MD5 daea40562458fc7ae1adb812137d3d05
      • SHA1 1ce1111702b765f5c4d09315ff1f0d914f7e5c70
      • SHA256 da2b170994031477091be89c8835ff9db1a5304f3f2f25344654f44d0430ced1
      • Ukuran 8454144 bytes
      • Waktu link 2012-11-29 03:10:12 UTC
      • MD5 2740a703859cbd8b43425d4a2cacb5ec
      • SHA1 ca665b59bc590292f94c23e04fa458f90d7b20c9
      • SHA256 aeaa389453f04a9e79ff6c8b7b66db7b65d4aaffc6cac0bd7957257a30468e33
      • Ukuran 16568320 bytes
      • Waktu link 2014-12-30 03:23:43 UTC
      • MD5 ebff5b7d4c5becb8715009df596c5a91
      • SHA1 829f8be65dfe159d2b0dc7ee7a61a017acb54b7b
      • SHA256 37414d9ca87a132ec5081f3e7590d04498237746f9a7479c6b443accee17a062
      • Ukuran 8089600 bytes
      • Waktu link 2009-04-22 01:46:46 UTC
      • MD5 cb66a4d52a30bfcd980fe50e7e3f73f0
      • SHA1 e6018cd482c012de8b69c64dc3165337bc121b86
      • SHA256 66fe485f29a6405265756aaf7f822b9ceb56e108afabd414ee222ee9657dd7e2
      • Ukuran 9219072 bytes
      • Waktu link N/A
    • Nilai identifikasi file CAD PKPM tambahan
      • MD5 075b4aa105e728f2b659723e3f36c72c
      • SHA1 145ef372c3e9c352eaaa53bb0893749163e49892
      • SHA256 c11a210cb98095422d0d33cbd4e9ecc86b95024f956ede812e17c97e79591cfa
      • Ukuran 6852608 bytes
      • Waktu link 2012-06-18 10:01:54 UTC
      • MD5 cf859f164870d113608a843e4a9600ab
      • SHA1 952ed694b60c34ba12df9d392269eae3a4f11be4
      • SHA256 7e00030a35504de5c0d16020aa40cbaf5d36561e0716feb8f73235579a7b0909
      • Ukuran 8392704 bytes
      • Waktu link 2012-11-29 03:10:12 UTC
  • MOHID adalah sistem pemodelan badan air open source yang dikembangkan oleh MARETEC dari Instituto Superior Técnico di Lisbon, Portugal, yang mencakup hidrodinamika laut dan pesisir, simulasi kualitas air, perpindahan sedimen, pemodelan tumpahan minyak, dan pelacakan partikel Lagrangian
    • Disebutkan bahwa hingga saat ini mereka masih belum dapat mengidentifikasi secara pasti efek serangan yang dimaksud
    • MD5 f4dbbb78979c1ee8a1523c77065e18a5
    • SHA1 9e089a733fb2740c0e408b2a25d8f5a451584cf6
    • SHA256 e775049d1ecf68dee870f1a5c36b2f3542d1182782eb497b8ccfd2309c400b3a
    • Ukuran file 5443584 bytes
    • Tipe file PE32 executable for MS Windows 4.00 (console), Intel i386, 3 sections
    • Waktu link 2002-10-18 09:29:54 UTC
  • LS-DYNA pernah dikutip bersama riset pemodelan komputer terkait pengembangan senjata nuklir dalam laporan terbuka mengenai dugaan pelanggaran JCPOA Section T oleh Iran

Aturan deteksi dan indikator kompromi

  • Indikator kompromi

    • Tiga file yang terkonfirmasi adalah fast16.sys, connotify.dll, dan svcmgmt.exe
    • fast16.sys: MD5 0ff6abe0252d4f37a196a1231fae5f26, SHA1 92e9dcaf7249110047ef121b7586c81d4b8cb4e5, SHA256 07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529
    • connotify.dll: MD5 410eddfc19de44249897986ecc8ac449, SHA1 675cb83cec5f25ebbe8d9f90dea3d836fcb1c234, SHA256 8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9
    • svcmgmt.exe: MD5 dbe51eabebf9d4ef9581ef99844a2944, SHA1 de584703c78a60a56028f9834086facd1401b355, SHA256 9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525
  • apt_fast16_carrier

    • Dirancang untuk menangkap carrier, payload Lua, dan varian plaintext, dengan hash acuan 9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525
    • Menggunakan magic bytecode Lua 1B 4C 75 61, serta string build_wormlet_table, unpropagate, scm_wormlet_install, install_implant, start_worm, ok_to_propagate
    • Juga memasukkan banyak kunci registri produk keamanan sebagai syarat, seperti Symantec, Sygate Personal Firewall, Zone Labs\\TrueVector, Kaspersky Anti-Hacker
    • Juga mendeteksi pola byte string terenkripsi, dua konstanta sandi, kode dekripsi panjang container penyimpanan, serta signature record penyimpanan yang berisi string file
    • Syarat terpenuhi jika file memiliki header MZ dan berukuran di bawah 10MB, memenuhi salah satu dari: 3 $s*, 12 $rk*, item mana pun dari $e*, penempatan berdekatan dua konstanta sandi, salah satu dari $code1 atau $stor1; atau jika memenuhi magic Lua dan 7 $s*
  • apt_fast16_driver

    • Dirancang untuk menangkap driver atau file proyek terkait, dengan hash acuan 07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529
    • Menggunakan banyak string identifikasi file sumber seperti @(#)foo.c :, @(#)par.h :, @(#)pae.h :, @(#)ree.c :
    • Mencakup pola \\Device\\fast16, \\??\\fast16, C:\\buildy\\, driver\\fd\\i386\\fast16.pdb, push 0A57Ch ; DeviceType
    • Pola API yang mendorong ExAllocatePool, ExAllocatePoolWithTag, ExFreePool, ExFreePoolWithTag dalam bentuk XOR juga masuk ke dalam signature
    • Syarat terpenuhi pada file di bawah 10MB bila bersama header MZ memenuhi salah satu dari: 2 path PDB, C:\\buildy\\ dan 1 identifier sumber, #devtype == 3, pe.machine == pe.MACHINE_I386, pe.subsystem == pe.SUBSYSTEM_NATIVE, API mana pun dari api*, atau 2 dari dev*; atau saat memenuhi 6 identifier sumber
  • clean_fast16_patchtarget

    • Mendeteksi perangkat lunak target patch dan ditandai sebagai most probably clean, dengan hash acuan 8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9
    • Menggunakan banyak pola byte berurutan dari $el0 hingga $el99
    • Syaratnya adalah file di bawah 20MB, header MZ, dan minimal 2 kecocokan di antara signature yang didefinisikan
  • apt_fast16_patch

    • Mendeteksi kode patch itu sendiri, dan bisa ada pada file yang dipatch secara statis atau dump memori
    • Hash acuannya adalah 0ff6abe0252d4f37a196a1231fae5f26
    • Mendefinisikan tiga pola byte: $p1, $p2, $p3
    • Syaratnya adalah any of them, sehingga deteksi terjadi meski hanya satu dari tiga pola yang cocok

Silsilah dan implikasi historis

  • String @(#)par.h $Revision: 1.3 $ di dalam biner menjadi petunjuk untuk memperkirakan silsilah framework ini
  • Prefiks @(#) merujuk pada konvensi pengelolaan source keluarga SCCS/RCS di Unix era 1970–1980-an, dan jejak seperti ini jarang terlihat pada driver kernel Windows pertengahan 2000-an
  • Artefak semacam ini tampak lebih dekat dengan jejak insinyur senior yang terbiasa dengan budaya dan toolchain Unix lama berkeamanan tinggi, ketimbang pengembang tipikal yang khusus Windows
  • svcmgmt.exe diunggah ke VirusTotal hampir 10 tahun lalu, tetapi hingga kini tingkat deteksinya tetap sangat rendah, dan hanya satu engine yang mengklasifikasikannya sebagai malware umum dengan tingkat keyakinan terbatas
  • Jika digabungkan dengan signature Territorial Dispute milik ShadowBrokers, fast16 membuat kita perlu meninjau ulang kapan sabotase siber tingkat negara yang sangat tersembunyi ini mulai dikembangkan
  • fast16 menunjukkan struktur yang konsisten dengan menggabungkan embedded scripting engine, penargetan sempit berbasis compiler, dan patch tingkat kernel lebih awal daripada keluarga yang lebih dikenal luas
  • Selama waktu yang lama, hampir tidak ada analisis publik, kampanye bernama, atau kaitan dengan insiden representatif, dan penanda yang bisa dibaca manusia yang tertinggal di dalamnya pun sangat minimal, seperti *** Nothing to see here – carry on***
  • Ini diposisikan sebagai titik penghubung dalam alur evolusi APT yang berlanjut ke toolkit berbasis Lua dan LuaJIT

1 komentar

 
GN⁺ 17 jam lalu
Komentar Hacker News
  • Bagian ini terasa sangat menarik
    Analogi bahwa notasi SCCS/RCS muncul di kode kernel Windows tahun 2005 itu setara dengan melihat telepon putar di kantor modern terasa cukup meyakinkan
    Bahkan lab astrofisika tempat seseorang bekerja pada 2006 masih memakai svn, dan codebase-nya penuh Fortran dengan jejak sistem dari era 70–80an
    Meski begitu, semuanya tetap berjalan baik berkat compiler optimisasi modern, dan proses migrasi dari Vax ke Linux pada 90an juga ternyata sangat mulus
    Ini mengingatkan pada presentasi lama do over or make due, yang intinya kira-kira bahwa menulis ulang total codebase besar yang masih berfungsi jarang sepadan jika dengan alat modern kita masih bisa menyambungnya agar tetap jalan

    • Saya juga pernah bekerja di perusahaan yang masih memakai SCM berbasis RCS sampai sekitar 2012, sistemnya semacam hack yang memaksa RCS membungkus file server bersama
      Namanya MKS, dan cara kerjanya mengelola pohon revisi tertentu sebagai "project file", rasanya bahkan versi lawas dari 90an, bukan versi yang dibangun ulang dengan Java EE
      Di bagian atas file ada tag seperti $Revision: 1.3 $ dan changelog, tetapi banyak file baru bahkan tidak memasukkan tag itu sama sekali sehingga tidak pernah tersubstitusi, dan konsistensinya berantakan
      Keluarga perangkat targetnya memang dimulai sejak pertengahan 90an, tetapi pada saat itu hampir tidak ada kode yang benar-benar berusia lebih dari 5 tahun
      Bahkan dengan jumlah engineer hanya puluhan, konflik commit sering terjadi dan seluruh tree kerap rusak
      Iseng-iseng saya menulis skrip untuk membaca seluruh riwayat dan mengimpornya ke git, dan ketika ditelusuri mundur beberapa tahun saja catatannya sudah benar-benar kacau
      Saya tidak tahu kenapa mereka masih memakainya saat itu, tetapi perusahaan hardware memang kadang sampai relatif belakangan masih menganggap source control itu sekadar "shared folder jarak jauh", jadi version control untuk software tampaknya bukan prioritas
    • Jika pada 2026 Anda memakai R, besar kemungkinan di suatu tempat Anda hampir pasti memanggil kode hasil kompilasi Fortran dari era 70–80an
      Garis keturunan itu sampai sekarang masih menjadi fondasi dunia komputasi numerik
    • Dulu saya agak meragukan teori keterlibatan pemerintah di balik Stuxnet, tetapi setelah melihat memo seperti ini saya jadi paham kenapa dugaan itu muncul
      Sampai era 2000an pun memang masih ada tempat yang memakai RCS, dan sebagai alat murni ada sisi-sisinya yang bahkan lebih baik daripada SVN atau CVS
    • Jadi saya penasaran apakah ini berarti agensi tiga huruf semacam itu memang bisa merekrut orang dengan latar belakang yang tepat untuk tiap jenis malware
      Misalnya, mudah dibayangkan fast16 ditulis oleh orang yang tadinya membuat software komputasi ilmiah, sedangkan Stunex oleh orang yang pernah bekerja di Siemens
    • Refactoring bukan obat mujarab untuk semua masalah
      Jika penyebab awal kenapa kode itu butuh refactoring tetap dibiarkan, pada akhirnya hasilnya akan kembali ke keadaan yang sama
      Penyebab seperti itu sering tertanam sangat dalam, sampai ke lapisan psikologis seperti kebiasaan pengembang, keyakinan, atau trauma profesional
      Ditambah lagi Hukum Conway, tim pada akhirnya nyaris pasti membangun software yang mencerminkan struktur organisasi yang lebih besar, dan jika organisasinya tidak berubah maka hasil refactoring pun cenderung mengulang pola yang sama
      Pengecualiannya biasanya saat mengambil alih codebase tim lain atau kode pendahulu lalu menata strukturnya ulang
      Tetapi ketika orang yang sama menyatakan akan merefactor kode mereka sendiri, sering kali hasilnya hanya jebakan tikus lain yang lebih nyaman bagi mereka
      Tidak masalah terus menyempurnakan hasil dari pola pikir sendiri, tetapi kalau ingin turun dari komidi putar itu, kita perlu menuliskan penyebab arsitektur buruk dan memeriksa diri sendiri dengan jujur
      Seperti yang ingin dipercaya banyak pengembang, gagasan bahwa "asal hati-hati dan tekun, desain yang agak buruk pun bisa diimplementasikan dengan baik" biasanya tidak benar
      Pada akhirnya akar masalahnya adalah desain; kita harus menerima pohon yang tumbuh darinya atau menebangnya, karena memangkas cabangnya saja ada batasnya
  • Tulisan ini terasa cukup mengerikan
    Fakta bahwa malware ini berada di bawah radar deteksi selama 20 tahun saja sudah cukup membuat tidak nyaman

  • Ini tautan unduhan bagi yang penasaran
    https://bazaar.abuse.ch/sample/9a10e1faa86a5d39417cae44da5ad...
    Saya mungkin akan mulai dengan membuat Windows XP VM dulu

    • Saya penasaran apakah file service Windows-nya sudah pernah diunggah
      Yang itu tampaknya cuma loader
  • IEEE-754 hanya mewajibkan pembulatan yang benar untuk +-*/ dan sqrt
    Untuk fungsi transendental seperti sin/cos/exp/log/pow, beberapa ULP terakhir memang boleh berbeda, dan glibc, musl, MSVC, serta Intel SVML memang berperilaku seperti itu
    PID kebanyakan hanya memakai operasi dasar sehingga lebih sedikit terpengaruh perbedaan libm, tetapi kontrol vektor motor atau linearisasi sensor menyentuh fungsi-fungsi ini di setiap siklus sehingga ketidakcocokan kecil bisa terakumulasi
    Karena itu, bahkan tanpa diff source code sama sekali, perilaku di lapangan bisa drift hanya karena libm yang ditautkan berubah
    Perbedaan seperti ini benar-benar muncul pada Payne-Hanek argument reduction atau di batas terburuk table-maker's dilemma
    Mungkin itu sebabnya panduan sistem kritis-keselamatan tidak cuma menulis "patuh IEEE-754", melainkan mengunci build libm tertentu

  • Penemuan yang benar-benar luar biasa
    Saya sangat penasaran sasaran tepat aturan-aturan ini apa, dan bagaimana persisnya hasilnya diubah
    Bisa jadi memang dirancang agar hanya menghasilkan perbedaan pada kondisi simulasi yang sangat spesifik, seperti reaktor nuklir

    • Saya sempat menggali sedikit bagaimana software seperti LS-DYNA bisa disabotase
      Misalnya, persamaan EOS_JWL dalam manual publik [1] adalah formula yang diimplementasikan LS-DYNA, dan bila dipakai bersama persamaan lain tampaknya bisa digunakan untuk menghitung hal-hal seperti waktu yang dibutuhkan pemicu hulu ledak rudal untuk meledakkan bahan peledak utama hingga menghasilkan gelombang tekanan tertentu pada jarak 20 m
      Hasil itu lalu bisa dibalik untuk memperkirakan timing fuze yang diperlukan
      Persamaan dan parameter yang masuk ke LS-DYNA berasal dari riset ilmiah seperti [2], yang merupakan penelitian eksperimen bahan peledak tinggi pemerintah AS pada 1980an
      Di dalamnya juga ada eksperimen yang mengukur karakteristik saat bahan peledak bergesekan dengan berbagai material pembungkusnya
      Karena persamaan untuk pemodelan bahan peledak sudah tersedia, kalau seseorang mengutak-atik sedikit formula itu dan menambahkan noise ±20% pada koefisien gesek, ilmuwan atau engineer kemungkinan besar akan lebih dulu mencurigai kualitas manufaktur baja ketimbang manipulasi software
      Analogi versi modernnya adalah membayangkan sebuah negara musuh memakai salinan bajakan Ansys Autodyn 2026 R1 yang dibobol grup cracking Tiongkok lalu diunggah ke forum Tiongkok, dan mereka mengunduhnya dari segelintir seeder di balik ISP Rusia
      Lalu ketika belakangan nilai eksperimen dan hasil perhitungan terus tidak cocok, barulah muncul kecurigaan bahwa salinan bajakan itu sengaja dirusak
      Meski begitu, sekarang mungkin lebih mudah bagi negara musuh seperti itu untuk mengambil salinan resmi dari jaringan universitas acak atau perusahaan konsultan dirgantara/pertahanan yang diretas
      Menganggap negara musuh pada 2026 tidak akan mampu membuat software itu sendiri dari nol juga mungkin naif, dan mereka pun bisa mencapai hasil yang diinginkan dengan bergantung pada perhitungan manual atau eksperimen
      Pada akhirnya, untuk memverifikasi kualitas manufaktur, peralatan dan kemampuan eksperimen memang sejak awal tetap dibutuhkan
      Software simulasi terutama hanya membantu mengurangi jumlah pembuatan model dan eksperimen fisik sehingga menghemat biaya dan waktu
      Misalnya, menjalankan skenario seperti [3] di mana peluru artileri menghantam pelat baja sebanyak 1000 kali itu murah, tetapi mengulanginya di dunia nyata jauh lebih mahal dan memakan waktu
      [1] https://ftp.lstc.com/anonymous/outgoing/jday/manuals/LS-DYNA...
      [2] https://www.osti.gov/servlets/purl/6530310
      [3] https://www.youtube.com/watch?v=_dv2PecKUBM
  • Saat orang melihat hal-hal yang saya publikasikan masih menyertakan data revisi RCS, saya berharap mereka setidaknya berhenti sejenak

  • Buku yang baru-baru ini saya baca adalah Sandworm: A New Era of Cyberwar and the Hunt for the Kremlin's Most Dangerous Hackers, karya Andy Greenberg
    Cukup bagus, dan karena informasi baru terus bermunculan, saya rasa mungkin memang perlu seri lanjutan

  • Melihat Guix dan komputasi yang dapat direproduksi makin bisa dipindahkan bahkan ke PowerPC atau mesin legacy, rasanya pemerintah, lembaga ala 1984, dan beberapa organisasi di Timur Tengah akan benar-benar tidak menyukainya
    Semakin heterogen lingkungannya, semakin menguntungkan

  • Angka kuncinya adalah worm
    Pemeriksaan di komputer lain pun tidak berhasil menangkapnya, karena sejak awal memang tidak ada komputer kedua yang bersih

  • Ini penemuan yang menarik, tetapi komentar soal source control terasa agak meleset
    Hal-hal mirip SCCS seperti itu mungkin memang masih tersisa pada masa tersebut, dan sesaat saya juga sempat bingung apakah CVS punya gaya yang mirip

    • Saya rasa komentar itu mungkin bermaksud bahwa hal tersebut jarang ditemui di software Windows
      Itu mengisyaratkan para pengembangnya awalnya juga mengerjakan sisi UNIX, karena SCCS/RCS memang umum di sana