Konuyu Açan #1
Python IOC Zenginleştirme ve Korelasyon

Giriş ve bağlam

Bir saldırı olayını çözümlerken IOC’lar (Indicators of Compromise) tek başına sınırlı kalır. Elde edilen hash, IP, domain gibi izler, ek bilgilerle zenginleştirildiğinde saldırgan davranışlarını, hareket rotasını ve hedeflenen varlıkları aydınlatır. Bu yazıda, Python ile IOC’ları zenginleştirme, çeşitli veri kaynaklarını korelasyonla birleştirme ve sonuçları anlamlı bir rapora dönüştürme mantığını adım adım ele alıyorum. Amacım, kodun güvenlik olaylarını daha hızlı ve doğru analiz etmesini desteklemek.

1) Kaynakları zenginleştirme mantığı


IOC’lar genelde minimal bağlam içerir. Bir hash veya URL ile başlar, ama bu bilgiyi ek veriyle bağlamak gerekir:
  • Threat intel eşleşmeleriyle ilişkilendirme: IOC’ları MITRE ATT&CK teknikleri, kampanya adları ve tespit eden olaylar ile eşleştirmek.
  • Ağ davranışlarıyla korelasyon: IP’nin geçmişteki iletişim sıklığı, co-occurence ile benzer IOC’lar arasındaki desenler.
  • Varlık envanteriyle ilişki: Hash’in hangi dosya tipine veya hangi yazılım sürümüne karşı geldiğini bağlamak.
  • Zaman damgalarıyla bağlama: Olaylar arasındaki zaman farklarını hesaplayarak hareket amacını çıkarmak.


2) Python’da temel akış


  • Veri toplama: IOC’ları içeren JSON/CSV dosyalarını yüklemek.
  • Zenginleştirme kaynakları: Threat intel API’leri, reputasyon servisleri, kendi iç güvenlik olay veritabanı.
  • Korelasyon motoru: IOC’ları bağlayıp benzerlik skorları hesaplamak; örneğin hash ile dosya ortak adımlarını bulmak.
  • Nethettest ve raporlama: sonuçları human-readable tabloya veya JSON raporuna dönüştürmek.


[code]import json
from datetime import datetime
from collections import defaultdict

Örnek IOC seti
iocs = {
"hashes": ["abcd1234...", "efgh5678..."],
"ips": ["192.0.2.45"],
"domains": ["malicious.example"]
}

Basit korelasyon skorlayıcı (örnek)
def skorla(ioc1, ioc2):
if ioc1 == ioc2:
return 1.0
return 0.0

Zenginleştirme iskeleti (örnek)
def zenginlestir(iocs, kaynaklar):
rapor = defaultdict(list)
for t in iocs:
for item in iocs[t]:
rapor[item].append(t)
return rapor

print("Hazır")

3) Uygulamalı örnekler ve dikkat edilmesi gerekenler


  • API anahtar yönetimi: Harici servisler için güvenli depolama ve rotasyon.
  • Veri normalize etme: IOC formatlarındaki farklılıkları tek bir şema altında toplamak.
  • Performans dengesi: Büyük IOC setlerinde eşleşme maliyetini düşürmek için ön filtreler kullanmak.
  • Doğruluk toleransı: Korelasyon skorlarını yorumlarken baskın çözümlerin gereksiz alarm üretmemesi için eşik değerlerini dikkatle ayarlamak.


4) Sonuç ve ileriye dönük düşünceler


IOC zenginleştirme ve korelasyon, tek başına bir gösterge olmaktan çıkar; bağlam sağlar ve operasyonel kararları hızlandırır. Özellikle otomatik raporlama, tehdit avı (threat hunting) ve olay müdahale süreçlerinde somut fayda sağlar. Kendi organizasyonunuz için bir prototip kurarken, kaynaklar arası güvenlik ve veri bütünlüğünü öncelemek mantıklı bir başlangıç olacaktır.

Bu yaklaşım üzerinde deneyimleriniz, hangi veri kaynaklarını nasıl entegre ettiğiniz ve hangi korelasyon heuristiklerini faydalı bulduğunuz konusunda paylaşımda bulunabilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi