Vebende Akademi - database-attacks
Uzmanla Konuşun
Blog
MAKALE

Database Attacks — Veritabanı Saldırıları: Türleri, Teknik Detaylar ve Korunma Stratejileri

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~80–240 dk

Database Attacks — Veritabanı Saldırıları: Türleri, Teknik Detaylar ve Korunma Stratejileri

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~80–240 dk

1. GİRİŞ

Veritabanları uygulamaların en kritik bileşenleridir; kullanıcı verileri, finansal kayıtlar, kimlik bilgileri ve telemetri burada saklanır. Bu sebeple veritabanlarına yönelik saldırılar, kurumlar için yüksek etkili güvenlik olayları üretir. Son yıllarda hem geleneksel SQL veritabanlarına hem de NoSQL/Cloud‑native veritabanlarına yönelik saldırı tipleri çeşitlenmiş; konfigürasyon hataları, zayıf erişim kontrolleri ve yetersiz uygulama güvenliği kombinasyonları saldırganlara kolay giriş yolları sunuyor.

Bu konu neden bugün önemli?

  • Veri hacminin ve hassasiyetinin artması nedeniyle veri sızıntılarının etkisi büyüdü.
  • Bulut, container ve mikroservis mimarileri yeni saldırı yüzeyleri (exposed endpoints, misconfigured S3 buckets, open DB ports) oluşturuyor.
  • Ransomware grupları veritabanlarını hedefleyerek hem veriyi şifreliyor hem de veri sızdırma tehdidiyle fidye talep ediyor.

Kimler için önemli?

  • Güvenlik mühendisleri — saldırı yüzeylerini anlamak ve IDS/IPS kurmak
  • DBA'lar — konfigürasyon, hardening, yedekleme ve restore planları için
  • Uygulama geliştiriciler — girdi doğrulama, prepared statements, ORM güvenliği için
  • CTO/CISO — risk yönetimi ve incident response planlaması için

2. KAVRAMSAL TEMELLER

2.1 Saldırı sınıfları — kısa tanım

  • Injection (SQL / NoSQL): Parametrelerin yeterince ayrıştırılmadığı, doğrudan query/komut oluşturmaya izin verdiği durumlarda ortaya çıkar.
  • Privilege escalation: Düşük yetkili bir hesabın, zayıf konfigürasyon veya exploitable bug aracılığıyla daha yüksek yetkilere yükselmesi.
  • Misconfiguration ve exposed endpoints: Open ports (3306, 5432, 27017), default credentials, publicly accessible management consoles.
  • Ransomware & extortion: Veriyi şifreleme ve/veya sızdırma yoluyla fidye talebi.
  • Data exfiltration / lateral movement: İçeriden veri çekme, long‑lived sessions, API key misuse.

2.2 Terminoloji

  • Blind SQLi: Saldırganın doğrudan çıktı göremediği, boolean/time‑based tekniklerle bilgi sızdırdığı SQLi türü.
  • Command injection vs SQL injection: DB-level command execution (xp_cmdshell, COPY FROM PROGRAM) vs SQL query manipulation.
  • ORAM/Encryption‑at‑rest: Veri koruma ile sorgulanabilirlik arasındaki trade‑off'ları ifade eden terimler.

3. NASIL ÇALIŞIR? — TEKNİK DETAYLAR VE ÖRNEKLER

3.1 SQL Injection — çalışma mantığı

SQL injection, kullanıcı girdisinin SQL cümlesine doğrudan eklenmesiyle ortaya çıkar. Örnek: bir login sorgusu "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'" şeklinde oluşturuluyorsa; username alanına "' OR '1'='1" gibi payload gönderilerek kimlik doğrulama atlanabilir. Modern saldırılar daha karmaşık: union‑based data extraction, stacked queries, time‑based blind SQLi ve out‑of‑band teknikler (DNS exfiltration) gibi yollarla çıkarım yapılır.

3.2 NoSQL injection

NoSQL veritabanları (MongoDB, CouchDB, Redis gibi) yapı olarak SQL'e benzemez; ancak uygulama seviyesindeki zayıf parser'lar veya unsafe API kullanımından kaynaklanan injection riskleri vardır. Örnek: MongoDB'de filter olarak doğrudan kullanıcı objesi eklenirse { "username": userInput } yerine attacker'in { "$ne": null } gibi operatörler göndermesi sorguyu bozabilir. Ayrıca query language'ların eval/exec fonksiyonları tehlikelidir.

3.3 Privilege escalation örnekleri

Veritabanı rollerinin yanlış tayin edilmesi veya yönetim ara yüzlerinin aşırı yetkiye sahip olması spesso escalation yol açar. Örnekler: veritabanı servis hesabına verilen SUPER/DBA rolüyle uygulama hatasının exploit edilmesi; veya yönetim API'lerinin network ACL ile korunmaması sonucu uzaktan admin operasyonlarının gerçekleştirilmesi.

