Joomla CMS Web Sitesinde Teknik Veri Güvenliği

Joomla; çekirdek (core) mimarisi, uzantı ekosistemi (bileşen/modül/eklenti), şablon/override yapısı, kullanıcı/rol sistemi ve çok dilli altyapısıyla esnek bir CMS’tir. Aynı esneklik, saldırı yüzeyini büyütebilir: SQL enjeksiyonu, XSS/CSRF, kimlik ele geçirme, yetki yükseltme, dosya yükleme istismarı, tedarik zinciri (supply chain) saldırıları, konfigürasyon sızıntıları, yedeklerde PII kaçakları, zayıf şifreleme, eksik günlükleme… “Güvenlik” tek bir eklentiyle çözülmez; tehdit modeli, ilkeler, kontrol setleri, operasyon ritmi ve kanıt ister.
1) Tehdit Modeli ve Risk Değerlendirmesi
Neden? “Her şeyi koruyalım” yaklaşımı sınırsız bütçe ve karmaşa demektir.
-
Varlık envanteri: Joomla çekirdek + uzantılar, veritabanı (PII/iş kritik), medya, API anahtarları, DNS/TLS, CDN, SMTP, kimlik sağlayıcı.
-
Tehdit aktörleri: Otomatik botlar, hedefli saldırganlar, içeriden hata/kötü niyet, tedarik zinciri sapmaları.
-
Saldırı yüzeyi: Admin panel, JSON/REST uçları, dosya yükleme/formlar, 3P script’ler, SSH/SFTP, yedekler.
Çıktı: 90 günlük güvenlik yol haritası için risk öncelik listesi.
2) Güvenlik Yönetişimi: İlke ve Roller
-
İlkeler: En az ayrıcalık (PoLP), gerektikçe erişim (JIT), gerekliyse bil (need-to-know), şifreleme her yerde (at-rest/in-transit), kanıt üretme (audit).
-
Roller: Güvenlik sahibi (Accountable), teknik uygulayıcı (Responsible), danışılan (Consulted), bilgilendirilen (Informed).
-
Politikalar: Parola, 2FA/SSO, yama/güncelleme, veri saklama, olay müdahalesi, tedarikçi kıstasları.
İpucu: Politikalar kısa ve uygulanabilir olsun; runbook’lara bağlayın.
3) Kimlik ve Erişim Yönetimi (IAM)
-
2FA/SSO: Yönetici ve editörlerde 2FA zorunlu; mümkünse kurumsal SSO (SAML/OIDC).
-
Rol/izin modeli: Joomla’nın izin matrisi (view/access/edit/publish/delete) asgari yetki prensibiyle şekillensin.
-
Oturum güvenliği:
Secure
,HttpOnly
,SameSite
çerez bayrakları; oturum süresi ve cihaz hatırlama politikası. -
Şüpheli davranış: Fail2ban/WAF ile kaba kuvvet (brute force) girişimleri sınırlayın; IP tabanlı hız kısıtı.
4) Parola Hijyeni ve Kasaları
-
Şifre politikası: Minimum uzunluk, sözlük kelimesi yasak, tekrarlama engeli, periyodik rotasyon (gerekiyorsa).
-
Şifre yöneticisi: Ekip düzeyinde kasalar (örn. Vault/KeePass) ve paylaşılan gizli bilgilerin izlenebilir kullanımı.
-
Kimlik paylaşımı yok: “Admin” gibi ortak hesapları kişiselleştirin; bireysel sorumluluk.
5) Uygulama Güvenliği – Girdi/Çıktı Kontrolleri
-
Girdi doğrulama & sanitizasyon: Form ve dosya yüklemelerinde MIME doğrulama, boyut/uzantı beyaz listesi; editör girdilerinde XSS riskine karşı filtreler.
-
Çıkış kaçışlama: Şablon/override katmanında HTML/JS/CSS/URL uygun kaçış fonksiyonları.
-
CSRF koruması: Joomla token mekanizması; kritik formlarda doğrulama.
Vaka: Medya yükleme alanında MIME doğrulama eklenince SVG üzerinden XSS vektörü kapandı.
6) Uzantılar (Extensions) ve Tedarik Zinciri Güvenliği
-
Kaynak güveni: Yalnız güvenilir geliştiriciler; etkin bakım, changelog ve açık issue’lar incelenir.
-
Asgari uzantı: Aynı işlevi yapan paketler tekilleştirilir.
-
İmza/Hash: Dağıtım paketlerinde bütünlük doğrulaması; otomatik güncelleme devredeyse gözlem altında.
-
SBOM: Composer/uzantı bağımlılıkları için yazılım malzeme listesi; güvenlik taramaları (SAST/audit).
7) Şablon/Override Güvenliği
-
Mantık kaçırma: İş kuralı şablona taşınmasın; yalnız görünüm.
-
Kaçışlar: Twig/PHP şablonlarında context’e uygun
escape
. -
Kütüphaneler: 3P JS/CSS için Subresource Integrity (SRI) ve CSP beyaz listeleri.
8) Konfigürasyon ve Sırlar (Secrets)
-
configuration.php
koruması: Dosya izinleri (600/640), doğrudan erişime karşı web sunucusu kuralı. -
Gizli anahtarlar: API/TLS anahtarları kasada; repoya girmesin.
-
Ortam değişkenleri: Prod/staging ayrımı; otomatik dağıtımda şifreli değişkenler.
9) Veritabanı Güvenliği
-
Kullanıcı ayrımı: Uygulama kullanıcılarının asgari yetki; ayrı okuma/yazma rolleri.
-
Şifreleme: Hassas alanlar için uygulama katmanında şifreleme/hashing; tam-disk şifreleme (TDE) katmanı.
-
Yedekler: DB dump’ları şifreli; erişim log’lu; saklama süresi politikaya bağlı.
10) Ağ ve Altyapı Sertleştirmesi
-
TLS zorunluluğu: HSTS, güçlü şifre takımları, otomatik sertifika yenileme.
-
Güvenlik duvarı/WAF: Admin panel, JSON/REST ve form uçlarında hız limiti ve imza tabanlı koruma.
-
Sunucu sertleştirmesi: SSH anahtar tabanlı, parola kapalı; gereksiz servisler devre dışı; otomatik güvenlik yamaları.
11) Dosya Sistemi ve Yüklemeler
-
Yürütme yasağı:
images
/media
gibi yükleme dizinlerinde PHP çalışmasın (web sunucusu kuralı). -
Kota ve boyut: Büyük medya yüklemeleri için kota; zip bomb/çoklu nested dosyaya karşı kontroller.
-
Virüs taraması: Yükleme sonrası AV taraması (ör. ClamAV) + karantina.
12) İçerik Güvenliği Politikası (CSP) ve Diğer Başlıklar
-
CSP:
default-src 'self'
; gerekli alan adlarını beyaz listeleyin; inline script’ler için nonce/hash. -
Referrer-Policy, Permissions-Policy, X-Content-Type-Options: Standart başlıklar.
-
CORS: JSON/REST uçları için sıkı kaynak listeleri.
13) Güncelleme ve Yama Yönetimi
-
Ritim: Güvenlik yamalarına 24–72 saat; minör/normal güncellemelere aylık pencere.
-
Ortamlar: Dev → staging → canary → prod; rollback hazır.
-
Kanıt: Güncelleme sonrası smoke/SEO/CWV testleri + log/metrik sakin.
14) Loglama, İzleme ve Anomali Tespiti
-
Loglar: HTTP, Joomla dblog, PHP-FPM, WAF/edge, DB; merkezi toplanır ve korunur.
-
Metrikler: 5xx/4xx, P95 yanıt, başarısız login oranı, admin eylemleri, dosya yükleme anomalileri.
-
İzleme: Bot davranışları, CRON/kuyruk hataları, hız limiti ihlalleri; alarm eşiği.
15) Olay (Incident) Yönetimi ve Müdahale
-
Runbook – İlk 10 Dakika: 1) Alarm doğrula, 2) Etki kapsamı, 3) İzolasyon (WAF/ACL), 4) Son dağıtım diff, 5) Geri dönüş/kapama, 6) Paydaş iletişimi.
-
Adli bilişim (forensics): Sistem görüntüsü, log saklama, saat senkronu (NTP).
-
RCA/CAPA: Kök neden ve düzeltici/önleyici aksiyonlar, sahiplik ve kapanış tarihi.
16) Yedekleme, Şifreleme ve Kurtarma (DR)
-
3–2–1–0: 3 kopya, 2 farklı ortam, 1 offsite/immutable, 0 sürpriz (doğrulama).
-
Şifreleme: Yedekler AES-256; anahtarlar KMS/Vault.
-
Staging restore: Aylık tatbikat; RTO/RPO ölçümü ve raporu.
-
DR türleri: Sıcak/ılık/soğuk; maliyet–risk–süre dengesi.
17) Gizlilik (KVKK/GDPR) ve Veri Yaşam Döngüsü
-
Veri envanteri: PII nerede; hangi amaç ve süre ile saklanıyor?
-
Minimizasyon: Gerekli olmayan alanları toplamayın; saklama süresi dolan verileri temizleyin.
-
Haklar: Erişim/düzeltme/silme talepleri için süreç; yedeklerde geri silme teknik sınırı → politika ve bilgilendirme.
-
Maskeleme: Staging/dev ortamlarında PII maskeleme; gerçek veriyi taşımayın.
18) Formlar, CAPTCHA ve Kötüye Kullanım Önleme
-
CSRF token: Zorunlu.
-
Bot koruması: reCAPTCHA/honeypot + hız limiti + IP/ASN kara listeleri.
-
UGC politikası: Yorum/foruma
rel="ugc nofollow"
; link yoğunluğu eşiği; moderasyon kuyruğu.
19) Performans–Güvenlik Dengesinde CWV ve TTFB
-
Yanlış ikilem: Güvenlik → ağır ≠ doğru. Doğru cache/CDN + WAF ile hem hızlı hem güvenli.
-
Edge politikaları: Coğrafi IP kuralları, cihaz/lokalizasyon varyantları; varyant anahtarlarını sade tutun.
-
CWV etkisi: CSP/3P kısıtları genelde INP/CLS’yi iyileştirir.
20) Çok Dilli ve Çoklu Site Yapılarında Güvenlik
-
Ortak kod tabanı: Site-bazlı konfig (config split); yanlışlıkla tüm siteleri etkilemeyin.
-
Rol/izin yerelleştirmesi: Yerel editörlere asgari yetki; dil değiştirici ve
hreflang
çıktısında güvenlik başlıkları. -
Bölgesel erişim: Yüksek riskli bölgeler için ek doğrulama.
21) API, Headless ve Webhook Güvenliği
-
Yetki: Her uç için
permission
kontrolleri; scope sınırları. -
Anahtarlar: Rotasyon; kısa ömürlü token’lar; client’larda sır saklamayın.
-
Rate limit ve ABAC: Oran sınırlama + öznitelik tabanlı erişim (IP, rol, site).
-
Webhook: İmza doğrulaması (HMAC), yeniden deneme/backoff, replay attack koruması (nonce/timestamp).
22) İçerik Dağıtım Ağı (CDN) ve Kenar (Edge) Güvenliği
-
TLS terminasyon: Eski protokolleri kapat; HSTS preload.
-
WAF kuralları: Bot yönetimi, SQLi/XSS imzaları, sayfa/rota bazlı hız limiti.
-
Cache zehirlenmesi (poisoning): Varyant anahtarlarını kontrol; “unkeyed” girişler yok.
23) Takvimli Güvenlik Denetimleri ve Pen Test
-
Periyot: Çeyreklik denetimler (otomatik tarama + manuel doğrulama).
-
Kapsam: Panel, formlar, dosya yükleme, API uçları, override şablonları, tedarik zinciri.
-
Rapor: Risk sınıfı, kanıt, CVSS skoru, düzeltme önerisi ve sorumlular.
24) Otomasyon (CI/CD) ve Güvenlik Kapıları
-
Kapılar: Lint/test, SAST/audit, paket imzası, SBOM üretimi, basit güvenlik başlık testleri, kırmızıysa yayın yok.
-
Sonrası: Canary, hedefli CDN purge, RUM/CWV kontrolleri; log/anomali alarmları.
-
IaC: Güvenlik kuralları kodda; PR ile gözden geçsin.
25) Farkındalık, Eğitim ve Oyunlaştırma
-
Eğitim: Editör/geliştirici/ops için rol bazlı kısa modüller; yılda iki tekrar.
-
Phishing tatbikatı: Raporlama bilinci; şüpheli bağlantı kültürü.
-
Oyunlaştırma: Güvenlik hatası kapayana rozet/puan; aylık özet.
26) 90 Günlük Uygulama Planı (Örnek)
-
Ay 1: Tehdit modeli, politika ve runbook’lar; 2FA/SSO; WAF/rate limit; yedek şifreleme; CSP temel seti.
-
Ay 2: Uzantı diyeti + SBOM; log/metric panoları; dosya yürütme yasağı; formlarda CAPTCHA/CSRF güçlendirmesi.
-
Ay 3: Çeyreklik güvenlik denetimi; canary/rollback tatbikatı; maskeleme ile staging; RCA/CAPA ritmi.
KPI: Başarısız giriş oranı ↓, kritik yamaya tepki süresi ↓, doğrulanmış yedek oranı ↑, SLA ihlali ↓.
Sonuç: Güvenlik, Bir Eklenti Değil; Süreç + Kanıt + Disiplin
Joomla’da teknik veri güvenliği; tek bir ayar değil, tehdit modeli ile başlayan, yönetişim–IAM–AppSec–altyapı–gözlemlenebilirlik–olay yönetimi–yedek/DR–gizlilik–otomasyon zinciriyle sürdürülen bir operasyonel yetkinliktir. Bu çerçeveyle:
-
Saldırı yüzeyinizi ölçer, daraltır ve izlersiniz,
-
Olaylarda dakikalar içinde izole eder ve kanıtlı geri dönüş sağlarsınız,
-
Gizlilik ve mevzuat yükümlülüklerini politikalar ve runbook’larla yönetirsiniz,
-
Güncellemeleri canary + rollback güveniyle uygular,
-
Ekipleri eğitim ve otomasyon ile güçlendirirsiniz.
Öneri: Bugün 2FA/SSO’yu zorunlu yapın, WAF + hız limitini devreye alın, yükleme dizinlerinde PHP yürütmeyi kapatın, yedekleri şifreleyin ve staging restore tatbikatı planlayın. Ardından uzantı diyetine gidin, CSP/SRI temellerini atın ve log/metric panolarıyla görünürlük sağlayın. Üç ay sonunda “güvenlik” reaktif bir yangın söndürme değil; öngörülebilir, kanıt üreten bir işletim sistemi hâline gelir.