Ünite 2 / 11

Log ve SIEM Analizi: Yapay Zeka ile Olayı Gürültüden Ayırmak

Kazanimlar:

  • Yapay zekanın binlerce log satırını özetleyip kümelediğini, zaman çizelgesi kurduğunu ve şüpheli örüntüyü öne çıkardığını, ama olayın gerçek saldırı olduğuna analistin ham logla karar verdiğini kavrayabilme
  • Bir SIEM alarmını değerlendirirken baseline (normal davranış) ve bağlam olmadan anomalinin yorumlanamayacağını ve yanlış pozitifin nasıl eleneceğini uygulayabilme
  • Yapay zekanın kurduğu olay zincirini ham logda doğrulama ve uydurma korelasyonu ayıklama alışkanlığını edinebilme

Bir güvenlik analistinin günün büyük bölümü log okumakla geçer. Log (kayıt), bir sistemde olan biteni zaman damgasıyla kaydeden metin satırıdır: kim ne zaman giriş yaptı, hangi dosyaya erişildi, hangi bağlantı reddedildi. Sorun logun az olması değil, boğucu kadar çok olmasıdır. Orta ölçekli bir kurum günde yüz milyonlarca log satırı üretir. Bu yığının içinde gerçek bir saldırının izi, samanlıktaki iğnedir. İşte SIEM (Security Information and Event Management — farklı kaynaklardan gelen logları tek merkezde toplayıp ilişkilendiren ve kural bazlı alarm üreten sistem) bu iğneyi bulmak için vardır; ama SIEM'in ürettiği alarmların çoğu da yanlış pozitiftir (gerçekte tehdit olmayan, boşuna alarm). Analistin gerçek işi, bu gürültüden gerçek sinyali ayıklamaktır.

Yapay zeka bu ayıklamada güçlü bir yardımcıdır. Binlerce log satırını saniyeler içinde okuyup insan dilinde özetleyebilir, tekrar eden örüntüleri kümeleyebilir, bir olay zincirini "önce şu, sonra bu oldu" diye anlatabilir ve bir alarmın neden şüpheli göründüğünü açıklayabilir. Ama YZ logun ne anlama geldiğini kurum bağlamıyla bilmez: "gece 03:00'te erişim" bir kurumda saldırı, diğerinde gece vardiyasının normalidir. Bu yüzden YZ logu özetler ve işaretler, ama bir olayın gerçek saldırı olduğuna analist karar verir ve ham logla doğrular.

Log analizinin adımları

Adım adım bir log/SIEM analizini YZ ile şöyle yürütürsünüz:

  1. Topla ve anonimleştir. İlgili log parçasını çıkarın; gerçek IP'leri, kullanıcı adlarını, iç host isimlerini yer tutucularla değiştirin (KULLANICI_A, IC_IP_1). Ham veriyi asla olduğu gibi dış araca vermeyin.
  2. Bağlamı ver. YZ'ye logun kaynağını (güvenlik duvarı mı, Windows olay günlüğü mü, web sunucusu mu), normal davranışın ne olduğunu ve neyi aradığınızı söyleyin. Bağlamsız log analizi yanıltıcıdır.
  3. Özetlet ve kümelet. YZ'den binlerce satırı olay türlerine göre gruplamasını, tekrar sayılarını çıkarmasını ve zaman çizelgesi (timeline) oluşturmasını isteyin.
  4. Şüpheli örüntüleri işaretlet. "Başarısız girişlerin ardından bir başarılı giriş", "kısa sürede çok sayıda dosya erişimi", "bilinmeyen bir sürece ait ağ bağlantısı" gibi örüntüleri öne çıkarttırın.
  5. Ham kanıtla doğrula. YZ'nin işaretlediği her örüntüyü gerçek log satırlarında bulup teyit edin. YZ'nin atladığı alanları da kendiniz tarayın.
  6. Karar ve kayıt. Gerçek olayı analist olarak ilan edin, bir olay kaydı (ticket) açın ve YZ'nin yalnızca hızlandırıcı olduğunu belgeleyin.

Birkaç terim: Log kaynağı (log source), logu üreten sistemdir. Korelasyon (correlation), farklı kaynaklardaki olayları bir araya getirip anlam çıkarmaktır (VPN girişi + dosya erişimi + veri aktarımı = olası sızıntı). Temel çizgi (baseline), bir sistemin normal davranışının ölçüsüdür; anomali ancak baseline'a göre anlam kazanır. UEBA (User and Entity Behavior Analytics — Kullanıcı ve Varlık Davranış Analizi), her kullanıcının normal davranışını öğrenip sapmayı işaretleyen YZ tabanlı yaklaşımdır.

Karşılaştırma tablosu

Yaklaşım

Nasıl çalışır

Güçlü yanı

Zayıf yanı

Kural bazlı SIEM

