Windows PowerShell’de Invoke-WebRequest İçin Yeni Uyarılar
Microsoft, Windows PowerShell’in artık Invoke-WebRequest cmdlet’ini kullanarak web içeriği indiren betikleri çalıştırırken uyarılar görüntülediğini duyurdu. Bu adım, potansiyel olarak riskli kodların çalıştırılmasını önlemeyi amaçlıyor.
Yüksek Ciddiyetli Açıkların Azaltılması
Bu uyarılar, yüksek ciddiyete sahip PowerShell uzaktan kod yürütme açığını (CVE-2025-54100) azaltmayı hedefliyor. Özellikle kurumsal veya BT yönetimindeki ortamları etkileyen bu açık, PowerShell script’lerinin otomatikleştirme amacıyla kullanıldığı alanlarda daha yaygındır. Genel olarak, PowerShell script’leri bu tür ortamlara özgü olarak görülmektedir.
PowerShell 5.1 ve Güvenli Web Ayrıştırma
Uyarılar, Windows 10 ve Windows 11 sistemlerinde varsayılan olarak yüklü olan PowerShell 5.1’e eklenmiştir. Bu, PowerShell 7’de bulunan güvenli web ayrıştırma sürecini destekleme amacı taşımaktadır.
PowerShell, kullanıcılara “Invoke-WebRequest” cmdlet’i ile indirilen web sayfalarında bulunan script’lerin, gerekli önlemler alınmadığında sistemde çalışabileceğini bildirecektir. Varsayılan olarak, kullanıcı ‘Enter’ tuşuna bastığında veya ‘Hayır’ seçeneğini seçtiğinde işlem iptal edilecektir. Alternatif olarak, PowerShell daha güvenli bir işlem için bu komutu ‘-UseBasicParsing’ parametresiyle yeniden çalıştırmayı önerir.
Risk Kabulü ve Güvenlik Onayı
‘Evet’ seçeneği seçildiğinde PowerShell, sayfayı eski yöntemle (tam HTML ayrıştırması) ayrıştırır. Bu durumda, içeriğin ve gömülü script’lerin önceden olduğu gibi yüklenmesine izin verilir. Kısacası, ‘Evet’ seçeneği riski kabul etmek anlamına gelirken, ‘Hayır’ seçeneği işlemi durdurmak için bir koruma sağlar.
Microsoft, “Windows PowerShell 5.1 artık özel parametreler olmadan web sayfalarını almak için Invoke-WebRequest komutunu kullandığınızda bir güvenlik onay penceresi görüntülemektedir” şeklinde bir açıklama yaptı. Bu onay penceresi, ayrıştırma sırasında sayfadaki script’lerin çalışabileceğini bildiriyor ve script yürütümünü önlemek için daha güvenli olan ‘-UseBasicParsing’ parametresinin kullanılmasını öneriyor.
Otomasyon Script’lerinde Güncellemelerin Önemi
KB5074204 güncellemesi yüklendikten sonra, IT yöneticileri script kodu yürütme riskleri hakkında bir onay penceresi ile karşılaşacaklardır:
Security Warning: Script Execution Risk
Invoke-WebRequest parses the content of the web page. Script code in the web page might be run when the page is parsed.
RECOMMENDED ACTION:
Use the -UseBasicParsing switch to avoid script code execution.
Do you want to continue?
Otomasyon script’lerinin manuel onay beklerken takılmaması için yöneticilerin, script’lerini güvenli parametre olan UseBasicParsing’ı açıkça kullanacak şekilde güncellemeleri önerilmektedir.
PowerShell’deki Alias’ların Önemi
PowerShell’deki ‘curl’ komutunun Invoke-WebRequest cmdlet’ine alias olduğunu da unutmamak gerekir. Bu nedenle, ‘curl’ komutlarıyla çalışan script’ler de bu yeni uyarıları gösterecektir.
Microsoft, “Invoke-WebRequest komutunu kullanan çoğu PowerShell script ve komutunun, çok az ya da hiç değişiklik olmadan çalışmaya devam edeceğini” belirtiyor. Örneğin, yalnızca içerik indiren veya yanıt gövdesi ile metin veya veri olarak çalışan script’ler bu değişikliklerden etkilenmeyecek ve herhangi bir değişiklik gerektirmeyecektir.


