5 rekomendasi lingkungan teratas untuk PowerShell seperti yang direkomendasikan oleh microsoft 2022

Lompati ke konten utama

Browser ini sudah tidak didukung.

Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.

Ketentuan tombol Always Encrypted menggunakan PowerShell

  • Artikel
  • 09/26/2022
  • 10 menit untuk membaca

Dalam artikel ini

Berlaku untuk:

SQL Server (semua versi yang didukung) Azure SQL Managed Instance Database Azure SQL

Artikel ini menyediakan langkah-langkah untuk menyediakan kunci untuk Always Encrypted menggunakan modul SqlServer PowerShell. Anda dapat menggunakan PowerShell untuk menyediakan kunci Always Encrypted baik dengan dan tanpa pemisahan peran, memberikan kontrol atas siapa yang memiliki akses ke kunci enkripsi aktual di penyimpanan kunci, dan siapa yang memiliki akses ke database.

Untuk gambaran umum manajemen kunci Always Encrypted, termasuk beberapa rekomendasi praktik terbaik tingkat tinggi, lihat Gambaran umum manajemen kunci untuk Always Encrypted. Untuk informasi tentang cara mulai menggunakan modul SqlServer PowerShell untuk Always Encrypted, lihat Mengonfigurasi Always Encrypted menggunakan PowerShell.

Provisi Kunci tanpa Pemisahan Peran

Metode provisi utama yang dijelaskan di bagian ini tidak mendukung pemisahan peran antara Administrator Keamanan dan DBA. Beberapa langkah di bawah ini menggabungkan operasi pada kunci fisik dengan operasi pada metadata kunci. Oleh karena itu, metode penyediaan kunci ini direkomendasikan untuk organisasi yang menggunakan model DevOps, atau jika database dihosting di cloud dan tujuan utamanya adalah membatasi administrator cloud (tetapi bukan DBA lokal) agar tidak mengakses data sensitif. Tidak disarankan jika calon penyelenggara menyertakan DBA, atau jika DBA seharusnya tidak memiliki akses ke data sensitif.

Sebelum menjalankan langkah apa pun yang melibatkan akses ke kunci teks biasa atau penyimpanan kunci (diidentifikasi di kolom Kunci teks biasa Accesses/penyimpanan kunci dalam tabel di bawah), pastikan lingkungan PowerShell berjalan pada komputer aman yang berbeda dari komputer yang menghosting database Anda. Untuk informasi selengkapnya, lihat Pertimbangan Keamanan untuk Manajemen Kunci.

TugasArtikelMengakses kunci teks biasa/penyimpanan kunciMengakses database
Langkah 1. Membuat kunci master kolom di penyimpanan kunci.

Catatan: Modul SqlServer PowerShell tidak mendukung langkah ini. Untuk menyelesaikan tugas ini dari baris perintah, gunakan alat yang khusus untuk penyimpanan kunci yang Anda pilih.

Membuat dan menyimpan kunci master kolom untuk Always Encrypted Ya Tidak
Langkah 2. Mulai lingkungan PowerShell dan impor modul PowerShell SqlServer. Mengonfigurasi Always Encrypted menggunakan PowerShell Tidak Tidak
Langkah 3. Sambungkan ke server dan database Anda. Menyambungkan ke database Tidak Ya
Langkah 4. Buat objek SqlColumnMasterKeySettings yang berisi informasi tentang lokasi kunci master kolom Anda. SqlColumnMasterKeySettings adalah objek yang ada dalam memori (di PowerShell). Gunakan cmdlet yang khusus untuk penyimpanan kunci Anda. New-SqlAzureKeyVaultColumnMasterKeySettings

New-SqlCertificateStoreColumnMasterKeySettings

New-SqlCngColumnMasterKeySettings

New-SqlCspColumnMasterKeySettings

Tidak Tidak
Langkah 5. Buat metadata tentang kunci master kolom di database Anda. New-SqlColumnMasterKey

