Duqu ialah matryoshka yang berniat jahat

Pengenalan

Pada 1 September 2011, fail bernama ~DN1.tmp telah dihantar dari Hungary ke tapak web VirusTotal. Pada masa itu, fail itu dikesan sebagai berniat jahat oleh hanya dua enjin antivirus - BitDefender dan AVIRA. Beginilah kisah Duqu bermula. Memandang ke hadapan, mesti dikatakan bahawa keluarga malware Duqu dinamakan sempena nama fail ini. Walau bagaimanapun, fail ini adalah modul perisian pengintip bebas sepenuhnya dengan fungsi keylogger, dipasang, mungkin, menggunakan penitis muat turun yang berniat jahat, dan hanya boleh dianggap sebagai "muatan" yang dimuatkan oleh perisian hasad Duqu semasa operasinya, dan bukan sebagai komponen ( modul) daripada Duqu . Salah satu komponen Duqu telah dihantar ke perkhidmatan Virustotal hanya pada 9 September. Ciri tersendirinya ialah pemandu yang ditandatangani secara digital oleh C-Media. Sesetengah pakar segera mula membuat analogi dengan satu lagi contoh perisian hasad yang terkenal - Stuxnet, yang juga menggunakan pemandu yang ditandatangani. Jumlah bilangan komputer yang dijangkiti Duqu yang dikesan oleh pelbagai syarikat antivirus di seluruh dunia adalah dalam berpuluh-puluh. Banyak syarikat mendakwa bahawa Iran sekali lagi menjadi sasaran utama, tetapi berdasarkan taburan geografi jangkitan, ini tidak dapat dikatakan dengan pasti.
Duqu ialah matryoshka yang berniat jahat
Dalam kes ini, anda harus bercakap dengan yakin hanya tentang syarikat lain dengan perkataan palsu APT (ancaman berterusan lanjutan).

Prosedur pelaksanaan sistem

Siasatan yang dijalankan oleh pakar dari organisasi Hungary CrySyS (Makmal Kriptografi dan Keselamatan Sistem Hungary di Universiti Teknologi dan Ekonomi Budapest) membawa kepada penemuan pemasang (dropper) yang melaluinya sistem itu dijangkiti. Ia adalah fail Microsoft Word dengan eksploitasi untuk kelemahan pemacu win32k.sys (MS11-087, diterangkan oleh Microsoft pada 13 November 2011), yang bertanggungjawab untuk mekanisme pemaparan fon TTF. Kod shell eksploitasi menggunakan fon yang dipanggil 'Dexter Regular' yang dibenamkan dalam dokumen, dengan Showtime Inc. disenaraikan sebagai pencipta fon. Seperti yang anda lihat, pencipta Duqu tidak asing dengan rasa humor: Dexter ialah pembunuh bersiri, wira siri televisyen dengan nama yang sama, yang diterbitkan oleh Showtime. Dexter hanya membunuh (jika boleh) penjenayah, iaitu, dia melanggar undang-undang atas nama kesahihan. Mungkin dengan cara ini, pemaju Duqu berasa ironis bahawa mereka melakukan aktiviti haram untuk tujuan yang baik. Menghantar e-mel dilakukan dengan sengaja. Penghantaran kemungkinan besar menggunakan komputer yang terjejas (digodam) sebagai perantara untuk menyukarkan pengesanan.
Oleh itu, dokumen Word mengandungi komponen berikut:

  • kandungan teks;
  • fon terbina dalam;
  • mengeksploitasi shellcode;
  • pemandu;
  • pemasang (pustaka DLL).

Jika berjaya, kod shell eksploitasi melakukan operasi berikut (dalam mod kernel):

  • semakan telah dibuat untuk jangkitan semula; untuk ini, kehadiran kekunci 'CF4D' telah disemak dalam pendaftaran di alamat 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; jika ini betul, shellcode menyelesaikan pelaksanaannya;
  • dua fail telah dinyahsulit - pemacu (sys) dan pemasang (dll);
  • pemacu telah disuntik ke dalam proses services.exe dan melancarkan pemasang;
  • Akhirnya, kod shell memadam sendiri dengan sifar dalam ingatan.

Disebabkan fakta bahawa win32k.sys dilaksanakan di bawah 'Sistem' pengguna istimewa, pembangun Duqu telah menyelesaikan masalah kedua-dua pelancaran tanpa kebenaran dan peningkatan hak (berjalan di bawah akaun pengguna dengan hak terhad).
Selepas menerima kawalan, pemasang menyahsulit tiga blok data yang terkandung di dalamnya dalam ingatan, yang mengandungi:

  • pemandu yang ditandatangani (sys);
  • modul utama (dll);
  • data konfigurasi pemasang (pnf).