Sabit "eğer-ise" kuralları

Şeffaf, açıklanabilir

Bilinmeyen saldırıyı kaçırır, çok yanlış pozitif

İmza tabanlı tespit

Bilinen kötü örüntüyü eşler

Bilinen tehditte hızlı

Yeni/değişmiş saldırıya kör

Anomali/UEBA (YZ)

Normalden sapmayı bulur

Bilinmeyeni yakalayabilir

Anomali = saldırı değil; yanlış pozitif riski

YZ ile özetleme

Logu dilde özetler

Hız, okunabilirlik

Bağlam bilmez, halüsinasyon riski

Analist (insan)

Bağlamla yorumlar

Karar, sorumluluk

Yavaş, yorulur, ölçeklenmez

Doğru kurulum bunların birini seçmek değil, katmanlamaktır: SIEM ve imza gürültüyü kabaca eler, YZ özetler ve öne çıkarır, analist doğrular ve karar verir.

Üç mini vaka

Vaka 1 — 50.000 satır, 6 dakika. Bir analist, bir web sunucusundan gelen 50.000 satırlık erişim logunu YZ'ye anonimleştirilmiş olarak özetletir. YZ, tek bir dış IP'nin 3 saatte 12.000 istekle /admin yollarını taradığını, 480 farklı parametre denediğini ve 3 kez 200 yanıtı aldığını çıkarır. Analist bu 3 başarılı isteği ham logda bulur, gerçek bir yol keşif (path enumeration) saldırısı doğrular ve IP'yi engeller. Elle 50.000 satır okumak saatler alırdı; özet 6 dakikaya indirdi, ama karar analistindi.

Vaka 2 — Uydurma korelasyon. Başka bir analist, YZ'ye "bu logdaki saldırı zincirini anlat" der. YZ akıcı bir hikâye kurar: "Saat 02:11'de KULLANICI_B yetki yükseltti ve veriyi dışarı aktardı." Analist rapora bunu yazmadan önce ham logu açar; oysa logda ne yetki yükseltme ne de veri aktarımı vardır — model, olağan bir olay zincirini "saldırı hikâyesine" uydurmuştur. Analist iddiayı çıkarır. Ders: YZ'nin anlattığı her zincir logda doğrulanmalıdır.

Vaka 3 — Gece vardiyası yanlış pozitifi. Bir UEBA modeli, bir kullanıcının gece 03:00'te 900 dosyaya eriştiğini "yüksek riskli anomali" diye işaretler. Analist bağlamı kontrol eder: kullanıcı bir yedekleme operatörüdür ve bu iş her gece 03:00'te çalışır; baseline'a bakılmamıştır. Alarm yanlış pozitiftir. Analist kuralı ayarlar ve bu operatörü istisna listesine ekler. Anomali her zaman saldırı değildir; bağlam olmadan alarm gürültüdür.

Zayıf prompt / Güçlü prompt

Zayıf prompt:

Bu logu incele, saldırı var mı söyle.[10.14.2.7 - ahmet.yilmaz - 200 - /admin ...]

Bu istem gerçek IP ve kullanıcı içeriyor (gizlilik ihlali), log kaynağını ve normal davranışı söylemiyor, YZ'den kanıt ve yanlış pozitif değerlendirmesi istemiyor. YZ tek bir "evet saldırı var" cümlesiyle sizi yanıltabilir.

Güçlü prompt:

