CVE-2021-4034: Red Hat Polkit Out-of-Bounds Read and Write Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
CVE-2021-4034, Red Hat Polkit (PolicyKit) ürününde yer alan bir güvenlik açığıdır. Bu zafiyet, özellikle pkexec aracında bulunan bir out-of-bounds read and write (bounds dışı okuma ve yazma) hatasından kaynaklanmaktadır. Bu tür bir hata, bellek alanlarının dışındaki verilere erişim sağlanmasına ve bu sayede yetki yükseltme (privilege escalation) imkanı sunmaktadır. Zafiyet, kullanıcıların, yönetici (admin) haklarına sahip olmaksızın bu hakları elde etmelerine sebep olabilen kritik bir güvenlik açığıdır.
Zafiyetin kökeni, Polkit’in pkexec aracında baş göstermektedir. Pkexec, Polkit kapsamında belirli uygulamaların yönetici yetkileriyle çalışmasına olanak tanır. Uygulamalar arasında kimlik doğrulama (authentication) gerektiren durumlarda, pkexec bu işlemi gerçekleştiren bir yapı taşı olarak görev yapar. Ancak, kodda bulunan buffer overflow (tampon taşması) durumunun mevcudiyeti, kötü niyetli kullanıcıların sistem üzerinde yetkisiz işlemler yapabilmesine yol açacak bir senaryo oluşturur. Bu durum, ciddi bir güvenlik açığı olarak değerlendirilmektedir.
Bu zafiyetin etkisi, yalnızca bireysel kullanıcılarla sınırlı kalmamış, aynı zamanda pek çok sektörde büyük sorunlara yol açmıştır. Özellikle finans, sağlık ve teknoloji sektörlerindeki sistemler, Red Hat Polkit kullanan uygulamalar aracılığı ile bu zafiyetin potansiyel hedefleri haline gelmiştir. Kötü niyetli bireyler, bu tür zafiyetleri kullanarak sistemlere girmek ve hassas verilere ulaşmak için çeşitli teknikler geliştirmişlerdir. Örneğin, bir finans uygulamasında yetkilendirme bypass (yetkilendirme atlatma) yaparak yöneticinin izinlerini ele geçirmek, kritik finansal verilere ulaşma şansı sunmaktadır.
Zafiyeti daha iyi anlamak için örnek bir senaryo üzerinden değerlendirebiliriz: Bir Linux sisteminde çalışan bir kullanıcı, pkexec yardımıyla belirli bir uygulamayı yönetici haklarıyla başlatmak istiyor. Ancak, kullanıcı uygulama üzerinde gerekli alanları doldurmadan uygulamayı başlatmaya çalıştığında, pkexec bu istekleri kontrol etmeden işleme alabilir. Bu durumda, bir sibernetik saldırgan, bellek üzerinde kontrol sağlayarak sistemde yetki elde edebilir.
Bu tür durumların önüne geçmek için yazılım geliştiricilerin ve sistem yöneticilerinin, Polkit gibi kritik bileşenleri güncel tutmaları ve zafiyetlere karşı yapılabilecek güncellemeleri takip etmeleri büyük önem taşır. Red Hat, bu zafiyetle ilgili güvenlik güncellemelerini hızla yayınlamış ve kullanıcılarına, sistemlerini güncellemeleri yönünde çağrıda bulunmuştur.
Sonuç olarak, CVE-2021-4034, out-of-bounds read and write zafiyeti ile ciddi bir güvenlik tehdidi oluşturan bir durumdur. Bu tür zafiyetlerin farkında olmak ve her zaman güncel kalmak, sistemlerin güvenliğini artırmak için kritik bir gerekliliktir. CyberFlow platformu gibi eğitim araçları, bu tür sahaya özgü bilgileri kullanıcılarla paylaşarak onların bilinçlenmesini sağlamaktadır. White Hat hacker perspektifinden bakıldığında, bu bilgi ve farkındalık, sistem güvenliğini artırmada önemli bir rol oynamaktadır.
Teknik Sömürü (Exploitation) ve PoC
Polkit, sistem yöneticileri için bir oturum açma ve yetkilendirme aracıdır. Ancak, CVE-2021-4034 zafiyeti, bu aracın zayıf noktalarından birini kullanarak saldırganların yetki yükseltmesine (privilege escalation) olanak tanımaktadır. Bu tür zayıflıklar, bir sistemde güvenlik açığı kullanarak daha yüksek yetkilere ulaşma potansiyeline sahip olan saldırılar için zemin hazırlar. Bu bölümde, CVE-2021-4034 zafiyetinin sömürülmesi üzerine adım adım bir inceleme yapacağız.
Öncelikle, CVE-2021-4034 zafiyetinin nasıl oluştuğuna bakmamız gerekiyor. Polkit’in pkexec aracı içerisinde bulunan "out-of-bounds read and write" (sınırı aşan okuma ve yazma) hatası, hafıza alanlarının yanlış bir şekilde erişilmesine neden olmaktadır. Bu durum, bir saldırganın kötü niyetli bir komut çalıştırmasına ve sonucunda sahte kullanıcının yönetici yetkilerine ulaşmasına yol açabilir.
Sömürü aşamalarını baştan sona şu şekilde sıralayabiliriz:
Zafiyetin Keşfi ve Hedef Sistem Üzerinde Analiz: İlk adım, hedef sistemin Polkit yüklü olup olmadığını kontrol etmektir. Bunun için, terminalde
pkexec --versionkomutunu kullanarak Polkit sürümünü öğrenebilirsiniz. Eğer zafiyete sahip bir sürüm mevcutsa, bir sonraki adımda bunun kullanımı için ortam hazırlamalısınız.Kötü Amaçlı Kod Yazma: Zafiyet, sistemin bellek alanına erişim sağladığı için, bu aşamada bir Python betiği yazarak bu bellek alanını hedef alabilirsiniz. Aşağıda basit bir örnek verilmiştir:
import os
import ctypes
# Kötü amaçlı kod
shell_command = "/bin/sh"
# Zafiyeti tetiklemek için gerekli sistem çağrısını yapıyoruz
os.system(f"pkexec {shell_command}")
- Zafiyeti Tetikleme: Yazdığınız kötü amaçlı kodu çalıştırarak pkexec aracının zafiyetini tetikleyebilirsiniz. Bu aşamada, sistemin yönetim haklarına sahip olduğunuzu kanıtlayacak bir çıktı almalısınız. Terminalde şu komutu verebilirsiniz:
python3 exploit.py
Bu adımda, zafiyeti tetikleyerek yönetici komut satırına ulaşmanız beklenmektedir.
Yetki Yükseltme İşlemi: Eğer zafiyeti başarıyla tetiklediyseniz, şu an yönetici yetkilerine sahipsiniz demektir. Bu aşamada, sistem üzerinde daha fazla kontrole sahip olabilmek için daha karmaşık komutlar çalıştırabilirsiniz.
Sonuçların Analizi: Sömürü işleminizin başarılı olup olmadığını kontrol edin. Eğer komutlarınızı yönetici yetkisiyle çalıştırabiliyorsanız, zafiyeti başarılı bir şekilde kullanmışsınız demektir.
Bu süreç, CVE-2021-4034 zafiyetinin potansiyel bir sömürü yolu ile kötüye kullanılması üzerine bir örnektir. Eğitim amaçlı bu tür bilgilerin yalnızca etik hackerlar tarafından, yasal çerçeveler içinde kullanılmasını ve siber güvenlik alanında bilinç oluşturmayı hedeflemekteyiz. Unutmayın ki, etik dışı kullanım yasadışıdır ve sonuçları ağır olabilir. CyberFlow platformu, bu tür bilgilerin sorumlu bir şekilde kullanılmasını teşvik eder.
Forensics (Adli Bilişim) ve Log Analizi
CVE-2021-4034, Red Hat Polkit ürününde bulunan bir güvenlik açığıdır ve sistem yöneticisi yetkilerine sahip olma imkanı sunduğu için ciddi bir tehdit olarak değerlendirilmiştir. Bu zafiyet, out-of-bounds (sınır dışı) okuma ve yazma hatasından kaynaklanmaktadır, bu da saldırganların sistemden gereksiz veri çekmesine ve yetki artırımı (privilege escalation) yoluyla yöneticilik haklarına ulaşmasına olanak tanır. Bu tür zafiyetlerin anlaşılması ve tespit edilmesi, özellikle siber suç incelemeleri sırasında oldukça önemlidir.
Saldırganlar, CVE-2021-4034 zafiyetinden yararlanarak sistemde yetki artırımı gerçekleştirebilir. İşte bu noktada forensics (adli bilişim) ve log analizi büyük bir rol oynamaktadır. Siber güvenlik uzmanları, Log analizi (log analysis) yaparak bu tür aktiviteleri tespit edebilir. SIEM (Security Information and Event Management) sistemleri, saldırganların sistemde hangi atakları gerçekleştirdiğini görmek için kullanılır.
Özellikle aşağıdaki log türlerine dikkat edilmesi gerektiği unutulmamalıdır:
Erişim Logları (Access Logs): Erişim logları, sistemdeki tüm erişim denemelerini kaydeder. Burada dikkat edilmesi gereken, normalde olmayan veya alışılmadık IP adreslerinden gelen erişim talepleri olabilir. Ayrıca, belirli bir zamanda çok sayıda erişim talebinin yapılması da anormal bir durum olarak işaretlenebilir.
Hata Logları (Error Logs): Hata logları, hatalı çalışan uygulamalara ait bilgileri tutar. Bir hata durumunda, sistemin çökmesine veya beklenmedik davranışlara neden olan durumları buradan gözlemlemek mümkündür. Örneğin, polkit ile ilgili hatalar burada bulunabilir.
Yetki Verme Logları (Authorization Logs): Bu loglar, kimlerin hangi konularda yetkilere sahip olduğunu gösterir. Saldırganların uygulama üzerinde yetki artırımı gerçekleştirmesi, buradan tespit edilebilir. Normalde bir kullanıcının erişmemesi gereken işlemlerde yetki artışı olduğuna dair izler görülebilir.
Siber güvenlik uzmanları, bu logları inceleyerek aşağıdaki imzalara (signatures) dikkat etmelidir:
- Yetkisiz Erişim Girişimleri: Belirli bir zaman diliminde normalden fazla giriş denemesi.
- Şüpheli Erişim IP’leri: Coğrafi olarak hedef sistem ile ilgisi olmayan IP’lerden gelen erişim talepleri.
- Uygulama Hataları: Polkit ile ilgili bilinen hataların ya da anormal davranışların olduğu log kayıtları.
- İzin Değişiklikleri: Kullanıcı grupları veya izinlerde aniden değişiklikler.
Güvenlik zafiyeti istismarında, genellikle bellek üzerindeki nesnelerin yanlış bir şekilde ele geçirilmesi söz konusudur. Saldırganlar, uygun kullanıma sahip olamadıkları bellek alanlarına erişim sağlayarak yetki sahibi olabilirler. Bu tür durumlar için gelişmiş SIEM çözümleri ile filtrelenecek abnormal log kayıtları belirlenmelidir.
Özet olarak, CVE-2021-4034 zafiyeti gibi güvenlik açıklarının tespiti için log analizi kritik bir öneme sahiptir. Siber güvenlik uzmanları, ilgili logları düzenli olarak gözden geçirerek, bu tür tehditleri önceden tespit etme şansına sahip olabilir. Bu sayede, sistem bütünlüğü daha sağlam bir şekilde korunabilir.
Savunma ve Sıkılaştırma (Hardening)
Red Hat Polkit, Linux sistemlerde kullanıcıların daha yüksek izinlere sahip işlemleri gerçekleştirmesine olanak tanıyan önemli bir araçtır. Ancak, CVE-2021-4034 olarak bilinen bir zafiyet, polkit pkexec aracında bir out-of-bounds read ve write (sınır dışı okuma ve yazma) açığına neden olmaktadır. Bu zafiyet, saldırganların sistemde yetkili yönetici hakları elde etmesine imkan tanıyabilir. Bu nedenle, bu açığın kapatılması ve sistemlerin güvenliğinin artırılması son derece önemlidir.
Bu tür zafiyetler genellikle buffer overflow (tampon taşması) olarak bilinen saldırılarla ilişkilendirilse de, out-of-bounds read ve write (sınır dışı okuma ve yazma) durumları, mevcut bellek alanlarının dışına erişim sağlamak için kullanılmaktadır. Saldırganlar, uygun bir payload (yük) geliştirdikten sonra, sistemde yetkisiz değişiklikler yapabilir veya önemli verilere erişim sağlayabilir.
Bu zafiyetin etkisini en aza indirmek ve kurumsal ortamlarda güvenliği artırmak için aşağıdaki pratik adımlar önerilmektedir:
Güncellemeleri Uygulayın: Sistemlerinizi ve özellikle Polkit paketlerinizi güncel tutmak birincil savunma hattıdır. Red Hat tarafından sağlanan güvenlik güncellemelerini ve yamaları takip ederek, sistemlerinizdeki zafiyetleri hızlıca kapatmalısınız. Güncellemeleri uygulamak için aşağıdaki komutu kullanabilirsiniz:
sudo dnf update polkit
Yalnızca Gerekli İzinleri Tanımlayın: Polkit yapılandırmasında, her kullanıcının hangi işlemleri gerçekleştirebileceğine dair belirli kurallar tanımlamalısınız. Bu, gereksiz yetkilendirmelerin ve yetkisiz erişimlerin önüne geçilmesine yardımcı olacaktır. Örneğin, yalnızca belirli kullanıcı gruplarına yönetici hakları tanımlamak mantıklıdır.
Firewall ile Koruma Sağlayın: Uygulama güvenlik duvarları (WAF) kullanmak, sisteminizi dışarıdan gelecek olası saldırılara karşı korumak için etkilidir. WAF kurallarınızı, Polkit ile ilgili işlemleri ve yetkileri göz önünde bulundurarak oluşturmalısınız. Aşağıdaki gibi örnek bir kuralı içeren bir yapılandırma dosyası (örneğin, Nginx WAF) oluşturabilirsiniz:
location /pkexec {
deny all;
}
Kapsamlı Loglama ve İzleme: Sistemde meydana gelen tüm işlemleri ve erişimleri izlemek için kapsamlı bir loglama mekanizması kurmalısınız. Bu, olası bir saldırı durumunda hızlı tespit ve müdahale imkanı sağlar. Örneğin, aşağıdaki komut ile sistem günlüklerini detaylı olarak inceleyebilirsiniz:
sudo journalctl -xe
Kurumsal Sıkılaştırma Önlemleri: Tüm sistem bileşenlerinin güvenliğini artırmak için kalıcı bir sıkılaştırma stratejisi oluşturmalısınız. Bu, sadece Polkit için değil, genel olarak sisteminizin güvenliği için de geçerlidir. İşletim sistemi kurulumunda minimum gereksinimleri belirlemek, gereksiz servisleri devre dışı bırakmak ve doğrudan internete erişimi kısıtlamak bu stratejinin bir parçasıdır.
Sonuç olarak, CVE-2021-4034 zafiyetinin etkilerini azaltmak ve sistem güvenliğini sağlamak için yukarıda belirtilen adımları dikkate almak kritiktir. Siber güvenlikte bir "white hat hacker" perspektifiyle çalışmak, yalnızca mevcut zafiyetleri kapatmakla kalmayıp, ileriye dönük olarak sistemleri daha sağlam hale getirmek adına da önemlidir. Unutulmamalıdır ki, güvenlik bir süreçtir ve sürekli iyileştirme gerektirir.