Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Perlindungan eksploitasi secara otomatis menerapkan banyak teknik mitigasi eksploitasi pada proses sistem operasi dan pada aplikasi individual.
Konfigurasikan pengaturan ini menggunakan aplikasi Keamanan Windows pada perangkat individual. Kemudian, ekspor konfigurasi sebagai file XML sehingga Anda dapat menyebarkan ke perangkat lain. Gunakan Kebijakan Grup untuk mendistribusikan file XML ke beberapa perangkat sekaligus. Anda juga dapat mengonfigurasi mitigasi dengan PowerShell.
Artikel ini mencantumkan setiap mitigasi yang tersedia dalam perlindungan eksploitasi. Ini menunjukkan apakah mitigasi dapat diterapkan di seluruh sistem atau ke aplikasi individual, dan memberikan deskripsi singkat tentang cara kerja mitigasi.
Artikel ini juga menjelaskan cara mengaktifkan atau mengonfigurasi mitigasi menggunakan penyedia layanan konfigurasi (CSP) Keamanan Windows, PowerShell, dan manajemen perangkat seluler (MDM). Mengonfigurasi pengaturan perlindungan eksploitasi pada satu perangkat adalah langkah pertama dalam membuat konfigurasi yang dapat Anda sebarkan di seluruh jaringan Anda. Untuk menyebarkan konfigurasi ini di beberapa perangkat, lihat Mengimpor, mengekspor, dan menyebarkan konfigurasi perlindungan eksploitasi.
Warning
Beberapa teknologi mitigasi keamanan mungkin memiliki masalah kompatibilitas dengan beberapa aplikasi. Anda harus menguji perlindungan eksploitasi di semua skenario penggunaan target dengan menggunakan mode audit perlindungan eksploitasi sebelum menyebarkan konfigurasi di seluruh lingkungan produksi atau jaringan Anda lainnya.
Langkah mitigasi perlindungan terhadap eksploitasi
Semua mitigasi dapat dikonfigurasi untuk aplikasi individual. Beberapa mitigasi juga dapat diterapkan di tingkat sistem operasi.
Anda dapat mengatur setiap mitigasi aktif, nonaktif, atau ke nilai defaultnya. Beberapa mitigasi memiliki lebih banyak opsi yang ditunjukkan dalam deskripsi dalam tabel.
Nilai default selalu ditentukan dalam tanda kurung siku pada opsi Gunakan default untuk setiap mitigasi. Dalam contoh berikut, default untuk Pencegahan Eksekusi Data adalah "Aktif."
Menggunakan konfigurasi default untuk setiap pengaturan mitigasi menunjukkan rekomendasi kami untuk tingkat perlindungan dasar untuk penggunaan sehari-hari untuk pengguna di rumah. Penerapan di perusahaan harus mempertimbangkan perlindungan yang diperlukan untuk memenuhi kebutuhan spesifik masing-masing, sehingga konfigurasi perlu diubah dari setelan bawaan.
Untuk cmdlet PowerShell terkait untuk setiap mitigasi, lihat cmdlet PowerShell untuk mengeksploitasi mitigasi perlindungan di bagian bawah artikel ini.
| Mitigation | Deskripsi | Dapat diterapkan pada | Mode audit tersedia |
|---|---|---|---|
| Pelindung aliran kontrol (CFG) | Memastikan integritas alur kontrol untuk panggilan tidak langsung. Dapat secara opsional menekan ekspor dan menggunakan CFG yang ketat. | Sistem dan tingkat aplikasi | No |
| Pencegahan Eksekusi Data (DEP) | Mencegah kode dieksekusi dari halaman memori yang hanya berisi data seperti heap dan stack. Hanya dapat dikonfigurasi untuk aplikasi 32-bit (x86), diaktifkan secara permanen untuk semua arsitektur lainnya. Dapat mengaktifkan emulasi thunk ATL secara opsional. | Sistem dan tingkat aplikasi | No |
| Terapkan pengacakan secara paksa untuk citra (ASLR wajib) | Merelokasi gambar secara paksa yang tidak dikompilasi dengan /DYNAMICBASE. Dapat secara opsional gagal memuat gambar yang tidak memiliki informasi relokasi. | Sistem dan tingkat aplikasi | No |
| Mengacak alokasi memori (Bottom-Up ASLR) | Mengacak lokasi untuk alokasi memori virtual. Ini termasuk tumpukan struktur sistem, tumpukan, TEB, dan MB. Dapat secara opsional menggunakan varian pengacakan yang lebih luas untuk proses 64-bit. | Sistem dan tingkat aplikasi | No |
| Memvalidasi rantai pengecualian (SEHOP) | Memastikan integritas rantai pengecualian selama pengiriman pengecualian. Hanya dapat dikonfigurasi untuk aplikasi 32-bit (x86). | Sistem dan tingkat aplikasi | No |
| Validasi integritas heap | Mengakhiri proses ketika kerusakan tumpukan terdeteksi. | Sistem dan tingkat aplikasi | No |
| Penjaga kode arbitrer (ACG) | Mencegah pengenalan kode yang dapat dieksekusi yang tidak didukung gambar dan mencegah halaman kode dimodifikasi. Dapat secara opsional mengizinkan pengecualian thread dan penurunan versi jarak jauh (hanya dapat dikonfigurasi dengan PowerShell). | Khusus tingkat aplikasi | Yes |
| Memblokir gambar integritas rendah | Mencegah pemuatan gambar yang ditandai dengan Integritas Rendah. | Khusus tingkat aplikasi | Yes |
| Memblokir gambar jarak jauh | Mencegah pemuatan gambar dari perangkat jarak jauh. | Khusus tingkat aplikasi | No |
| Memblokir font yang tidak tepercaya | Mencegah pemuatan font berbasis GDI yang tidak diinstal dalam direktori font sistem, terutama font dari web. | Khusus tingkat aplikasi | Yes |
| Penjaga integritas kode | Membatasi pemuatan gambar yang ditandatangani oleh Microsoft, WHQL, atau yang lebih tinggi. Secara opsional dapat mengizinkan image yang ditandatangani oleh Microsoft Store. | Khusus tingkat aplikasi | Yes |
| Menonaktifkan titik ekstensi | Menonaktifkan berbagai mekanisme ekstensibilitas yang memungkinkan injeksi DLL ke semua proses, seperti DLL AppInit, window hook, dan penyedia layanan Winsock. | Khusus tingkat aplikasi | No |
| Menonaktifkan panggilan sistem Win32k | Mencegah aplikasi menggunakan tabel panggilan sistem Win32k. | Khusus tingkat aplikasi | Yes |
| Jangan izinkan proses anak | Mencegah aplikasi membuat proses turunan. | Khusus tingkat aplikasi | Yes |
| Penyaringan alamat ekspor (EAF) | Mendeteksi operasi berbahaya yang diselesaikan dengan kode berbahaya. Dapat secara opsional memvalidasi akses oleh modul yang umum digunakan oleh eksploitasi. | Khusus tingkat aplikasi | Yes |
| Pemfilteran alamat impor (IAF) | Mendeteksi operasi berbahaya yang diselesaikan oleh kode berbahaya. | Khusus tingkat aplikasi | Yes |
| Menyimulasikan eksekusi (SimExec) | Memastikan bahwa panggilan ke API sensitif kembali ke penelepon yang sah. Hanya dapat dikonfigurasi untuk aplikasi 32-bit (x86). Tidak kompatibel dengan ACG. | Khusus tingkat aplikasi | Yes |
| Memvalidasi pemanggilan API (CallerCheck) | Memastikan bahwa penelepon yang sah memanggil API sensitif. Hanya dapat dikonfigurasi untuk aplikasi 32-bit (x86). Tidak kompatibel dengan ACG | Khusus tingkat aplikasi | Yes |
| Memvalidasi penggunaan handle | Menyebabkan pengecualian dimunculkan pada referensi handel yang tidak valid. | Khusus tingkat aplikasi | No |
| Memvalidasi integritas dependensi gambar | Memberlakukan penandatanganan kode untuk pemuatan dependensi gambar Windows. | Khusus tingkat aplikasi | No |
| Memvalidasi integritas tumpukan (StackPivot) | Memastikan bahwa tumpukan belum dialihkan untuk API sensitif. Tidak kompatibel dengan ACG. | Khusus tingkat aplikasi | Yes |
Important
Jika Anda menambahkan aplikasi ke bagian Pengaturan program dan mengonfigurasi pengaturan mitigasi individual di sana, aplikasi tersebut akan dihormati di atas konfigurasi untuk mitigasi yang sama yang ditentukan di bagian Pengaturan sistem . Matriks dan contoh berikut membantu mengilustrasikan cara kerja default:
| Diaktifkan dalam pengaturan Program | Diaktifkan dalam Pengaturan sistem | Behavior |
|---|---|---|
| Yes | No | Seperti yang didefinisikan dalam pengaturan Program |
| Yes | Yes | Seperti yang didefinisikan dalam pengaturan Program |
| No | Yes | Seperti yang didefinisikan dalam Pengaturan sistem |
| No | No | Default seperti yang didefinisikan dalam opsi Gunakan default |
Contoh 1 Mikael mengonfigurasi Pencegahan Eksekusi Data (DEP) di bagian Pengaturan sistem menjadi Nonaktif secara default. Mikael kemudian menambahkan aplikasitest.exe ke bagian Pengaturan program . Dalam opsi untuk aplikasi tersebut, di bawah Pencegahan Eksekusi Data (DEP), ia mengaktifkan opsi Ganti pengaturan sistem dan mengatur sakelar ke Aktif. Tidak ada aplikasi lain yang tercantum di bagian Pengaturan program . Hasilnya adalah bahwa DEP hanya akan diaktifkan untuk test.exe. Semua aplikasi lain tidak akan menerapkan DEP.
Contoh 2 Josie mengonfigurasi Pencegahan Eksekusi Data (DEP) di bagian Pengaturan sistem menjadi Nonaktif secara default. Josie kemudian menambahkan aplikasitest.exe ke bagian Pengaturan program . Dalam opsi untuk aplikasi tersebut, di bawah Pencegahan Eksekusi Data (DEP), dia mengaktifkan opsi Ganti pengaturan sistem dan mengatur sakelar ke Aktif. Josie juga menambahkan aplikasimiles.exe ke bagian Pengaturan program dan mengonfigurasi Control flow guard (CFG) ke Aktif. Dia tidak mengaktifkan opsi Ganti pengaturan sistem untuk DEP atau mitigasi lainnya untuk aplikasi tersebut. Hasilnya adalah bahwa DEP akan diaktifkan untuk test.exe. DEP tidak akan diaktifkan untuk aplikasi lain, termasuk miles.exe. CFG akan diaktifkan untuk miles.exe.
Note
Jika Anda menemukan masalah dalam artikel ini, Anda dapat melaporkannya langsung ke mitra Klien Windows Server/Windows atau menggunakan nomor dukungan teknis Microsoft untuk negara/wilayah Anda.
Mengonfigurasi mitigasi tingkat sistem dengan aplikasi Keamanan Windows
Untuk mengonfigurasi mitigasi perlindungan eksploitasi tingkat sistem dan tingkat aplikasi pada perangkat individual, gunakan aplikasi Keamanan Windows:
Buka aplikasi Keamanan Windows dengan memilih ikon perisai di bilah tugas atau cari menu mulai untuk Keamanan Windows.
Pilih ubin Kontrol aplikasi & browser (atau ikon aplikasi di bilah menu sebelah kiri), kemudian pilih Perlindungan eksploit.
Di bawah bagian Pengaturan sistem , temukan mitigasi yang ingin Anda konfigurasi dan pilih salah satu hal berikut ini. Aplikasi yang tidak dikonfigurasi satu per satu di bagian Pengaturan program akan menggunakan pengaturan yang dikonfigurasi di sini:
- Aktif secara default - Mitigasi diaktifkan untuk aplikasi yang tidak memiliki mitigasi ini yang diatur di bagian Pengaturan program khusus aplikasi
- Nonaktif secara default - Mitigasi dinonaktifkan untuk aplikasi yang tidak memiliki mitigasi ini yang diatur di bagian Pengaturan program khusus aplikasi
- Gunakan default - Mitigasi diaktifkan atau dinonaktifkan, tergantung pada konfigurasi default yang disiapkan oleh penginstalan Windows 10 atau Windows 11; nilai default (Aktif atau Nonaktif) selalu ditentukan di samping Gunakan label default untuk setiap mitigasi
Note
Anda mungkin melihat jendela Kontrol Akun Pengguna saat mengubah beberapa pengaturan. Masukkan kredensial administrator untuk menerapkan pengaturan.
Mengubah beberapa pengaturan mungkin memerlukan mulai ulang perangkat.
Ulangi langkah-langkah konfigurasi ini untuk semua mitigasi tingkat sistem yang ingin Anda konfigurasikan.
Buka bagian Pengaturan program dan pilih aplikasi yang ingin Anda terapkan mitigasinya:
- Jika aplikasi yang ingin Anda konfigurasi sudah tercantum, pilih aplikasi tersebut lalu pilih Edit
- Jika aplikasi tidak tercantum, di bagian atas daftar pilih Tambahkan program untuk dikustomisasi lalu pilih bagaimana Anda ingin menambahkan aplikasi:
- Gunakan Tambahkan berdasarkan nama program agar mitigasi diterapkan pada semua proses yang sedang berjalan dengan nama tersebut. Anda harus menentukan file beserta ekstensinya. Anda dapat memasukkan jalur lengkap untuk membatasi mitigasi hanya ke aplikasi dengan nama tersebut di lokasi tersebut.
- Gunakan Pilih jalur file yang tepat untuk menggunakan jendela pemilih file Windows Explorer standar untuk menemukan dan memilih file yang Anda inginkan.
Setelah memilih aplikasi, Anda akan melihat daftar semua mitigasi yang dapat diterapkan. Untuk mengaktifkan mitigasi, pilih kotak centang lalu ubah slider menjadi Aktif. Pilih opsi tambahan apa pun. Memilih Audit hanya akan menerapkan mitigasi dalam mode audit. Anda akan diberi tahu jika Anda perlu memulai ulang proses atau aplikasi, atau jika Anda perlu menghidupkan ulang Windows.
Ulangi langkah-langkah ini untuk semua aplikasi dan mitigasi yang ingin Anda konfigurasi. Pilih Terapkan saat Anda selesai menyiapkan konfigurasi Anda.
Anda sekarang dapat mengekspor konfigurasi perlindungan eksploitasi sebagai file XML atau melanjutkan untuk mengonfigurasi mitigasi khusus aplikasi.
Mengekspor konfigurasi sebagai file XML memungkinkan Anda menyalin konfigurasi dari satu perangkat ke perangkat lain.
Referensi PowerShell
Anda dapat menggunakan aplikasi Keamanan Windows untuk mengonfigurasi perlindungan Eksploitasi, atau Anda dapat menggunakan cmdlet PowerShell.
Pengaturan konfigurasi yang terakhir dimodifikasi akan selalu diterapkan - terlepas dari apakah Anda menggunakan PowerShell atau Keamanan Windows. Karena konfigurasi yang terakhir dimodifikasi selalu diterapkan, jika Anda menggunakan aplikasi untuk mengonfigurasi mitigasi, maka gunakan PowerShell untuk mengonfigurasi mitigasi yang sama, aplikasi akan memperbarui untuk menampilkan perubahan yang Anda buat dengan PowerShell. Jika Anda menggunakan aplikasi untuk mengubah mitigasi lagi, perubahan tersebut akan berlaku.
Important
Setiap perubahan yang disebarkan ke perangkat melalui Kebijakan Grup akan mengambil alih konfigurasi lokal. Saat menyiapkan konfigurasi awal, gunakan perangkat yang tidak akan dikenai konfigurasi Group Policy untuk memastikan perubahan Anda tidak ditimpa kembali.
Anda dapat menggunakan kata kerja PowerShell Get atau Set dengan cmdlet ProcessMitigation. Menggunakan Get akan mencantumkan status konfigurasi saat ini dari setiap mitigasi yang telah diaktifkan pada perangkat - tambahkan -Name cmdlet dan exe aplikasi untuk melihat mitigasi hanya untuk aplikasi tersebut:
Get-ProcessMitigation -Name processName.exe
Important
Mitigasi tingkat sistem yang belum dikonfigurasi akan menampilkan status NOTSET.
Untuk pengaturan tingkat sistem, NOTSET menunjukkan pengaturan default untuk mitigasi tersebut telah diterapkan.
Untuk pengaturan tingkat aplikasi, NOTSET menunjukkan pengaturan tingkat sistem untuk mitigasi akan diterapkan.
Pengaturan default untuk setiap mitigasi tingkat sistem dapat dilihat di Keamanan Windows.
Gunakan Set untuk mengonfigurasi setiap mitigasi dalam format berikut:
Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>
Where:
-
<Cakupan>:
-
-Nameuntuk menunjukkan bahwa mitigasi tersebut harus diterapkan pada aplikasi tertentu. Tentukan executable aplikasi setelah bendera ini. -
-Systemuntuk menunjukkan mitigasi harus diterapkan pada tingkat sistem
-
-
<Tindakan>:
-
-Enableuntuk mengaktifkan mitigasi -
-Disableuntuk menonaktifkan mitigasi
-
-
<Mitigasi>:
- Cmdlet mitigasi tersebut, sebagaimana didefinisikan dalam tabel cmdlet mitigasi perlindungan eksploitasi di bawah ini, beserta subopsi apa pun (diapit oleh spasi). Setiap mitigasi dipisahkan dengan koma.
Misalnya, untuk mengaktifkan mitigasi Pencegahan Eksekusi Data (DEP) dengan emulasi thunk ATL untuk file yang dapat dieksekusi bernama testing.exe di folder C:\Apps\LOB\tests, serta untuk mencegah file yang dapat dieksekusi tersebut membuat proses anak, Anda akan menggunakan perintah berikut:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation
Important
Pisahkan setiap opsi mitigasi dengan koma.
Untuk menerapkan mitigasi di tingkat sistem alih-alih pada aplikasi tertentu, gunakan cakupan -System. Misalnya, untuk mengaktifkan DEP untuk semua proses di perangkat, Anda akan menggunakan perintah berikut:
Set-Processmitigation -System -Enable DEP
Untuk menonaktifkan mitigasi, Anda dapat mengganti -Enable dengan -Disable. Namun, untuk mitigasi tingkat aplikasi, ini akan memaksa mitigasi dinonaktifkan hanya untuk aplikasi tersebut.
Jika Anda perlu memulihkan mitigasi tingkat aplikasi kembali ke default sistem, Anda juga perlu menyertakan -Remove cmdlet. Contoh berikut menghapus pengesampingan DEP khusus aplikasi untuk test.exe sehingga aplikasi tersebut mewarisi setelan bawaan sistem:
Set-Processmitigation -Name test.exe -Remove -Disable DEP
Anda juga dapat mengatur beberapa mitigasi ke mode audit. Alih-alih menggunakan cmdlet PowerShell untuk mitigasi, gunakan cmdlet Mode audit seperti yang ditentukan dalam tabel cmdlet mitigasi perlindungan eksploitasi di bawah ini.
Misalnya, perintah berikut memungkinkan pemantauan khusus audit untuk mitigasi Arbitrary Code Guard (ACG) pada testing.exe yang digunakan sebelumnya, yang mencatat pelanggaran kebijakan tanpa memblokir eksekusi:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode
Anda dapat menonaktifkan mode audit dengan menggunakan perintah yang sama tetapi mengganti -Enable dengan -Disable.
Tabel referensi PowerShell
Tabel ini mencantumkan cmdlet PowerShell (dan cmdlet mode audit terkait) yang dapat digunakan untuk mengonfigurasi setiap mitigasi.
| Mitigation | Berlaku pada | Cmdlet PowerShell | Cmdlet mode audit |
|---|---|---|---|
| Pelindung aliran kontrol (CFG) | Sistem dan tingkat aplikasi | CFG, StrictCFG, SuppressExports | Audit tidak tersedia |
| Pencegahan Eksekusi Data (DEP) | Sistem dan tingkat aplikasi | DEP, EmulateAtlThunks | Audit tidak tersedia |
| Terapkan pengacakan secara paksa untuk citra (ASLR wajib) | Sistem dan tingkat aplikasi | ForceRelocateImages | Audit tidak tersedia |
| Mengacak alokasi memori (Bottom-Up ASLR) | Sistem dan tingkat aplikasi | BottomUp, HighEntropy | Audit tidak tersedia |
| Memvalidasi rantai pengecualian (SEHOP) | Sistem dan tingkat aplikasi | SEHOP, SEHOPTelemetri | Audit tidak tersedia |
| Validasi integritas heap | Sistem dan tingkat aplikasi | TerminateOnError | Audit tidak tersedia |
| Penjaga kode arbitrer (ACG) | Khusus tingkat aplikasi | DynamicCode | AuditDynamicCode |
| Memblokir gambar integritas rendah | Khusus tingkat aplikasi | BlockLowLabel | AuditImageLoad |
| Memblokir gambar jarak jauh | Khusus tingkat aplikasi | Blokir gambar eksternal | Audit tidak tersedia |
| Memblokir font yang tidak tepercaya | Khusus tingkat aplikasi | DisableNonSystemFonts | AuditFont, FontAuditOnly |
| Penjaga integritas kode | Khusus tingkat aplikasi | MicrosoftSignedOnly, AllowStoreSignedBinaries | AuditMicrosoftSigned, AuditStoreSigned |
| Menonaktifkan titik ekstensi | Khusus tingkat aplikasi | ExtensionPoint | Audit tidak tersedia |
| Menonaktifkan panggilan sistem Win32k | Khusus tingkat aplikasi | DisableWin32kSystemCalls | AuditSystemCall |
| Jangan izinkan proses anak | Khusus tingkat aplikasi | Jangan izinkan pembuatan proses turunan | AuditChildProcess |
| Penyaringan alamat ekspor (EAF) | Khusus tingkat aplikasi | AktifkanExportAddressFilterPlus, AktifkanExportAddressFilter [1] | Audit tidak tersedia[2] |
| Pemfilteran alamat impor (IAF) | Khusus tingkat aplikasi | EnableImportAddressFilter | Audit tidak tersedia[2] |
| Menyimulasikan eksekusi (SimExec) | Khusus tingkat aplikasi | EnableRopSimExec | Audit tidak tersedia[2] |
| Memvalidasi pemanggilan API (CallerCheck) | Khusus tingkat aplikasi | EnableRopCallerCheck | Audit tidak tersedia[2] |
| Memvalidasi penggunaan handle | Khusus tingkat aplikasi | StrictHandle | Audit tidak tersedia |
| Memvalidasi integritas dependensi gambar | Khusus tingkat aplikasi | EnforceModuleDepencySigning | Audit tidak tersedia |
| Memvalidasi integritas tumpukan (StackPivot) | Khusus tingkat aplikasi | EnableRopStackPivot | Audit tidak tersedia[2] |
[1]: Untuk mengaktifkan Ekspor Pemfilteran Alamat Plus (EAF+) untuk proses dan membatasinya ke modul DLL tertentu, gunakan format berikut:
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
[2]: Audit untuk mitigasi ini tidak tersedia melalui cmdlet PowerShell.
Menyesuaikan pemberitahuan perlindungan eksploitasi
Untuk informasi selengkapnya tentang menyesuaikan pemberitahuan saat aturan dipicu dan memblokir aplikasi atau file, lihat Keamanan Windows.