3.4 Misconfiguration — yaygın zafiyet durumları

  • Açık veritabanı portları (internetten erişilebilir MongoDB, Redis, MySQL portları) — default credentials ile kombinasyon kritik risk.
  • Unencrypted backups ve snapshot'ların public S3 bucket'larda tutulması.
  • Management console'larının (phpMyAdmin, pgAdmin, MongoDB Ops Manager) erişiminin düzgün kısıtlanmaması.

3.5 Ransomware ve exfiltration teknikleri

Ransomware grupları veritabanlarını hedefleyerek hem veriyi şifreler hem de hassas veriyi dışa aktarır (double extortion). Veritabanına erişim sağlandıktan sonra saldırganlar bulk SELECT, dump utility'leri (pg_dump, mysqldump) veya doğrudan filesystem snapshot'larını alır. Outbound network monitoring zayıfsa saldırganlar exfiltrasyonu steganography, DNS tunneling veya chunked HTTPS ile gerçekleştirir.

3.6 Lateral movement ve persistence stratejileri

İlk foothold elde edildikten sonra saldırganlar veritabanı üzerinde kalıcı erişim için backdoor prosedürler, yeni DB kullanıcıları, scheduled jobs (cron, SQL Agent jobs) veya stored procedures ile persistence sağlar. Lateral movement için credentials harvesting (connection strings, app secrets), service account misuse ve cloud metadata endpoint'leri (EC2/GCE metadata) kullanılır.

4. GERÇEK DÜNYA OLAYLARI VE ÖRNEKLER

4.1 MongoDB ve açık S3 örnekleri

Geçmişte pek çok MongoDB örneği internetten erişilebilir şekilde kalmış, default auth kapalı olduğu için saldırganlar veriyi silmiş veya fidye talep etmiştir. Benzer şekilde AWS S3 misconfiguration vakaları (public buckets) milyonlarca kayıt sızıntısına yol açmıştır.

4.2 SQL injection kaynaklı büyük sızıntılar

SQLi, özellikle web uygulamalarında eski kod tabanlarında hâlâ etkili. Tarihsel olaylarda SQL injection yoluyla müşteri kayıtları, kredi kartı bilgileri ve kimlik bilgileri çalınmıştır. Bu tür olaylar genelde input validation eksikliği ve ORM kullanımlarının yanlış konfigürasyonu ile ilişkilidir.

4.3 Ransomware olayları ve database targeting

Son yıllarda fidye grupları öncelikle veritabanı ve backup altyapılarına odaklanıyor. Sunuculara erişim sağladıktan sonra veritabanı dump'ları alınıp hem şifreleniyor hem de sızdırılarak baskı unsuru oluşturuluyor. Kurumların yedek stratejileri ve immutable backup uygulamaları bu saldırılara karşı kritik savunma sunuyor.

5. AVANTAJLAR VE SINIRLAMALAR (GÜVENLİK ÖNLEMLERİNİN DEĞERLENDİRİLMESİ)

Avantajlar

  • Prepared statements, parametrized queries ve ORM güvenliği injection riskini minimize eder.
  • Network segmentation ve least privilege DB rolleri saldırganın yayılmasını zorlaştırır.
  • Encryption at‑rest ve in‑transit veri ifşasını etkisiz kılar.

Sınırlamalar

  • Güvenlik kontrolleri performans ve geliştirme iş akışını etkileyebilir.
  • Yanlış veya eksik anahtar yönetimi (KMS/HSM) veri erişimini veya restore yeteneğini bozabilir.
  • Gözlemlenebilirlik eksikliği (yetersiz logging) saldırıyı geç fark ettirebilir.

6. ALTERNATİFLER VE KARŞILAŞTIRMA

YaklaşımAvantajDezavantaj
Prepared statements / ORMInjection riskini büyük ölçüde azaltırKötü ORM kullanımı veya dynamic query'ler halen risk yaratır
WAF (Web Application Firewall)Bilinen attack pattern'leri engellerFalse positive/negative riskleri; sophisticated payload'lara karşı yetersiz
Database firewall / activity monitoringDB‑spesifik anomali tespiti sağlarDeployment maliyeti, tuning gereksinimi
Encryption & KMSData leakage etkisini azaltırAnahtar yönetimi zorlukları ve performans overhead

7. EN İYİ PRATİKLER

7.1 Uygulama geliştirme

  • Parametrized queries / prepared statements kullanın; user input'u SQL/NoSQL query'lerine doğrudan enjekte etmeyin.
  • ORM'leri doğru eğitim ve güvenli konfigürasyonla kullanın; dynamic query yaratırken sanitize ve whitelist uygulayın.
  • Input validation ve output encoding ile XSS/Injection risklerini azaltın.

7.2 Konfigürasyon ve altyapı

  • Veritabanı yönetim portlarını internetten kapatın; sadece gerekli ağ segmentlerine erişim izni verin (VPC, subnet ACL).
  • Default credential'ları kaldırın ve strong credential + MFA kullanın.
  • Management consoles erişimini IP whitelist, VPN veya bastion host üzerinden kısıtlayın.

