PowerShell'in güvenliğini sağlamak için Uygulama Denetimi'ni kullanma
Windows 10, uygulamaları denetlemek için kullanabileceğiniz İş için Uygulama Denetimi ve AppLocker olmak üzere iki teknoloji içerir. PowerShell ortamınızın güvenliğini sağlamaya yardımcı olmak için bir kilitleme deneyimi oluşturmanıza olanak tanır.
AppLocker , Yazılım Kısıtlama İlkeleri'nin uygulama denetimi özelliklerini oluşturur. AppLocker, belirli kullanıcılar veya gruplar için uygulamalara izin vermek veya uygulamaları reddetmek için kurallar oluşturmanıza olanak tanır. Uygulamaları, dosyaların benzersiz özelliklerine göre tanımlarsınız.
Windows 10'da Windows Defender Uygulama Denetimi (WDAC) olarak sunulan İş İçin Uygulama Denetimi, Windows'ta hangi sürücülerin ve uygulamaların çalışmasına izin verilip verilmeyebileceğinizi denetlemenize olanak tanır.
Kilitleme ilkesi algılama
PowerShell, hem AppLocker hem de İş için Uygulama Denetimi sistem genelinde ilkeleri algılar. AppLocker'ın ilke zorlama durumunu sorgulama yolu yoktur. Sistem genelinde uygulama denetim ilkesinin AppLocker tarafından zorlanıp zorlanmadığını algılamak için PowerShell iki geçici dosya oluşturur ve yürütülebilirse test eder. Dosya adları aşağıdaki ad biçimini kullanır:
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.ps1
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.psm1
İş İçin Uygulama Denetimi, Windows için tercih edilen uygulama denetim sistemidir. Uygulama Denetimi, ilke yapılandırmasını bulmanıza olanak sağlayan API'ler sağlar. 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. Daha fazla bilgi için bkz . Windows için Uygulama Denetimleri ve Uygulama Denetimi ve AppLocker özellik kullanılabilirliği.
Not
Uygulama Denetimi veya AppLocker arasında seçim yaparken , AppLocker yerine İş için Uygulama Denetimi kullanarak uygulama denetimi uygulamanızı öneririz. Microsoft artık AppLocker'a yatırım yapmaz. AppLocker güvenlik düzeltmelerini almaya devam etse de özellik geliştirmeleri almaz.
Uygulama Denetimi ilkesi zorlama
PowerShell bir Uygulama Denetimi ilkesi altında çalıştığında, davranışı tanımlı güvenlik ilkesine göre değişir. Bir Uygulama Denetimi ilkesi altında PowerShell, ilke tarafından izin verilen güvenilen betikleri ve modülleri modda FullLanguage
çalıştırır. Diğer tüm betikler ve betik blokları güvenilmez ve modda ConstrainedLanguage
çalışır. Güvenilmeyen betikler modda ConstrainedLanguage
izin verilmeyen eylemler gerçekleştirmeye çalıştığında PowerShell hata oluşturur. Bir betiğin neden modda düzgün ConstrainedLanguage
çalışamediğini bilmek zor olabilir.
Uygulama Denetimi ilkesi denetimi
PowerShell 7.4, Denetim modunda Uygulama Denetimi ilkelerini desteklemek için yeni bir özellik ekledi. Denetim modunda PowerShell güvenilmeyen betikleri ConstrainedLanguage
modda hatasız çalıştırır, ancak bunun yerine iletileri olay günlüğüne kaydeder. Günlük iletileri, ilke Zorla modundaysa hangi kısıtlamaların uygulanacağını açıklar.
Değişikliklerin geçmişi
Windows PowerShell 5.1, PowerShell'in Uygulama Denetimi'ni destekleyen ilk sürümüdür. Uygulama Denetimi ve AppLocker'ın güvenlik özellikleri, PowerShell'in her yeni sürümünde iyileştirir. Aşağıdaki bölümlerde, bu desteğin PowerShell'in her sürümünde nasıl değiştiği açıklanmaktadır. Değişiklikler birikmeli olduğundan, sonraki sürümlerde açıklanan özellikler önceki sürümlerden gelen özellikleri içerir.
PowerShell 7.4'teki değişiklikler
Windows'da, PowerShell bir Uygulama Denetimi ilkesi altında çalıştığında, davranışı tanımlı güvenlik ilkesine göre değişir. Bir Uygulama Denetimi ilkesi altında PowerShell, ilke tarafından izin verilen güvenilen betikleri ve modülleri modda FullLanguage
çalıştırır. Diğer tüm betikler ve betik blokları güvenilmez ve modda ConstrainedLanguage
çalışır. Güvenilmeyen betikler izin verilmeyen eylemler gerçekleştirmeye çalıştığında PowerShell hata oluşturur. Bir betiğin neden modda düzgün ConstrainedLanguage
çalışamediğini bilmek zordur.
PowerShell 7.4 artık Denetim modunda Uygulama Denetimi ilkelerini destekliyor. Denetim modunda PowerShell güvenilmeyen betikleri modda ConstrainedLanguage
çalıştırır, ancak iletileri hata oluşturmak yerine olay günlüğüne kaydeder. Günlük iletileri, ilke Zorla modundaysa hangi kısıtlamaların uygulanacağını açıklar.
PowerShell 7.3'teki değişiklikler
- PowerShell 7.3 artık Uygulama Denetimi API'sini kullanarak PowerShell betik dosyalarını engelleme veya izin verme özelliğini destekliyor.
PowerShell 7.2'deki değişiklikler
AppLocker'da yalnızca Reddetme kurallarına sahip olduğunuz ve yürütme ilkesini atlamanıza olanak tanıyan ilkeyi zorlamak için kısıtlanmış modun kullanılmadığı bir köşe örneği senaryosu vardı. PowerShell 7.2'den başlayarak, AppLocker kurallarının bir komut üzerinde öncelikli olmasını sağlamak için bir
Set-ExecutionPolicy -ExecutionPolicy Bypass
değişiklik yapıldı.PowerShell 7.2 artık kilitli bir
NoLanguage
makinede mod PowerShell oturumunda cmdlet'inAdd-Type
kullanılmasına izin vermemektedir.PowerShell 7.2 artık Betiklerin AppLocker sistem kilitleme koşullarında COM nesnelerini kullanmalarına izin vermemektedir. ŞIRKET içinde COM veya DCOM kullanan cmdlet'ler etkilenmez.
Daha fazla bilgi
- Uygulama Denetimi'nin nasıl çalıştığı ve hangi kısıtlamaları uyguladığı hakkında daha fazla bilgi için bkz . Uygulama Denetimi PowerShell ile nasıl çalışır?
- Uygulama Denetimi ile PowerShell'in güvenliğini sağlama hakkında daha fazla bilgi için bkz . Uygulama Denetimi'ni kullanma.
PowerShell