
Jenkins, yaygın olarak kullanılan açık kaynaklı bir otomasyon sunucusudur ve CI/CD süreçlerinde kritik bir rol oynamaktadır. Ancak, son zamanlarda tespit edilen birkaç güvenlik açığı, Jenkins kullanıcıları için ciddi tehditler oluşturmaktadır. Bu açıklar, özellikle Jenkins’in çekirdek sisteminde ve bazı eklentilerinde tespit edilmiştir.
CVE-2024-47855 numaralı güvenlik açığı, Jenkins’in JSON işleme kütüphanesinde bulunmuştur. Bu zafiyet, Jenkins’te “Overall/Read” izinlerine sahip kötü niyetli kullanıcıların HTTP istek işleme iş parçacıklarını sonsuz bir şekilde meşgul etmelerine ve sistemi kullanılmaz hale getirmelerine olanak tanır. Sonuç olarak, Jenkins’in düzgün çalışmasını engelleyebilir ve kritik CI/CD işlemleri aksayabilir. Ayrıca, bu açık bazı eklentilerde, örneğin SonarQube Scanner ve Bitbucket gibi, “Overall/Read” izinlerine sahip olmayan kullanıcılar tarafından da istismar edilebilir.
Bir diğer önemli güvenlik açığı ise CVE-2024-54003‘te tespit edilmiştir. Bu, Simple Queue Plugin eklentisinde bulunan ve saldırganların kötü niyetli betikler eklemelerine (XSS saldırıları) olanak tanıyan yüksek şiddetli bir XSS açığıdır. Bu zafiyet, View/Create iznine sahip saldırganlar tarafından kullanılabilir ve sistemin ele geçirilmesine yol açabilir.
Son olarak, CVE-2024-54004, Filesystem List Parameter Plugin eklentisinde tespit edilen bir path traversal (yol geçişi) zafiyetidir. Bu açık, “Item/Configure” izinlerine sahip saldırganların, Jenkins controller dosya sisteminde dosya adlarını sıralamalarına imkan tanır. Bu da saldırganların daha ileri seviyedeki saldırılar için önemli bilgiler elde etmelerine neden olabilir.
2. Etkilenen Sistemler
Bu güvenlik açıkları, aşağıdaki Jenkins sürümleri ve ilgili eklentileri etkileyebilmektedir:
- Jenkins haftalık sürümleri: 2.486 ve önceki sürümler
- Jenkins LTS (Long-Term Support): 2.479.1 ve önceki sürümler
- Simple Queue Plugin: 1.4.4 ve önceki sürümler
- Filesystem List Parameter Plugin: 0.0.14 ve önceki sürümler
Bu zafiyetler, tüm Jenkins altyapılarında büyük güvenlik tehditleri oluşturabilir, özellikle de kritik yazılım geliştirme ve dağıtım süreçlerini barındıran sistemlerde.
3. Saldırı Senaryoları
Bu güvenlik açıklarının istismarı, aşağıdaki türdeki saldırılara yol açabilir:
- Servis Dışı Bırakma (DoS): CVE-2024-47855 zafiyeti, saldırganların HTTP isteklerini sonsuz bir şekilde bekletmelerine ve sistem kaynaklarını tüketmelerine yol açarak, Jenkins sunucularının yanıt vermemesine neden olabilir. Bu, geliştirici ve operasyon ekiplerinin günlük işlerini büyük ölçüde aksatır.
- Kötü Amaçlı Betik Enjeksiyonu: CVE-2024-54003 üzerinden gerçekleştirilen XSS saldırıları, kullanıcının tarayıcısında zararlı betikler çalıştırılmasına sebep olabilir. Bu tür saldırılar, oturum çalınmalarına, kullanıcı bilgisi sızdırılmasına veya sunucunun daha fazla ele geçirilmesine yol açabilir.
- Dosya Erişimi ve Bilgi Toplama: CVE-2024-54004 zafiyeti, saldırganların Jenkins kontrol sunucusundaki dosya sisteminde bilgi toplayarak, gelecekteki saldırılar için fırsatlar yaratmalarına olanak tanıyabilir.
4. Çözüm ve Yama Yönetimi
Jenkins, bu güvenlik açıklarını gidermek amacıyla yeni sürümler yayınlamıştır. Kullanıcıların bu güncellemeleri hemen uygulamaları önerilmektedir:
- Jenkins haftalık sürümü: 2.487 ve sonrasında
- Jenkins LTS sürümü: 2.479.2 ve sonrasında
- Simple Queue Plugin: 1.4.5 ve sonrasında
- Filesystem List Parameter Plugin: 0.0.15 ve sonrasında
Bu güncellemeler, söz konusu zafiyetleri kapatmakta ve Jenkins sistemlerinin güvenliğini sağlamaktadır. Eski sürümler, bu zafiyetlere karşı savunmasızdır ve hemen güncellenmelidir.
5. Korunma Yöntemleri ve Ek Güvenlik Önlemleri
Bu tür güvenlik açıklarını önlemek için, aşağıdaki ek güvenlik önlemleri alınmalıdır:
- Erişim Kontrolleri ve İzinler: Jenkins sunucusuna yalnızca yetkilendirilmiş kullanıcıların erişmesi sağlanmalıdır. Özellikle View/Create ve Item/Configure izinlerine sahip kullanıcılar sıkı denetlenmelidir.
- Yazılım Güncellemeleri: Jenkins ve bağlı eklentilerin düzenli olarak güncellenmesi, yeni ortaya çıkan zafiyetlere karşı korunmanın en etkili yoludur.
- Ağ İzolasyonu: Jenkins sunucuları, yalnızca gerekli ağ segmentlerinden erişilebilecek şekilde yapılandırılmalıdır. Ayrıca, dışarıya açılan portlar sınırlı tutulmalıdır.
- Güvenlik Tarama Araçları: Jenkins altyapısı, potansiyel zafiyetlere karşı düzenli olarak güvenlik taramalarına tabi tutulmalıdır.
6. Sonuç
Jenkins’teki kritik güvenlik açıkları, ciddi riskler taşımaktadır ve hızlı bir şekilde yamalanmalıdır. Bu tür zafiyetlerin etkili bir şekilde yönetilmesi için Jenkins sunucularının güncel tutulması, sıkı erişim kontrolleri ve güvenlik taramaları yapılması gerekmektedir. Zafiyetlerin istismar edilmesi, yalnızca verilerin sızmasına değil, aynı zamanda geliştirme süreçlerinin aksamasına da neden olabilir. Jenkins kullanıcıları, bu zafiyetleri göz ardı etmeden gerekli güncellemeleri yaparak sistemlerinin güvenliğini sağlamak zorundadır.