Aracılığıyla paylaş


PowerShell güvenlik özellikleri

PowerShell,betik ortamınızın güvenliğini artırmak için tasarlanmış çeşitli özelliklere sahiptir.

Yürütme ilkesi

PowerShell'in yürütme ilkesi, PowerShell'in yapılandırma dosyalarını yüklediği ve betikleri çalıştırdığı koşulları denetleyen bir güvenlik özelliğidir. Bu özellik kötü amaçlı betiklerin yürütülmesini önlemeye yardımcı olur. Bilgisayarlar ve kullanıcılar için yürütme ilkeleri ayarlamak için Grup İlkesi ayarını kullanabilirsiniz. Yürütme ilkeleri yalnızca Windows platformu için geçerlidir.

Daha fazla bilgi için bkz. about_Execution_Policies.

SecureString sınıfının kullanımı

PowerShell,sınıfının kullanımını System.Security.SecureString destekleyen birkaç cmdlet'e sahiptir. Ayrıca, tüm .NET sınıflarında olduğu gibi Kendi betiklerinizde SecureString kullanabilirsiniz. Ancak Microsoft, yeni geliştirme için SecureString kullanılmasını önermez. Microsoft, parola kullanmaktan kaçınmanızı ve sertifikalar veya Windows kimlik doğrulaması gibi diğer kimlik doğrulama yöntemlerine güvenmenizi önerir.

PowerShell geriye dönük uyumluluk için SecureString sınıfını desteklemeye devam eder. SecureString kullanmak, düz metin dizesi kullanmaktan daha güvenlidir. PowerShell, içeriği yanlışlıkla konsola veya günlüklere göstermemek için SecureString türüne dayanır. SecureString'i dikkatli bir şekilde kullanın çünkü düz metin dizesine kolayca dönüştürülebilir. SecureString kullanma hakkında tam bir tartışma için System.Security.SecureString sınıfı belgelerine bakın.

Modül ve betik bloğu günlüğü

Modül Günlüğü, seçili PowerShell modülleri için günlüğe kaydetmeyi etkinleştirmenizi sağlar. Bu ayar bilgisayardaki tüm oturumlarda etkilidir. PowerShell, Windows PowerShell olay günlüğünde belirtilen modüller için işlem hattı yürütme olaylarını kaydeder.

Betik Bloğu Günlüğü komutların, betik bloklarının, işlevlerin ve betiklerin (etkileşimli olarak veya otomasyon aracılığıyla) işlenmesi için günlüğe kaydetmeyi etkinleştirir. PowerShell bu bilgileri Microsoft-Windows-PowerShell/operasyonel olay günlüğüne günlüğe kaydeder.

Daha fazla bilgi için aşağıdaki makaleleri inceleyin:

AMSI Desteği

Windows Kötü Amaçlı Yazılımdan Koruma Tarama Arabirimi (AMSI), uygulamaların kötü amaçlı yükleri taramak için Windows Defender gibi bir kötü amaçlı yazılımdan koruma tarayıcısına eylem geçirmesine olanak tanıyan bir API'dir. PowerShell 5.1'ten başlayarak, Windows 10 (ve üzeri) üzerinde çalışan PowerShell tüm betik bloklarını AMSI'ye geçirir.

PowerShell 7.3, inceleme için AMSI'ye gönderdiği verileri genişletir. Artık tüm .NET yöntemi çağrılarını içerir.

AMSI hakkında daha fazla bilgi için bkz . AMSI nasıl yardımcı olur?

Kısıtlanmış dil modu

ConstrainedLanguage modu, bir PowerShell oturumunda izin verilen cmdlet'leri ve .NET türlerini sınırlayarak sisteminizi korur. Tam açıklama için bkz . about_Language_Modes.

Uygulama Denetimi

Windows 10, uygulamaları denetlemek için kullanabileceğiniz İş için Uygulama Denetimi ve AppLocker olmak üzere iki teknoloji içerir. PowerShell, sistem genelinde uygulama denetim ilkesinin zorlandığını algılar. İlke, sistemde rastgele kod yürütülmesini önlemek için betik bloklarını, betik dosyalarını veya modül dosyalarını yüklerken belirli davranışları uygular.

İş İçin Uygulama Denetimi, Microsoft Güvenlik Yanıt Merkezi (MSRC) tarafından tanımlanan hizmet verme ölçütleri kapsamında bir güvenlik özelliği olarak tasarlanmıştır. Uygulama Denetimi, Windows için tercih edilen uygulama denetim sistemidir.