7.3 Izleme, tespit ve müdahale

  • Audit log'ları (who, when, what) toplayın ve SIEM/UEBA ile korele edin; anomalous data access tespiti için model eğitimleri uygulayın.
  • Backup'ları immutable/air‑gapped biçimde saklayın; düzenli restore testi yapın.
  • Incident response planı oluşturun: containment, eradicate, recover adımlarını DB‑spesifik playbook ile tanımlayın.

8. SIK YAPILAN HATALAR

  • Parametrization yerine string concatenation ile query oluşturmak.
  • Açık DB portları ve default credential kullanımı.
  • Yedekleri ve snapshot'ları aynı ağa veya kontrol dışı S3 bucket'lara depolamak.
  • Yetersiz logging ve long‑lived credentials kullanmak.

9. GELECEK TRENDLER

9.1 AI‑destekli saldırı ve savunma

AI hem saldırganlara (payload generation, discovery automation) hem de savunmaya (anomaly detection, adaptive rate limiting) güç verecek. DB telemetrisinde ML tabanlı modeller anomali tespitini iyileştirecek; ancak adversarial ML riskleri de ortaya çıkacak.

9.2 Confidential databases ve secure enclaves

Secure enclaves ve confidential DB'ler (TEE entegrasyonlu) veri üzerinde işlem yapılırken bile verinin gizliliğini koruyacak. Bu, özellikle multi‑tenant ve bulut senaryolarında ayırıcı olacak.

9.3 Post‑quantum etkileri

Kuantum direnci gerektiren ortamlarda anahtar yönetimi ve şifreleme algoritmaları güncellenecek; long‑term confidentiality gerektiren veri için planlama gereklidir.

EK BÖLÜMLER

Sık Sorulan Sorular (FAQ)

  1. 1. SQL injection hâlâ gerçek bir tehdit mi?

    Evet. Modern frameworkler injection riskini azaltırken, legacy kod, custom query generation ve yanlış ORM kullanımı hâlâ SQLi için zemin sağlar.

  2. 2. NoSQL veritabanlarında hangi ekstra önlemler gerekli?

    NoSQL injection'ı önlemek için user input'u objeler olarak parse etmeden önce tip/şema kontrolü yapın; unsafe eval/exec çağrılarını engelleyin.

  3. 3. Ransomware veritabanımı nasıl etkiler?

    Ransomware veritabanı sunucularındaki dosyaları, yedekleri şifreleyebilir veya veriyi sızdırabilir. Immutable backup ve air‑gapped yedekleme savunmanın merkezinde olmalıdır.

  4. 4. Yönetim konsollarını nasıl korurum?

    VPN/bastion, IP whitelisting, MFA ve least privilege ile yönetim konsollarına erişimi sınırlayın; access logging'i zorunlu kılın.

  5. 5. Büyük veri çekme aktivitelerini nasıl tespit ederim?

    Query audit, rate limiting, anomaly detection ve large result set threshold'ları ile tespit edebilirsiniz; ayrıca privileged queries'i ayrı bir kanal üzerinden izleyin.

  6. 6. Yedek anahtarlarını nerede saklamalıyım?

    Yedek anahtarlarını ayrı KMS/HSM örneklerinde, farklı fiziksel konumlarda ve quorum/access control ile saklayın.

  7. 7. Database hardening için başlangıç adımları nedir?

    1) İnternete açık portları kapatın; 2) Default hesapları silin; 3) TLS ve strong auth zorunlu kılın; 4) Audit logging'i etkinleştirin.

  8. 8. Küçük ekipler için hızlı kazanımlar nelerdir?

    Prepared statements kullanmak, default credential'ları kaldırmak, DB yönetim portlarını kapatmak ve düzenli yedek/restore testleri yapmak hızlı ve etkili başlangıç adımlarıdır.

Anahtar Kavramlar

  • SQLi: SQL injection — veritabanı sorgularının manipülasyonu.
  • NoSQLi: NoSQL injection — NoSQL query/command'larının manipülasyonu.
  • DEK / KEK: Data Encryption Key / Key Encryption Key.
  • WAF: Web Application Firewall — application layer saldırılarına karşı önlem.
  • SIEM/UEBA: Log korelasyonu ve davranış analitiği çözümleri.

Öğrenme Yol Haritası

  1. 0–1 ay: SQL ve NoSQL temelleri, injection örnekleri ve input validation pratiklerini öğrenin.
  2. 1–3 ay: Hazırlıklı query'ler, ORM güvenliği, DB konfigürasyonu ve hardening adımlarında pratik yapın.
  3. 3–6 ay: SIEM/UEBA entegrasyonu, anomali tespiti, backup stratejileri ve incident response playbook'ları oluşturun.
  4. 6–12 ay: Confidential DB, secure enclaves, adversarial ML ve post‑quantum koruma stratejileri üzerine çalışın.