Catatan: di bawah sampul, cmdlet mengeluarkan pernyataan CREATE COLUMN MASTER KEY (Transact-SQL) untuk membuat metadata kunci.

Tidak Ya
Langkah 6. Autentikasi ke Azure, jika kunci master kolom Anda disimpan di Azure Key Vault. Add-SqlAzureAuthenticationContext Ya Tidak
Langkah 7. Buat kunci enkripsi kolom baru, enkripsi dengan kunci master kolom dan buat metadata kunci enkripsi kolom dalam database. New-SqlColumnEncryptionKey

Catatan: Gunakan variasi cmdlet yang secara internal menghasilkan dan mengenkripsi kunci enkripsi kolom.

Catatan: Di bawah sampul, cmdlet mengeluarkan pernyataan CREATE COLUMN ENCRYPTION KEY (Transact-SQL) untuk membuat metadata kunci.

Ya Ya

Penyimpanan Sertifikat Windows tanpa Pemisahan Peran (Contoh)

Skrip ini adalah contoh end-to-end untuk membuat kunci master kolom yang merupakan sertifikat di Windows Certificate Store, menghasilkan dan mengenkripsi kunci enkripsi kolom, dan membuat metadata kunci dalam database SQL Server.

# Create a column master key in Windows Certificate Store. $cert = New-SelfSignedCertificate -Subject "AlwaysEncryptedCert" -CertStoreLocation Cert:CurrentUser\My -KeyExportPolicy Exportable -Type DocumentEncryptionCert -KeyUsage DataEncipherment -KeySpec KeyExchange # Import the SqlServer module. Import-Module "SqlServer" # Connect to your database. $serverName = "<server name>" $databaseName = "<database name>" # Change the authentication method in the connection string, if needed. $connStr = "Server = " + $serverName + "; Database = " + $databaseName + "; Integrated Security = True" $database = Get-SqlDatabase -ConnectionString $connStr # Create a SqlColumnMasterKeySettings object for your column master key. $cmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation "CurrentUser" -Thumbprint $cert.Thumbprint # Create column master key metadata in the database. $cmkName = "CMK1" New-SqlColumnMasterKey -Name $cmkName -InputObject $database -ColumnMasterKeySettings $cmkSettings # Generate a column encryption key, encrypt it with the column master key and create column encryption key metadata in the database. $cekName = "CEK1" New-SqlColumnEncryptionKey -Name $cekName -InputObject $database -ColumnMasterKey $cmkName

Azure Key Vault tanpa Pemisahan Peran (Contoh)

Skrip ini adalah contoh end-to-end untuk menyediakan dan mengonfigurasi brankas kunci di Azure Key Vault, menghasilkan kunci master kolom di brankas, menghasilkan dan mengenkripsi kunci enkripsi kolom, dan membuat metadata kunci dalam database Azure SQL.

# Create a column master key in Azure Key Vault. Import-Module Az Connect-AzAccount $SubscriptionId = "<Azure SubscriptionId>" $resourceGroup = "<resource group name>" $azureLocation = "<datacenter location>" $akvName = "<key vault name>" $akvKeyName = "<key name>" $azureCtx = Set-AzConteXt -SubscriptionId $SubscriptionId # Sets the context for the below cmdlets to the specified subscription. New-AzResourceGroup -Name $resourceGroup -Location $azureLocation # Creates a new resource group - skip, if your desired group already exists. New-AzKeyVault -VaultName $akvName -ResourceGroupName $resourceGroup -Location $azureLocation # Creates a new key vault - skip if your vault already exists. Set-AzKeyVaultAccessPolicy -VaultName $akvName -ResourceGroupName $resourceGroup -PermissionsToKeys get, create, delete, list, wrapKey,unwrapKey, sign, verify -UserPrincipalName $azureCtx.Account $akvKey = Add-AzKeyVaultKey -VaultName $akvName -Name $akvKeyName -Destination "Software" # Connect to your database (Azure SQL database). Import-Module "SqlServer" $serverName = "<Azure SQL server name>.database.windows.net" $databaseName = "<database name>" # Change the authentication method in the connection string, if needed. $connStr = "Server = " + $serverName + "; Database = " + $databaseName + "; Authentication = Active Directory Integrated" $database = Get-SqlDatabase -ConnectionString $connStr # Create a SqlColumnMasterKeySettings object for your column master key. $cmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyURL $akvKey.Key.Kid # Create column master key metadata in the database. $cmkName = "CMK1" New-SqlColumnMasterKey -Name $cmkName -InputObject $database -ColumnMasterKeySettings $cmkSettings # Authenticate to Azure Add-SqlAzureAuthenticationContext -Interactive # Generate a column encryption key, encrypt it with the column master key and create column encryption key metadata in the database. $cekName = "CEK1" New-SqlColumnEncryptionKey -Name $cekName -InputObject $database -ColumnMasterKey $cmkName

