Bootkit UEFI in-the-wild pertama yang melewati Boot Aman UEFI pada sistem UEFI yang diperbarui sepenuhnya sekarang menjadi kenyataan
Jumlah kerentanan UEFI yang ditemukan dalam beberapa tahun terakhir dan kegagalan dalam menambalnya atau mencabut binari yang rentan dalam jangka waktu yang wajar tidak luput dari perhatian pelaku ancaman. Akibatnya, bootkit UEFI pertama yang diketahui publik melewati fitur keamanan platform penting – UEFI Secure Boot – sekarang menjadi kenyataan. Dalam posting blog ini kami menyajikan analisis publik pertama dari bootkit UEFI ini, yang mampu berjalan bahkan pada sistem Windows 11 yang sepenuhnya diperbarui dengan UEFI Secure Boot diaktifkan. Fungsionalitas bootkit dan fitur individualnya membuat kami percaya bahwa kami sedang berhadapan dengan bootkit yang dikenal sebagai Teratai Hitam, bootkit UEFI dijual di forum peretasan untuk $5,000 setidaknya sejak Oktober 2022.
Bootkit UEFI adalah ancaman yang sangat kuat, memiliki kontrol penuh atas proses boot OS dan dengan demikian mampu menonaktifkan berbagai mekanisme keamanan OS dan menerapkan muatan mode kernel atau mode pengguna mereka sendiri pada tahap permulaan OS awal. Ini memungkinkan mereka untuk beroperasi dengan sangat diam-diam dan dengan hak istimewa yang tinggi. Sejauh ini, hanya sedikit yang telah ditemukan di alam liar dan dideskripsikan secara publik (mis sampel EFI berbahaya kami menemukan pada tahun 2020, atau bootkit UEFI berfitur lengkap seperti penemuan kami tahun lalu – itu Perangkat boot ESPecter - atau Perangkat boot FinSpy ditemukan oleh peneliti dari Kaspersky).
Bootkit UEFI mungkin kalah tersembunyi jika dibandingkan dengan implan firmware – seperti LoJax; implan firmware UEFI in-the-wild pertama, ditemukan oleh tim kami pada tahun 2018 – karena bootkit terletak di partisi disk FAT32 yang mudah diakses. Namun, menjalankan sebagai bootloader memberi mereka kemampuan yang hampir sama dengan implan firmware, tetapi tanpa harus mengatasi pertahanan flash SPI bertingkat, seperti bit perlindungan BWE, BLE, dan PRx, atau perlindungan yang disediakan oleh perangkat keras (seperti Intel Boot Guard ). Tentu, UEFI Secure Boot menghalangi bootkit UEFI, tetapi ada sejumlah kerentanan yang diketahui yang memungkinkan melewati mekanisme keamanan penting ini. Dan yang terburuk dari ini adalah beberapa dari mereka masih mudah dieksploitasi pada sistem terbaru bahkan pada saat penulisan ini – termasuk yang dieksploitasi oleh BlackLotus.
Investigasi kami dimulai dengan beberapa temuan tentang apa yang ternyata merupakan komponen mode pengguna BlackLotus – pengunduh HTTP – di telemetri kami di akhir tahun 2022. Setelah penilaian awal, pola kode yang ditemukan dalam sampel membawa kami ke penemuan enam BlackLotus pemasang (baik di VirusTotal maupun di telemetri kami sendiri). Ini memungkinkan kami menjelajahi seluruh rantai eksekusi dan menyadari bahwa yang kami hadapi di sini bukan hanya malware biasa.
Berikut adalah poin-poin penting tentang BlackLotus dan garis waktu yang merangkum rangkaian acara yang terkait dengannya:
- Itu mampu berjalan pada sistem Windows 11 terbaru yang ditambal sepenuhnya dengan UEFI Secure Boot diaktifkan.
- Itu mengeksploitasi kerentanan berusia lebih dari satu tahun (CVE-2022-21894) untuk mem-bypass UEFI Secure Boot dan menyiapkan persistensi untuk bootkit. Ini adalah penyalahgunaan kerentanan ini yang pertama kali diketahui publik.
- Meskipun kerentanan telah diperbaiki pada pembaruan Microsoft Januari 2022, eksploitasinya masih dimungkinkan karena terpengaruh, ditandatangani secara sah binari masih belum ditambahkan ke daftar pencabutan UEFI. BlackLotus mengambil keuntungan dari ini, membawa salinannya sendiri yang sah – tetapi rentan – binari ke sistem untuk mengeksploitasi kerentanan.
- Itu mampu menonaktifkan mekanisme keamanan OS seperti BitLocker, HVCI, dan Windows Defender.
- Setelah terinstal, tujuan utama bootkit adalah untuk menerapkan driver kernel (yang, antara lain, melindungi bootkit dari penghapusan), dan pengunduh HTTP yang bertanggung jawab untuk komunikasi dengan C&C dan mampu memuat muatan mode pengguna atau mode kernel tambahan .
- BlackLotus telah diiklankan dan dijual di forum bawah tanah setidaknya sejak 6 Oktoberth, 2022. Dalam posting blog ini, kami menyajikan bukti bahwa bootkit itu nyata, dan iklannya bukan scam belaka.
- Menariknya, beberapa penginstal BlackLotus yang telah kami analisis tidak melanjutkan penginstalan bootkit jika host yang disusupi menggunakan salah satu lokal berikut:
- Rumania (Moldova), ro-MD
- Rusia (Moldova), ru-MD
- Rusia (Rusia), ru-RU
- Ukraina (Ukraina) , uk-UA
- Belarusia (Belarusia), be-BY
- Armenia (Armenia), hy-AM
- Kazakh (Kazakhstan), kk-KZ
Garis waktu peristiwa individu yang terkait dengan BlackLotus ditunjukkan pada Gambar 1.
Seperti yang telah disebutkan, bootkit telah dijual di forum bawah tanah setidaknya sejak 6 Oktoberth, 2022. Sampai saat ini, kami belum dapat mengidentifikasi, dari telemetri kami, saluran distribusi yang tepat yang digunakan untuk menyebarkan bootkit ke korban. Sedikitnya jumlah sampel BlackLotus yang dapat kami peroleh, baik dari sumber publik maupun telemetri kami, membuat kami yakin bahwa belum banyak pelaku ancaman yang mulai menggunakannya. Namun hingga pencabutan bootloader rentan yang menjadi sandaran BlackLotus terjadi, kami khawatir bahwa segala sesuatunya akan berubah dengan cepat jika bootkit ini jatuh ke tangan kelompok crimeware terkenal, berdasarkan penyebaran bootkit yang mudah dan kemampuan kelompok crimeware untuk menyebarkan malware menggunakan botnet mereka.
Apakah ini benar-benar BlackLotus?
Ada beberapa artikel atau postingan yang merangkum informasi tentang BlackLotus (di sini, di sini dan di sini dan masih banyak lagi…), semuanya berdasarkan informasi yang diberikan oleh pengembang bootkit di forum peretasan bawah tanah. Sejauh ini, belum ada yang mengkonfirmasi atau membantah klaim tersebut.
Berikut ringkasan klaim kami dari publikasi yang tersedia dibandingkan dengan apa yang kami temukan saat merekayasa balik sampel bootkit:
- Iklan BlackLotus di forum peretasan mengklaim bahwa ia memiliki fitur bypass Boot Aman terintegrasi. Menambahkan driver yang rentan ke daftar pencabutan UEFI saat ini tidak mungkin dilakukan, karena kerentanan tersebut memengaruhi ratusan bootloader yang masih digunakan hingga saat ini. ✅
- Benar: Itu mengeksploitasi CVE-2022-21894 untuk menghentikan Boot Aman dan mencapai kegigihan pada sistem yang mendukung UEFI-Secure-Boot. Driver rentan yang digunakannya masih belum dicabut di versi terbaru dbx, pada saat penulisan.
- Iklan BlackLotus di forum peretasan mengklaim bahwa bootkit memiliki perlindungan Ring0/Kernel bawaan terhadap penghapusan. ✅
- Benar: Driver kernelnya melindungi pegangan milik file-nya di Partisi Sistem EFI (ESP) dari penutupan. Sebagai lapisan perlindungan tambahan, pegangan ini terus dipantau dan Blue Screen Of Death (BSOD) terpicu jika salah satu dari pegangan ini ditutup, seperti yang dijelaskan dalam Melindungi file bootkit di ESP dari penghapusan bagian.
- Iklan BlackLotus di forum peretasan mengklaim bahwa ia hadir dengan fitur anti-virtual-machine (anti-VM), anti-debug, dan kebingungan kode untuk memblokir upaya analisis malware. ✅
- Benar: Ini berisi berbagai teknik anti-VM, anti-debug, dan obfuscation untuk mempersulit replikasi atau analisis. Namun, kita pasti tidak berbicara tentang terobosan atau teknik anti-analisis lanjutan di sini, karena dapat dengan mudah diatasi dengan sedikit usaha.
- Iklan BlackLotus di forum peretasan mengklaim bahwa tujuannya adalah untuk bertindak sebagai pengunduh HTTP. ✅
- Benar: Komponen terakhirnya bertindak sebagai pengunduh HTTP, seperti yang dijelaskan dalam Pengunduh HTTP bagian
- Iklan BlackLotus di forum peretasan mengklaim bahwa pengunduh HTTP berjalan di bawah akun SISTEM dalam proses yang sah. ✅
- Benar: Pengunduh HTTP-nya berjalan di dalam winlogon.exe konteks proses.
- Iklan BlackLotus di forum peretasan mengklaim demikian bootkit kecil dengan ukuran on-disk hanya 80 kB. ✅
- Benar: Sampel yang kami dapatkan benar-benar sekitar 80 kB.
- Iklan BlackLotus di forum peretasan mengklaim bahwa itu bisa nonaktifkan perlindungan keamanan Windows bawaan seperti HVCI, Bitlocker, Windows Defender, dan lewati Kontrol Akun Pengguna (UAC). ✅
Berdasarkan fakta-fakta ini, kami sangat yakin bahwa bootkit yang kami temukan di alam liar adalah bootkit BlackLotus UEFI.
Ikhtisar serangan
Skema rantai kompromi BlackLotus yang disederhanakan ditunjukkan pada Gambar 2. Ini terdiri dari tiga bagian utama:
- Dimulai dengan eksekusi penginstal (langkah 1 pada Gambar 2), yang bertanggung jawab untuk menyebarkan file bootkit ke partisi Sistem EFI, menonaktifkan HVCI dan BitLocker, lalu mem-boot ulang mesin.
- Setelah reboot pertama, eksploitasi CVE-2022-21894 dan selanjutnya pendaftaran penyerang Kunci Pemilik Mesin (MOK) terjadi, untuk mencapai persistensi bahkan pada sistem dengan UEFI Secure Boot diaktifkan. Mesin kemudian di-boot ulang (langkah 2–4 pada Gambar 2) lagi.
- Pada semua boot berikutnya, bootkit UEFI yang ditandatangani sendiri dijalankan dan menyebarkan driver kernel dan muatan mode penggunanya, pengunduh HTTP. Bersama-sama, komponen ini dapat mengunduh dan menjalankan mode pengguna tambahan dan komponen driver dari server C&C dan melindungi bootkit dari penghapusan (langkah 5–9 pada Gambar 2).
Artefak yang menarik
Meskipun kami yakin ini adalah bootkit BlackLotus UEFI, kami tidak menemukan referensi apa pun ke nama ini dalam sampel yang kami analisis. Sebaliknya, kode tersebut penuh dengan referensi ke Higurashi When They Cry serial anime, misalnya dalam nama komponen individual, seperti higurashi_installer_uac_module.dll dan higurashi_kernel.sys, dan juga dalam sertifikat yang ditandatangani sendiri yang digunakan untuk menandatangani biner bootkit (ditunjukkan pada Gambar 3).
Selain itu, kode mendekripsi tetapi tidak pernah menggunakan berbagai string yang berisi pesan dari penulis BlackLotus (seperti yang ditunjukkan pada Gambar 4 – perhatikan, bahwa hasherezade adalah peneliti terkenal dan penulis berbagai alat analisis malware), atau hanya beberapa kutipan acak dari berbagai lagu, game, atau serial.
proses instalasi
Kami mulai dengan analisis penginstal BlackLotus. Bootkit ini sepertinya didistribusikan dalam bentuk installer yang hadir dalam dua versi – offline dan online. Perbedaan antara keduanya adalah cara mereka mendapatkan binari Windows yang sah (namun rentan), yang kemudian digunakan untuk mem-bypass Boot Aman.
- Dalam versi offline, binari Windows disematkan di penginstal
- Dalam versi online, binari Windows diunduh langsung dari toko simbol Microsoft. Sejauh ini, kami telah melihat binari Windows berikut disalahgunakan oleh bootkit BlackLotus:
- https://msdl.microsoft.com/download/symbols/bootmgfw.efi/7144BCD31C0000/bootmgfw.efi
- https://msdl.microsoft.com/download/symbols/bootmgr.efi/98B063A61BC000/bootmgr.efi
- https://msdl.microsoft.com/download/symbols/hvloader.efi/559F396411D000/hvloader.efi
Tujuan penginstalnya jelas – ia bertanggung jawab untuk menonaktifkan fitur keamanan Windows seperti enkripsi disk BitLocker dan HVCI, dan untuk penyebaran banyak file, termasuk bootkit jahat, ke ESP. Setelah selesai, itu akan mem-boot ulang mesin yang dikompromikan untuk membiarkan file yang dijatuhkan melakukan tugasnya - untuk memastikan bootkit UEFI yang ditandatangani sendiri akan dieksekusi secara diam-diam pada setiap sistem dimulai, terlepas dari status perlindungan UEFI Secure Boot.
Langkah 0 – Inisialisasi dan (potensial) elevasi
Saat penginstal dijalankan, penginstal akan memeriksa apakah penginstal memiliki hak istimewa yang cukup (setidaknya diperlukan admin) untuk menyebarkan file lainnya ke ESP dan melakukan tindakan lain yang memerlukan proses peningkatan – seperti mematikan HVCI atau menonaktifkan BitLocker. Jika bukan itu masalahnya, ia mencoba meningkatkan dengan menjalankan penginstal lagi dengan menggunakan metode bypass UAC yang dijelaskan secara mendetail di sini: Bypass UAC melalui asisten Kompatibilitas Program.
Dengan hak istimewa yang diperlukan, ia melanjutkan, memeriksa status UEFI Secure Boot dengan membaca nilai variabel UEFI SecureBoot menggunakan fungsi Windows API yang tersedia, dan menentukan versi Windows dengan langsung mengakses KUSER_SHARE_DATA bidang struktur Versi NtMajor dan Versi NtKecil dalam kenangan. Itu dilakukan untuk memutuskan apakah melewati UEFI Secure Boot diperlukan atau tidak untuk menerapkan bootkit pada sistem korban (karena dukungan Secure Boot pertama kali ditambahkan pada Windows 8 dan mungkin tidak diaktifkan pada mesin mana pun).
Sebelum melanjutkan ke langkah selanjutnya, ini mengganti nama Windows Boot Manager yang sah (bootmgfw.efi) biner yang terletak di ESP:EFIMicrosoftBoot direktori ke winload.efi. Ini berganti nama bootmgfw.efi cadangan kemudian digunakan oleh bootkit untuk meluncurkan OS, atau untuk memulihkan rantai boot asli jika perintah "uninstall" diterima dari server C&C – selengkapnya di komunikasi C&C bagian.
Langkah 1 – Menyebarkan file
Jika UEFI Secure Boot diaktifkan, penginstal melanjutkan dengan memasukkan beberapa file ke dalam ESP:/EFI/Microsoft/Boot/ dan ESP:/sistem32/ direktori. Sementara yang pertama adalah direktori standar yang digunakan oleh Windows, yang terakhir adalah folder khusus yang dibuat oleh penginstal.
Daftar file yang dijatuhkan oleh penginstal dengan penjelasan singkat tentang peran setiap file dalam rantai eksekusi disediakan pada Tabel 1. Kami akan menjelaskan secara detail cara kerja rantai eksekusi nanti; sekarang perhatikan saja bahwa beberapa file bertanda tangan Microsoft yang sah dihapus bersama dengan yang berbahaya.
Tabel 1. File yang disebarkan oleh penginstal BlackLotus pada sistem dengan UEFI Secure Boot diaktifkan
Map | Filename | Deskripsi Produk |
---|---|---|
ESP:EFIMicrosoftBoot | grubx64.efi | BlackLotus bootkit, aplikasi UEFI berbahaya yang ditandatangani sendiri. |
bootload.efi | Bertanda tangan Microsoft yang sah shim biner (nama sementara, nanti diganti bootmgfw.efi setelah CVE-2022-21894 eksploitasi). | |
bootmgfw.efi | Sah, tetapi rentan (CVE-2022-21894) Biner Windows Boot Manager, disematkan di penginstal atau diunduh langsung dari Microsoft Symbol Store. | |
BCD | Kebiasaan penyerang Boot Configuration Data (BCD) toko digunakan di CVE-2022-21894 rantai eksploitasi. | |
BCDR | Cadangan toko BCD asli korban. | |
ESP: sistem32 | hvloader.efi | Sah, tetapi rentan (CVE-2022-21894) Biner Windows Hypervisor Loader, disematkan di dalam penginstal atau diunduh langsung dari Microsoft Symbol Store. |
bootmgr.efi | Sah, tetapi rentan (CVE-2022-21894) Biner Windows Boot Manager, disematkan di dalam penginstal atau diunduh langsung dari Microsoft Symbol Store. | |
mcupdate_AuthenticAMD.dll | Biner PE asli berbahaya yang ditandatangani sendiri. File ini dijalankan oleh hvloader.efi setelah eksploitasi CVE-2022-21894 yang berhasil (pada sistem yang menggunakan CPU AMD). | |
mcupdate_GenuineIntel.dll | Biner PE asli berbahaya yang ditandatangani sendiri. File ini dijalankan oleh hvloader.efi setelah sukses CVE-2022-21894 eksploitasi (pada sistem yang menggunakan CPU Intel). | |
BCD | BCD khusus penyerang digunakan di CVE-2022-21894 rantai eksploitasi. |
Jika korban menjalankan versi Windows yang tidak mendukung UEFI Secure Boot, atau jika dinonaktifkan, penerapannya cukup mudah. Satu-satunya hal yang diperlukan untuk menyebarkan bootkit jahat adalah mengganti Windows Boot Manager yang ada (bootmgfw.efi) biner di ESP:EFIMicrosoftBoot direktori, dengan aplikasi UEFI berbahaya yang ditandatangani sendiri oleh penyerang. Karena UEFI Secure Boot dinonaktifkan (sehingga tidak ada verifikasi integritas yang dilakukan selama boot), eksploitasi tidak diperlukan dan firmware UEFI hanya menjalankan boot manager berbahaya tanpa menyebabkan pelanggaran keamanan.
Langkah 2 – Menonaktifkan Integritas Kode yang Dilindungi Hypervisor (HVCI)
Untuk dapat menjalankan kode kernel kustom unsigned nanti, installer harus memastikannya HVCI dinonaktifkan pada sistem. Salah satu kolega ESET kami menulis posting blog yang sangat informatif tentang topik ini pada tahun 2022 (Driver kernel yang ditandatangani – Gerbang yang tidak dijaga ke inti Windows):
Keamanan berbasis virtualisasi (VBS) menawarkan beberapa fitur perlindungan dengan yang paling menonjol adalah Hypervisor-Protected Code Integrity (HVCI), yang juga hadir sebagai fitur mandiri. HVCI memberlakukan integritas kode di kernel dan hanya mengizinkan kode yang ditandatangani untuk dieksekusi. Ini secara efektif mencegah driver yang rentan disalahgunakan untuk mengeksekusi kode kernel yang tidak ditandatangani atau memuat driver berbahaya (terlepas dari metode eksploitasi yang digunakan) dan tampaknya malware yang menyalahgunakan driver yang rentan untuk memuat kode berbahaya adalah salah satunya. motivasi utama di balik Microsoft menerapkan fitur ini.
Seperti yang ditunjukkan pada Gambar 5, untuk menonaktifkan fitur ini, penginstal menetapkan nilai registri yang Diaktifkan di bawah Integritas Kode HypervisorEnforced kunci registri ke nol.
Langkah 3 – Menonaktifkan BitLocker
Fitur selanjutnya yang dinonaktifkan oleh installer adalah BitLocker Drive Encryption. Alasannya adalah karena BitLocker dapat digunakan dalam kombinasi dengan Trusted Platform Module (TPM) untuk memastikan bahwa berbagai file dan konfigurasi boot, termasuk Boot Aman, belum dirusak sejak enkripsi drive BitLocker dikonfigurasi pada sistem. Mempertimbangkan bahwa penginstal memodifikasi rantai boot Windows pada mesin yang dikompromikan, mempertahankan BitLocker untuk sistem dengan dukungan TPM akan mengarah ke layar pemulihan BitLocker pada boot berikutnya dan akan memberi tahu korban bahwa sistem telah disusupi.
Untuk menonaktifkan perlindungan ini, penginstal BlackLotus:
- berjalan melalui semua volume di bawah RootCIMV2SecurityMicrosoftVolumeEncryption namespace WMI dan memeriksa status perlindungannya dengan memanggil Dapatkan Status Perlindungan metode dari Win32_Volume yang Dapat Dienkripsi kelas WMI
- bagi mereka yang dilindungi oleh BitLocker, itu memanggil NonaktifkanKeyProtectors metode dengan Nonaktifkan Hitung parameter disetel ke nol, artinya perlindungan akan ditangguhkan hingga diaktifkan secara manual
Dengan perlindungan yang diperlukan dinonaktifkan dan semua file disebarkan, penginstal mendaftarkan dirinya sendiri untuk dihapus selama sistem restart berikutnya dan mem-boot ulang mesin untuk melanjutkan eksploitasi CVE-2022-21894.
Melewati Boot Aman dan membangun kegigihan
Pada bagian ini, kita melihat lebih dekat bagaimana BlackLotus mencapai persistensi pada sistem dengan UEFI Secure Boot diaktifkan. Karena rantai eksekusi yang akan kami jelaskan cukup rumit, pertama-tama kami akan menjelaskan prinsip-prinsip dasar dan kemudian menggali lebih dalam detail teknis.
Singkatnya, proses ini terdiri dari dua langkah utama:
- Memanfaatkan CVE-2022-21894 untuk mem-bypass fitur Boot Aman dan menginstal bootkit. Ini memungkinkan eksekusi kode arbitrer pada fase boot awal, di mana platform masih dimiliki oleh firmware dan fungsi Layanan Boot UEFI masih tersedia. Hal ini memungkinkan penyerang melakukan banyak hal yang seharusnya tidak dapat mereka lakukan pada mesin dengan UEFI Secure Boot diaktifkan tanpa memiliki akses fisik ke sana, seperti memodifikasi variabel NVRAM khusus layanan Boot. Dan inilah yang dimanfaatkan penyerang untuk menyiapkan persistensi untuk bootkit di langkah selanjutnya. Informasi lebih lanjut tentang eksploitasi dapat ditemukan di Memanfaatkan CVE-2022-21894 bagian.
- Setting persistensi dengan menulis MOK sendiri ke Daftar Mok, Variabel NVRAM khusus layanan boot. Dengan melakukan ini, ia dapat menggunakan tanda tangan Microsoft yang sah shim untuk memuat yang ditandatangani sendiri (ditandatangani oleh kunci privat milik kunci yang ditulis ke Daftar Mok) Bootkit UEFI alih-alih mengeksploitasi kerentanan pada setiap boot. Lebih lanjut tentang ini di Kegigihan bootkit bagian.
Untuk mempermudah analisis terperinci dalam dua bagian berikutnya, kita akan mengikuti langkah-langkah yang ditunjukkan dalam diagram eksekusi, Gambar 6.
Memanfaatkan CVE-2022-21894
Untuk mem-bypass Boot Aman, BlackLotus menggunakan baton drop (CVE-2022-21894): Kerentanan Bypass Fitur Keamanan Boot Aman. Meskipun berdampak tinggi pada keamanan sistem, kerentanan ini tidak mendapat perhatian publik sebanyak yang seharusnya. Meskipun kerentanan telah diperbaiki pada pembaruan Microsoft Januari 2022, eksploitasinya masih dimungkinkan karena binari yang terpengaruh masih belum ditambahkan ke daftar pencabutan UEFI. Akibatnya, penyerang dapat membawa salinan binari rentan mereka sendiri ke mesin korban untuk mengeksploitasi kerentanan ini dan mem-bypass Secure Boot pada sistem UEFI terbaru.
Selain itu, eksploitasi Proof of Concept (PoC) untuk kerentanan ini telah tersedia untuk umum sejak Agustus 2022. Mempertimbangkan tanggal pengiriman pertama BlackLotus VirusTotal (lihat Gambar 1), pengembang malware kemungkinan baru saja menyesuaikan PoC yang tersedia dengan kebutuhan mereka tanpa perlu pemahaman mendalam tentang cara kerja eksploit ini.
Mari kita mulai dengan pengantar singkat tentang kerentanan, sebagian besar meringkas poin-poin penting dari artikel yang diterbitkan bersama dengan PoC di GitHub:
- Aplikasi Boot Windows yang Terkena Dampak (seperti bootmgr.efi, hvloader.efi, winload.efi…) izinkan menghapus kebijakan Boot Aman berseri dari memori – sebelum dimuat oleh aplikasi – dengan menggunakan memotong memori opsi boot BCD.
- Ini memungkinkan penyerang untuk menggunakan opsi BCD berbahaya lainnya seperti bootdebug, tessigning, atau nointegritychecks, sehingga merusak Boot Aman.
- Ada berbagai cara untuk mengeksploitasi kerentanan ini – tiga di antaranya dipublikasikan di repositori PoC.
- Sebagai contoh, salah satu PoC menunjukkan bagaimana itu dapat dieksploitasi untuk membuat yang sah hvloader.efi memuat sewenang-wenang, ditandatangani sendiri mcupdate_ .dll biner (di mana dapat Intel Asli or AMD asli, berdasarkan CPU mesin.).
Sekarang, kami melanjutkan dengan menjelaskan bagaimana BlackLotus mengeksploitasi kerentanan ini (angka-angka dalam daftar di bawah menjelaskan langkah-langkah terkait dalam Gambar 6):
- Setelah penginstal mem-boot ulang mesin, firmware UEFI melanjutkan dengan memuat opsi boot pertama. Untuk sistem Windows, opsi boot pertama secara default bootmgfw.efi terletak di ESP:/EFI/Microsoft/Boot folder di ESP. Kali ini, alih-alih mengeksekusi korban aslinya bootmgfw.efi (yang sebelumnya berganti nama winload.efi oleh penginstal), firmware mengeksekusi yang rentan – disebarkan oleh penginstal.
- Setelah bootmgfw.efi dijalankan, itu memuat opsi boot BCD, yang sebelumnya dimodifikasi oleh penginstal. Gambar 7 menunjukkan perbandingan BCD yang sah dan yang dimodifikasi.
- Seperti yang Anda lihat pada Gambar 7 (jalur yang digarisbawahi dengan warna hijau), Windows Boot Manager yang sah biasanya memuat pemuat OS Windows (WINDOWSsystem32winload.efi) sebagai aplikasi boot default. Namun kali ini, dengan BCD yang dimodifikasi, dilanjutkan dengan memuat yang rentan ESP:system32bootmgr.efi, Dengan hindari memori rendah Elemen BCD disetel ke nilai 0x10000000 dan adat: 22000023 Elemen BCD yang menunjuk ke BCD penyerang lain yang disimpan di ESP: sistem32bcd. Penjelasan penggunaan elemen-elemen ini dapat ditemukan di publikasi PoC:
Penyerang perlu memastikan Kebijakan Boot Aman berseri dialokasikan di atas alamat fisik yang diketahui.
[...]
Grafik hindari memori rendah elemen dapat digunakan untuk memastikan semua alokasi memori fisik berada di atas alamat fisik tertentu.
• Sejak Windows 10, elemen ini tidak diizinkan jika VBS diaktifkan, tetapi karena digunakan selama inisialisasi aplikasi booting, sebelum kebijakan Boot Aman berseri dibaca dari memori, memuat Bootmgr dan menentukan jalur BCD khusus (menggunakan jalur filebcd elemen alias adat: 22000023) dapat digunakan untuk mem-bypass ini.
- Pada langkah selanjutnya, dieksekusi ESP:system32bootmgr.efi memuat BCD tambahan yang berada di dalamnya ESP: sistem32bcd. Konten yang diuraikan dari BCD tambahan ini ditunjukkan pada Gambar 8.
- Karena opsi dimuat dari file BCD yang ditunjukkan pada Gambar 8, bootmgr.efi berlanjut dengan memuat Aplikasi Boot Windows rentan lainnya yang digunakan oleh penginstal - ESP: system32hvloader.efi – yang merupakan Windows Hypervisor Loader. Lebih penting lagi, opsi BCD tambahan ditentukan dalam file BCD yang sama (lihat Gambar 8):
- memotong memori dengan nilai yang ditetapkan ke 0x10000000
- nointegritychecks diatur ke Ya
- dan tessigning, juga disetel ke Ya
Dan disinilah keajaiban terjadi. Karena kebijakan Boot Aman berseri harus dimuat di alamat fisik di atas 0x10000000 (karena hindari memori rendah digunakan pada langkah sebelumnya), menentukan memotong memori elemen akan secara efektif menghapusnya - jadi, hancurkan Boot Aman dan izinkan penggunaan opsi BCD berbahaya seperti nointegritychecks or tessigning. Dengan menggunakan opsi ini, penyerang dapat membuat hvloader.efi mengeksekusi kode mereka sendiri yang ditandatangani sendiri.
- Untuk melakukan ini, trik yang sama seperti yang dijelaskan di PoC digunakan: selama pelaksanaannya, yang sah hvloader.efi memuat dan mengeksekusi mcupdate_{Intel Asli| AuthenticAMD}.dll biner asli dari : system32 direktori. Komentar Hex-Rays mendekompilasi kode fungsi dari hvloader.efi bertanggung jawab untuk memuat biner mcupdate*.dll ini ditunjukkan pada Gambar 9. Perhatikan bahwa hvloader.efi biasanya akan memuat ini sah mcupdate*.dll biner dari: Sistem Windows32, tapi kali ini penyerang jahat itu menandatangani sendiri mcupdate*.dll dijalankan dari direktori ESP khusus yang sebelumnya dibuat oleh penginstal (ESP: sistem32). Ini disebabkan oleh opsi BCD alat dan akar sistem digunakan dalam BCD dari Gambar 8 menentukan perangkat saat ini sebagai booting – artinya ESP – dan juga menetapkan SystemRoot sebagai root () direktori pada perangkat ini.
- Sekarang, sebagai penyerang sendiri ditandatangani mcupdate*.dll dimuat dan dijalankan, dilanjutkan dengan mengeksekusi komponen terakhir dalam rantai ini – MokInstaller tertanam (Aplikasi UEFI) – lihat Gambar 10 untuk detail tentang cara melakukannya.
Kegigihan bootkit
Sekarang, MokInstaller dapat melanjutkan dengan menyiapkan persistensi dengan mendaftarkan MOK penyerang ke dalam variabel NVRAM dan menyiapkan file yang ditandatangani oleh Microsoft yang sah shim biner sebagai bootloader default. Sebelum melanjutkan ke detail, sedikit teori tentang shim dan MOK.
shim adalah bootloader UEFI tahap pertama yang dikembangkan oleh pengembang Linux untuk membuat berbagai distribusi Linux bekerja dengan UEFI Secure Boot. Ini adalah aplikasi sederhana dan tujuannya adalah untuk memuat, memverifikasi, dan menjalankan aplikasi lain – dalam kasus sistem Linux, biasanya bootloader GRUB. Ini bekerja dengan cara yang hanya ditandatangani oleh Microsoft a shim, Dan shim mengurus sisanya – dapat memverifikasi integritas bootloader tahap kedua dengan menggunakan kunci dari db UEFI, dan juga menyematkan daftar kunci atau hash yang "diizinkan" atau "dicabut" sendiri untuk memastikan bahwa komponen yang dipercaya oleh keduanya - pengembang platform dan shim (misalnya Canonical, RedHat, dll.,) - diizinkan untuk dieksekusi. Selain daftar tersebut, shim juga memungkinkan penggunaan database kunci eksternal yang dikelola oleh pengguna, yang dikenal sebagai daftar MOK. Gambar 11 mengilustrasikan dengan baik cara kerja UEFI Secure Boot with MOK.
Basis data MOK ini disimpan dalam variabel NVRAM khusus-Boot bernama Daftar Mok. Tanpa mengeksploitasi kerentanan seperti yang dijelaskan di atas, akses fisik diperlukan untuk memodifikasinya pada sistem dengan UEFI Secure Boot diaktifkan (ini hanya tersedia selama boot, sebelum pemuat OS memanggil fungsi Layanan Boot UEFI Keluar dari BootServices). Namun, dengan mengeksploitasi kerentanan ini, penyerang dapat mem-bypass UEFI Secure Boot dan menjalankan kode yang ditandatangani sendiri sebelum panggilan ke Keluar dari BootServices, sehingga mereka dapat dengan mudah mendaftarkan kunci mereka sendiri (dengan memodifikasi file Daftar Mok variabel NVRAM) untuk membuat shim menjalankan aplikasi apa pun – yang ditandatangani oleh kunci terdaftar tersebut – tanpa menyebabkan pelanggaran keamanan.
- Melanjutkan dengan menjelaskan alur dari Gambar 6 – langkah 8… Aplikasi MokInstaller UEFI melanjutkan dengan menyiapkan persistensi untuk bootkit BlackLotus UEFI dan menutupi jejak eksploitasi dengan:
- Memulihkan penyimpanan BCD asli korban dari cadangan yang dibuat oleh penginstal dan mengganti efi dengan shim bertanda tangan Microsoft yang sah, yang sebelumnya dijatuhkan ke ESP:system32bootload.efi oleh penginstal.
- Membuat Daftar Mok Variabel NVRAM yang berisi sertifikat kunci publik yang ditandatangani sendiri oleh penyerang. Perhatikan bahwa variabel ini diformat dengan cara yang sama seperti variabel basis data tanda tangan UEFI lainnya (seperti db atau dbx) dan dapat terdiri dari nol atau lebih daftar jenis tanda tangan EFI_SIGNATURE_LIST – sebagaimana didefinisikan dalam Spesifikasi UEFI.
- Menghapus semua file yang terlibat dalam eksploitasi dari penyerang ESP: sistem32 folder.
- Pada akhirnya, itu me-reboot mesin untuk membuat shim yang dikerahkan mengeksekusi bootkit yang ditandatangani sendiri EFIMicrosoftBootgrubx64.efi oleh pemasang (grubx64.efi biasanya bootloader tahap kedua default yang dijalankan oleh a shim pada sistem x86-64).
Kode yang melakukan tindakan yang dijelaskan dalam dua langkah terakhir ditunjukkan pada Gambar 12.
Perangkat boot BlackLotus UEFI
Setelah persistensi dikonfigurasi, bootkit BlackLotus dijalankan pada setiap sistem dimulai. Tujuan bootkit adalah untuk menerapkan driver kernel dan komponen mode pengguna akhir – pengunduh HTTP. Selama pelaksanaannya, ia mencoba untuk menonaktifkan fitur keamanan Windows tambahan – Virtualization-Based Security (VBS) dan Windows Defender – untuk meningkatkan kemungkinan penyebaran yang berhasil dan operasi diam-diam. Sebelum melompat ke detail tentang cara melakukannya, mari kita rangkum dasar-dasar tentang driver kernel dan pengunduh HTTP:
- Driver kernel bertanggung jawab untuk
- Menerapkan komponen rantai berikutnya – pengunduh HTTP.
- Menjaga loader tetap hidup jika terjadi penghentian.
- Melindungi file bootkit agar tidak dihapus dari ESP.
- Menjalankan muatan kernel tambahan, jika diinstruksikan demikian oleh pengunduh HTTP.
- Menghapus instalan bootkit, jika diinstruksikan oleh pengunduh HTTP.
- Pengunduh HTTP bertanggung jawab untuk:
- Berkomunikasi dengan C&C-nya.
- Menjalankan perintah yang diterima dari C&C.
- Mengunduh dan menjalankan muatan yang diterima dari C&C (mendukung muatan kernel dan muatan mode pengguna).
Alur eksekusi penuh (disederhanakan), dari penginstal ke pengunduh HTTP, ditunjukkan pada Gambar 13. Kami menjelaskan langkah-langkah individual ini secara lebih mendetail di bagian berikutnya.
Alur eksekusi BlackLotus
Langkah-langkah eksekusi adalah sebagai berikut (langkah-langkah ini ditunjukkan pada Gambar 13):
- Sebagai langkah pertama, firmware UEFI menjalankan opsi boot Windows default, yang merupakan file yang biasanya disimpan EFIMicrosoftBootbootmgfw.efi. Seperti yang kami jelaskan sebelumnya (Bagian kegigihan bootkit, 8 .a), biner MokInstaller mengganti file ini dengan tanda tangan yang sah shim.
- Ketika shim dieksekusi, ia membaca Daftar Mok variabel NVRAM, dan menggunakan sertifikat yang sebelumnya disimpan di dalam oleh penyerang untuk memverifikasi bootloader tahap kedua – bootkit BlackLotus UEFI yang ditandatangani sendiri yang terletak di EFIMicrosoftBootgrubx64.efi.
- Saat diverifikasi, the shim mengeksekusi bootkit.
- Bootkit dimulai dengan membuat Boot-only VbsPolicyNonaktifkan variabel NVRAM. Seperti yang dijelaskan di sini, variabel ini dievaluasi oleh pemuat OS Windows selama boot dan jika ditentukan, fitur inti VBS, seperti HVCI dan Credential Guard tidak akan diinisialisasi.
- Pada langkah-langkah berikut (5.a–e), bootkit melanjutkan dengan pola umum yang digunakan oleh bootkit UEFI. Ini memotong eksekusi komponen yang termasuk dalam aliran boot Windows yang khas, seperti Windows Boot Manager, pemuat OS Windows, dan kernel OS Windows, dan mengaitkan beberapa fungsinya di memori. Sebagai bonus, ia juga mencoba menonaktifkan Windows Defender dengan menambal beberapa drivernya. Semua ini untuk mencapai eksekusi muatannya pada tahap awal proses startup OS dan untuk menghindari deteksi. Fungsi-fungsi berikut dikaitkan atau ditambal:
- Aplikasi ImgArchStartBoot in bootmgfw.efi or bootmgr.efi:
Fungsi ini biasanya dikaitkan dengan bootkit untuk menangkap momen ketika loader OS Windows (winload.efi) dimuat di memori tetapi masih belum dieksekusi – yang merupakan saat yang tepat untuk melakukan lebih banyak penambalan di dalam memori. - BlImgAllocationImageBuffer in winload.efi:
Digunakan untuk mengalokasikan buffer memori tambahan untuk driver kernel berbahaya. - OslArchTransferToKernel in winload.efi:
Terhubung untuk menangkap momen ketika kernel OS dan beberapa driver sistem sudah dimuat di memori, tetapi masih belum dieksekusi – yang merupakan momen yang tepat untuk melakukan lebih banyak patching di dalam memori. Driver yang disebutkan di bawah ini ditambal di pengait ini. Kode dari hook ini yang bertanggung jawab untuk menemukan driver yang sesuai di memori ditunjukkan pada Gambar 14. - WdBoot.sys dan WdFilter.sys:
BlackLotus menambal titik masuknya WdBoot.sys dan WdFilter.sys – masing-masing driver Windows Defender ELAM dan driver filter sistem file Windows Defender – untuk segera kembali. - disk.sys:
Bootkit menghubungkan titik masuk dari disk.sys driver untuk menjalankan driver kernel BlackLotus pada tahap awal inisialisasi sistem.
- Aplikasi ImgArchStartBoot in bootmgfw.efi or bootmgr.efi:
- Selanjutnya, ketika kernel OS mengeksekusi disk.sys titik masuk driver, pengait yang diinstal melompat ke titik masuk driver kernel jahat. Kode jahat pada gilirannya mengembalikan yang asli disk.sys untuk memungkinkan sistem berfungsi dengan baik dan menunggu sampai winlogon.exe proses dimulai.
- Ketika driver berbahaya mendeteksi bahwa winlogon.exe proses telah dimulai, itu menyuntikkan dan mengeksekusi komponen mode pengguna akhir – pengunduh HTTP – ke dalamnya.
pengemudi kernel
Driver kernel bertanggung jawab atas empat tugas utama:
- Menyuntikkan pengunduh HTTP ke winlogon.exe dan menyuntikkannya kembali jika utas diakhiri.
- Melindungi file bootkit yang diterapkan di ESP agar tidak dihapus.
- Melucuti proses Windows Defender mode pengguna MsMpEngine.exe.
- Berkomunikasi dengan pengunduh HTTP dan jika perlu, melakukan perintah apa pun.
Mari kita lihat mereka satu per satu.
kegigihan pengunduh HTTP
Driver kernel bertanggung jawab atas penerapan pengunduh HTTP. Saat driver dimulai, ia menunggu hingga proses bernama winlogon.exe dimulai, sebelum mengambil tindakan lainnya. Setelah proses dimulai, driver mendekripsi biner pengunduh HTTP, menyuntikkannya ke winlogon.exeruang alamat, dan mengeksekusinya di utas baru. Kemudian, pengemudi secara berkala memeriksa apakah utas masih berjalan, dan mengulangi injeksi jika perlu. Pengunduh HTTP tidak akan digunakan jika debugger kernel terdeteksi oleh driver.
Melindungi file bootkit di ESP dari penghapusan
Untuk melindungi file bootkit yang terletak di ESP, driver kernel menggunakan trik sederhana. Itu membuka semua file yang ingin dilindungi, menggandakan dan menyimpan pegangannya, dan menggunakan Atribut ObSetHandle fungsi kernel yang menentukan LindungiDariTutup bendera di dalam Menangani Bendera (OBJECT_HANDLE_FLAG_INFORMASI) parameter ke 1 – sehingga melindungi gagang agar tidak ditutup oleh proses lain. Ini akan menggagalkan upaya apa pun untuk menghapus atau memodifikasi file yang dilindungi. File-file berikut dilindungi:
- ESP:EFIMicrosoftBootwinload.efi
- ESP:EFIMicrosoftBootbootmgfw.efi
- ESP:EFIMicrosoftBootgrubx64.efi
Jika pengguna mencoba menghapus file yang dilindungi ini, hal seperti yang ditunjukkan pada Gambar 15 akan terjadi.
Sebagai lapisan perlindungan lainnya, jika pengguna atau perangkat lunak keamanan dapat menghapus bendera perlindungan dan menutup pegangan, driver kernel terus memantaunya, dan menyebabkan BSOD dengan memanggil KeBugCheck(INVALID_KERNEL_HANDLE) fungsi jika salah satu pegangan tidak ada lagi.
Melucuti proses utama Windows Defender
Driver kernel juga mencoba menonaktifkan proses Windows Defender utama – MsMpEng.exe. Itu dilakukan dengan menghapus semua hak istimewa token proses dengan menyetel SE_PRIVILEGE_REMOVED atribut untuk masing-masing dari mereka. Akibatnya, proses Pembela seharusnya tidak dapat melakukan tugasnya – seperti memindai file – dengan baik. Namun, karena fungsi ini tidak diterapkan dengan baik, fungsi ini dapat dibuat tidak efektif dengan memulai ulang MsMpEng.exe proses.
Komunikasi dengan pengunduh HTTP
Driver kernel mampu berkomunikasi dengan pengunduh HTTP dengan menggunakan Nama Acara dan Bagian. Nama objek bernama yang digunakan dihasilkan berdasarkan alamat MAC adaptor jaringan korban (ethernet). Jika nilai oktet lebih rendah dari 16, maka ditambahkan 16. Format nama objek yang dihasilkan mungkin berbeda dalam sampel yang berbeda. Sebagai contoh, di salah satu sampel yang kami analisis, untuk alamat MAC 00-1c-0b-cd-ef-34, nama yang dihasilkan adalah:
- BaseNamedObjects101c1b: untuk bagian bernama (hanya tiga oktet pertama dari MAC yang digunakan)
- Objek Bernama DasarZ01c1b: untuk acara bernama – sama seperti untuk Bagian, tetapi digit pertama alamat MAC diganti dengan Z
Jika pengunduh HTTP ingin meneruskan beberapa perintah ke driver kernel, itu hanya membuat bagian bernama, menulis perintah dengan data terkait di dalamnya, dan menunggu perintah diproses oleh driver dengan membuat acara bernama dan menunggu hingga driver memicu (atau memberi sinyal) itu.
Pengemudi mendukung perintah yang cukup jelas berikut ini:
- Instal driver kernel
- Copot pemasangan BlackLotus
Pembaca yang cermat mungkin melihat titik lemah BlackLotus di sini – meskipun bootkit melindungi komponennya dari penghapusan, driver kernel dapat diakali untuk menghapus instalan bootkit sepenuhnya dengan membuat objek bernama yang disebutkan di atas dan mengirimkan perintah uninstall ke sana.
Pengunduh HTTP
Komponen terakhir bertanggung jawab untuk komunikasi dengan server C&C dan eksekusi setiap perintah C&C yang diterima darinya. Semua muatan yang kami temukan berisi tiga perintah. Perintah-perintah ini sangat mudah dan seperti yang disarankan oleh nama bagian, sebagian besar tentang mengunduh dan menjalankan muatan tambahan menggunakan berbagai teknik.
komunikasi C&C
Untuk berkomunikasi dengan C&C-nya, pemuat HTTP menggunakan protokol HTTPS. Semua informasi yang diperlukan untuk komunikasi tertanam langsung dalam biner pengunduh – termasuk domain C&C dan jalur sumber daya HTTP yang digunakan. Interval default untuk komunikasi dengan server C&C diatur ke satu menit, tetapi dapat diubah berdasarkan data dari C&C. Setiap sesi komunikasi dengan C&C dimulai dengan mengirimkan pesan suar HTTP POST ke sana. Dalam sampel yang kami analisis, jalur sumber daya HTTP berikut dapat ditentukan di header HTTP POST:
- /jaringan/API/hpb_gate[.]php
- /API/hpb_gate[.]php
- /gerbang[.]php
- /hpb_gate[.]php
Data pesan suar diawali dengan a lapor masuk= string, berisi informasi dasar tentang mesin yang disusupi – termasuk pengidentifikasi mesin kustom (disebut sebagai bagaimana), status Boot Aman UEFI, berbagai informasi perangkat keras, dan nilai yang tampaknya merupakan nomor build BlackLotus. bagaimana dihasilkan dari alamat MAC mesin (ethernet) dan nomor seri volume sistem. Format pesan sebelum dienkripsi adalah seperti yang terlihat pada Gambar 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ “HWID”:“%s”, “Session”:“%lu”, “Owner”:“%s”, “IP”:“%s”, “OS”:“%s”, “Edition”:“%s”, “CPU”:“%s”, “GPU”:“%s”, “RAM”:“%lu”, “Integrity”:“%lu”, “SecureBoot”:“%i”, “Build”:“%lu” } |
Gambar 16. Format pesan suar
Sebelum mengirim pesan ke C&C, data terlebih dahulu dienkripsi menggunakan kunci RSA yang disematkan, kemudian disandikan base64 yang aman untuk URL. Selama analisis, kami menemukan dua kunci RSA berbeda yang digunakan dalam sampel. Contoh permintaan suar HTTP seperti itu ditunjukkan pada Gambar 17.
Data yang diterima dari C&C sebagai respons terhadap pesan beacon harus dimulai dengan magic value dua byte HP; jika tidak, tanggapan tidak diproses lebih lanjut. Jika nilai ajaib benar, data yang mengikuti nilai ajaib didekripsi menggunakan AES 256-bit dalam mode CBC dengan string HWID yang disebutkan di atas digunakan sebagai kunci.
Setelah dekripsi, pesannya mirip dengan suar, string berformat JSON, dan menentukan pengidentifikasi perintah (disebut sebagai Tipe) dan berbagai parameter tambahan seperti:
- Interval komunikasi C&C
- Metode eksekusi untuk digunakan
- nama file muatan
- Jenis muatan berdasarkan ekstensi file (.sys, exe, atau . Dll didukung)
- Token autentikasi yang seharusnya digunakan untuk meminta pengunduhan data payload
- Kunci AES digunakan untuk mendekripsi data payload
Semua perintah yang didukung dan deskripsinya tercantum dalam Tabel 2.
Tabel 2. Perintah C&C
Jenis Perintah | Deskripsi Perintah |
---|---|
1 | Unduh dan jalankan driver kernel, DLL, atau yang dapat dieksekusi biasa |
2 | Unduh payload, copot bootkit, dan jalankan payload – kemungkinan digunakan untuk memperbarui bootkit |
3 | Copot pemasangan bootkit dan keluar |
Dalam perintah ini, C&C dapat menentukan, apakah payload harus dijatuhkan terlebih dahulu ke disk sebelum mengeksekusinya, atau dieksekusi langsung di memori. Dalam kasus yang melibatkan menjatuhkan file ke disk, file ProgramData folder pada volume OS digunakan sebagai folder tujuan dan nama file serta ekstensi ditentukan oleh server C&C. Dalam hal mengeksekusi file secara langsung di memori, svchost.exe digunakan sebagai target injeksi. Ketika C&C mengirimkan perintah yang membutuhkan kerja sama driver kernel, atau operator ingin mengeksekusi kode dalam mode kernel, mekanismenya dijelaskan dalam Komunikasi dengan pengunduh HTTP bagian digunakan.
Trik anti-analisis
Untuk mempersulit deteksi dan analisis malware ini, pembuatnya mencoba membatasi visibilitas artefak file standar, seperti string teks, impor, atau data tersemat tidak terenkripsi lainnya seminimal mungkin. Di bawah ini adalah ringkasan dari teknik yang digunakan.
- Enkripsi string dan data
- Semua string yang digunakan dalam sampel dienkripsi menggunakan cipher sederhana.
- Semua file yang disematkan dienkripsi menggunakan AES 256-bit dalam mode CBC.
- Kunci enkripsi untuk masing-masing file dapat bervariasi dari satu sampel ke sampel lainnya.
- Selain enkripsi AES, beberapa file juga dikompres menggunakan LZMS.
- Resolusi API khusus runtime
- Di semua sampel (bila berlaku), API Windows selalu diselesaikan secara eksklusif selama runtime dan hash fungsi alih-alih nama fungsi digunakan untuk menemukan alamat fungsi API yang diinginkan di memori.
- Dalam beberapa kasus, langsung panggilan sistem pemanggilan instruksi digunakan untuk memanggil fungsi sistem yang diinginkan.
- Jaringan komunikasi
- Berkomunikasi menggunakan HTTPS.
- Semua pesan yang dikirim ke C&C oleh pengunduh HTTP dienkripsi menggunakan kunci publik RSA tersemat.
- Semua pesan yang dikirim dari C&C ke pengunduh HTTP dienkripsi menggunakan kunci yang berasal dari lingkungan mesin korban atau menggunakan kunci AES yang disediakan oleh C&C.
- Trik anti-debug dan anti-VM – jika digunakan, biasanya ditempatkan tepat di awal titik masuk. Hanya trik pendeteksian sandbox atau debugger biasa yang digunakan.
Mitigasi dan perbaikan
- Pertama-tama, tentu saja, memperbarui sistem Anda dan produk keamanannya adalah suatu keharusan – untuk meningkatkan kemungkinan bahwa ancaman akan dihentikan tepat di awal, sebelum dapat mencapai persistensi pra-OS.
- Kemudian, langkah kunci yang perlu diambil untuk mencegah penggunaan biner UEFI rentan yang diketahui untuk melewati UEFI Secure Boot adalah pencabutannya di database pencabutan UEFI (dbx) – pada sistem Windows, dbx pembaruan harus didistribusikan menggunakan Pembaruan Windows.
- Masalahnya adalah pencabutan binari Windows UEFI yang digunakan secara luas dapat menyebabkan ribuan sistem usang, citra pemulihan, atau cadangan tidak dapat di-boot – dan oleh karena itu, pencabutan sering memakan waktu terlalu lama.
- Perhatikan bahwa pencabutan aplikasi Windows yang digunakan oleh BlackLotus akan mencegah penginstalan bootkit, tetapi karena penginstal akan mengganti bootloader korban dengan yang dicabut, ini dapat membuat sistem tidak dapat di-boot. Untuk memulihkan dalam kasus ini, penginstalan ulang OS atau hanya pemulihan ESP akan menyelesaikan masalah.
- Jika pencabutan akan terjadi setelah kegigihan BlackLotus disetel, bootkit akan tetap berfungsi, karena menggunakan shim yang sah dengan kunci MOK khusus untuk kegigihan. Dalam hal ini, solusi mitigasi yang paling aman adalah menginstal ulang Windows dan menghapus kunci MOK yang didaftarkan penyerang dengan menggunakan mokutil utilitas (kehadiran fisik diperlukan untuk melakukan operasi ini karena interaksi pengguna yang diperlukan dengan Manajer MOK selama boot).
Takeaways
Banyak kerentanan kritis yang memengaruhi keamanan sistem UEFI telah ditemukan dalam beberapa tahun terakhir. Sayangnya, karena kompleksitas seluruh ekosistem UEFI dan masalah rantai pasokan terkait, banyak dari kerentanan ini telah membuat banyak sistem rentan bahkan lama setelah kerentanan diperbaiki – atau setidaknya setelah kami diberi tahu bahwa kerentanan telah diperbaiki. Untuk gambar yang lebih baik, berikut adalah beberapa contoh kegagalan tambalan atau pencabutan yang memungkinkan UEFI Secure Boot melewati hanya dari tahun lalu:
- Pertama-tama, tentu saja, CVE-2022-21894 – kerentanan yang dieksploitasi oleh BlackLotus. Satu tahun sejak kerentanan diperbaiki, binari UEFI yang rentan masih belum dicabut, memungkinkan ancaman seperti BlackLotus beroperasi secara diam-diam pada sistem dengan UEFI Secure Boot diaktifkan, sehingga memberikan rasa aman yang palsu kepada para korban.
- Di awal tahun 2022, kami mengungkapkan beberapa kerentanan UEFI yang memungkinkan, antara lain, menonaktifkan UEFI Secure Boot. Banyak perangkat yang terpengaruh tidak lagi didukung oleh OEM, sehingga tidak diperbaiki (meskipun perangkat ini belum terlalu tua – seperti 3-5 tahun pada saat pengungkapan kerentanan). Baca lebih lanjut di blogpost kami: Ketika "aman" sama sekali tidak aman: Kerentanan UEFI berdampak tinggi ditemukan di laptop konsumen Lenovo
- Kemudian pada tahun 2022, kami menemukan a beberapa kerentanan UEFI lainnya, yang eksploitasinya juga memungkinkan penyerang menonaktifkan UEFI Secure Boot dengan sangat mudah. Seperti yang dikemukakan oleh rekan peneliti dari secara biner, beberapa perangkat yang tercantum dalam laporan dibiarkan tidak ditambal, atau tidak ditambal dengan benar, bahkan beberapa bulan setelah penasehat – membuat perangkat rentan. Tak perlu dikatakan, mirip dengan kasus sebelumnya, beberapa perangkat akan tetap rentan selamanya, karena mereka telah mencapai tanggal Akhir Dukungan.
Hanya masalah waktu sebelum seseorang memanfaatkan kegagalan ini dan membuat bootkit UEFI yang mampu beroperasi pada sistem dengan UEFI Secure Boot diaktifkan. Seperti yang kami sarankan tahun lalu di kami presentasi RSA, semua ini membuat perpindahan ke ESP lebih layak bagi penyerang dan kemungkinan jalan ke depan untuk ancaman UEFI – keberadaan BlackLotus menegaskan hal ini.
IoC
File
SHA-1 | Filename | Deteksi | Deskripsi Produk |
---|---|---|---|
05846D5B1D37EE2D716140DE4F4F984CF1E631D1 | N / A | Win64/BlackLotus.A | Pemasang BlackLotus. |
A5A530A91100ED5F07A5D74698B15C646DD44E16 | N / A | Win64/BlackLotus.A | Pemasang BlackLotus. |
D82539BFC2CC7CB504BE74AC74DF696B13DB486A | N / A | Win64/BlackLotus.A | Pemasang BlackLotus. |
16B12CEA54360AA42E1120E82C1E9BC0371CB635 | N / A | Win64/BlackLotus.A | Pemasang BlackLotus. |
DAE7E7C4EEC2AC0DC7963C44A5A4F47D930C5508 | N / A | Win64/BlackLotus.A | Pemasang BlackLotus. |
45701A83DEC1DC71A48268C9D6D205F31D9E7FFB | N / A | Win64/BlackLotus.A | Pemasang BlackLotus. |
2CE056AE323B0380B0E87225EA0AE087A33CD316 | N / A | EFI/BlackLotus.B | Perangkat boot BlackLotus UEFI. |
5A0074203ABD5DEB464BA0A79E14B7541A033216 | N / A | EFI/BlackLotus.B | Perangkat boot BlackLotus UEFI. |
5DC9CBD75ABD830E83641A0265BFFDDD2F602815 | N / A | EFI/BlackLotus.B | Perangkat boot BlackLotus UEFI. |
97AEC21042DF47D39AC212761729C6BE484D064D | N / A | EFI/BlackLotus.B | Perangkat boot BlackLotus UEFI. |
ADCEEC18FF009BED635D168E0B116E72096F18D2 | N / A | EFI/BlackLotus.B | Perangkat boot BlackLotus UEFI. |
DBC064F757C69EC43517EFF496146B43CBA949D1 | N / A | EFI/BlackLotus.B | Perangkat boot BlackLotus UEFI. |
06AF3016ACCDB3DFE1C23657BF1BF91C13BAA757 | N / A | Win64/BlackLotus.B | Pengunduh HTTP BlackLotus. |
0C0E78BF97116E781DDE0E00A1CD0C29E68D623D | N / A | Win64/BlackLotus.B | Pengunduh HTTP BlackLotus. |
6D8CEE28DA8BCF25A4D232FEB0810452ACADA11D | N / A | Win64/BlackLotus.B | Pengunduh HTTP BlackLotus. |
74FF58FCE8F19083D16DF0109DC91D78C94342FA | N / A | Win64/BlackLotus.B | Pengunduh HTTP BlackLotus. |
ACC74217CBE3F2E727A826B34BDE482DCAE15BE6 | N / A | Win64/BlackLotus.B | Pengunduh HTTP BlackLotus. |
111C4998F3264617A7A9D9BF662D4B1577445B20 | N / A | Win64/BlackLotus.B | Pengunduh HTTP BlackLotus. |
17FA047C1F979B180644906FE9265F21AF5B0509 | N / A | Win64/BlackLotus.C | driver kernel BlackLotus. |
1F3799FED3CF43254FE30DCDFDB8DC02D82E662B | N / A | Win64/BlackLotus.C | driver kernel BlackLotus. |
4B882748FAF2C6C360884C6812DD5BCBCE75EBFF | N / A | Win64/BlackLotus.C | driver kernel BlackLotus. |
91F832F46E4C38ECC9335460D46F6F71352CFFED | N / A | Win64/BlackLotus.C | driver kernel BlackLotus. |
994DC79255AEB662A672A1814280DE73D405617A | N / A | Win64/BlackLotus.C | driver kernel BlackLotus. |
FFF4F28287677CAABC60C8AB36786C370226588D | N / A | Win64/BlackLotus.C | driver kernel BlackLotus. |
71559C3E2F3950D4EE016F24CA54DA17D28B9D82 | N / A | EFI/BlackLotus.C | BlackLotus Boot Configuration Data (BCD) disimpan oleh penginstal BlackLotus. |
D6D3F3151B188A9DA62DEB95EA1D1ABEFF257914 | N / A | EFI/BlackLotus.C | BlackLotus Boot Configuration Data (BCD) disimpan oleh penginstal BlackLotus. |
547FAA2D64B85BF883955B723B07635C0A09326B | N / A | EFI/BlackLotus.A | Pemuat muatan eksploitasi BlackLotus CVE-2022-21894. |
D1BBAA3D408E944C70B3815471EED7FA9AEE6425 | N / A | EFI/BlackLotus.A | Pemuat muatan eksploitasi BlackLotus CVE-2022-21894. |
0E6DD7110C38464ECAA55EE4E2FA303ADA0EDEFB | N / A | EFI/BlackLotus.A | Muatan eksploitasi BlackLotus CVE-2022-21894 – Aplikasi MokInstaller EFI. |
D6BB89D8734B3E49725362DAE9A868AE681E8BD6 | N / A | EFI/BlackLotus.A | Muatan eksploitasi BlackLotus CVE-2022-21894 – Aplikasi MokInstaller EFI. |
164BB587109CFB20824303AD1609A65ABB36C3E9 | N / A | Win64/BlackLotus.D | Modul bypass UAC pemasang BlackLotus. |
sertifikat
Nomor seri | 570B5D22B723B4A442CC6EEEBC2580E8 |
Sidik jari | C8E6BF8B6FDA161BBFA5470BCC262B1BDC92A359 |
Subjek cn | Saat Mereka Menangis CA |
Subjek O | N / A |
Subjek L | N / A |
Subjek S | N / A |
Subjek C | N / A |
Berlaku dari | 2022-08-13 17:48:44 |
Berlaku untuk | 2032-08-13 17:58:44 |
jaringan
IP | Domain | Penyedia hosting | Pertama kali melihat | Rincian |
---|---|---|---|---|
N / A | xrepositoryx[.]nama | N / A | 2022-10–17 | K&C BlackLotus. https://xrepositoryx[.]name/network/API/hpb_gate.php |
N / A | myrepositoryx[.]com | N / A | 2022-10–16 | K&C BlackLotus. https://myrepositoryx[.]com/network/API/hpb_gate.php |
104.21.22[.]185 | erdjknfweklsgwfmewfgref[.]com | Cloudflare, Inc. | 2022-10–06 | K&C BlackLotus. https://erdjknfweklsgwfmewfgref[.]com/API/hpb_gate.php |
164.90.172[.]211 | harrysucksdick[.]com | DigitalOcean, LLC | 2022-10–09 | K&C BlackLotus. https://harrysucksdick[.]com/API/hpb_gate.php |
185.145.245[.]123 | heikickgn[.]com frassirishipproc[.]com |
SIA VEESP | 2022-10–12 | K&C BlackLotus. https://heikickgn[.]com/API/hpb_gate.php https://frassirishiproc[.]com/API/hpb_gate.php |
185.150.24[.]114 | nama repositori saya[.] | Pusat Data SkyLink BV | 2022-10–14 | K&C BlackLotus. repositori saya[.]nama/jaringan/API/hpb_gate.php |
190.147.189[.]122 | misalnyacorp[.]net | Telmex Kolombia SA | 2022-08–24 | K&C BlackLotus. https://egscorp[.]net/API/hpb_gate.php |
Teknik ATT&CK MITER
Tabel ini dibuat menggunakan versi 12 dari kerangka MITRE ATT&CK.
Taktik | ID | Nama | Deskripsi Produk |
---|---|---|---|
Pengembangan Sumber Daya | T1587.002 | Kembangkan Kemampuan: Sertifikat Penandatanganan Kode | Beberapa sampel BlackLotus ditandatangani dengan sertifikat yang ditandatangani sendiri. |
T1588.005 | Dapatkan Kemampuan: Eksploitasi | BlackLotus menggunakan eksploit yang diketahui publik untuk mem-bypass UEFI Secure Boot. | |
Execution | T1203 | Eksploitasi untuk Eksekusi Klien | Penginstal BlackLotus dapat mengeksploitasi CVE-2022-21894 untuk mencapai eksekusi kode arbitrer pada sistem dengan UEFI Secure Boot diaktifkan. |
T1559 | Komunikasi Antar Proses | Pengunduh HTTP BlackLotus menggunakan bagian bernama untuk meneruskan perintah ke komponen mode kernel. | |
T1106 | API asli | Pengunduh HTTP BlackLotus menggunakan berbagai API Windows asli untuk mencapai eksekusi kode pada mesin yang disusupi. | |
T1129 | Modul Bersama | Pengunduh HTTP BlackLotus dapat memuat dan menjalankan DLL yang diterima dari server C&C. | |
Ketekunan | T1542.003 | Pra-OS Boot: Bootkit | Bootkit BlackLotus diterapkan pada Partisi Sistem EFI dan dijalankan selama boot. |
Eskalasi Privilege | T1548.002 | Mekanisme Kontrol Ketinggian Penyalahgunaan: Lewati Kontrol Akun Pengguna | Penginstal BlackLotus mencoba meningkatkan hak istimewa dengan melewati Kontrol Akun Pengguna. |
T1134.002 | Manipulasi Token Akses: Buat proses dengan token | Pengunduh HTTP BlackLotus dapat menggunakan WTSQueryUserToken dan CreateProcessAsUserW untuk menjalankan muatan yang diunduh dalam proses baru dengan hak istimewa sistem lokal. | |
Penghindaran Pertahanan | T1622 | Penghindaran Debugger | Komponen BlackLotus menggunakan berbagai teknik untuk mendeteksi apakah debugger mode kernel atau mode pengguna berjalan pada korban. |
T1574 | Alur Eksekusi Pembajakan | Bootkit BlackLotus membajak berbagai komponen yang termasuk dalam tahap awal proses boot Windows (Windows Boot Manager, pemuat OS Windows, kernel Windows, dan driver khusus) untuk menghindari deteksi dengan menonaktifkan berbagai fitur keamanan Windows (VBS, Windows Defender) dan secara diam-diam menjalankan mode kernelnya dan komponen mode pengguna | |
T1562 | Merusak Pertahanan | Komponen BlackLotus dapat menonaktifkan BitLocker dan Windows Defender untuk menghindari deteksi. | |
T1070.004 | Penghapusan Indikator: Penghapusan File | Penginstal BlackLotus menghapus dirinya sendiri setelah berhasil menyebarkan file ke partisi Sistem EFI. Juga setelah eksploitasi CVE-2022-21894 yang berhasil, BlackLotus menghapus jejak eksploitasi dengan menghapus semua file yang termasuk dalam rantai eksploitasi dari Partisi Sistem EFI. | |
T1070.009 | Penghapusan Indikator: Kegigihan yang Jelas | BlackLotus dapat menghapus dirinya sendiri dengan menghapus semua file bootkit dari ESP dan memulihkan Windows Boot Manager korban asli. | |
T1036.005 | Menyamar: Cocokkan Nama atau Lokasi yang Sah | BlackLotus berupaya menyembunyikan file-nya yang disebarkan di ESP dengan menggunakan nama file yang sah, seperti grubx64.efi (jika UEFI Secure Boot diaktifkan pada mesin yang disusupi) atau bootmgfw.efi (jika UEFI Secure Boot dinonaktifkan pada mesin yang disusupi). | |
T1112 | Ubah Registri | Pemasang BlackLotus memodifikasi registri Windows untuk menonaktifkan fitur keamanan Windows HVCI. | |
T1027 | File atau Informasi yang Dikaburkan | Hampir semua string yang disematkan dalam komponen BlackLotus dienkripsi menggunakan cipher gabungan khusus dan didekripsi hanya bila diperlukan. | |
T1027.007 | File atau Informasi yang Dikaburkan: Resolusi API Dinamis | Komponen BlackLotus menggunakan resolusi API dinamis saat menggunakan hash nama API, bukan nama. | |
T1027.009 | File atau Informasi yang Dikaburkan: Muatan Tertanam | Hampir semua file yang disematkan dalam komponen BlackLotus dienkripsi menggunakan AES. | |
T1542.003 | Pra-OS Boot: Bootkit | Bootkit BlackLotus diterapkan pada Partisi Sistem EFI dan dijalankan selama tahap awal booting OS, sehingga mampu mengontrol proses booting OS dan menghindari deteksi. | |
T1055.012 | Injeksi Proses: Injeksi Perpustakaan Tautan Dinamis | Pengunduh HTTP BlackLotus dapat menyuntikkan DLL ke dalam yang baru dibuat svchost.exe proses menggunakan proses berongga. | |
T1055.002 | Injeksi Proses: Injeksi Portabel yang Dapat Dijalankan | Driver BlackLotus menyuntikkan pengunduh portabel HTTP yang dapat dieksekusi ke dalam a winlogon.exe proses. | |
T1014 | rootkit | Driver kernel BlackLotus melindungi file bootkit pada ESP dari penghapusan. | |
T1497.001 | Penghindaran Virtualisasi/Sandbox: Pemeriksaan Sistem | BlackLotus menggunakan berbagai pemeriksaan sistem termasuk memeriksa nilai registri khusus kotak pasir, untuk mendeteksi dan menghindari lingkungan virtualisasi dan analisis. | |
penemuan | T1622 | Penghindaran Debugger | Komponen BlackLotus menggunakan berbagai teknik untuk mendeteksi apakah debugger mode kernel atau mode pengguna berjalan pada korban. |
T1082 | Penemuan Informasi Sistem | BlackLotus mengumpulkan informasi sistem (IP, GPU, CPU, memori, versi OS) pada host yang disusupi. | |
T1614 | Penemuan Lokasi Sistem | BlackLotus dapat keluar jika salah satu lokal sistem berikut teridentifikasi pada host yang disusupi: ro-MD, ru-MD, ru-RU, uk-UA, be-BY, hy-AM, kk-KZ. | |
T1016 | Penemuan Konfigurasi Jaringan Sistem | Pengunduh HTTP BlackLotus dapat menentukan IP publik dari host yang disusupi dengan meminta api.ipify[.]org layanan. | |
T1016.001 | Penemuan Konfigurasi Jaringan Sistem: Penemuan Koneksi Internet | Pengunduh HTTP BlackLotus memeriksa koneksi internet dengan menanyakan Microsoft www.msftncsi[.]com/ncsi[.]txt | |
T1497.001 | Penghindaran Virtualisasi/Sandbox: Pemeriksaan Sistem | BlackLotus menggunakan berbagai pemeriksaan sistem termasuk memeriksa nilai registri khusus kotak pasir, untuk mendeteksi dan menghindari lingkungan virtualisasi dan analisis. | |
Komando dan Pengendalian | T1071.001 | Protokol Lapisan Aplikasi: Protokol Web | BlackLotus menggunakan HTTPS untuk komunikasi dengan C&C-nya. |
T1132.001 | Pengodean Data: Pengodean Standar | BlackLotus menyandikan data terenkripsi dalam komunikasi C&C dengan basis aman URL64. | |
T1573.001 | Saluran Terenkripsi: Kriptografi Simetris | BlackLotus menggunakan AES 256-bit dalam mode CBC untuk mendekripsi pesan yang diterima dari C&C-nya. | |
T1573.002 | Saluran Terenkripsi: Kriptografi Asimetris | BlackLotus menggunakan kunci publik RSA tertanam untuk mengenkripsi pesan yang dikirim ke C&C. |
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://www.welivesecurity.com/2023/03/01/blacklotus-uefi-bootkit-myth-confirmed/
- 000
- 1
- 10
- 11
- 2018
- 2020
- 2022
- 7
- 9
- a
- Sanggup
- Tentang Kami
- atas
- penyalahgunaan
- mengakses
- dapat diakses
- mengakses
- Akun
- Mencapai
- Mencapai
- Bertindak
- tindakan
- aktor
- tindakan
- menambahkan
- tambahan
- Tambahan
- alamat
- alamat
- admin
- maju
- Keuntungan
- iklan
- laporan
- AES
- mempengaruhi
- Setelah
- terhadap
- alias
- Semua
- dialokasikan
- alokasi
- Membiarkan
- memungkinkan
- sudah
- Meskipun
- selalu
- AMD
- antara
- analisis
- menganalisa
- dan
- anime
- Lain
- api
- Lebah
- aplikasi
- berlaku
- Aplikasi
- aplikasi
- sesuai
- APT
- arsip
- sekitar
- artikel
- penilaian
- terkait
- Mencoba
- perhatian
- Agustus
- penulis
- tersedia
- backup
- backup
- berdasarkan
- dasar
- Dasar-dasar
- suar
- karena
- sebelum
- Awal
- di belakang
- makhluk
- Belarus
- Percaya
- di bawah
- Lebih baik
- antara
- BleepingComputer
- Memblokir
- Biru
- bonus
- Sepatu bot
- botnet
- Istirahat
- Melanggar
- terobosan
- membawa
- Membawa
- secara luas
- Terbawa
- penyangga
- membangun
- dibangun di
- built-in
- panggilan
- panggilan
- Panggilan
- kemampuan
- mampu
- yang
- hati-hati
- kasus
- kasus
- lepas
- gulat
- disebabkan
- penyebab
- menyebabkan
- pusat
- sertifikat
- rantai
- kesempatan
- perubahan
- Saluran
- memeriksa
- Cek
- sandi
- klaim
- jelas
- klien
- Penyelesaian
- tertutup
- lebih dekat
- penutupan
- kode
- rekan
- Kolumbia
- kombinasi
- bergabung
- bagaimana
- berkomentar
- Umum
- umum
- menyampaikan
- berkomunikasi
- Komunikasi
- dibandingkan
- perbandingan
- kesesuaian
- sama sekali
- kompleks
- kompleksitas
- komponen
- komponen
- kompromi
- Dikompromikan
- konsep
- prihatin
- kepercayaan
- konfigurasi
- DIKONFIRMASI
- koneksi
- mengingat
- konsumen
- mengandung
- mengandung
- Konten
- terus
- terus
- terus menerus
- kontrol
- mengendalikan
- kerja sama
- Core
- Sesuai
- bisa
- Kelas
- penutup
- membuat
- dibuat
- menciptakan
- membuat
- MANDAT
- kritis
- terbaru
- Sekarang
- adat
- Berbahaya
- data
- Data Center
- Basis Data
- Tanggal
- menonaktifkan
- berurusan
- Kematian
- Dekripsi
- mendalam
- lebih dalam
- Default
- didefinisikan
- pastinya
- tergantung
- menyebarkan
- dikerahkan
- penggelaran
- penyebaran
- menyebarkan
- Berasal
- menggambarkan
- dijelaskan
- diinginkan
- Meskipun
- tujuan
- rinci
- terperinci
- rincian
- terdeteksi
- Deteksi
- Menentukan
- menentukan
- dikembangkan
- Pengembang
- pengembang
- alat
- Devices
- MELAKUKAN
- perbedaan
- berbeda
- DIG
- langsung
- langsung
- direktori
- cacat
- penyingkapan
- menemukan
- ditemukan
- penemuan
- didistribusikan
- distribusi
- distribusi
- melakukan
- domain
- Dont
- Download
- mendorong
- pengemudi
- driver
- Menjatuhkan
- menjatuhkan
- Jatuhan
- duplikat
- selama
- dinamis
- setiap
- Awal
- mudah
- mudah
- ekosistem
- edisi
- efektif
- usaha
- elemen
- MENGANGKAT
- tinggi
- tertanam
- mempekerjakan
- diaktifkan
- terenkripsi
- enkripsi
- Teknik
- cukup
- terdaftar
- memastikan
- masuk
- Lingkungan Hidup
- lingkungan
- penting
- membangun
- dll
- dievaluasi
- Bahkan
- Acara
- peristiwa
- Setiap
- bukti
- contoh
- contoh
- khusus
- menjalankan
- Laksanakan
- mengeksekusi
- eksekusi
- ada
- Exit
- Menjelaskan
- penjelasan
- Mengeksploitasi
- eksploitasi
- dieksploitasi
- eksploitasi
- menyelidiki
- perpanjangan
- luar
- layak
- Fitur
- fitur
- Fitur
- sesama
- beberapa
- Fields
- Angka
- File
- File
- menyaring
- terakhir
- Menemukan
- temuan
- Pertama
- tetap
- flash
- aliran
- mengikuti
- berikut
- berikut
- selama-lamanya
- bentuk
- format
- Bekas
- forum
- Depan
- ditemukan
- dari
- penuh
- sepenuhnya
- fungsi
- fungsionil
- fungsi
- fungsi
- lebih lanjut
- Games
- pintu gerbang
- dihasilkan
- mendapatkan
- diberikan
- memberikan
- tujuan
- GPU
- Hijau
- Grup
- Penjaga
- peretasan
- Menangani
- tangan
- terjadi
- Terjadi
- Perangkat keras
- memiliki
- header
- di sini
- menyembunyikan
- High
- Hits
- kait
- tuan rumah
- Seterpercayaapakah Olymp Trade? Kesimpulan
- Namun
- HTTPS
- Ratusan
- diidentifikasi
- identifier
- mengenali
- gambar
- gambar
- segera
- Dampak
- diimplementasikan
- mengimplementasikan
- impor
- mustahil
- in
- termasuk
- Termasuk
- sendiri-sendiri
- informasi
- informatif
- mulanya
- install
- diinstal
- sebagai gantinya
- terpadu
- integritas
- Intel
- Intelijen
- interaksi
- Internet
- koneksi internet
- Pengantar
- investigasi
- terlibat
- IP
- isu
- IT
- Diri
- Januari
- Pekerjaan
- melompat
- Kaspersky
- Kazakhstan
- pemeliharaan
- kunci
- kunci-kunci
- dikenal
- Terakhir
- Tahun lalu
- Terlambat
- Terbaru
- jalankan
- lapisan
- memimpin
- Memimpin
- meninggalkan
- Lenovo
- Li
- Perpustakaan
- Mungkin
- MEMBATASI
- linux
- Daftar
- Daftar
- daftar
- sedikit
- memuat
- pemuat
- pemuatan
- beban
- lokal
- terletak
- tempat
- Panjang
- lama
- melihat
- kehilangan
- Rendah
- mac
- mesin
- Mesin
- terbuat
- sihir
- Utama
- utama
- membuat
- MEMBUAT
- Membuat
- malware
- berhasil
- manajer
- manipulasi
- manual
- banyak
- Cocok
- hal
- max-width
- makna
- mekanisme
- Memori
- tersebut
- hanya
- pesan
- pesan
- metode
- Microsoft
- mungkin
- minimum
- menit
- mitigasi
- mode
- dimodifikasi
- memodifikasi
- Modul
- saat
- dipantau
- monitor
- bulan
- lebih
- paling
- motivasi
- pindah
- beberapa
- nama
- Bernama
- nama
- asli
- perlu
- Perlu
- Tidak perlu
- kebutuhan
- jaringan
- New
- berikutnya
- biasanya
- jumlah
- nomor
- objek
- memperoleh
- Oktober
- Penawaran
- Pengunjung
- Tua
- ONE
- secara online
- membuka
- beroperasi
- operasi
- operasi
- operator
- pilihan
- Opsi
- urutan
- asli
- OS
- Lainnya
- jika tidak
- Mengatasi
- ikhtisar
- sendiri
- dimiliki
- pemilik
- parameter
- parameter
- bagian
- bagian
- tambalan
- Patch
- Menambal
- path
- pola
- pola
- sempurna
- Melakukan
- melakukan
- ketekunan
- fisik
- bagian
- Platform
- plato
- Kecerdasan Data Plato
- Data Plato
- PoC
- Titik
- poin
- kebijaksanaan
- mungkin
- Pos
- Posts
- potensi
- kuat
- kehadiran
- menyajikan
- mencegah
- sebelumnya
- sebelumnya
- prinsip-prinsip
- swasta
- Key pribadi
- hak
- Masalah
- masalah
- hasil
- proses
- Diproses
- proses
- Produk
- program
- menonjol
- bukti
- bukti konsep
- tepat
- melindungi
- terlindung
- melindungi
- perlindungan
- protokol
- disediakan
- menyediakan
- publik
- Key publik
- publikasi
- di depan umum
- diterbitkan
- tujuan
- menaikkan
- RAM
- acak
- cepat
- tercapai
- Baca
- Pembaca
- Bacaan
- nyata
- Kenyataan
- menyadari
- alasan
- masuk akal
- diterima
- baru
- Memulihkan
- pemulihan
- referensi
- disebut
- Bagaimanapun juga
- register
- pendaftaran
- reguler
- terkait
- tinggal
- pemindahan
- menghapus
- Dihapus
- menghapus
- menggantikan
- diganti
- laporan
- gudang
- permintaan
- wajib
- penelitian
- peneliti
- peneliti
- Resolusi
- diselesaikan
- sumber
- tanggapan
- tanggung jawab
- ISTIRAHAT
- memulihkan
- mengakibatkan
- kembali
- membalikkan
- Peran
- akar
- RSA
- konferensi
- Run
- berjalan
- Rusia
- paling aman
- sama
- bak pasir
- Scam
- pemindaian
- skema
- Layar
- mencari
- Kedua
- detik
- Bagian
- bagian
- aman
- keamanan
- tampaknya
- mengirim
- rasa
- serial
- Seri
- layanan
- Layanan
- Sidang
- set
- set
- pengaturan
- beberapa
- Share
- Pendek
- harus
- ditunjukkan
- Pertunjukkan
- menandatangani
- sinyal
- tertanda
- penandatanganan
- Tanda
- mirip
- Sederhana
- disederhanakan
- hanya
- sejak
- ENAM
- Ukuran
- So
- sejauh ini
- Lunak
- Perangkat lunak
- terjual
- larutan
- beberapa
- Seseorang
- sesuatu
- sumber
- Space
- tertentu
- spesifikasi
- ditentukan
- menyebarkan
- Tahap
- magang
- standalone
- standar
- berdiri
- awal
- mulai
- dimulai
- startup
- Status
- tinggal
- Langkah
- Tangga
- Masih
- terhenti
- menyimpan
- tersimpan
- mudah
- struktur
- pengajuan
- selanjutnya
- sukses
- berhasil
- seperti itu
- Menyarankan
- meringkaskan
- RINGKASAN
- mendukung
- Didukung
- pendukung
- Mendukung
- Seharusnya
- tergantung
- simbol
- sintaksis
- sistem
- sistem
- tabel
- Mengambil
- Dibutuhkan
- pengambilan
- pembicaraan
- target
- tugas
- tim
- Teknis
- teknik
- sementara
- Grafik
- Dasar-dasar
- informasi
- mereka
- karena itu
- hal
- hal
- ribuan
- ancaman
- aktor ancaman
- ancaman
- tiga
- Melalui
- waktu
- waktu
- ujung
- untuk
- hari ini
- bersama
- token
- terlalu
- alat
- tema
- dipicu
- Terpercaya
- MENGHIDUPKAN
- Berbalik
- Putar
- khas
- Ukraina
- bawah
- pemahaman
- mutakhir
- Memperbarui
- diperbarui
- Pembaruan
- us
- penggunaan
- menggunakan
- Pengguna
- biasanya
- kegunaan
- nilai
- Nilai - Nilai
- berbagai
- Verifikasi
- diverifikasi
- memeriksa
- versi
- melalui
- Korban
- korban
- PELANGGARAN
- Pelanggaran
- jarak penglihatan
- volume
- volume
- Kerentanan
- kerentanan
- Rentan
- Menunggu
- cara
- jaringan
- terkenal
- Apa
- Apa itu
- apakah
- yang
- sementara
- seluruh
- lebar
- Wikipedia
- Liar
- akan
- Windows
- jendela 11
- dalam
- tanpa
- Kerja
- bekerja
- terburuk
- akan
- penulisan
- tertulis
- tahun
- tahun
- Kamu
- Anda
- zephyrnet.dll
- nol