Bugün Windows kullanıcılarının karşı karşıya kaldığı PrintNightmare açığı nedir ve kendinizi en son Windows açığından nasıl korursunuz, anlatacağız.
PrintNightmare, Windows yazdırma kuyruğunda bulunan kritik bir güvenlik açığıdır. ABD Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA) bu konuda bir açıklama yaptı ve o zamandan beri herkes başka bir şeyden bahsediyor. Bugün bu konuyu A’dan Z’ye ele aldık.
PrintNightmare nasıl başladı?
8 Haziran’da Microsoft, “Windows Yazdırma Biriktiricisi Uzaktan Kod Yürütme Güvenlik Açığı” başlıklı CVE-2021-1675’i yayımladı. Bu süreçte, durum istismar edilmeden önce tespit edilmiş ve kolayca düzeltilebilecek küçük bir tehdit gibi görünüyordu. Bu nedenle, endişelenmek için bir neden yoktu.
Ardından, dünyanın önde gelen güvenlik kurumları, CVE-2021-1675 için büyük bir güncelleme uyarısı vermeye başladı. Bu mesajlar, kullanıcıları ve kuruluşları, kendilerini bu tehditten korumak için derhal önlemler almaya çağırdı. Aynı zaman diliminde Microsoft, PrintNightmare takma adı verilen CVE-2021-34527 güvenlik açığını yayınladı.
Yüksek risk derecesi alan CVE-2021-1675’ten farklı olarak PrintNightmare, uzaktan kod yürütülmesine izin verdiği için en başından itibaren kritik güvenlik açığı derecesini aldı. O zamandan beri birkaç güncelleme oldu ve Microsoft bu sorun üzerinde 24 saat çalışıyor. Bu arada ve kesin bir çözüm beklerken, riskleri azaltmak için çeşitli öneriler de bulabildik.
PrintNightmare nedir?
Sorun, Windows yazdırma kuyruğunun bir işlevinde, özellikle adından da anlaşılacağı gibi sisteme yeni bir yazıcının yüklenmesine izin veren RpAddPrinterDriverEx() işlevinde yatmakta. Baskı yöneticisi buna erişimi kısıtlamasa da, kimliği doğrulanmış herhangi bir kullanıcı onu uzaktan kullanabilir.
Peki, bir kullanıcının uzaktan yazıcı kurabilmesindeki sorun nedir ve PrintNightmare’i bu kadar tehlikeli yapan nedir? Bir yazıcı kurmaktan bahsettiğimizde, onun sürücüsüne atıfta bulunuyoruz. Birisi yetkisiz bir sürücü kurabilirse, birçok kötü amaçlı öğe içerebilir. Böylece, bir sisteme erişim elde eden ve kötü amaçlı kod yürütmek için RpAddPrinterDriverEx()’i kullanan bir saldırgan, ayrıcalıkları yükseltebilir, güvenliği ihlal edilmiş sisteme yükleri gönderebilir ve hatta bir PC’nin tüm kontrolünü ele geçirebilir.
Yazdırma yöneticisi, Windows’un tüm sürümlerinde bulunan bir bileşen, bu nedenle Microsoft, işletim sisteminin herhangi bir kurulumunun PrintNightmare kullanılarak saldırıya açık olduğunu belirtiyor. Bu nedenle, Windows sürümünüz ne olursa olsun, prensip olarak sisteminiz PrintNightmare’e maruz kalır ve kendinizi korumak için önlemler almalısınız.
Kendinizi PrintNightmare’den nasıl korursunuz?
PrintNightmare’i düzeltmek için kullanılan bir Microsoft yaması var, ancak gerçek şu ki etkili değil.
Buna girmeden önce, başta bahsettiğimiz şeyi hatırlamalı ve CVE-2021-1675 ile CVE-2021-34527 arasında ayrım yapmalıyız. İlki için Microsoft, bu güvenlik açığının belirli risklerini azaltan düzeltmeleri zaten yayımladı. Ancak bu yamalar, CVE-2021-34527 ile ilgili sorunu çözmez.
Öte yandan, Microsoft, resmi olarak artık desteklenmeyenler de dahil olmak üzere, Windows’un farklı sürümleri için PrintNightmare için daha dün yamalar yayınladı:
- KB5004945: Windows 10 20H1, 20H2 ve 21H.
- KB5004946: Windows 10 sürüm 1909
- KB5004947: Windows 10 sürüm 1809 ve Windows Server 2019
- KB5004949: Windows 10 sürüm 1803
- KB5004950: Windows 10 sürüm 1507
- KB5004951: Windows 7 SP1 ve Windows Server 2008 R2 SP1
- KB5004958: Windows 8.1 ve Windows Server 2012
- KB5004959: Windows Server 2008 SP2
Bu sürümlerden sonra kötü haberler gelmeye başladı, bazı kullanıcılar resmi yamanın eksik olduğunu ve hiçbir etkisinin olmadığını iddia etti.
0Patch, PrintNightmare’e karşı etkili olduğu kanıtlanmış resmi olmayan bir yama yayınlamıştı, ancak resmi Microsoft yamasının uygulanması, 0patch tarafından geliştirilenin etkisini azaltıyor, bu nedenle sistem bir kez daha bu güvenlik sorununa dayalı bir saldırıya karşı savunmasız:
Microsoft, sorun üzerinde çalıştığını belirtti ancak bu arada, 0patch yaması kullanılıyorsa, yamanın sunduğu koruma zaten yeterli olduğundan, Windows’un otomatik olarak güncellenmesine izin verilmemesi öneriliyor. Diğer bir olasılık da her sistemde ihtiyacınız olmayan yazdırma hizmetlerini devre dışı bırakmak. Örneğin, sunucular, yazdırma sunucusu olmadıkları sürece, güvenlik nedeniyle bu hizmetleri devre dışı bırakmalı. Uç noktalara gelince, tamamen aynı, özellikle hiç yazdırmadığınız sistemlerden bahsediyorsak, yazdırmayla ilgili aktif hizmetleri en aza indirmelisiniz.
Yazdırma kuyruğu hizmetinin mevcut durumunu kontrol etmek için bir PowerShell konsolu açmamız ve komut satırına Get-Service -Name Spooler yazmamız gerekecek. Sonuç olarak, mevcut durumunu alacağız. Hizmetin kapalı veya devre dışı olarak gösterilmesi durumunda, bu sistemde PrintNightmare kapısı kapalı kaldığından endişelenmemize gerek kalmayacak. Hizmetin aktif olması durumunda iki olasılık var, bir yazıcı sunucusundan bahsetmediğimiz sürece, bu durumda hizmet çalışmayı durduracağı için bu önlemler uygulanamaz.
Birincisi kuşkusuz en sert olanı ve onu ancak o sistemden asla yazdırmazsak kullanabiliriz. Hizmetin durumunu kontrol etmek için kullandığımız aynı Powershell konsolunda aşağıdaki komutları yazmamız gerekecek:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
İlki, Windows yazdırma hizmetini hemen durdururken, ikincisi, sistemi yeniden başlattıktan sonra yeniden yüklenmeyecek şekilde yapılandırmasını değiştirir. Microsoft, PrintNightmare’i tamamen düzelten bir yama yayınladığında, bu komutla yeniden etkinleştirebilirsiniz;
Set-Service -Name Spooler -StartupType Enabled
Bu şekilde, sistemi yeniden başlattıktan sonra, o sistemden tekrar normal şekilde yazdırabileceksiniz.
İkinci yöntem, sistemin yalnızca yazdırma sunucusu işlevini devre dışı bırakmak. Bu şekilde, sistemden yine de yazdırabilirsiniz, ancak ağdaki diğer bilgisayarlar ve aygıtlar için artık yazdırma sunucusu işlevine sahip olmayacak. Bunu yapmak için Yerel Grup İlkesi Düzenleyicisine erişmeniz gerekir ve Yerel Bilgisayar İlkesi > Bilgisayar Yapılandırması > Yönetim Şablonları > Yazıcılar’a gitmeli, Yazdırma İşi Yöneticisinin istemci bağlantılarını kabul etmesine izin ver girişini aramalısınız.
Ardından üzerine çift tıklayın ve PrintNightmare risklerini önlemek için Devre Dışı olması gereken durumunu kontrol edin. Bu nedenle, Yapılandırılmadı veya Etkinleştirildiyse, bu değeri değiştirin ve sistemi yeniden başlatın.
PrintNightmare için Microsoft yamasını yüklediyseniz ne olur?
Bunu okuduğunuzda, resmi Microsoft yamasını zaten yüklemiş olabilirsiniz. Sorun, PrintNightmare sorununu çözmemesi. Böyle bir durumda, Windows kayıt defteri ayarlarında bir değişiklik yapmanız gerekecek. Bunu yapmanın en hızlı yolu bir konsol (Komut İstemi) açmak ve aşağıdaki komutu yazmaktır:
“HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows NT \ Printers \ PointAndPrint” / v RestrictDriverInstallationToAdministrators / t REG_DWORD / d 1 / f
Tam olarak gösterildiği gibi yazın, kopyala yapıştır yapabilirsiniz. Uzunluğu nedeniyle bölünmüş olmasına rağmen, tek bir komut olduğunu unutmayın.
Prensip olarak, Microsoft’un kesin bir çözüm yayınlamasını beklememiz gerektiği doğru olsa da, bu önlemler gerekli güvenlik seviyesini sağlamalı.