CNG/KSP tanpa Pemisahan Peran (Contoh)

Skrip di bawah ini adalah contoh end-to-end untuk menghasilkan kunci master kolom di penyimpanan kunci yang mengimplementasikan Cryptography Next Generation API (CNG), menghasilkan dan mengenkripsi kunci enkripsi kolom, dan membuat metadata kunci dalam database SQL Server.

Contoh memanfaatkan penyimpanan kunci yang menggunakan Penyedia Penyimpanan Kunci Perangkat Lunak Microsoft. Anda dapat memilih untuk mengubah contoh untuk menggunakan penyimpanan lain, seperti modul keamanan perangkat keras Anda. Untuk itu, Anda harus memastikan penyedia penyimpanan kunci (KSP) yang mengimplementasikan CNG untuk perangkat Anda diinstal dan benar di komputer Anda. Anda harus mengganti Microsoft Software Key Storage Provider dengan nama KSP perangkat Anda.

# Create a column master key in a key store that has a CNG provider, a.k.a key store provider (KSP). $cngProviderName = "Microsoft Software Key Storage Provider" # If you have an HSM, you can use a KSP for your HSM instead of a Microsoft KSP $cngAlgorithmName = "RSA" $cngKeySize = 2048 # Recommended key size for Always Encrypted column master keys $cngKeyName = "AlwaysEncryptedKey" # Name identifying your new key in the KSP $cngProvider = New-Object System.Security.Cryptography.CngProvider($cngProviderName) $cngKeyParams = New-Object System.Security.Cryptography.CngKeyCreationParameters $cngKeyParams.provider = $cngProvider $cngKeyParams.KeyCreationOptions = [System.Security.Cryptography.CngKeyCreationOptions]::OverwriteExistingKey $keySizeProperty = New-Object System.Security.Cryptography.CngProperty("Length", [System.BitConverter]::GetBytes($cngKeySize), [System.Security.Cryptography.CngPropertyOptions]::None); $cngKeyParams.Parameters.Add($keySizeProperty) $cngAlgorithm = New-Object System.Security.Cryptography.CngAlgorithm($cngAlgorithmName) $cngKey = [System.Security.Cryptography.CngKey]::Create($cngAlgorithm, $cngKeyName, $cngKeyParams) # Import the SqlServer module. Import-Module "SqlServer" # Connect to your database. $serverName = "<server name>" $databaseName = "<database name>" # Change the authentication method in the connection string, if needed. $connStr = "Server = " + $serverName + "; Database = " + $databaseName + "; Integrated Security = True" $database = Get-SqlDatabase -ConnectionString $connStr # Create a SqlColumnMasterKeySettings object for your column master key. $cmkSettings = New-SqlCngColumnMasterKeySettings -CngProviderName $cngProviderName -KeyName $cngKeyName # Create column master key metadata in the database. $cmkName = "CMK1" New-SqlColumnMasterKey -Name $cmkName -InputObject $database -ColumnMasterKeySettings $cmkSettings # Generate a column encryption key, encrypt it with the column master key and create column encryption key metadata in the database. $cekName = "CEK1" New-SqlColumnEncryptionKey -Name $cekName -InputObject $database -ColumnMasterKey $cmkName