Julat tarikh telah ditentukan dalam data konfigurasi pemasang (dalam bentuk dua cap masa - mula dan tamat). Pemasang menyemak sama ada tarikh semasa disertakan di dalamnya, dan jika tidak, ia menyelesaikan pelaksanaannya. Juga dalam data konfigurasi pemasang adalah nama di mana pemacu dan modul utama disimpan. Dalam kes ini, modul utama telah disimpan pada cakera dalam bentuk yang disulitkan.

Duqu ialah matryoshka yang berniat jahat

Untuk autostart Duqu, perkhidmatan telah dibuat menggunakan fail pemacu yang menyahsulit modul utama dengan cepat menggunakan kekunci yang disimpan dalam pendaftaran. Modul utama mengandungi blok data konfigurasinya sendiri. Apabila pertama kali dilancarkan, ia telah dinyahsulit, tarikh pemasangan telah dimasukkan ke dalamnya, selepas itu ia disulitkan semula dan disimpan oleh modul utama. Oleh itu, dalam sistem yang terjejas, selepas pemasangan berjaya, tiga fail telah disimpan - pemacu, modul utama dan fail data konfigurasinya, manakala dua fail terakhir disimpan pada cakera dalam bentuk yang disulitkan. Semua prosedur penyahkodan dijalankan hanya dalam ingatan. Prosedur pemasangan yang kompleks ini digunakan untuk meminimumkan kemungkinan pengesanan oleh perisian antivirus.

Modul utama

Modul utama (sumber 302), mengikut maklumat syarikat Kaspersky Lab, ditulis menggunakan MSVC 2008 dalam C tulen, tetapi menggunakan pendekatan berorientasikan objek. Pendekatan ini tidak biasa apabila membangunkan kod berniat jahat. Sebagai peraturan, kod tersebut ditulis dalam C untuk mengurangkan saiz dan menyingkirkan panggilan tersirat yang wujud dalam C++. Terdapat simbiosis tertentu di sini. Selain itu, seni bina dipacu acara telah digunakan. Pekerja Kaspersky Lab cenderung kepada teori bahawa modul utama ditulis menggunakan alat tambah prapemproses yang membolehkan anda menulis kod C dalam gaya objek.
Modul utama bertanggungjawab untuk prosedur untuk menerima arahan daripada pengendali. Duqu menyediakan beberapa kaedah interaksi: menggunakan protokol HTTP dan HTTPS, serta menggunakan paip bernama. Untuk HTTP(S), nama domain pusat arahan telah ditentukan, dan keupayaan untuk bekerja melalui pelayan proksi telah disediakan - nama pengguna dan kata laluan telah ditentukan untuk mereka. Alamat IP dan namanya ditentukan untuk saluran. Data yang ditentukan disimpan dalam blok data konfigurasi modul utama (dalam bentuk yang disulitkan).
Untuk menggunakan paip bernama, kami melancarkan pelaksanaan pelayan RPC kami sendiri. Ia menyokong tujuh fungsi berikut:

  • kembalikan versi yang dipasang;
  • menyuntik dll ke dalam proses yang ditentukan dan memanggil fungsi yang ditentukan;
  • memuatkan dll;
  • mulakan proses dengan memanggil CreateProcess();
  • membaca kandungan fail yang diberikan;
  • tulis data ke fail yang ditentukan;
  • memadam fail yang ditentukan.

Paip yang dinamakan boleh digunakan dalam rangkaian tempatan untuk mengedarkan modul dan data konfigurasi yang dikemas kini antara komputer yang dijangkiti Duqu. Di samping itu, Duqu boleh bertindak sebagai pelayan proksi untuk komputer lain yang dijangkiti (yang tidak mempunyai akses ke Internet disebabkan tetapan tembok api pada get laluan). Sesetengah versi Duqu tidak mempunyai fungsi RPC.

"Muatan muatan" yang dikenali

Symantec menemui sekurang-kurangnya empat jenis muatan yang dimuat turun di bawah arahan daripada pusat kawalan Duqu.
Selain itu, hanya satu daripada mereka yang bermastautin dan disusun sebagai fail boleh laku (exe), yang disimpan ke cakera. Baki tiga telah dilaksanakan sebagai perpustakaan dll. Ia dimuatkan secara dinamik dan dilaksanakan dalam ingatan tanpa disimpan ke cakera.

