Kurumsal Düzeyde PowerShell Güvenliği En İyi Uygulamaları


Microsoft, görev otomasyonu ve yapılandırma yönetimi için Windows PowerShell'i geliştirdi. .NET çerçevesine dayanmaktadır; bir komut satırı kabuğu ve bir komut dosyası dili içerir. Kullanıcıların otomatikleşmesine yardımcı olmaz ancak aynı zamanda karmaşık yönetim görevlerini de hızla çözer. Buna rağmen çoğu kullanıcı PowerShell'in bilgisayar korsanları tarafından güvenlik ihlalleri için kullanılan bir araç olduğuna inanıyor. Ne yazık ki PowerShell'in güvenlik ihlalleri için yaygın olarak kullanıldığı doğrudur. Bu nedenle, teknik bilgisi az olan veya hiç olmayan kullanıcılar genellikle PowerShell'i devre dışı bırakır. Ancak gerçek şu ki PowerShell Güvenliği yaklaşımı, kurumsal düzeyde güvenlik ihlallerine karşı en iyi korumayı sağlayabilir.

Microsoft Almanya Premier Saha Mühendisi David das Neves, gönderilerinden birinde PowerShell Güvenlik yaklaşımının kurumsal düzeyde güvenliği kurmanın güçlü bir yolu olduğundan bahsediyor. Aslında RedMonk tarafından oluşturulan Programlama Dili Sıralaması tablosuna göre PowerShell, GitHub'da en çok kullanılan dillerden biridir.

PowerShell güvenliğini anlama

Windows PowerShell dünya genelinde birçok BT yöneticisi tarafından kullanılıyor. Microsoft'un bir görev otomasyonu ve konfigürasyon yönetimi çerçevesidir. Bunun yardımıyla yöneticiler hem yerel hem de uzak Windows sistemlerinde yönetim görevlerini gerçekleştirebilir. Ancak son zamanlarda birkaç kuruluş bunu kullanmaktan kaçınıyor; özellikle uzaktan erişim için; güvenlik açıklarından şüpheleniyoruz. Araçla ilgili bu karışıklığı gidermek için Microsoft Premier Saha Mühendisi Ashley McGlone, aracın neden bir güvenlik açığı değil de güvenli bir araç olduğunu anlatan bir blog yayınladı.

Kuruluşlar PowerShell'i güvenlik açığı olarak görüyor

McGlone, bu araçla ilgili kuruluşlardaki son trendlerden bazılarından bahsediyor. Bazı kuruluşlar PowerShell uzaktan iletişiminin kullanımını yasaklıyor; InfoSec ise başka bir yerde uzaktan sunucu yönetimini engelledi. Ayrıca PowerShell Remoting güvenliğiyle ilgili sürekli olarak sorular aldığını belirtiyor. Birden fazla şirket, aracın kendi ortamlarındaki yeteneklerini kısıtlıyor. Bu şirketlerin çoğu, her zaman şifrelenen, tek bağlantı noktası 5985 veya 5986 olan Uzaktan İletişim aracından endişe duymaktadır.

PowerShell güvenliği için en iyi uygulamalar

McGlone, bu aracın neden bir güvenlik açığı olmadığını ancak öte yandan oldukça güvenli olduğunu açıklıyor. Bu aracın bir güvenlik açığı değil, tarafsız bir yönetim aracı olduğu gibi önemli noktalara değiniyor. Aracın uzaktan kumandası tüm Windows kimlik doğrulama ve yetkilendirme protokollerine uygundur. Varsayılan olarak yerel Yönetici grubu üyeliğini gerektirir.

Ayrıca aracın neden şirketlerin düşündüğünden daha güvenli olduğunu da belirtiyor:

“WMF 5.0'daki (veya KB3000850 ile WMF 4.0) iyileştirmeler, komut dosyası bloğu günlüğünü ve sistem çapında transkripsiyonu etkinleştirdiğinizde PowerShell'i bir bilgisayar korsanı için en kötü tercih edilen araç haline getiriyor. Bilgisayar korsanları, popüler CMD yardımcı programlarının aksine her yere parmak izi bırakacak”.