Provisi Kunci Dengan Pemisahan Peran

Bagian ini menyediakan langkah-langkah untuk mengonfigurasi enkripsi di mana administrator keamanan tidak memiliki akses ke database, dan administrator database tidak memiliki akses ke penyimpanan kunci atau kunci teks biasa.

Administrator Keamanan

Sebelum menjalankan langkah apa pun yang melibatkan akses ke kunci teks biasa atau penyimpanan kunci (diidentifikasi di kolom Kunci teks biasa/penyimpanan kunci Accesses di tabel di bawah), pastikan bahwa:

  1. Lingkungan PowerShell berjalan pada komputer aman yang berbeda dari komputer yang menghosting database Anda.
  2. DBA di organisasi Anda tidak memiliki akses ke komputer (yang akan mengalahkan tujuan pemisahan peran).

Untuk informasi selengkapnya, lihat Pertimbangan Keamanan untuk Manajemen Kunci.

TugasArtikelMengakses kunci teks biasa/penyimpanan kunciMengakses database
Langkah 1. Membuat kunci master kolom di penyimpanan kunci.

Catatan: Modul SqlServer tidak mendukung langkah ini. Untuk menyelesaikan tugas ini dari baris perintah, Anda perlu menggunakan alat yang khusus untuk jenis penyimpanan kunci Anda.

Membuat dan menyimpan kunci master kolom untuk Always Encrypted Ya Tidak
Langkah 2. Mulai sesi PowerShell dan impor modul SqlServer. Mengimpor modul SqlServer Tidak Tidak
Langkah 3. Buat objek SqlColumnMasterKeySettings yang berisi informasi tentang lokasi kunci master kolom Anda. SqlColumnMasterKeySettings adalah objek yang ada dalam memori (di PowerShell). Gunakan cmdlet yang khusus untuk penyimpanan kunci Anda. New-SqlAzureKeyVaultColumnMasterKeySettings

New-SqlCertificateStoreColumnMasterKeySettings

New-SqlCngColumnMasterKeySettings

New-SqlCspColumnMasterKeySettings

Tidak Tidak
Langkah 4. Autentikasi ke Azure, jika kunci master kolom Anda disimpan di Azure Key Vault Add-SqlAzureAuthenticationContext Ya Tidak
Langkah 5. Buat kunci enkripsi kolom, enkripsi dengan kunci master kolom untuk menghasilkan nilai terenkripsi dari kunci enkripsi kolom. New-SqlColumnEncryptionKeyEncryptedValue Ya Tidak
Langkah 6. Berikan lokasi kunci master kolom (nama penyedia dan jalur kunci kunci master kolom) dan nilai terenkripsi dari kunci enkripsi kolom ke DBA. Lihat contoh di bawah. Tidak Tidak

Dba

DBA menggunakan informasi yang mereka terima dari Admin Keamanan (langkah 6 di atas) untuk membuat dan mengelola metadata kunci Always Encrypted dalam database.