"Muatan" pemastautin ialah modul pengintip (pencuri maklumat) dengan fungsi keylogger. Dengan menghantarnya ke VirusTotal, kerja penyelidikan Duqu bermula. Fungsi pengintip utama adalah dalam sumber, 8 kilobait pertama yang mengandungi sebahagian daripada foto galaksi NGC 6745 (untuk penyamaran). Perlu diingat di sini bahawa pada April 2012, beberapa media menerbitkan maklumat (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) bahawa Iran telah terdedah kepada beberapa perisian berniat jahat "Stars", manakala butiran mengenai kejadian itu tidak didedahkan. Mungkin ia hanya contoh "muatan" Duqu yang ditemui pada masa itu di Iran, maka dinamakan "Bintang".
Modul pengintip mengumpul maklumat berikut:

  • senarai proses yang sedang berjalan, maklumat tentang pengguna dan domain semasa;
  • senarai pemacu logik, termasuk pemacu rangkaian;
  • tangkapan skrin;
  • alamat antara muka rangkaian, jadual penghalaan;
  • fail log ketukan kekunci papan kekunci;
  • nama tetingkap aplikasi terbuka;
  • senarai sumber rangkaian yang tersedia (berkongsi sumber);
  • senarai lengkap fail pada semua cakera, termasuk yang boleh tanggal;
  • senarai komputer dalam "persekitaran rangkaian".

Satu lagi modul pengintip (pencuri maklumat) ialah variasi daripada apa yang telah diterangkan, tetapi disusun sebagai perpustakaan dll; fungsi keylogger, menyusun senarai fail dan menyenaraikan komputer yang termasuk dalam domain telah dialih keluar daripadanya.
Modul seterusnya (peninjau) maklumat sistem yang dikumpul:

  • sama ada komputer adalah sebahagian daripada domain;
  • laluan ke direktori sistem Windows;
  • versi sistem pengendalian;
  • nama pengguna semasa;
  • senarai penyesuai rangkaian;
  • sistem dan waktu tempatan, serta zon waktu.

Modul terakhir (pemanjangan jangka hayat) melaksanakan fungsi untuk meningkatkan nilai (disimpan dalam fail data konfigurasi modul utama) bilangan hari yang tinggal sehingga kerja selesai. Secara lalai, nilai ini ditetapkan kepada 30 atau 36 hari bergantung pada pengubahsuaian Duqu dan menurun sebanyak satu setiap hari.

Pusat komando

Pada 20 Oktober 2011 (tiga hari selepas maklumat mengenai penemuan itu disebarkan), pengendali Duqu menjalankan prosedur untuk memusnahkan kesan fungsi pusat arahan. Pusat arahan terletak pada pelayan yang digodam di seluruh dunia - di Vietnam, India, Jerman, Singapura, Switzerland, Great Britain, Belanda dan Korea Selatan. Menariknya, semua pelayan yang dikenal pasti menjalankan CentOS versi 5.2, 5.4 atau 5.5. OS adalah 32-bit dan 64-bit. Walaupun fakta bahawa semua fail yang berkaitan dengan operasi pusat arahan telah dipadamkan, pakar Kaspersky Lab dapat memulihkan beberapa maklumat daripada fail LOG dari ruang kendur. Fakta yang paling menarik ialah penyerang pada pelayan sentiasa menggantikan pakej lalai OpenSSH 4.3 dengan versi 5.8. Ini mungkin menunjukkan bahawa kelemahan yang tidak diketahui dalam OpenSSH 4.3 telah digunakan untuk menggodam pelayan. Tidak semua sistem digunakan sebagai pusat arahan. Sesetengah, berdasarkan ralat dalam log sshd semasa cuba mengubah hala lalu lintas untuk port 80 dan 443, telah digunakan sebagai pelayan proksi untuk menyambung ke pusat arahan akhir.

Tarikh dan modul

Dokumen Word yang diedarkan pada April 2011, yang telah diperiksa oleh Kaspersky Lab, mengandungi pemacu muat turun pemasang dengan tarikh kompilasi pada 31 Ogos 2007. Pemacu yang serupa (saiz - 20608 bait, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) dalam dokumen yang ditemui dalam makmal CrySys mempunyai tarikh penyusunan pada 21 Februari 2008. Di samping itu, pakar Kaspersky Lab menemui pemacu autorun rndismpc.sys (saiz - 19968 bait, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) dengan tarikh 20 Januari 2008. Tiada komponen bertanda 2009 ditemui. Berdasarkan cap masa penyusunan bahagian individu Duqu, perkembangannya mungkin bermula pada awal tahun 2007. Manifestasi terawalnya dikaitkan dengan pengesanan fail sementara jenis ~DO (mungkin dicipta oleh salah satu modul perisian pengintip), tarikh penciptaannya ialah 28 November 2008 (artikel "Duqu & Stuxnet: Garis Masa Acara Menarik"). Tarikh terbaharu yang dikaitkan dengan Duqu ialah 23 Februari 2012, terkandung dalam pemacu muat turun pemasang yang ditemui oleh Symantec pada Mac 2012.

Sumber maklumat yang digunakan:

siri artikel tentang Duqu dari Kaspersky Lab;
Laporan analisis Symantec "W32.Duqu Pelopor kepada Stuxnet seterusnya", versi 1.4, November 2011 (pdf).

Sumber: www.habr.com

Tambah komen