Giriş
ABD Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA), Joomla içerik yönetim sistemi (CMS) için yaygın olarak kullanılan iCagenda ve Balbooa Forms eklentilerinde tespit edilen uzaktan kod yürütme (RCE) zafiyetlerinin saldırganlar tarafından aktif olarak istismar edildiğini duyurdu. Bu zafiyetler, arbitrary file upload (isteğe bağlı dosya yükleme) yoluyla sistemlere sızılmasına olanak tanımaktadır.
Joomla, dünya genelinde milyonlarca web sitesinde kullanılan popüler bir CMS'dir. Eklentiler ise sistemin işlevselliğini genişletmek için vazgeçilmez araçlardır. Ancak, bu eklentilerdeki güvenlik açıkları, saldırganların sistemlere yetkisiz erişim sağlamasına ve ciddi veri ihlallerine yol açabilir. Bu makalede, zafiyetlerin detayları, risk düzeyleri ve uygulanması gereken güvenlik önlemleri adım adım açıklanmaktadır.
Zafiyetlerin Detayları
Etkilenen Eklentiler ve Sürümler
Aşağıdaki Joomla eklentileri ve sürümleri, CISA tarafından bildirilen zafiyetlerden etkilenmektedir:
- iCagenda (tüm sürümler, özellikle
iCagenda < 3.2.14) - Balbooa Forms (tüm sürümler, özellikle
Balbooa Forms < 1.3.7)
Zafiyet Türü ve Etkileri
Bu zafiyetler, CVE-2023-23754 (iCagenda) ve CVE-2023-23755 (Balbooa Forms) olarak tanımlanmıştır ve aşağıdaki riskleri içermektedir:
- Uzaktan Kod Yürütme (RCE): Saldırganlar, zafiyetli eklentiler aracılığıyla sunucuya arbitrary file upload gerçekleştirerek, sistem komutlarını uzaktan çalıştırabilir.
- Yetkisiz Erişim: Saldırganlar, sistemde
adminveyarootyetkilerine sahip olabilir. - Veri İhlali: Kişisel veriler, müşteri bilgileri ve ticari sırlar çalınabilir.
- Sistem Bütünlüğünün Bozulması: Sunucuya zararlı yazılımlar yüklenebilir ve sistemin çalışması engellenebilir.
Saldırı Senaryosu
Saldırganlar, aşağıdaki adımları izleyerek zafiyetleri istismar edebilir:
- Hedef Belirleme: Joomla tabanlı bir web sitesi bulunur ve kullanılan eklentiler araştırılır.
- Zafiyet Kontrolü: Saldırgan, hedef sistemdeki iCagenda veya Balbooa Forms eklentisinin eski bir sürümünü çalıştırıp çalıştırmadığını kontrol eder.
- Dosya Yükleme: Zafiyetli eklenti aracılığıyla, saldırgan sistemde
.php,.jsveya.htmluzantılı bir dosya yükler. - Komut Yürütme: Yüklenen dosya, sunucu üzerinde çalıştırılarak sistem komutları çalıştırılır (örneğin,
system('id')komutu ile kullanıcı bilgileri alınabilir). - Sistem Kontrolü: Saldırgan, sistemde tam kontrol sağlar ve diğer saldırılar için altyapıyı kullanabilir.
Risk Değerlendirmesi
Zafiyetin Kritiklik Düzeyi
Bu zafiyetler, CVSS v3.1 puanlama sistemine göre 9.8/10 (Kritik) olarak sınıflandırılmıştır. Bu yüksek puan, zafiyetin kolayca istismar edilebilir olduğunu ve sistemlere ciddi hasar verebileceğini göstermektedir.
Etkilenen Kullanıcı Grupları
Aşağıdaki kullanıcı grupları bu zafiyetlerden doğrudan etkilenmektedir:
- Joomla CMS kullanıcıları: Özellikle iCagenda ve Balbooa Forms eklentilerini kullanan web site yöneticileri.
- Web geliştiriciler: Joomla tabanlı projeler üzerinde çalışan geliştiriciler.
- Şirketler ve kuruluşlar: Joomla kullanarak web siteleri barındıran tüm organizasyonlar.
Çözüm ve Korunma Yöntemleri
Adım 1: Eklentilerin Güncellenmesi
En acil adım, etkilenen eklentilerin en son sürümlerine güncellenmesidir.
- Joomla Yönetici Paneline Giriş Yapın:
https://[siteniz].com/administratoradresinden Joomla yönetici paneline erişin. - Eklentiler Menüsüne Gidin: Sol menüden "Extensions" (Eklentiler) → "Manage" (Yönet) → "Update" (Güncelle) bölümüne gidin.
- Güncellemeleri Kontrol Edin: Sistem, kullanılabilir güncellemeleri otomatik olarak listeleyecektir. iCagenda ve Balbooa Forms için güncellemeleri bulun.
- Güncellemeleri Yükleyin:
# Joomla Yönetici Paneli üzerinden: 1. Güncelleme listesinden ilgili eklentiyi seçin. 2. "Update" (Güncelle) butonuna tıklayın. 3. Güncelleme tamamlandıktan sonra sistemi yeniden başlatın. - Manuel Güncelleme (Eğer gerekirse):
# SSH üzerinden Joomla dizinine gidin ve aşağıdaki komutları çalıştırın: cd /var/www/html/joomla wget https://extensions.joomla.org/extensions/latest/icagenda-latest.zip -O /tmp/icagenda-latest.zip unzip /tmp/icagenda-latest.zip -d /tmp/icagenda-update cp -r /tmp/icagenda-update/* /var/www/html/joomla/components/com_icagenda/ chown -R www-data:www-data /var/www/html/joomla/components/com_icagenda/ rm -rf /tmp/icagenda-*/
Adım 2: Sistem Yedeklemesi
Güncelleme işleminden önce mutlaka sistem yedeği alınmalıdır. Bu, güncelleme sırasında oluşabilecek hatalara karşı koruma sağlar.
# Yedek alma komutları (Linux tabanlı sistemler için):
mkdir -p /backup/joomla_backup_$(date +%Y%m%d)
rsync -avz /var/www/html/joomla/ /backup/joomla_backup_$(date +%Y%m%d)/
mysqldump -u [kullanıcı_adı] -p[şifre] [veritabanı_adı] > /backup/joomla_backup_$(date +%Y%m%d)/joomla_db.sql
⚠️ Önemli Uyarı: Yedek alırken veritabanı şifresini komut satırında açık olarak yazmamaya dikkat edin. Şifreyi girmeniz gerekiyorsa, komutun sonuna
-pparametresini ekleyip şifreyi elle girin.
Adım 3: Güvenlik Duvarı ve Erişim Kontrolleri
Eklentilerin güncellenmesi yeterli olmayabilir. Aşağıdaki adımlar ile sisteminizin güvenliğini artırın:
- Web Uygulama Güvenlik Duvarı (WAF) Kurulumu:
- ModSecurity: Apache web sunucusu için popüler bir WAF'dır. Aşağıdaki komutlarla kurulabilir:
sudo apt update sudo apt install libapache2-mod-security2 sudo systemctl restart apache2 - Cloudflare: Joomla siteleri için Cloudflare kullanarak saldırıları engelleyebilirsiniz.
- ModSecurity: Apache web sunucusu için popüler bir WAF'dır. Aşağıdaki komutlarla kurulabilir:
- Dosya Yükleme Kısıtlamaları:
- Joomla yönetici panelinden "Global Configuration" (Genel Yapılandırma) → "Media" (Medya) bölümüne gidin.
- İzin Verilen Dosya Türlerini Sınırlayın: Yalnızca gerekli dosya türlerini (örneğin,
.jpg,.png) yüklemeye izin verin.
- Kullanıcı Erişim Kontrolleri:
- Joomla Yönetici Paneli: Sadece güvenilir kullanıcıların erişimine izin verin.
- SSH Erişimi: Root kullanıcısı için SSH erişimini devre dışı bırakın ve
sudokullanıcıları ile sınırlayın.# SSH erişimini kısıtlamak için: sudo nano /etc/ssh/sshd_config # Aşağıdaki satırı bulun ve değiştirin: PermitRootLogin no PasswordAuthentication no # Değişiklikleri kaydedip SSH servisini yeniden başlatın: sudo systemctl restart sshd
Adım 4: Logların İzlenmesi ve Güvenlik Denetimleri
Sistemde meydana gelen şüpheli aktiviteleri tespit etmek için aşağıdaki adımları uygulayın:
- Joomla Loglarını Kontrol Edin:
# Joomla log dosyalarını inceleyin (genellikle /var/www/html/joomla/logs/ dizininde bulunur): cat /var/www/html/joomla/logs/error.php cat /var/www/html/joomla/logs/access.php - Sunucu Loglarını Kontrol Edin:
# Apache loglarını inceleyin: tail -f /var/log/apache2/error.log tail -f /var/log/apache2/access.log # PHP loglarını inceleyin: tail -f /var/log/php_errors.log - Güvenlik Denetimleri:
- Nessus veya OpenVAS: Bu araçlar ile sisteminizde zafiyet taraması yapabilirsiniz.
- Joomla Güvenlik Eklentileri:
Admin ToolsveyaRSFirewall!gibi eklentiler kullanarak sisteminizi koruyabilirsiniz.
Ek Önlemler ve İpuçları
Otomatik Güncelleme Mekanizmaları
Joomla için otomatik güncelleme mekanizmalarını etkinleştirmek, gelecekteki zafiyetlerin önüne geçmek için önemlidir:
- Joomla Yönetici Paneli: "Extensions" → "Manage" → "Update Sites" bölümünden otomatik güncellemeleri etkinleştirin.
- Cron Job ile Güncellemeleri Otomatikleştirme:
# Aşağıdaki cron job, Joomla'nın güncellemelerini otomatik olarak kontrol eder: 0 3 * * * /usr/bin/php /var/www/html/joomla/cli/joomla.php update:check --minimum-stability=stable
Eklenti Yönetimi Politikaları
💡 İpucu: Joomla için yalnızca güvenilir kaynaklardan (örneğin, Joomla Extensions Directory) eklenti indirin. Üçüncü taraf sitelerden eklenti indirmek, zafiyet riskini artırır.
Eklenti yönetimi için aşağıdaki politikaları uygulayın:
- Kullanılmayan Eklentileri Kaldırın: Gereksiz eklentiler sistemdeki zafiyet riskini artırır.
- Eklenti Sürümlerini Takip Edin: Eklentilerin güncel olup olmadığını düzenli olarak kontrol edin.
- Test Ortamı Kullanın: Güncellemeleri canlı sisteme uygulamadan önce test ortamında deneyin.
Sonuç
CISA tarafından bildirilen Joomla eklentilerindeki RCE zafiyetleri, web siteleri için ciddi bir tehdit oluşturmaktadır. Bu zafiyetler, saldırganlara sistemlere yetkisiz erişim ve uzaktan kod yürütme olanağı tanımaktadır. Bu makalede açıklanan adımları izleyerek, sistemlerinizin güvenliğini artırabilir ve saldırılara karşı koruma sağlayabilirsiniz.
Unutmayın: Güvenlik, sürekli bir süreçtir. Sistemlerinizi düzenli olarak güncelleyin, logları izleyin ve güvenlik denetimleri yapın. Joomla ve eklentilerinizin her zaman en son sürümlerde olduğundan emin olun.