TugasArtikelMengakses kunci teks biasaMengakses database
Langkah 1. Dapatkan lokasi kunci master kolom dan nilai terenkripsi kunci enkripsi kolom dari Administrator Keamanan Anda. Lihat contoh di bawah. Tidak Tidak
Langkah 2. Mulai lingkungan PowerShell dan impor modul SqlServer. Mengonfigurasi Always Encrypted menggunakan PowerShell Tidak Tidak
Langkah 3. Sambungkan ke server Anda dan database. Menyambungkan ke database Tidak Ya
Langkah 4. Buat objek SqlColumnMasterKeySettings yang berisi informasi tentang lokasi kunci master kolom Anda. SqlColumnMasterKeySettings adalah objek yang ada dalam memori. New-SqlColumnMasterKeySettings Tidak Tidak
Langkah 5. Membuat metadata tentang kunci master kolom di database Anda New-SqlColumnMasterKey
Catatan: di bawah sampul, cmdlet mengeluarkan pernyataan CREATE COLUMN MASTER KEY (Transact-SQL) untuk membuat metadata kunci master kolom.
Tidak Ya
Langkah 6. Buat metadata kunci enkripsi kolom dalam database. New-SqlColumnEncryptionKey
Catatan: DBA menggunakan variasi cmdlet yang hanya membuat metadata kunci enkripsi kolom.
Di bawah sampul, cmdlet mengeluarkan pernyataan CREATE COLUMN ENCRYPTION KEY (Transact-SQL) untuk membuat metadata kunci enkripsi kolom.
Tidak Ya

Penyimpanan Sertifikat Windows dengan Pemisahan Peran (Contoh)

Administrator Keamanan

# Create a column master key in Windows Certificate Store. $storeLocation = "CurrentUser" $certPath = "Cert:" + $storeLocation + "\My" $cert = New-SelfSignedCertificate -Subject "AlwaysEncryptedCert" -CertStoreLocation $certPath -KeyExportPolicy Exportable -Type DocumentEncryptionCert -KeyUsage DataEncipherment -KeySpec KeyExchange # Import the SqlServer module Import-Module "SqlServer" # Create a SqlColumnMasterKeySettings object for your column master key. $cmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation "CurrentUser" -Thumbprint $cert.Thumbprint # Generate a column encryption key, encrypt it with the column master key to produce an encrypted value of the column encryption key. $encryptedValue = New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $cmkSettings # Share the location of the column master key and an encrypted value of the column encryption key with a DBA, via a CSV file on a share drive $keyDataFile = "Z:\keydata.txt" "KeyStoreProviderName, KeyPath, EncryptedValue" > $keyDataFile $cmkSettings.KeyStoreProviderName + ", " + $cmkSettings.KeyPath + ", " + $encryptedValue >> $keyDataFile # Read the key data back to verify $keyData = Import-Csv $keyDataFile $keyData.KeyStoreProviderName $keyData.KeyPath $keyData.EncryptedValue

Dba

# Obtain the location of the column master key and the encrypted value of the column encryption key from your Security Administrator, via a CSV file on a share drive. $keyDataFile = "Z:\keydata.txt" $keyData = Import-Csv $keyDataFile # Import the SqlServer module Import-Module "SqlServer" # Connect to your database. $serverName = "<server name>" $databaseName = "<database name>" $connStr = "Server = " + $serverName + "; Database = " + $databaseName + "; Integrated Security = True" $database = Get-SqlDatabase -ConnectionString $connStr # Create a SqlColumnMasterKeySettings object for your column master key. $cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName $keyData.KeyStoreProviderName -KeyPath $keyData.KeyPath # Create column master key metadata in the database. $cmkName = "CMK1" New-SqlColumnMasterKey -Name $cmkName -InputObject $database -ColumnMasterKeySettings $cmkSettings # Generate a column encryption key, encrypt it with the column master key and create column encryption key metadata in the database. $cekName = "CEK1" New-SqlColumnEncryptionKey -Name $cekName -InputObject $database -ColumnMasterKey $cmkName -EncryptedValue $keyData.EncryptedValue

Langkah berikutnya

  • Mengonfigurasi enkripsi kolom menggunakan Always Encrypted dengan PowerShell
  • Putar tombol Always Encrypted menggunakan PowerShell
  • Mengembangkan aplikasi menggunakan Always Encrypted