Rolün: SOC analistine analiz TASLAĞI hazırlayan asistan. Karar verme,"saldırı" ilan etme. Bu, bir web sunucusunun anonimleştirilmiş erişimlogu (IP'ler ve kullanıcılar maskelendi). Normal trafik: iş saatlerinde100-300 istek/saat, çoğunlukla /urun ve /sepet yolları.Görevin: (1) olayları türe ve kaynağa göre kümele, tekrar sayısını ver,(2) baseline'dan sapan örüntüleri işaretle, (3) her işaret için hangilog satırlarına dayandığını göster, (4) her biri için yanlış pozitifolma ihtimalini ve nedenini yaz. Uydurma satır/IOC ekleme; emin olmadığınyeri "[analist doğrulasın]" işaretle.[anonim log buraya]

Güçlü istem rolü sınırlar, bağlam ve baseline verir, kanıta bağlanmayı ve yanlış pozitif değerlendirmesini zorunlu kılar.

Kopyalanabilir prompt şablonları

LOG ÖZETLEME ŞABLONUAşağıdaki anonim [log kaynağı: örn. güvenlik duvarı] logunu özetle:(1) olay türlerine göre grupla ve her grubun tekrar sayısını ver,(2) benzersiz kaynak/hedef sayısını çıkar, (3) zaman çizelgesi kur(ilk-son olay, yoğunlaşma saatleri), (4) öne çıkan 5 anomaliyi kanıtsatırıyla listele. Karar verme; yalnızca özetle. Log: [yapıştır]

KORELASYON ŞABLONUŞu anonim olayları zaman ve varlık üzerinden ilişkilendir ve olası birolay zinciri kur; AMA her adım için hangi log satırına dayandığını gösterve dayanağı olmayan adımı "[dayanak yok - doğrulanmalı]" diye işaretle.Alternatif iyi-niyetli açıklamayı da yaz. Olaylar: [yapıştır]

YANLIŞ POZİTİF ELEME ŞABLONUŞu alarm için, saldırı yorumuna karşı en az 3 iyi-niyetli (yanlış pozitif)açıklama üret ve her birini doğrulamak için hangi ek log/kanıta bakmamgerektiğini yaz. Sonra hangi ek kanıt saldırı lehine, hangisi aleyhineolur, ayır. Alarm: [yapıştır]

TIMELINE ÇIKARMA ŞABLONUBu anonim loglardan tek bir kronolojik zaman çizelgesi çıkar: her satır[zaman] [varlık] [olay] [kaynak log] biçiminde olsun. Zaman damgasıolmayan bir olay ekleme. Boşlukları uydurma; eksikse "[eksik]" yaz.Loglar: [yapıştır]

Sık yapılan hatalar

  • Bağlamsız analiz. Log kaynağını ve normal davranışı (baseline) söylemeden yapılan yorum yanıltıcıdır; "anomali" bağlamla anlam kazanır.
  • YZ'nin kurduğu zinciri doğrulamamak. Model olağan olayları bir saldırı hikâyesine bağlayabilir; her adımı ham logda teyit edin.
  • Anomaliyi saldırı sanmak. UEBA'nın işareti bir hipotezdir; yedekleme, bakım, yeni yazılım gibi masum nedenleri eleyin.
  • Ham veriyi maskelemeden dışarı vermek. Gerçek IP/kullanıcı/host, hem KVKK ihlali hem de saldırgana ağ haritası hediyesidir.
  • Negatif özete güvenip taramayı bırakmak. YZ "önemli bir şey yok" dese de kendi sistematik sorgunuzu (kritik olay türleri, yeni IOC'ler) çalıştırın.
İpucu: YZ'ye logu özetletirken her zaman "kanıt satırını göster" isteyin. Kanıt satırı olmayan hiçbir bulguyu ciddiye almayın; bu tek kural halüsinasyonların çoğunu kesip atar.
Dikkat: Bir SIEM alarmını YZ "yanlış pozitif" dedi diye kapatmak, gerçek bir saldırıyı elinizle örtmek olabilir. YZ'nin "önemsiz" dediği alarmı da bağımsız kontrol edin; kapatma kararı analistindir ve kayda geçer.

Özetle

Log ve SIEM analizinin özü, dev bir gürültü yığınından gerçek sinyali ayıklamaktır. YZ bu ayıklamada logu saniyeler içinde özetler, örüntüleri kümeler, zaman çizelgesi kurar ve şüpheliyi öne çıkarır — ama kurum bağlamını bilmez ve olayları uydurabilir. Bu yüzden doğru kurulum katmanlıdır: kural/imza kabaca eler, YZ özetler ve işaretler, analist ham logla doğrular ve karar verir. Üç ilke sizi korur: bağlam (baseline olmadan anomali yorumlanmaz), kanıt (her bulgu ham log satırına bağlanır), bağımsız kontrol (YZ'nin "temiz" dediği alan da taranır). Ve her zaman anonimleştirerek çalışın.

Uygulama görevi

Bir örnek log parçası alın (kendi sisteminizden anonimleştirerek ya da bir örnek veri setinden). Önce "Log Özetleme" şablonuyla YZ'ye özetletin. Sonra çıkan en dikkat çekici üç bulgunun her biri için "Yanlış Pozitif Eleme" şablonunu uygulayın ve her bulguyu ham logda kendiniz doğrulayın. Son olarak, YZ'nin özetiyle sizin ham okumanız arasındaki farkları not edin: YZ neyi kaçırdı, neyi uydurdu, neyi doğru yakaladı?

Kontrol listesi

  • [ ] Logu anonimleştirdim; gerçek IP/kullanıcı/host maskelendi.
  • [ ] YZ'ye log kaynağını ve normal davranışı (baseline) verdim.
  • [ ] Her bulgu için kanıt log satırı istedim ve ham logda doğruladım.
  • [ ] YZ'nin kurduğu olay zincirinin her adımını teyit ettim, uydurmayı ayıkladım.
  • [ ] Her alarm için en az bir yanlış pozitif açıklamayı değerlendirdim.
  • [ ] YZ'nin "temiz/önemsiz" dediği alanları da kendim taradım.
  • [ ] Kararı ve olay kaydını analist olarak ben verdim; YZ'yi hızlandırıcı olarak belgeledim.