Güçlü izleme özellikleri nedeniyle McGlone, PowerShell'i uzaktan yönetim için en iyi araç olarak önermektedir. Araç, kuruluşların sunucularınızdaki etkinlikler için kim, ne, ne zaman, nerede ve nasıl sorularına yanıt bulmasını sağlayan özelliklerle birlikte gelir.

Ayrıca bu aracın güvenliğinin sağlanması ve kurumsal düzeyde kullanılması hakkında bilgi edinmek için kaynak bağlantılarını da verdi. Şirketinizdeki bilgi güvenliği departmanı bu araç hakkında daha fazla bilgi edinmek isterse McGlone, PowerShell Uzaktan İletişim Güvenliği Konularına bir bağlantı sağlar. Bu, PowerShell ekibinin sunduğu yeni güvenlik belgeleridir. Belgede Powershell Remoting nedir, varsayılan ayarları, işlem izolasyonu ve şifrelemesi, aktarım protokolleri gibi çeşitli bilgilendirici bölümler yer almaktadır.

Blog gönderisinde PowerShell hakkında daha fazla bilgi edinmek için çeşitli kaynaklar ve bağlantılardan bahsediliyor. WinRMSecurity web sitesine bağlantılar ve Lee Holmes'un teknik incelemesi de dahil olmak üzere bu kaynakları TechNet Bloglarından edinebilirsiniz.

Kurumsal düzeyde Windows PowerShell Güvenliği

Windows PowerShell Güvenliğini kurmadan önce bunun temellerini bilmek gerekir. Kullanıcıların Windows PowerShell'in en son sürümünü kullanması gerekir. Kullanıcı burada PowerShell Güvenliğinin Windows PowerShell'in en son sürümüne ayarlanması gerektiğini unutmamalıdır. Daha düşük bir sürümse (PowerShell Sürüm 2 gibi) yarardan çok zarar verebilir. Bu nedenle kullanıcıların PowerShell sürüm 2'den kurtulmaları önerilir.

Kullanıcılar, Windows PowerShell'in en son sürümünün yanı sıra işletim sisteminin en yeni sürümünü de tercih etmelidir. PowerShell Güvenliğini ayarlamak için Windows 11 veya Windows 10 en uyumlu işletim sistemidir. Windows 11/10 birçok güvenlik özelliğiyle birlikte gelir. Bu nedenle kullanıcıların eski Windows makinelerini Windows 11/10'a geçirmeleri ve kullanılabilecek tüm güvenlik özelliklerini değerlendirmeleri önerilir.

ExecutionPolicy: Birçok kullanıcı PowerShell Güvenliği yaklaşımını tercih etmez ve ExecutionPolicy'yi güvenlik sınırı olarak kullanır. Ancak David'in gönderisinde de belirttiği gibi, standart bir kullanıcı olarak bile ExecutionPolicy'yi aşmanın 20'den fazla yolu var. Bu nedenle kullanıcılar bunu RemoteSigned gibi GPO aracılığıyla ayarlamalıdır. ExecutionPolicy bazı bilgisayar korsanlarının internetten PowerShell betiklerini kullanmasını engelleyebilir ancak tamamen güvenilir bir güvenlik kurulumu değildir.

PowerShell Güvenlik yaklaşımında dikkat edilmesi gereken faktörler

David, PowerShell Security'yi kurumsal düzeyde ayarlarken dikkate alınması gereken tüm önemli faktörlerden bahsediyor. David'in ele aldığı faktörlerden bazıları şunlardır:

  • PowerShell Uzaktan İletişimi

  • Ayrıcalıklı Erişimin Güvenliğini Sağlama

  • Ortamın Modernleştirilmesi

  • Beyaz Listeye Ekleme/İmzalama/Kısıtlanmış Dil/Uygulama Kilitleyici/Cihaz Koruması

  • Kerestecilik

  • ScriptBlockLogging

  • Genişletilmiş Günlük Kaydı/WEF ve JEA

PowerShell Güvenliği kurulumu hakkında daha ayrıntılı bilgi için MSDN Bloglarındaki yazısını okuyun.

İlgili makaleler