Denetim senaryoları & kılavuz
İç ve dış denetçilerin sorduğu tipik soruların Mergen tespitlerine haritalanması — her birini hangi yerleşik kural yanıtlar ya da hangi özel-kural reçetesini tanımlarsınız, ve kapsam dışı olanların dürüst listesi. Her tespit kim (kullanıcı, IP), ne (kural, ifade, tablo/kolon) ve ne zaman bilgisini taşır.
Mergen ne yapıldığını ve deseni kaydeder; niyet, denetçinin bu kanıttan verdiği bir yargıdır — ama bazı desenler niyeti güçlü şekilde ima eder (sızdırma beaconing, yetki-yükseltme zincirleri, kimlik-kataloğu okuma). Mergen'in işi etkinliği inkâr-edilemez ve aranabilir kılmaktır.
"DBA / ayrıcalıklı kullanıcı aktivitesini logluyor musunuz?"
Evet. İsimli yöneticilerin yaptığı her şeyi Info seviyesinde bir iz olarak yakalayan bir özel kural:
{
"id": "dba_activity",
"severity": "info",
"match": { "user_in": ["dba", "root", "postgres"] },
"message_template": "DBA activity: {kind} on {tables} by {user}"
} "Uygulama hesabı DIŞINDAKİ her işlemi kayıt altına alın." (en sık SoD talebi)
Tüm meşru servis hesaplarını user_not_in'e yazın; gerisi — operatörler, scriptler, üçüncü taraflar — kaydedilir:
{
"id": "non_app_access",
"severity": "warning",
"match": { "user_not_in": ["app_service"] },
"message_template": "non-app access: {kind} on {tables} by {user}"
} Birim testleriyle doğrulandı: sod_non_app_user_fires, sod_app_user_silent.
Korunan tablolara app-dışı yazma
Bir analistin okuması serbest; finansal tabloya app-dışı bir yazma Kritik:
{
"id": "non_app_write",
"severity": "critical",
"match": {
"statement_kinds": ["Insert", "Update", "Delete"],
"tables_regex": "^(ledger|payments|payroll)$",
"user_not_in": ["app_service"]
}
} Birim testleriyle doğrulandı: non_app_write_fires_but_read_silent.
Senaryo → kural kapsamı
| Yetki / rol değişiklikleri | role_privilege_escalation · dangerous_grant · role_impersonation | Yerleşik |
| Şema değişiklikleri (DDL) | dangerous_ddl · ddl_by_non_admin | Yerleşik |
| Arka kapı / kalıcılık | security_definer_function · trigger_backdoor · dangerous_extension | Yerleşik |
| Toplu dışa aktarma | excessive_data_export | Yerleşik |
| Dosya / doğrudan sızdırma | exfil_direct | Yerleşik |
| PII / hassas veri (KVKK) | pii_content · turkish_pii · ozel_nitelikli_veri_access · sensitive_column_read | Yerleşik |
| Yavaş sızdırma / beaconing | exfil_byte_volume · exfil_time_pattern | Yerleşik |
| Mesai-dışı etkinlik | off_hours_query | Yerleşik |
| Davranışsal sapma (UEBA) | ueba_anomaly · ueba_peer_anomaly | Yerleşik |
| Toplu silme (WHERE yok) | bulk_delete | Yerleşik |
| Denetim/log kurcalama | audit_tamper | Yerleşik |
| Kimlik kataloğu okuma | system_catalog_recon | Yerleşik |
| Başarısız erişim / brute force | failed_login_burst · login_audit | Yerleşik |
| DBA aktivite izi | custom: user_in | Özel kural |
| Görev ayrılığı (app-dışı erişim) | custom: user_not_in | Özel kural |
| Yüksek-hızlı kazıma | custom: rate | Özel kural |
Not: zaman da opsiyonel bir eksendir — çoğu kural 7/24 çalışır (istenmeyen işlem mesai içinde de olur). Zamana bağlamak isterseniz özel kurala time_window ekleyin: örn. "app-dışı erişim yalnız mesai-dışı" tek Kritik kural ({user_not_in} + {time_window start 18:00 end 08:00}). Mesai-içiyle sınırlamak için negate/days kullanın (UTC).
Özel kural nasıl eklenir
- Rules → Custom rules → New. Motoru (pg/mongo) ve önem seviyesini seçin.
- match ayarlayın: ifade türleri, tablo/kolon/komut regex, user_in / user_not_in, WHERE-yok — yalnız gerekeni birleştirin (VE mantığı; boş match her şeyi yakalar).
- Gerekirse rate ekleyin (sayı / pencere / kullanıcı-bazında) — patlama kuralları için.
- Mesaj şablonu yazın: {kind}, {tables}, {columns}, {user}.
- Kaydedin — kural bir sonraki heartbeat'te ajanlara iletilir (yeniden başlatma yok), host/grup/global kapsamlanabilir.
- Test edin — panel, son yakalanan sorgu desenlerine karşı önizleme yapar (yaklaşık; kesin eşleşme ajanda canlı çalışır).
Kapsam dışı (dürüst boşluklar)
Bu durum-bilgili (stateful) kimlik-anomali senaryoları yol haritasındadır (gelişmiş katman) ve bugün tespit edilmez — kapsanmış gibi sunulmamalıdır:
- Hesap paylaşımı (aynı kimlik, eşzamanlı çok host)
- Uyuyan hesabın yeniden aktifleşmesi
- İmkânsız seyahat (kısa sürede uzak IP'ler)
- Filo genelinde ilk-kez-nesne erişimi