Lihat juga

  • Always Encrypted
  • Gambaran umum manajemen kunci untuk Always Encrypted
  • Membuat dan menyimpan kunci master kolom untuk Always Encrypted
  • Mengonfigurasi Always Encrypted menggunakan PowerShell
  • Ketentuan kunci Always Encrypted menggunakan SQL Server Management Studio
  • BUAT KUNCI MASTER KOLOM (Transact-SQL)
  • JATUHKAN KUNCI MASTER KOLOM (Transact-SQL)
  • BUAT KUNCI ENKRIPSI KOLOM (Transact-SQL)
  • UBAH KUNCI ENKRIPSI KOLOM (Transact-SQL)
  • HILANGKAN KUNCI ENKRIPSI KOLOM (Transact-SQL)
  • sys.column_master_keys (T-SQL)
  • sys.column_encryption_keys (Transact-SQL)

2

Rekomendasi PowerShell

Microsoft tetap menjadi raksasa dalam sejarah komputasi. Perusahaan telah berhasil membuatte

Lingkungan komputasi yang lebih baik di seluruh dunia sejak awal. Di antara yang diperhitungkan

Kontribusi Microsoft adalah PowerShell. PowerShell dikembangkan sebagai scripting shell yang kuatloped as a strong shell scripting

bahasa yang akan digunakan dalam administrasi sistem otomatis. Tujuannya adalah untuk menyediakans to provide an

Antarmuka terintegrasi untuk sistem terkomputerisasi, dan dengan demikian menjadi sistem yang kritis

Toolkit Administrasi. Namun, PowerShell tetap rentan terhadap serangan oleh aktor ancaman cyber

(CTA). Setelah penyerang mendapatkan akses ke sistem, mereka mengakses baris perintah, setelah ituommand line, after which

Mereka mendapatkan akses ke sistem jarak jauh atau lokal di seluruh jaringan atau data yang disimpan. Oleh karena itu, ini

Makalah membahas rekomendasi lingkungan yang dikembangkan oleh Microsoft.

Pertama dan terpenting, administrator sistem harus memeriksa versi PowerShell di

organisasi mereka. Microsoft merekomendasikan agar administrator PowerShell paling banyak menggunakan

Versi PowerShell terbaru, seperti versi 5 atau lebih besar. Ini terutama karena setiap PowerShell

Versi hadir dengan peningkatan keamanan yang berbeda. Akibatnya, menggunakan versi yang sudah ketinggalan zamannhancements. As a result, using an outdated version

membuat sistem rentan terhadap serangan oleh CTA begitu mereka melihat kerentanan dalam otomatis

sistem. PowerShell Versi 5 memberikan keamanan yang lebih baik kepada administrator menggunakan skrip block logging.

Magnusson (2019) menunjukkan bahwa skrip blok logging mencatat kode yang dieksekusi setelah de-mengamati) denotes that script block logging logs the executed code once it de-obfuscates

Ini untuk memastikan bahwa semua jenis operasi terlihat. Ini melarikan diri dari administrator dari sebagian besar serangan to ensure that all types of operations are visible. This flees administrators from most attacks

terkait dengan kebingungan.

Kedua, kontrol akses PowerShell harus dicapai dengan pembatasan. Hak istimewa

Akun dengan fungsi administratif harus ditahan untuk host PowerShell atau pengguna sistem

dengan keinginan yang ditentukan. Operasi ini juga dikenal sebagai Kontrol Akses Berbasis Peran (RBAC). RBAC

bekerja dengan menyangkal pengguna kemampuan untuk melakukan tugas -tugas tertentu saat melakukan peran lain

Ringkasan

MS-ISAC mengamati varian malware spesifik secara konsisten mencapai 10 daftar malware teratas. Varian malware khusus ini memiliki sifat -sifat yang memungkinkan mereka menjadi sangat efektif terhadap jaringan pemerintah negara bagian, lokal, suku, dan teritorial (SLTT), secara konsisten menginfeksi lebih banyak sistem daripada jenis malware lainnya. Pemeriksaan karakteristik varian malware ini mengungkapkan bahwa varian sering menyalahgunakan alat yang sah atau bagian aplikasi pada sistem atau jaringan. Salah satu alat yang sah adalah PowerShell.

