Menggunakan Kontrol Aplikasi Pertahanan Windows

Windows 10 mencakup dua teknologi, Windows Defender Application Control (WDAC) dan AppLocker yang dapat Anda gunakan untuk mengontrol aplikasi. Mereka memungkinkan Anda untuk membuat pengalaman penguncian untuk membantu mengamankan lingkungan PowerShell Anda

AppLocker dibangun pada fitur kontrol aplikasi dari Kebijakan Pembatasan Perangkat Lunak. AppLocker berisi kemampuan dan ekstensi yang memungkinkan Anda membuat aturan untuk mengizinkan atau menolak aplikasi berjalan berdasarkan identitas file yang unik dan untuk menentukan pengguna atau grup yang diizinkan untuk menjalankan aplikasi tersebut.

Catatan

Saat memilih antara WDAC atau AppLocker, kami sarankan Anda menerapkan kontrol aplikasi menggunakan WDAC daripada AppLocker. Microsoft terus meningkatkan platform manajemen WDAC dan Microsoft memperluas dukungan mereka untuk WDAC. Meskipun AppLocker mungkin terus menerima perbaikan keamanan, AppLocker tidak akan menerima penyempurnaan fitur.

WDAC diperkenalkan dengan Windows 10 dan memungkinkan organisasi untuk mengontrol driver dan aplikasi diizinkan untuk berjalan di perangkat Windows mereka. WDAC dirancang sebagai fitur keamanan di bawah kriteria layanan yang ditentukan oleh Microsoft Security Response Center (MSRC).

Untuk informasi selengkapnya tentang AppLocker dan WDAC, lihat Kontrol Aplikasi untuk ketersediaan fitur Windows dan WDAC dan AppLocker.

Penegakan kebijakan WDAC

Saat PowerShell berjalan di bawah kebijakan WDAC, PowerShell mengubah perilakunya berdasarkan kebijakan keamanan yang ditentukan. Di bawah kebijakan WDAC, PowerShell menjalankan skrip dan modul tepercaya yang diizinkan oleh kebijakan dalam mode Bahasa Penuh. Semua skrip dan blok skrip lainnya tidak tepercaya dan berjalan dalam mode Bahasa Yang Dibatasi. PowerShell melemparkan kesalahan saat skrip yang tidak tepercaya mencoba melakukan tindakan yang tidak diizinkan dalam mode Bahasa Yang Dibatasi. Mungkin sulit untuk mengetahui mengapa skrip gagal berjalan dengan benar dalam mode Bahasa Yang Dibatasi.

Audit kebijakan WDAC

PowerShell 7.4 menambahkan fitur baru untuk mendukung kebijakan WDAC dalam mode Audit . Dalam mode audit, PowerShell menjalankan skrip yang tidak tepercaya dalam mode Bahasa Yang Dibatasi tanpa kesalahan, tetapi mencatat pesan ke log peristiwa sebagai gantinya. Pesan log menjelaskan batasan apa yang akan berlaku jika kebijakan dalam mode Terapkan .

Menampilkan peristiwa audit

Log PowerShell mengaudit peristiwa ke log peristiwa PowerShellCore/Analytic . Anda harus mengaktifkan log Analitik. Untuk mengaktifkan log Analitik di Pemantau Peristiwa Windows, klik kanan pada log PowerShellCore/Analytic dan pilih Aktifkan Log.

Atau, Anda dapat menjalankan perintah berikut dari sesi PowerShell yang ditingkatkan.

wevtutil.exe sl PowerShellCore/Analytic /enabled:true /quiet

Anda dapat melihat peristiwa di Windows Pemantau Peristiwa atau menggunakan Get-WinEvent cmdlet untuk mengambil peristiwa.

Get-WinEvent -LogName PowerShellCore/Analytic -Oldest |
    Where-Object Id -eq 16387 | Format-List
TimeCreated  : 4/19/2023 10:11:07 AM
ProviderName : PowerShellCore
Id           : 16387
Message      : WDAC Audit.

    Title: Method or Property Invocation
    Message: Method or Property 'WriteLine' on type 'System.Console' invocation will not
        be allowed in ConstrainedLanguage mode.
        At C:\scripts\Test1.ps1:3 char:1
        + [System.Console]::WriteLine("pwnd!")
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    FullyQualifiedId: MethodOrPropertyInvocationNotAllowed

Pesan peristiwa menyertakan posisi skrip tempat pembatasan akan diterapkan. Informasi ini membantu Anda memahami di mana Anda perlu mengubah skrip Anda sehingga berjalan di bawah kebijakan WDAC.

Penting

Setelah meninjau peristiwa audit, Anda harus menonaktifkan log Analitik. Log analitik tumbuh dengan cepat dan mengonsumsi ruang disk dalam jumlah besar.

Menampilkan peristiwa audit di debugger PowerShell

Jika Anda mengatur $DebugPreference variabel ke Break untuk sesi PowerShell interaktif, PowerShell akan masuk ke debugger skrip baris perintah di lokasi saat ini di skrip tempat peristiwa audit terjadi. Ini memungkinkan Anda untuk men-debug kode Anda dan memeriksa status skrip saat ini secara real time.