PowerShell'in AppLocker ve Uygulama Denetimi'ni nasıl desteklediği hakkında daha fazla bilgi için bkz . PowerShell'in güvenliğini sağlamak için Uygulama Denetimi'ni kullanma.

Yazılım Ürün Reçetesi (SBOM)

PowerShell 7.2 sürümünden itibaren tüm yükleme paketleri bir Yazılım Malzeme Listesi (SBOM) içerir. PowerShell ekibi, sahip oldukları ancak PowerShell'den bağımsız olarak gönderdikleri modüller için SBOM'lar da üretir.

SBOM dosyalarını aşağıdaki konumlarda bulabilirsiniz:

  • PowerShell'de konumunda SBOM'u $PSHOME/_manifest/spdx_2.2/manifest.spdx.jsonbulun.
  • Modüller için, altında _manifest/spdx_2.2/manifest.spdx.jsonmodülün klasöründe SBOM'u bulun.

SBOM'un oluşturulması ve yayımlanması Federal Kamu siber güvenliğini modernleştirmenin ve yazılım tedarik zinciri güvenliğini geliştirmenin ilk adımıdır. Bu girişim hakkında daha fazla bilgi için Microsoft'ta SPDX ile SBOM oluşturma blog gönderisine bakın.

PowerShell uzaktan iletişiminde güvenli veri aktarımı

PowerShell v7.6-preview5 sürümünden önce, Session_Key bir SecureString'i bir PowerShell uzak oturumu göndermeden önce şifrelemek için kullanılır. PowerShell Uzaktan İletişim Protokolü (PSRP), bir nesnenin aktarılması gerektiğinde istemci ile sunucu arasında bir SecureString anahtar değişimi gerçekleştirir. Exchange aşağıdaki adımları içerir:

  1. İstemci tarafı bir ortak/özel anahtar çifti oluşturur ve ortak anahtarı sunucuya gönderir.
  2. Sunucu simetrik şifreleme için bir oturum anahtarı oluşturur.
  3. Sunucu, oturum anahtarını şifrelemek için ortak anahtarı kullanır ve istemciye gönderir.
  4. Hem istemci hem de sunucu, SecureString nesnesini şifrelemek için yeni oturum anahtarını kullanır.

PowerShell Uzaktan İletişim Protokolü (PSRP), anahtar değişimi sırasında algoritmayı RSAEncryptionPadding.Pkcs1 kullanır. Algoritma güvenli DEĞİlDİ , bu nedenle anahtar değişimi ek güvenlik sağlamaz.

Önemli

PSRP üzerinden güvenli veri aktarımı sağlamak için güvenli bir aktarım katmanı kullanmanız gerekir.

PowerShell v7.6-preview.5 sürümünden itibaren anahtar değişimi kullanım dışı bırakılmıştır. PSRP sürümü v2.4'e artırıldı ve aşağıdaki değişiklikleri içerir:

  • Aşağıdaki PSRP iletileri, hem istemci hem de sunucu v2.4 veya üzeri olduğunda kullanım dışıdır:

    • açık anahtar
    • AÇIK ANAHTAR İSTEĞİ
    • ŞİFRELİ_OTURUM_ANAHTARI
  • hem istemci hem de sunucu v2.4 veya üzeri olduğunda için SecureString şifreleme ve şifre çözme adımları atlanır.

Bu değişiklik geriye dönük olarak uyumludur.

  • Eski istemciler veya sunucular (v2.3 veya üzeri) için, gerektiğinde anahtar değişimi hala kullanılır.
  • PSRP, hem istemci hem de sunucu aynı makinede olduğunda adlandırılmış kanal uzak oturumları kullanabilir. Uzak istemcinin adlandırılmış kanala bağlanması mümkün olduğundan ve veriler artık bir oturum anahtarıyla şifrelenmediğinden, adlandırılmış kanal (için Enter-PSHostProcesskullanılır) uzak istemciyi reddeder.

Güvenlik Hizmeti Ölçütleri

PowerShell, Windows için Microsoft Güvenlik Hizmet Ölçütleri'ni izler. Yalnızca güvenlik özellikleri hizmet verme ölçütlerini karşılar.

Güvenlik özellikleri

  • İş İçin Uygulama Denetimi ile Sistem Kilitleme
  • İş İçin Uygulama Denetimi ile kısıtlanmış dil modu

Derinlemesine savunma özellikleri

  • AppLocker ile Sistem Kilitleme
  • AppLocker ile kısıtlanmış dil modu
  • Yürütme İlkesi