Memahami Permukaan Ancaman

PowerShell adalah shell baris perintah berbasis tugas atau antarmuka pengguna yang berfungsi sebagai kerangka kerja manajemen konfigurasi Microsoft. Antarmuka ini memungkinkan otomatisasi tugas yang mengelola sistem dan proses operasi. Aktor Ancaman Cyber ​​(CTA) sering memanfaatkan PowerShell begitu mereka mendapatkan akses ke suatu sistem. CTA menggunakan PowerShell karena ini adalah alat administrasi yang sah yang memungkinkan mereka akses ke baris perintah, mendapatkan akses ke data yang disimpan serta akses ke sistem lokal dan jarak jauh di seluruh jaringan. Akses ini memungkinkan mereka untuk menyembunyikan perintah berbahaya dan menjalankannya di seluruh jaringan atau secara lokal, seolah -olah mereka diberlakukan oleh administrator sistem, membantunya menghindari pemindaian keamanan. Misalnya, Kovter, malware penipuan klik tanpa fileless, menyembunyikan modul berbahaya sepenuhnya di registri. Modul -modul ini kemudian disuntikkan ke dalam proses PowerShell ketika sistem yang terinfeksi memulai kembali, mendorong proses penipuan klik untuk memulai.

Rekomendasi

Dalam kebanyakan kasus, pengguna standar tidak mengharuskan PowerShell untuk melakukan fungsi sehari -hari mereka. Hanya administrator jaringan dan profesional TI yang membutuhkan PowerShell untuk tugas kerja yang sah yang harus memiliki akses. Memberikan akses pengguna standar ke PowerShell menciptakan risiko yang tidak perlu untuk organisasi Anda.

Jika PowerShell tidak diperlukan, cegah eksekusi pada sistem setelah melakukan pengujian yang tepat untuk menilai dampak terhadap lingkungan. Ini mungkin tidak selalu mungkin karena ini adalah alat yang sah dan memiliki fungsi administrasi. Batasi PowerShell dalam kasus -kasus ini melalui kebijakan eksekusi kepada administrator dan melaksanakan skrip yang ditandatangani saja. Bergantung pada konfigurasi lingkungan mungkin ada cara untuk mem -bypass kebijakan eksekusi. Terakhir, untuk mencegah penggunaan PowerShell untuk eksekusi jarak jauh menonaktifkan, atau paling tidak membatasi, Windows Remote Management Service.

MS-ISAC merekomendasikan organisasi menggunakan tolok ukur CIS dan kit pembuatan CIS, yang merupakan bagian dari CIS Securuite. Silakan lihat di bawah untuk langkah -langkah terperinci tentang menonaktifkan PowerShell.

Untuk mengamankan PowerShell

Anda dapat menggunakan pengaturan Kebijakan Grup Eksekusi Naskah untuk mengelola kebijakan eksekusi komputer di organisasi Anda. Pengaturan kebijakan kelompok mengesampingkan kebijakan eksekusi yang ditetapkan dalam PowerShell di semua lingkup. Kebijakan yang disetel dalam node konfigurasi komputer diutamakan daripada kebijakan yang disetel dalam node konfigurasi pengguna. Untuk informasi lebih lanjut, silakan kunjungi Microsoft.Turn on Script Execution Group Policy setting to manage the execution policy of computers in your organization. The Group Policy setting overrides the execution policies set in PowerShell in all scopes. Policies set in the Computer Configuration node take precedence over policies set in the User Configuration node. For more information please visit Microsoft.

Untuk mengaktifkan eksekusi skrip dalam pengaturan kebijakan grupTurn on Script Execution in Group Policy settings

  • Klik Mulai Menu> Panel Kontrol> Sistem dan Keamanan> Alat Administratif.Start Menu > Control Panel > System and Security > Administrative Tools.
  • Buat atau edit Objek Kebijakan Grup> Windows PowerShell> Nyalakan eksekusi skrip.Group Policy Objects > Windows PowerShell > Turn on Script Execution.

