Eskiden bir firewall'a bin tane "zararlı" IP adresi çakıp, arkamıza yaslanıp "Tamam abi, bugün de güvendeyiz" dediğimiz o romantik günler vardı, hatırlar mısınız? Ya da antivirüsün yakaladığı bir hash'i VirusTotal'e atıp, 50/70 sonucu görünce kendimizi dijital dünyanın koruyucusu gibi hissettiğimiz o anlar... Artık kimse o 8 karakterli, sonuna ünlem eklenmiş parolaların güvenli olduğuna inanmıyor; ama ne yazık ki hala pek çok kişi, önüne düşen her "IOC (Indicator of Compromise)" listesini gerçek bir istihbarat sanma yanılgısına düşüyor.
Gelin dürüst olalım: Elinizdeki 50 bin satırlık IP listesi, eğer size o IP'nin arkasındaki aktörün hangi TTP (Tactics, Techniques, and Procedures) setini kullandığını söylemiyorsa, sadece bir veri yığınıdır. Bugün Red Team Lead koltuğunda oturan biri olarak söyleyebilirim ki; biz sizin firewall'a eklediğiniz o statik IP'leri aşmak için sadece bir proxy değiştiriyoruz. Gerçek Tehdit İstihbaratı (TI) ise, bizim o proxy'yi neden değiştirdiğimizi, hangi domain isimlendirme algoritmasını sevdiğimizi ve hangi saatlerde "iş başı" yaptığımızı anladığınızda başlıyor.
Acının Piramidinde Neredeyiz?
David Bianco abimizin o meşhur "Pyramid of Pain" (Acı Piramidi) kavramını duymuşsunuzdur. Eğer duymadıysanız, Red Team dünyasında bizim en sevdiğimiz, mavi takımın ise en çok başını ağrıtan şeydir bu. Piramidin en altında Hash değerleri, IP'ler ve Domain isimleri var. Bunları değiştirmek bizim için "çerez" seviyesinde. Bir satır kodla dosyanın hash'ini değiştiririm, bir curl komutuyla yeni bir C2 (Command and Control) sunucusu ayağa kaldırırım.
Asıl mesele piramidin en tepesi: TTP’ler.
Bir saldırganın davranış biçimini tespit ettiğinizde, ona gerçekten "acı" çektirirsiniz. Çünkü bir insanın alışkanlıklarını değiştirmesi zordur. Ben bir sızma operasyonunda her zaman certutil.exe kullanarak dosya indirmeyi seviyorsam ve siz bunu monitor edip "Hop Sedat, hayırdır?" derseniz, işte o zaman benim stratejimi değiştirmen gerekir ki bu da bana zaman ve efor kaybettirir. Gerçek istihbarat, "Şu IP zararlı" demek değil, "Bu aktör genellikle finans kurumlarını hedefliyor, PowerShell yerine C# tabanlı wrapperlar kullanıyor ve veriyi sızdırmak için DNS Tunneling tercih ediyor" diyebilmektir.
Otomatize Etmek mi, Yoksa Hamallık mı?
Piyasada çok pahalı TI platformları var, biliyorum. Hepsi harika dashboardlar sunuyor. Ama bazen kendi "terzi dikimi" çözümlerimize ihtiyaç duyuyoruz. Özellikle de hedef odaklı (targeted) bir tehdit aktörünü takip ediyorsak.
Örneğin, AlienVault OTX gibi platformların API'larını kullanarak kendi ufak "Threat Fetcher" aracınızı yazabilirsiniz. Sadece veri çekmek yetmez, bu veriyi anlamlandırmak lazım. Aşağıya, bir aktörün veya belirli bir etiketin (tag) son aktivitelerini çekip, bunları sizin için anlamlı bir şekilde özetleyen basit bir Python örneği bırakıyorum.
import requests
import json
class ThreatIntelFetcher:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = "https://otx.alienvault.com/api/v1"
self.headers = {"X-OTX-API-KEY": self.api_key}
def get_indicator_details(self, indicator_type, indicator):
# IP, Domain veya Hash bazlı detaylı sorgu
url = f"{self.base_url}/indicators/{indicator_type}/{indicator}/general"
response = requests.get(url, headers=self.headers)
if response.status_code == 200:
data = response.json()
print(f"[+] Bilgi toplandı: {indicator}")
return data
else:
print(f"[-] Hata: {response.status_code}")
return None
def get_trending_threats(self):
# Son zamanlarda popüler olan tehditleri çek
url = f"{self.base_url}/pulses/subscribed"
response = requests.get(url, headers=self.headers)
return response.json()
# Kullanım örneği
# API anahtarınızı buraya koyun (Gerçek hayatta environment variable kullanın!)
API_KEY = "SİZİN_API_ANAHTARINIZ"
intel = ThreatIntelFetcher(API_KEY)
# Belirli bir zararlı IP'yi sorgulayalım
target_ip = "185.112.156.69" # Örnek bir IP
details = intel.get_indicator_details("IPv4", target_ip)
if details:
pulses = details.get('pulse_info', {}).get('pulses', [])
for p in pulses:
print(f"--- Tehdit Grubu/Kampanya: {p['name']} ---")
print(f"Etiketler: {', '.join(p['tags'])}")
Bu kod parçası sadece bir başlangıç. Biz Payten'de veya kendi lab ortamlarımda bu verileri alıp, SIEM (Security Information and Event Management) sistemlerimizdeki "log" akışıyla anlık olarak çarpıştırıyoruz. Eğer dışarıdan gelen bir istihbarat, benim içerideki bir sunucumun schtasks.exe (zamanlanmış görevler) üzerinden garip bir işlem yapmasıyla eşleşiyorsa, işte o zaman kırmızı alarm çalıyor.
OSINT'in Karanlık Odaları: Telegram ve Forumlar
Tehdit istihbaratı sadece API'lardan ibaret değil. Bazen en kıymetli bilgi, bir hacker forumunun derinliklerinde veya bir Telegram kanalındaki "Leak" mesajında gizlidir.
Biliyorsunuz, son dönemde "Infostealer" (bilgi çalıcı) zararlıları moda oldu. Redline, Racoon veya Vidar gibi zararlılarla çalınan loglar, Telegram kanallarında peynir ekmek gibi satılıyor. Bir Red Teamer olarak benim işim, bu kanalları "sessizce" izlemek. Eğer bizim domainimize ait bir [email protected] hesabı ve yanında bir parola o kanallara düşmüşse, bu artık bir "tehdit tahmini" değil, gerçekleşmiş bir "tehdit" haline gelir.
Burada kritik olan şu: Data vs. Intelligence.
Telegram'dan 10 GB log indirmek "Data"dır. O logların içinden sadece senin kurumunu ilgilendiren, aktif olarak kullanılan ve MFA (Multi-Factor Authentication) bypass edilebilecek hesapları ayıklayıp, ilgili birime "Bu akşam şu hesapları kapatmamız ve sessionları öldürmemiz lazım" demek "Intelligence"dır.
Kendi Bal Küpünü (Honeypot) Kurmak
En taze istihbarat, doğrudan saldırgandan gelendir. Kendi ağınızın köşesine bucağına, üzerinde hiçbir kritik veri olmayan ama dışarıya "gel beni hackle" diyen yemler bırakın.
Bir RDP portunu açık bırakıp (tabii ki izole bir ortamda), gelen brute-force saldırılarını izlediğinizde, saldırganın hangi kullanıcı adlarını denediğini görürsünüz. Eğer payten_admin gibi spesifik bir kullanıcı adını deniyorlarsa, bu bir yerden bilgi sızdırdığınızın veya birilerinin sizi özel olarak hedeflediğinin istihbaratıdır.
Terminalinizde şu basit grep komutuyla bile loglarınızdaki anomaliyi yakalayabilirsiniz:
cat /var/log/auth.log | grep "Failed password" | awk '{print $11}' | sort | uniq -c | sort -nr | head -n 10
Bu komut size en çok hangi IP'lerin kapınızı zorladığını söyler. Ama bir üst seviyeye çıkmak isterseniz, bu IP'leri coğrafi olarak haritalandırıp, şirketinizin iş yapmadığı bir ülkeden yoğun saldırı gelip gelmediğini analiz etmelisiniz.
Red Team Gözüyle: Biz Bu Bilgiyi Nasıl Kullanıyoruz?
Bir Red Team operasyonuna başlarken yaptığım ilk iş, hedef kurum hakkındaki "Threat Intel" raporlarını okumaktır. "Daha önce bu kuruma kim saldırmış? Hangi yöntemle başarılı olmuşlar? Güvenlik ekipleri neyi gözden kaçırmaya meyilli?"
Eğer bir rapor, kurumun geçmişte bir oltalama (phishing) saldırısıyla hacklendiğini ve saldırganın LNK dosyaları kullandığını söylüyorsa; ben bu sefer aynı yöntemi değil, o yönteme karşı alınan önlemi bypass edecek bir yöntem (mesela ISO veya VHD içinde saklanmış payloadlar) geliştiririm. Yani istihbarat, sadece savunma için değil, saldırının kalitesini artırmak için de kullanılır.
"Intelligence"ın Raf Ömrü
Unutmayın, istihbaratın bir son kullanma tarihi vardır. Üç ay önceki bir IP adresi bugün temiz bir VPN servisinin çıkış noktası olabilir. Bu yüzden "Tehdit İstihbaratı" bir proje değil, bir süreçtir.
Statik listelere takılıp kalmayın. Davranışlara (Behavioral Analytics) odaklanın. Saldırganın "ne" kullandığına değil, "nasıl" düşündüğüne kafa yorun. Eğer bir gün loglarınızda daha önce hiç görmediğiniz bir parent-child process ilişkisi görürseniz (örneğin excel.exe gidip powershell.exe başlatıyorsa), hiçbir TI feed'ine bakmanıza gerek yok; o an kendi istihbaratınızı kendiniz yaratmışsınız demektir.
Siber dünyada sessiz kalmak bazen en büyük gürültüdür. Bir sonraki log analizinizde veya pentest raporunuzda sadece "açıkları" değil, o açıkların arkasındaki "niyeti" de görmeniz dileğiyle.
Hadi şimdi o terminalin başına geçin ve o "False Positive" yığınlarının içindeki gerçek tehdidi ayıklamaya başlayın. İyi avlar!
