Phishing Saldırıları Neden Hâlâ En Büyük Tehdit?
Verizon’un her yıl yayımladığı Veri İhlali Araştırmaları Raporu (DBIR), kurumsal güvenlik ihlallerinin %90’ından fazlasının insan faktörünü içerdiğini ve bu vakaların büyük çoğunluğunun phishing ile başladığını ortaya koyuyor. Saldırganlar, gelişmiş güvenlik duvarlarını, EDR çözümlerini ve ağ segmentasyonunu atlatmak yerine doğrudan en zayıf halkayı hedef alıyor: kullanıcıyı. Sahte bir Microsoft 365 giriş sayfası, kurumsal görünümlü bir fatura e-postası ya da aciliyet hissi uyandıran bir “hesabınız askıya alındı” bildirimi; bunların hepsi, teknik savunmaların önünden değil yanından dolaşmak için tasarlanmış sosyal mühendislik araçlarıdır.
Peki bu noktada Wazuh ne işe yarar? Wazuh, uç nokta görünürlüğünü merkezi log analizi ve kural tabanlı korelasyon motoruyla birleştirerek phishing zincirinin farklı halkalarını aynı anda izleyebilir. Tek başına bir e-posta güvenlik geçidi olmasa da; tarayıcı davranışlarını, kimlik doğrulama olaylarını, DNS sorgularını ve Microsoft 365 denetim günlüklerini tek çatı altında toplayarak saldırı zincirini görünür kılar. Bu yazıda, gerçekçi bir phishing senaryosu üzerinden Wazuh’un nasıl yapılandırılacağını, hangi kuralların yazılacağını, MITRE ATT&CK çerçevesiyle nasıl eşleştirileceğini ve Shuffle SOAR aracılığıyla müdahalenin nasıl otomatize edileceğini adım adım ele alacağız.
Saldırı Zincirini Anlamak: Phishing’in Anatomisi
Etkili bir savunma kurmadan önce saldırının nasıl ilerlediğini anlamak gerekir. Kurumsal ortamlarda gözlemlenen tipik bir phishing saldırısı şu aşamalardan oluşur:
Aşama 1 — İlk Erişim ve Kimlik Bilgisi Toplama
Saldırgan, kurumsal e-posta adreslerini açık kaynaklardan (LinkedIn, şirket web sitesi, önceki veri sızıntıları) toplar ve hedefli bir spear-phishing kampanyası başlatır. E-posta, Microsoft 365 veya Google Workspace oturum açma sayfasını taklit eden bir bağlantı içerir. Kullanıcı kimlik bilgilerini girer; saldırgan bunları gerçek zamanlı olarak ele geçirir ve kullanıcıyı asıl siteye yönlendirerek hiçbir şey fark ettirmez.
Aşama 2 — Hesap Ele Geçirme ve Keşif
Ele geçirilen kimlik bilgileriyle saldırgan, kurumsal uygulamalara giriş yapar. Bu noktada alışılmadık coğrafi konumdan giriş, kısa sürede çok sayıda başarısız deneme veya daha önce hiç kullanılmamış bir kullanıcı ajanından erişim gibi anomaliler ortaya çıkar. Saldırgan aynı zamanda posta kutusu kuralları oluşturarak güvenlik uyarılarını gizleyebilir, iç ağda yatay hareket başlatabilir veya hassas verileri dışarı sızdırabilir.
MITRE ATT&CK Eşleşmesi
Bu saldırı zincirini MITRE ATT&CK çerçevesiyle eşleştirdiğimizde şu teknikler öne çıkar:
- T1566.002 — Spearphishing Link: Hedefli bağlantı içeren phishing e-postası gönderimi
- T1078 — Valid Accounts: Ele geçirilen kimlik bilgileriyle meşru hesapların kullanımı
- T1110.001 — Password Spraying: Erişim denemelerinin dağıtık biçimde yapılması
- T1114.002 — Remote Email Collection: Posta kutusu içeriklerinin uzaktan okunması
- T1564.008 — Email Hiding Rules: Güvenlik bildirimlerini gizlemek için posta kutusu kuralı oluşturma
- T1071.001 — Web Protocols: HTTP/HTTPS üzerinden komuta-kontrol iletişimi
Bu eşleşmeyi bilmek, Wazuh kurallarını doğru etiketlemek ve SOC analistlerinin olayı hızlı sınıflandırması açısından kritik öneme sahip.
Microsoft 365 Denetim Günlüklerini Wazuh’a Aktarma
Wazuh’un phishing tespitinde en değerli log kaynağı Microsoft 365 Birleşik Denetim Günlüğü’dür (Unified Audit Log). Wazuh Manager üzerindeki ossec.conf dosyasına aşağıdaki bloğu ekleyerek Microsoft 365 entegrasyonunu etkinleştirebilirsiniz. Değerleri kendi Azure AD uygulamanızdan alınan gerçek değerlerle doldurmayı unutmayın.
<!-- ossec.conf - Microsoft 365 Modülü -->
<ossec_config>
<office365>
<enabled>yes</enabled>
<interval>5m</interval>
<curl_max_size>1M</curl_max_size>
<only_future_events>yes</only_future_events>
<tenant_id>YOUR_TENANT_ID</tenant_id>
<client_id>YOUR_CLIENT_ID</client_id>
<client_secret>YOUR_CLIENT_SECRET</client_secret>
<api_type>commercial</api_type>
<subscriptions>
<subscription>Audit.AzureActiveDirectory</subscription>
<subscription>Audit.Exchange</subscription>
<subscription>Audit.SharePoint</subscription>
<subscription>Audit.General</subscription>
</subscriptions>
</office365>
</ossec_config>
Burada dikkat edilmesi gereken nokta, only_future_events parametresini yes olarak ayarlamaktır; aksi hâlde Wazuh geçmiş günlükleri toplu biçimde çekerek bellek ve disk baskısı oluşturabilir. Öte yandan Azure AD uygulamanızın ActivityFeed.Read ve ActivityFeed.ReadDlp izinlerine sahip olduğundan emin olun.
Wazuh Özel Kuralları: Phishing Göstergelerini Yakalamak
Wazuh’un varsayılan kural seti Microsoft 365 olaylarını genel düzeyde yakalar; ancak phishing’e özgü davranışları tespit etmek için özel kurallar yazmak gerekir. Aşağıdaki XML bloğunu /var/ossec/etc/rules/phishing_rules.xml dosyasına ekleyin.
<!-- /var/ossec/etc/rules/phishing_rules.xml -->
<group name="office365,phishing,">
<!-- Kural 1: Alışılmadık ülkeden başarılı oturum açma -->
<rule id="100101" level="10">
<if_sid>91520</if_sid>
<field name="data.office365.Operation">UserLoggedIn</field>
<field name="data.office365.ResultStatus">Success</field>
<field name="data.office365.ClientIP">^(?!10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.)</field>
<description>Microsoft 365: Harici IP adresinden başarılı oturum açma (MITRE T1078)</description>
<mitre>
<id>T1078</id>
</mitre>
<group>authentication_success,pci_dss_8.1,gdpr_IV_35.7.d,</group>
</rule>
<!-- Kural 2: Kısa sürede çok sayıda başarısız oturum açma (parola püskürtme) -->
<rule id="100102" level="12" frequency="10" timeframe="120">
<if_matched_sid>91521</if_matched_sid>
<field name="data.office365.Operation">UserLoginFailed</field>
<description>Microsoft 365: 2 dakikada 10+ başarısız oturum açma - Parola püskürtme şüphesi (MITRE T1110.001)</description>
<mitre>
<id>T1110.001</id>
</mitre>
<group>authentication_failures,pci_dss_8.1,</group>
</rule>
<!-- Kural 3: Posta kutusu yönlendirme kuralı oluşturma -->
<rule id="100103" level="14">
<if_sid>91520</if_sid>
<field name="data.office365.Operation">New-InboxRule|Set-InboxRule</field>
<description>Microsoft 365: Yeni posta kutusu yönlendirme/gizleme kuralı oluşturuldu (MITRE T1564.008)</description>
<mitre>
<id>T1564.008</id>
</mitre>
<group>email_rules,high_risk,</group>
</rule>
<!-- Kural 4: Phishing URL tespiti - Sysmon DNS log korelasyonu -->
<rule id="100104" level="13">
<if_sid>61613</if_sid>
<field name="win.eventdata.QueryName">\.tk$|\.xyz$|\.ml$|\.ga$|\.cf$|\.gq$</field>
<description>Şüpheli TLD üzerinden DNS sorgusu tespit edildi - Olası phishing altyapısı (MITRE T1566.002)</description>
<mitre>
<id>T1566.002</id>
</mitre>
<group>network,dns,phishing,</group>
</rule>
</group>
Kural 100103 özellikle kritiktir. Gerçek saldırılarda, hesabı ele geçiren saldırganların ilk yaptığı şeylerden biri posta kutusuna “güvenlik uyarısı içeren e-postaları sil” veya “belirli göndericilerden gelen e-postaları dışarı yönlendir” kuralı eklemektir. Bu davranışı yakalamak, saldırının erken evrelerinde alarm üretmek anlamına gelir.
Shuffle SOAR ile Otomatik Müdahale Kurgusu
Wazuh alarm ürettiğinde devreye giren otomasyon katmanı, müdahale süresini dakikalardan saniyelere indirir. Shuffle SOAR’ı Wazuh’un webhook çıkışına bağlayarak aşağıdaki iş akışını hayata geçirebilirsiniz.
Shuffle İş Akışı Adımları
- Tetikleyici — Wazuh Webhook: Wazuh, seviye 10 ve üzeri phishing kuralları tetiklendiğinde Shuffle’a HTTP POST gönderir.
- Adım 1 — VirusTotal Sorgusu: Alarmdan çıkarılan alan adı veya IP adresi VirusTotal API’sine gönderilir; zararlı puanı eşik değerini aşıyorsa iş akışı devam eder.
- Adım 2 — AbuseIPDB Sorgusu: Kaynak IP adresi AbuseIPDB’de sorgulanır; güven skoru yüksekse karar ağacında otonom aksiyon dalı seçilir.
- Adım 3 — Microsoft Graph API ile Hesap Kilitleme: Şüpheli kullanıcı hesabı geçici olarak devre dışı bırakılır ve tüm aktif oturumlar sonlandırılır.
- Adım 4 — Slack / Microsoft Teams Bildirimi: SOC kanalına alarm detayları, VirusTotal ve AbuseIPDB sonuçları ile gerçekleştirilen aksiyonların özeti gönderilir.
- Adım 5 — Jira Ticket Açma: Olay, ilgili kullanıcı adı, kaynak IP, tetiklenen kural ve zaman damgasıyla birlikte Jira’da “Yüksek Öncelikli” ticket olarak oluşturulur.
Hesap kilitleme adımı için Microsoft Graph API çağrısını Bash üzerinden test etmek istiyorsanız aşağıdaki örneği kullanabilirsiniz:
#!/bin/bash
# Microsoft Graph API ile kullanıcı hesabını devre dışı bırakma
# Shuffle SOAR içindeki HTTP Action adımının Bash eşdeğeri
TENANT_ID="YOUR_TENANT_ID"
CLIENT_ID="YOUR_CLIENT_ID"
CLIENT_SECRET="YOUR_CLIENT_SECRET"
USER_UPN="saldiri.hedefi@sirket.com" # Wazuh alarmından dinamik olarak alınır
# Erişim jetonu al
TOKEN=$(curl -s -X POST \
"https://login.microsoftonline.com/${TENANT_ID}/oauth2/v2.0/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&scope=https://graph.microsoft.com/.default&grant_type=client_credentials" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['access_token'])")
# Hesabı devre dışı bırak
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X PATCH \
"https://graph.microsoft.com/v1.0/users/${USER_UPN}" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"accountEnabled": false}')
if [ "$HTTP_STATUS" -eq 204 ]; then
echo "[BAŞARILI] ${USER_UPN} hesabı devre dışı bırakıldı."
else
echo "[HATA] HTTP durum kodu: ${HTTP_STATUS}"
fi
# Tüm aktif oturumları sonlandır
curl -s -X POST \
"https://graph.microsoft.com/v1.0/users/${USER_UPN}/revokeSignInSessions" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Length: 0"
echo "[BİLGİ] Tüm aktif oturumlar sonlandırıldı."
Bu betiği doğrudan Wazuh Active Response çerçevesinde de çalıştırabilirsiniz; bunun için /var/ossec/active-response/bin/ dizinine kopyalamanız ve ossec.conf içinde ilgili kurallarla ilişkilendirmeniz yeterlidir.
Alınması Gereken Aksiyonlar: Adım Adım Uygulama Kılavuzu
Wazuh tabanlı phishing tespit sistemini kurumunuzda hayata geçirmek için aşağıdaki adımları sırasıyla uygulayın:
- Aksiyon 1 — Microsoft 365 Denetim Günlüklerini Etkinleştirin: Microsoft 365 Yönetim Merkezi’nde “Birleşik Denetim Günlüğü”nün açık olduğunu doğrulayın. Varsayılan olarak kapalı gelen kiracılarda bu adım atlanırsa Wazuh hiçbir veri toplayamaz.
- Aksiyon 2 — Azure AD Uygulama Kaydı Oluşturun:
ActivityFeed.ReadveUser.ReadWrite.AllGraph API izinlerine sahip, yönetici onaylı bir servis hesabı oluşturun. Gizli anahtarı (client secret) güvenli bir kasada saklayın. - Aksiyon 3 — Özel Kuralları Dağıtın: Yukarıdaki kural dosyasını Wazuh Manager’a ekleyin ve
wazuh-analysisdservisini yeniden başlatarak kuralların yüklendiğini doğrulayın:systemctl restart wazuh-manager - Aksiyon 4 — Sysmon ile DNS İzlemeyi Etkinleştirin: Windows uç noktalarda Sysmon’un Olay Kimliği 22 (DNS Sorgusu) ürettiğinden emin olun. SwiftOnSecurity Sysmon yapılandırmasını temel alarak başlayabilirsiniz.
- Aksiyon 5 — Shuffle İş Akışını Test Edin: Gerçek bir saldırı simülasyonu (Gophish gibi bir araçla kontrollü phishing testi) yaparak Wazuh’un alarm üretip üretmediğini ve Shuffle’ın doğru adımları çalıştırıp çalıştırmadığını doğrulayın.
- Aksiyon 6 — Alarm Eşiklerini Ayarlayın: Başlangıçta fazla alarm (false positive) alabilirsiniz. Kural 100102’deki
frequencyvetimeframedeğerlerini ortamınıza göre kalibre edin. - Aksiyon 7 — Yetkilendirme Matriksi Oluşturun: Hangi alarm seviyesinde hesap kilitlemenin otomatik, hangisinde SOC onaylı yapılacağını belirleyin. Seviye 14 ve üzerinde tam otomatik, 10-13 arasında insan onaylı karar ağacı öneririm.
Tüm bu adımları tamamladığınızda, kurumunuz phishing saldırılarına karşı yalnızca reaktif değil, proaktif bir duruşa sahip olacak. Wazuh’un görünürlük katmanı, Shuffle’ın otomasyon hızı ve MITRE ATT&CK’in sınıflandırma çerçevesiyle birleştiğinde SOC analistleriniz alarm yorgunluğu yaşamak yerine gerçekten önemli olaylara odaklanabilir. Unutmayın: phishing’e karşı en güçlü savunma, teknolojiyi insan yargısıyla doğru dengede kullanmaktan geçer.
İlgili Yazılar
- 🔐 Yapay Zeka Destekli Siber Saldırılar — Siber Güvenlik Kategorisi
- ⚙️ Wazuh Active Response Kurulum ve Yapılandırma Rehberi
- 🔗 Wazuh + Suricata Entegrasyonu: Ağ Tehditlerini Yakalamak
- 🛡️ Wazuh’a Genel Bakış: Açık Kaynak SIEM Neden Tercih Edilmeli?
- 🤖 SOAR Platformlarında Yapay Zeka Kullanımı: Shuffle ve Ötesi
Bir Cevap Yazın