Pengaturan Kebijakan Eksekusi Skrip Eksekusi adalah sebagai berikut:Turn on Script Execution policy settings are as follows:

  • Jika Anda menonaktifkan Eksekusi Naskah, skrip tidak berjalan dan PowerShell dinonaktifkan. Turn on Script Execution, scripts do not run and PowerShell is disabled.
  • Jika Anda mengaktifkan Eksekusi Script, Anda dapat memilih kebijakan eksekusi yang hanya memungkinkan skrip yang ditandatangani, yang hanya memungkinkan skrip yang ditandatangani secara digital yang dijalankan.Turn on Script Execution, you can select the execution policy Allow only signed scripts, allowing only trusted digitally-signed scripts to be run.

PowerShellexecutionPolicy.ADM dan PowerShellexecutionPolicy.ADMX File Tambahkan Nyalakan Kebijakan Eksekusi Skrip ke Konfigurasi Komputer dan Node Konfigurasi Pengguna di Editor Kebijakan Grup di jalur berikut:PowerShellExecutionPolicy.adm and PowerShellExecutionPolicy.admx files add the Turn on Script Execution policy to the Computer Configuration and User Configuration nodes in Group Policy Editor in the following paths:

  • Untuk Windows XP dan Windows Server 2003:
    • Templat Administratif \ Windows Components \ Windows PowerShell
  • Untuk Windows Vista dan versi Windows yang lebih baru:
    • Templat Administratif \ Template Administratif Klasik
  • Komponen Windows \ Windows PowerShell

MS-ISAC adalah titik fokus untuk pencegahan ancaman cyber, perlindungan, respons, dan pemulihan untuk pemerintah negara, lokal, suku, dan teritorial (SLTT). Informasi lebih lanjut tentang topik ini, serta bantuan cybersecurity 24 × 7 tersedia di 866-787-4722, [email & nbsp; dilindungi]. MS-ISAC tertarik pada komentar Anda-survei umpan balik anonim tersedia.[email protected]. The MS-ISAC is interested in your comments – an anonymous feedback survey is available.

Apa praktik terbaik PowerShell?

Top 10 praktik terbaik dari skrip PowerShell pada tahun 2022..
Tulis nama cmdlet lengkap dalam skrip, bukan alias. ....
Hindari nama parameter parsial dan posisi dalam skrip. ....
Hindari menggunakan Notepad atau Notepad ++ sebagai editor skrip. ....
Gunakan write-output alih-alih host menulis. ....
Jangan sertakan terlalu banyak komentar. ....
Gunakan kata kerja yang disetujui secara tertulis cmdlet ..

Apa 3 manfaat PowerShell?

12 Keuntungan Top PowerShell..
Sistem format yang dapat diperluas.Menggunakan PowerShell, sangat mudah bagi pengguna untuk memformat inputnya dan mendapatkan output sesuka dia.....
Format data bawaan.....
Sistem tipe yang diperluas.....
Mesin skrip yang aman.....
Pengembangan swalayan.....
API yang konsisten.....
Otomatisasi mudah.....
Komposabilitas produk silang ..

Kebijakan mana di PowerShell yang memberi Anda akses penuh ke lingkungan?

Tidak dibatasi.Dimulai di PowerShell 6.0, ini adalah kebijakan eksekusi default untuk komputer non-windows dan tidak dapat diubah.Memuat semua file konfigurasi dan menjalankan semua skrip.. Beginning in PowerShell 6.0, this is the default execution policy for non-Windows computers and can't be changed. Loads all configuration files and runs all scripts.

Apa perintah PowerShell yang paling penting?

10 PowerShell teratas memerintahkan yang harus Anda ketahui..
Get-Process..
Stop-Process..
Get-Service..
Get-History..
Start-Job..
ConvertTo-HTML..
Out-File..
Export-CSV..

Postingan terbaru

LIHAT SEMUA