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.
PowerShell memiliki beberapa fitur yang dirancang untuk meningkatkan keamanan lingkungan pembuatan skrip Anda.
Kebijakan eksekusi
Kebijakan eksekusi PowerShell adalah fitur keamanan yang mengontrol kondisi di mana PowerShell memuat file konfigurasi dan menjalankan skrip. Fitur ini membantu mencegah eksekusi skrip berbahaya. Anda dapat menggunakan pengaturan Kebijakan Grup untuk mengatur kebijakan eksekusi untuk komputer dan pengguna. Kebijakan eksekusi hanya berlaku untuk platform Windows.
Untuk informasi lebih lanjut, lihat about_Execution_Policies.
Penggunaan kelas SecureString
PowerShell memiliki beberapa cmdlet yang mendukung penggunaan System.Security.SecureString kelas.
Dan, seperti halnya kelas .NET apa pun, Anda dapat menggunakan SecureString dalam skrip Anda sendiri. Namun, Microsoft tidak merekomendasikan penggunaan SecureString untuk pengembangan baru. Microsoft menyarankan agar Anda menghindari penggunaan kata sandi dan mengandalkan cara lain untuk mengautentikasi, seperti sertifikat atau autentikasi Windows.
PowerShell terus mendukung kelas SecureString untuk kompatibilitas mundur. Menggunakan SecureString masih lebih aman daripada menggunakan string teks biasa. PowerShell masih mengandalkan jenis SecureString untuk menghindari mengekspos konten secara tidak sengaja ke konsol atau log. Gunakan SecureString dengan hati-hati, karena dapat dengan mudah dikonversi ke string teks biasa. Untuk diskusi lengkap tentang menggunakan SecureString, lihat dokumentasi kelas System.Security.SecureString.
Pengelogan blok modul dan skrip
Pengelogan Modul memungkinkan Anda mengaktifkan pengelogan untuk modul PowerShell yang dipilih. Pengaturan ini efektif di semua sesi pada komputer. PowerShell merekam peristiwa eksekusi alur untuk modul yang ditentukan di log peristiwa Windows PowerShell.
Pengelogan Blok Skrip memungkinkan pengelogan untuk pemrosesan perintah, blok skrip, fungsi, dan skrip - baik dipanggil secara interaktif, atau melalui otomatisasi. PowerShell mencatat informasi ini ke log peristiwa Microsoft-Windows-PowerShell/Operational .
Untuk informasi lebih lanjut, baca artikel berikut:
Dukungan AMSI
Windows Antimalware Scan Interface (AMSI) adalah API yang memungkinkan aplikasi untuk meneruskan tindakan ke pemindai antimalware, seperti Windows Defender, untuk memindai payload berbahaya. Dimulai dengan PowerShell 5.1, PowerShell yang berjalan pada Windows 10 (dan yang lebih tinggi) meneruskan semua blok skrip ke AMSI.
PowerShell 7.3 memperluas data yang dikirimnya ke AMSI untuk diperiksa. Sekarang sudah mencakup semua pemanggilan metode .NET.
Untuk informasi selengkapnya tentang AMSI, lihat Bagaimana AMSI membantu.
Mode bahasa yang dibatasi
Mode ConstrainedLanguage melindungi sistem Anda dengan membatasi cmdlet dan jenis .NET yang diizinkan dalam sesi PowerShell. Untuk deskripsi lengkapnya, lihat about_Language_Modes.
Kontrol Aplikasi
Windows 10 mencakup dua teknologi, App Control for Business dan AppLocker yang dapat Anda gunakan untuk mengontrol aplikasi. PowerShell mendeteksi apakah kebijakan kontrol aplikasi di seluruh sistem sedang diberlakukan. Kebijakan ini menerapkan perilaku tertentu saat menjalankan blok skrip, file skrip, atau memuat file modul untuk mencegah eksekusi kode sewenang-wenang pada sistem.
Kontrol Aplikasi untuk Bisnis dirancang sebagai fitur keamanan di bawah kriteria layanan yang ditentukan oleh Microsoft Security Response Center (MSRC). App Control adalah sistem kontrol aplikasi pilihan untuk Windows.
Untuk informasi selengkapnya tentang cara PowerShell mendukung AppLocker dan App Control, lihat Menggunakan Kontrol Aplikasi untuk mengamankan PowerShell.
Tagihan Bahan Perangkat Lunak (SBOM)
Dimulai dengan PowerShell 7.2, semua paket penginstalan berisi Software Bill of Materials (SBOM). Tim PowerShell juga menghasilkan SBOM untuk modul yang mereka miliki tetapi dikirim secara independen dari PowerShell.
Anda dapat menemukan file SBOM di lokasi berikut:
- Di PowerShell, temukan SBOM di
$PSHOME/_manifest/spdx_2.2/manifest.spdx.json. - Untuk modul, temukan SBOM di folder modul di bawah
_manifest/spdx_2.2/manifest.spdx.json.
Pembuatan dan penerbitan SBOM adalah langkah pertama untuk memodernisasi keamanan cyber Pemerintah Federal dan meningkatkan keamanan rantai pasokan perangkat lunak. Untuk informasi selengkapnya tentang inisiatif ini, lihat posting blog Menghasilkan SBOM dengan SPDX di Microsoft.
Transfer data aman di jarak jauh PowerShell
Sebelum PowerShell v7.6-preview5, Session_Key digunakan untuk mengenkripsi SecureString sebelum mengirimkannya sesi jarak jauh PowerShell. Protokol Jarak Jauh PowerShell (PSRP) melakukan pertukaran kunci antara klien dan server ketika SecureString objek perlu ditransfer. Pertukaran melibatkan langkah-langkah berikut:
- Sisi klien menghasilkan pasangan kunci publik/privat dan mengirim kunci publik ke server.
- Server menghasilkan kunci sesi untuk enkripsi simetris.
- Server menggunakan kunci publik untuk mengenkripsi kunci sesi dan mengirimkannya ke klien.
- Klien dan server menggunakan kunci sesi baru untuk mengenkripsi objek SecureString .
PowerShell Remoting Protocol (PSRP) menggunakan RSAEncryptionPadding.Pkcs1 algoritma selama pertukaran kunci. Algoritma TIDAK aman, sehingga pertukaran kunci tidak memberikan keamanan tambahan.
Penting
Anda harus menggunakan lapisan transportasi aman untuk memastikan transfer data yang aman melalui PSRP.
Dimulai di PowerShell v7.6-preview.5, pertukaran kunci tidak digunakan lagi. Versi PSRP ditahapkan ke v2.4 dan menyertakan perubahan berikut:
Pesan PSRP berikut tidak digunakan lagi ketika klien dan server v2.4 atau lebih tinggi:
- PUBLIC_KEY
- PUBLIC_KEY_REQUEST
- ENCRYPTED_SESSION_KEY
Langkah-langkah enkripsi dan dekripsi untuk
SecureStringdilewati ketika klien dan server v2.4 atau lebih tinggi.
Perubahan ini kompatibel mundur.
- Untuk klien atau server lama (v2.3 atau lebih rendah), pertukaran kunci masih digunakan saat diperlukan.
- PSRP dapat menggunakan sesi jarak jauh pipa bernama ketika klien dan server berada di komputer yang sama.
Karena klien jarak jauh dapat terhubung ke pipa bernama dan data tidak lagi dienkripsi dengan kunci sesi, pipa bernama (digunakan untuk
Enter-PSHostProcess) menolak klien jarak jauh.
Kriteria Layanan Keamanan
PowerShell mengikuti Kriteria Layanan Keamanan Microsoft untuk Windows. Hanya fitur keamanan yang memenuhi kriteria untuk layanan.
Fitur keamanan
- Penguncian Sistem dengan Kontrol Aplikasi untuk Bisnis
- Mode bahasa yang dibatasi dengan Kontrol Aplikasi untuk Bisnis
Fitur pertahanan mendalam
- Penguncian Sistem dengan AppLocker
- Mode bahasa yang dibatasi dengan AppLocker
- Kebijakan Eksekusi