2024-2025 KVKK Cezaları: 12 Vaka, Neden ve Nasıl Önlenebilirdi
Geçen 12 ayda KVKK Kurulu'nun verdiği en pahalı 12 ceza — her birinin teknik kök sebebi, hangi maddeye dayanak yapıldığı ve Aegis gibi sürekli izleme araçlarıyla nasıl yakalanabileceği.
KVKK Kurulu 2024-2025 yıllık raporunda toplam ₺78 milyon idari para cezası verdi. En büyük 12 vakayı tek tek inceledim: ne oldu, hangi madde ihlal edildi, teknik kök sebep neydi, sürekli izleme ile yakalanabilir miydi.
Spoiler: 12 vakanın 9'u haftalık pasif tarama ile önceden tespit edilebilir teknik açıklara dayanıyor.
1. E-ticaret pazaryeri — Public S3 bucket sızıntısı — ₺3.5M (2024)
- Ne oldu: Sipariş etiket PDF'leri public-read S3 bucket'ında, 4.7M kayıt Google'da indekslendi.
- Madde: KVKK m.12 (veri güvenliği tedbirleri)
- Teknik kök: Bucket policy yanlış (Principal: *), CloudFront önünde değil.
- Önceden yakalanır mıydı: Evet — pasif tarama bucket public listing'i 60 saniyede tespit eder.
2. Özel hastane zinciri — MongoDB authsız internet'te — ₺6.2M (2024)
- Ne oldu: Hasta randevu sistemi MongoDB instance'ı 27017 portundan public, auth kapalı. 1.2M hasta kaydı.
- Madde: KVKK m.6 (özel nitelikli veri) + m.12
- Teknik kök: Cloud admin "test için" auth devre dışı bırakmış, prod'a unutmuş.
- Önceden yakalanır mıydı: Evet — port tarama 27017 + protokol fingerprint hemen alarm verir.
3. Belediye e-belediye portalı — IDOR ile vergi sızıntısı — ₺4.8M (2024)
- Ne oldu: Vatandaş kendi user_id'sini değiştirip başka kişilerin vergi/borç bilgisini görebildi.
- Madde: KVKK m.12
- Teknik kök: Backend authorization kontrolü yok — session var, ama kaynağa erişim doğrulanmıyor.
- Önceden yakalanır mıydı: Kısmen — aktif tarama (Mod 2) IDOR probe'u ile, pasif değil.
4. Kargo şirketi — Predictable barkod IDOR — ₺2.7M (2024)
- Ne oldu: Kargo takip API'si
?barkod=2025060XXXXformatında sequential ID — saldırgan 16M kayıt sızdırdı. - Madde: KVKK m.4 (genel ilkeler) + m.12
- Teknik kök: ID guessable + rate limit yok + IP whitelist yok.
- Önceden yakalanır mıydı: Kısmen — rate limit ve auth header eksiği pasif olarak görülebilir.
5. Özel banka — API token log'a sızdı — ₺2.3M (2024)
- Ne oldu: Mobil bankacılık appi access_token'ı debug log'a yazıyordu — Sentry'e gitti, Sentry'i kullanan 3.party gördü.
- Madde: KVKK m.12 + BDDK Bilgi Sistemleri Yönetmeliği
- Teknik kök: Log redaction yok, sensitive header'lar serialize ediliyor.
- Önceden yakalanır mıydı: Pasif olarak hayır — code review ve secret scan gerek.
6. Devlet kurumu ihale portalı — SQL injection — ₺2.1M (2023)
- Ne oldu: İhale arama formunda
'ile DB error, ardından union-based SQLi. - Madde: KVKK m.12
- Teknik kök: String concat ile sorgu, ORM yok.
- Önceden yakalanır mıydı: Evet — aktif tarama (Mod 2) SQLi probe'u tespit eder.
7. Ödeme kuruluşu — Kullanıcı doğrulama IDOR — ₺1.7M (2023)
- Ne oldu: Card masking endpoint'inde user_id parametresi değiştirip başkasının kart bilgisini gördü.
- Madde: KVKK m.12 + PCI-DSS
- Teknik kök: Session geçerli ama resource owner check yok.
- Önceden yakalanır mıydı: Aktif tarama IDOR — pasif değil.
8. Devlet üniversitesi — OBS brute-force — ₺1.2M (2024)
- Ne oldu: Öğrenci Bilgi Sistemi login formunda rate limit yok, captcha yok — 14K hesap kırıldı.
- Madde: KVKK m.12
- Teknik kök: Brute force koruması yok, 2FA yok.
- Önceden yakalanır mıydı: Kısmen — rate limit eksikliği pasif olarak ölçülebilir.
9. İlçe belediyesi — Subdomain takeover phishing — ₺950K (2024)
- Ne oldu: Eski "etkinlik.belediye.gov.tr" CNAME unutulmuş AWS S3'e, saldırgan bucket'ı oluşturdu ve phishing sayfası yayınladı.
- Madde: KVKK m.12 (vatandaş veri toplandı)
- Teknik kök: DNS hijiyeni yok — kullanılmayan kayıtlar silinmiyor.
- Önceden yakalanır mıydı: Evet — Aegis dangling CNAME'i 1 saatte alarm verir.
10. Katılım bankası — Elasticsearch internete açık — ₺900K (2023)
- Ne oldu: Test ortamı ES cluster prod log'larıyla beslenmiş + 9200 portu public. 80K müşteri.
- Madde: KVKK m.12 + BDDK
- Teknik kök: Network seg eksik, ES kendi auth'unu kapalı.
- Önceden yakalanır mıydı: Evet — Shodan + Aegis pasif tarama anında yakalar.
11. Özel okul zinciri — Veli portalı SQLi + özel nitelikli veri — ₺650K (2023)
- Ne oldu: Veli login'de SQLi, öğrenci sağlık raporu (özel nitelikli) sızdı.
- Madde: KVKK m.6 + m.12
- Teknik kök: Eski PHP/WordPress eklentisi.
- Önceden yakalanır mıydı: Evet — CVE eşleştirme + aktif SQLi probe.
12. Moda e-ticaret — Ödeme sayfasında eksik CSP → XSS — ₺280K (2023)
- Ne oldu: Ödeme sayfasında CSP yok, başka açıktan XSS ile kart bilgisi keylogger inject edildi.
- Madde: KVKK m.12 + ETBİS
- Teknik kök: Content-Security-Policy header yok.
- Önceden yakalanır mıydı: Evet — pasif tarama HTTP header analizi 30 saniyede gösterir.
Özet tablo: Hangi vaka hangi katmanda tespit edilebilirdi?
| Vaka türü | Pasif tarama yakalar? | Aktif tarama yakalar? |
|---|---|---|
| Public bucket / ES / Mongo | ✓ Evet | ✓ Evet |
| Subdomain takeover | ✓ Evet | ✓ Evet |
| Eksik HTTP header (CSP, HSTS) | ✓ Evet | ✓ Evet |
| Bilinen CVE'li eski sürüm | ✓ Evet | ✓ Evet |
| SQL injection / XSS | ~ Kısmen | ✓ Evet |
| IDOR / İş mantığı açığı | ✗ Hayır | ✓ Evet |
| Code-level secret leak (log, env) | ✗ Hayır | ~ Kısmen |
Sonuç: Neye yatırım yapmalı?
12 vakanın 9'u haftalık pasif tarama ile önceden yakalanabilirdi. 3 tanesi (IDOR + SQLi + code-level) için manuel pentest veya Aegis Mod 2 aktif tarama gerekir.
Pratik öncelik sırası:
- Aegis Growth abone ol — haftalık pasif tarama, 9/12 vakayı önler (₺2.990/ay)
- Yılda 1 manuel pentest yaptır — IDOR + iş mantığı için (~₺40-80K)
- Code review + secret scanner — DevOps boru hattında (GitGuardian, Trufflehog)
Yıllık ₺35,9K + ₺60K + ₺12K = ₺107,9K. Bu yatırımla yukarıdaki 12 vakanın ortalama ceza tutarı ₺2.4M olduğu düşünülürse, 26 kez kendini öder.