<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[TurkTeam | Türk Siber Güvenlik Topluluğu - Mavi Takım / SOC]]></title>
		<link>https://www.turkteam.org/</link>
		<description><![CDATA[TurkTeam | Türk Siber Güvenlik Topluluğu - https://www.turkteam.org]]></description>
		<pubDate>Sun, 25 Oct 2026 18:48:37 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[EPSS ile Yama Önceliklendirme: CVSS Yüksek Ama Önce Hangi Açığı Kapatmalı?]]></title>
			<link>https://www.turkteam.org/konu-epss-ile-yama-onceliklendirme-cvss-yuksek-ama-once-hangi-acigi-kapatmali.html</link>
			<pubDate>Sun, 25 Oct 2026 11:53:51 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-epss-ile-yama-onceliklendirme-cvss-yuksek-ama-once-hangi-acigi-kapatmali.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=440" loading="lazy"  alt="[Resim: attachment.php?aid=440]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Oracle'ın tek seferde 1.295 yama çıkardığı bir dünyada "önce hangi açığı kapatalım?" sorusu mavi takımların en kritik kararı. Yıllardır tek ölçüt CVSS'ti; ama CVSS ciddiyeti ölçer, <span style="font-weight: bold;" class="mycode_b">sömürülme olasılığını</span> değil. İşte burada <span style="font-weight: bold;" class="mycode_b">EPSS</span> (Exploit Prediction Scoring System) devreye giriyor. Bu rehberde EPSS nedir, CVSS'ten farkı ne ve pratikte nasıl kullanılır, ele alıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>EPSS nedir?<br />
</li>
<li>CVSS ile farkı<br />
</li>
<li>API ile sorgulama<br />
</li>
<li>KEV ile birleştirme<br />
</li>
<li>Pratik önceliklendirme akışı<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. EPSS nedir?</span></span><br />
EPSS, FIRST tarafından geliştirilen, bir CVE'nin <span style="font-weight: bold;" class="mycode_b">önümüzdeki 30 gün içinde vahşi doğada sömürülme olasılığını</span> 0-1 arası bir skorla tahmin eden bir modeldir. 0.96 skor, yüksek sömürülme olasılığı; 0.01 ise düşük anlamına gelir. Model günlük güncellenir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. CVSS ile farkı</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">CVSS:</span> "Bu açık sömürülürse ne kadar kötü olur?" (ciddiyet, statik)<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">EPSS:</span> "Bu açık yakın zamanda sömürülür mü?" (olasılık, dinamik)<br />
</li>
</ul>
İkisi birbirini tamamlar. Yüksek CVSS + düşük EPSS bir açık, yüksek CVSS + yüksek EPSS bir açıkla aynı aciliyette değildir. Kaynaklar kısıtlıysa, yüksek EPSS'li olanları öne almak sömürülecek açığı kapatma olasılığınızı artırır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. API ile sorgulama</span></span><br />
EPSS API'si ücretsiz ve kimlik doğrulamasız:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Tek CVE
curl -s "https://api.first.org/data/v1/epss?cve=CVE-2026-0257"   | python3 -m json.tool
# Birden fazla CVE
curl -s "https://api.first.org/data/v1/epss?cve=CVE-2026-0257,CVE-2026-111497"
# EPSS'i 0.9 üstü olanları listele
curl -s "https://api.first.org/data/v1/epss?epss-gt=0.9&amp;limit=50"</code></div></div>Örnek bir toplu sıralama scripti:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>import requests
cves = ["CVE-2026-0257","CVE-2026-111497","CVE-2025-64446"]
r = requests.get("https://api.first.org/data/v1/epss",
                 params={"cve": ",".join(cves)})
data = sorted(r.json()["data"],
              key=lambda d: float(d["epss"]), reverse=True)
for d in data:
    print(f"{d['cve']}  EPSS={float(d['epss']):.4f}  pct={d['percentile']}")</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. KEV ile birleştirme</span></span><br />
CISA'nın Known Exploited Vulnerabilities (KEV) kataloğu, <span style="font-weight: bold;" class="mycode_b">zaten aktif sömürülen</span> açıkların listesidir. Bir CVE KEV'deyse, EPSS tahminine gerek kalmadan en yüksek önceliktir; çünkü olasılık değil, gerçekleşmiş sömürüdür.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>curl -s https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json   | python3 -c "import sys,json;print(len(json.load(sys.stdin)['vulnerabilities']),'KEV kaydi')"</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Pratik önceliklendirme akışı</span></span><br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">KEV'de mi?</span> Evetse -&gt; hemen yama (en yüksek öncelik).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">EPSS yüksek mi (örn. &gt; 0.5)?</span> Evetse -&gt; acil sıraya al.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">CVSS kritik + internete dönük mü?</span> Evetse -&gt; yüksek öncelik.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Varlık kritikliği</span> ile ağırlıklandır; kritik sistemleri öne al.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Düşük EPSS + düşük maruziyet</span> -&gt; normal bakım döngüsüne bırak.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
CVSS tek başına "neyi önce yamalamalı" sorusunu yanıtlamaz. KEV (gerçekleşen sömürü) + EPSS (sömürü olasılığı) + varlık kritikliği üçlüsü, kısıtlı kaynakları en çok sömürülecek açıklara yöneltir. Siz yama önceliklendirmede EPSS/KEV kullanıyor musunuz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://www.first.org/epss/" target="_blank" rel="noopener" class="mycode_url">https://www.first.org/epss/</a><br />
</li>
<li><a href="https://api.first.org/" target="_blank" rel="noopener" class="mycode_url">https://api.first.org/</a><br />
</li>
<li><a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" target="_blank" rel="noopener" class="mycode_url">https://www.cisa.gov/known-exploited-vul...es-catalog</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=440" target="_blank" title="">20-t20-epss-yama-onceliklendirme.png</a> (Dosya Boyutu: 120.54 KB / İndirme Sayısı: 3)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=440" loading="lazy"  alt="[Resim: attachment.php?aid=440]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Oracle'ın tek seferde 1.295 yama çıkardığı bir dünyada "önce hangi açığı kapatalım?" sorusu mavi takımların en kritik kararı. Yıllardır tek ölçüt CVSS'ti; ama CVSS ciddiyeti ölçer, <span style="font-weight: bold;" class="mycode_b">sömürülme olasılığını</span> değil. İşte burada <span style="font-weight: bold;" class="mycode_b">EPSS</span> (Exploit Prediction Scoring System) devreye giriyor. Bu rehberde EPSS nedir, CVSS'ten farkı ne ve pratikte nasıl kullanılır, ele alıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>EPSS nedir?<br />
</li>
<li>CVSS ile farkı<br />
</li>
<li>API ile sorgulama<br />
</li>
<li>KEV ile birleştirme<br />
</li>
<li>Pratik önceliklendirme akışı<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. EPSS nedir?</span></span><br />
EPSS, FIRST tarafından geliştirilen, bir CVE'nin <span style="font-weight: bold;" class="mycode_b">önümüzdeki 30 gün içinde vahşi doğada sömürülme olasılığını</span> 0-1 arası bir skorla tahmin eden bir modeldir. 0.96 skor, yüksek sömürülme olasılığı; 0.01 ise düşük anlamına gelir. Model günlük güncellenir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. CVSS ile farkı</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">CVSS:</span> "Bu açık sömürülürse ne kadar kötü olur?" (ciddiyet, statik)<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">EPSS:</span> "Bu açık yakın zamanda sömürülür mü?" (olasılık, dinamik)<br />
</li>
</ul>
İkisi birbirini tamamlar. Yüksek CVSS + düşük EPSS bir açık, yüksek CVSS + yüksek EPSS bir açıkla aynı aciliyette değildir. Kaynaklar kısıtlıysa, yüksek EPSS'li olanları öne almak sömürülecek açığı kapatma olasılığınızı artırır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. API ile sorgulama</span></span><br />
EPSS API'si ücretsiz ve kimlik doğrulamasız:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Tek CVE
curl -s "https://api.first.org/data/v1/epss?cve=CVE-2026-0257"   | python3 -m json.tool
# Birden fazla CVE
curl -s "https://api.first.org/data/v1/epss?cve=CVE-2026-0257,CVE-2026-111497"
# EPSS'i 0.9 üstü olanları listele
curl -s "https://api.first.org/data/v1/epss?epss-gt=0.9&amp;limit=50"</code></div></div>Örnek bir toplu sıralama scripti:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>import requests
cves = ["CVE-2026-0257","CVE-2026-111497","CVE-2025-64446"]
r = requests.get("https://api.first.org/data/v1/epss",
                 params={"cve": ",".join(cves)})
data = sorted(r.json()["data"],
              key=lambda d: float(d["epss"]), reverse=True)
for d in data:
    print(f"{d['cve']}  EPSS={float(d['epss']):.4f}  pct={d['percentile']}")</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. KEV ile birleştirme</span></span><br />
CISA'nın Known Exploited Vulnerabilities (KEV) kataloğu, <span style="font-weight: bold;" class="mycode_b">zaten aktif sömürülen</span> açıkların listesidir. Bir CVE KEV'deyse, EPSS tahminine gerek kalmadan en yüksek önceliktir; çünkü olasılık değil, gerçekleşmiş sömürüdür.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>curl -s https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json   | python3 -c "import sys,json;print(len(json.load(sys.stdin)['vulnerabilities']),'KEV kaydi')"</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Pratik önceliklendirme akışı</span></span><br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">KEV'de mi?</span> Evetse -&gt; hemen yama (en yüksek öncelik).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">EPSS yüksek mi (örn. &gt; 0.5)?</span> Evetse -&gt; acil sıraya al.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">CVSS kritik + internete dönük mü?</span> Evetse -&gt; yüksek öncelik.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Varlık kritikliği</span> ile ağırlıklandır; kritik sistemleri öne al.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Düşük EPSS + düşük maruziyet</span> -&gt; normal bakım döngüsüne bırak.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
CVSS tek başına "neyi önce yamalamalı" sorusunu yanıtlamaz. KEV (gerçekleşen sömürü) + EPSS (sömürü olasılığı) + varlık kritikliği üçlüsü, kısıtlı kaynakları en çok sömürülecek açıklara yöneltir. Siz yama önceliklendirmede EPSS/KEV kullanıyor musunuz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://www.first.org/epss/" target="_blank" rel="noopener" class="mycode_url">https://www.first.org/epss/</a><br />
</li>
<li><a href="https://api.first.org/" target="_blank" rel="noopener" class="mycode_url">https://api.first.org/</a><br />
</li>
<li><a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" target="_blank" rel="noopener" class="mycode_url">https://www.cisa.gov/known-exploited-vul...es-catalog</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=440" target="_blank" title="">20-t20-epss-yama-onceliklendirme.png</a> (Dosya Boyutu: 120.54 KB / İndirme Sayısı: 3)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Microsoft 365 Token Spreying: 79 Kurumda 497 Başarılı Giriş, Parola Yok]]></title>
			<link>https://www.turkteam.org/konu-microsoft-365-token-spreying-79-kurumda-497-basarili-giris-parola-yok.html</link>
			<pubDate>Sat, 24 Oct 2026 11:23:14 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=2">Tonyukuk</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-microsoft-365-token-spreying-79-kurumda-497-basarili-giris-parola-yok.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=397" loading="lazy"  alt="[Resim: attachment.php?aid=397]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Huntress, 14 Temmuz - 22 Eylül 2026 arasında Microsoft 365 hesaplarına yönelik bir <span style="font-weight: bold;" class="mycode_b">token spreying / replay</span> kampanyası belgelendirdi. 79 kurumda en az <span style="font-weight: bold;" class="mycode_b">497 başarılı oturum</span>, 200.000'den fazla başarısız deneme. Parola gerekmedi: AiTM (adversary-in-the-middle) ile MFA sonrası alınan oturum jetonları Alman barındırma sağlayıcısı 1337 Services GmbH (AS210558) IP blokundan yeniden oynatıldı. Bu konu SOC için tespit ve müdahale notları.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Saldırı nasıl işliyor?<br />
</li>
<li>Altyapı ve IOC'ler<br />
</li>
<li>Ele geçirme sonrası davranış<br />
</li>
<li>Conditional Access neden kritik?<br />
</li>
<li>Olay müdahalesi kontrol listesi<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Saldırı nasıl işliyor?</span></span><br />
Kurban sahte veya araya giren bir giriş sayfasından MFA'yı tamamlıyor; röle jetonu tutuyor. Dakikalar içinde aynı oturum 1337 Services adresinden görünüyor. Huntress buna "token spraying" diyor: parola spreying'in jeton hali. Kaynaklar: AiTM röleleri, cihaz kodu (device-code) phishing ve sosyal mühendislik.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Altyapı ve IOC'ler</span></span><br />
Ana yeniden oynatma bloğu: <span style="font-weight: bold;" class="mycode_b">193.26.115[.]0/24</span>. Öne çıkan adresler: .221, .199, .16, .21, .72, .210. Build A: <span style="font-style: italic;" class="mycode_i">node</span> kullanıcı aracısı + OAuth2:Token + sahte Entra cihazı (<span style="font-weight: bold;" class="mycode_b">DESKTOP-</span> + 8 hex karakter). Build B: tarayıcı oturumu yeniden oynatma. En az 48 sahte cihaz kaydı görülmüş.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Ele geçirme sonrası</span></span><ul class="mycode_list"><li>Mevcut MFA yöntemlerini silip kendi authenticator'larını ekleme (19 kurumda ilk 3 saat içinde).<br />
</li>
<li>Gizli gelen kutusu kuralları: ".", "sss", "s", "d" gibi kısa isimler; RSS Feeds / Conversation History'ye taşıma.<br />
</li>
<li>Bir vakada maaş bordrosu temalı dışarı e-posta.<br />
</li>
</ul>
Parola sıfırlamak tek başına yetmez; jeton, cihaz ve MFA yöntemi kalır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Conditional Access</span></span><br />
Phase 3'te aynı saldırgan IP'sinden 1.052 engellenmiş giriş yalnızca dört kurumdan gelmiş; 29 kurumda ise hiçbir şey engel olmamış. Huntress önerisi: <span style="font-weight: bold;" class="mycode_b">All Users + All Cloud Apps + All Client Apps</span> için koşulsuz MFA veya engelleme. Cihaz kodu akışını authentication-flow politikalarıyla kısıtlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Müdahale kontrol listesi</span></span><br />
<ol type="1" class="mycode_list"><li>Oturumları iptal edin (revoke) ve parolayı sıfırlayın.<br />
</li>
<li>Entra cihazlarını denetleyin; DESKTOP- + 8 hex kalıbını doğrulayarak silin.<br />
</li>
<li>MFA yöntemlerini denetleyin; tanınmayan authenticator'ı kaldırın.<br />
</li>
<li>Gelen kutusu kurallarını (özellikle kısa/noktalama isimli) inceleyin.<br />
</li>
<li>Hosting IP'lerinden OAuth2:Token / Device Registration Service girişlerini avlayın.<br />
</li>
<li>AADSTS53003 (Conditional Access engeli) geçerli kimlik bilgisi işaretidir; "kurtardık" sanmayın.<br />
</li>
</ol>
<br />
Tenant'ınızda Conditional Access tüm istemci uygulamalarını kapsıyor mu, yoksa boşluklar var mı?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://www.huntress.com/blog/token-replay-spray" target="_blank" rel="noopener" class="mycode_url">https://www.huntress.com/blog/token-replay-spray</a><br />
</li>
<li><a href="https://www.helpnetsecurity.com/2026/10/23/microsoft-365-accounts-stolen-sessions/" target="_blank" rel="noopener" class="mycode_url">https://www.helpnetsecurity.com/2026/10/...-sessions/</a><br />
</li>
<li><a href="https://www.infosecurity-magazine.com/news/tokenspraying-attacks-target/" target="_blank" rel="noopener" class="mycode_url">https://www.infosecurity-magazine.com/ne...ks-target/</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=397" target="_blank" title="">08-t08-m365-token-spray.png</a> (Dosya Boyutu: 123.79 KB / İndirme Sayısı: 2)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=397" loading="lazy"  alt="[Resim: attachment.php?aid=397]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Huntress, 14 Temmuz - 22 Eylül 2026 arasında Microsoft 365 hesaplarına yönelik bir <span style="font-weight: bold;" class="mycode_b">token spreying / replay</span> kampanyası belgelendirdi. 79 kurumda en az <span style="font-weight: bold;" class="mycode_b">497 başarılı oturum</span>, 200.000'den fazla başarısız deneme. Parola gerekmedi: AiTM (adversary-in-the-middle) ile MFA sonrası alınan oturum jetonları Alman barındırma sağlayıcısı 1337 Services GmbH (AS210558) IP blokundan yeniden oynatıldı. Bu konu SOC için tespit ve müdahale notları.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Saldırı nasıl işliyor?<br />
</li>
<li>Altyapı ve IOC'ler<br />
</li>
<li>Ele geçirme sonrası davranış<br />
</li>
<li>Conditional Access neden kritik?<br />
</li>
<li>Olay müdahalesi kontrol listesi<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Saldırı nasıl işliyor?</span></span><br />
Kurban sahte veya araya giren bir giriş sayfasından MFA'yı tamamlıyor; röle jetonu tutuyor. Dakikalar içinde aynı oturum 1337 Services adresinden görünüyor. Huntress buna "token spraying" diyor: parola spreying'in jeton hali. Kaynaklar: AiTM röleleri, cihaz kodu (device-code) phishing ve sosyal mühendislik.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Altyapı ve IOC'ler</span></span><br />
Ana yeniden oynatma bloğu: <span style="font-weight: bold;" class="mycode_b">193.26.115[.]0/24</span>. Öne çıkan adresler: .221, .199, .16, .21, .72, .210. Build A: <span style="font-style: italic;" class="mycode_i">node</span> kullanıcı aracısı + OAuth2:Token + sahte Entra cihazı (<span style="font-weight: bold;" class="mycode_b">DESKTOP-</span> + 8 hex karakter). Build B: tarayıcı oturumu yeniden oynatma. En az 48 sahte cihaz kaydı görülmüş.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Ele geçirme sonrası</span></span><ul class="mycode_list"><li>Mevcut MFA yöntemlerini silip kendi authenticator'larını ekleme (19 kurumda ilk 3 saat içinde).<br />
</li>
<li>Gizli gelen kutusu kuralları: ".", "sss", "s", "d" gibi kısa isimler; RSS Feeds / Conversation History'ye taşıma.<br />
</li>
<li>Bir vakada maaş bordrosu temalı dışarı e-posta.<br />
</li>
</ul>
Parola sıfırlamak tek başına yetmez; jeton, cihaz ve MFA yöntemi kalır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Conditional Access</span></span><br />
Phase 3'te aynı saldırgan IP'sinden 1.052 engellenmiş giriş yalnızca dört kurumdan gelmiş; 29 kurumda ise hiçbir şey engel olmamış. Huntress önerisi: <span style="font-weight: bold;" class="mycode_b">All Users + All Cloud Apps + All Client Apps</span> için koşulsuz MFA veya engelleme. Cihaz kodu akışını authentication-flow politikalarıyla kısıtlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Müdahale kontrol listesi</span></span><br />
<ol type="1" class="mycode_list"><li>Oturumları iptal edin (revoke) ve parolayı sıfırlayın.<br />
</li>
<li>Entra cihazlarını denetleyin; DESKTOP- + 8 hex kalıbını doğrulayarak silin.<br />
</li>
<li>MFA yöntemlerini denetleyin; tanınmayan authenticator'ı kaldırın.<br />
</li>
<li>Gelen kutusu kurallarını (özellikle kısa/noktalama isimli) inceleyin.<br />
</li>
<li>Hosting IP'lerinden OAuth2:Token / Device Registration Service girişlerini avlayın.<br />
</li>
<li>AADSTS53003 (Conditional Access engeli) geçerli kimlik bilgisi işaretidir; "kurtardık" sanmayın.<br />
</li>
</ol>
<br />
Tenant'ınızda Conditional Access tüm istemci uygulamalarını kapsıyor mu, yoksa boşluklar var mı?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://www.huntress.com/blog/token-replay-spray" target="_blank" rel="noopener" class="mycode_url">https://www.huntress.com/blog/token-replay-spray</a><br />
</li>
<li><a href="https://www.helpnetsecurity.com/2026/10/23/microsoft-365-accounts-stolen-sessions/" target="_blank" rel="noopener" class="mycode_url">https://www.helpnetsecurity.com/2026/10/...-sessions/</a><br />
</li>
<li><a href="https://www.infosecurity-magazine.com/news/tokenspraying-attacks-target/" target="_blank" rel="noopener" class="mycode_url">https://www.infosecurity-magazine.com/ne...ks-target/</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=397" target="_blank" title="">08-t08-m365-token-spray.png</a> (Dosya Boyutu: 123.79 KB / İndirme Sayısı: 2)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SIEM'e Log Almadan Önce: NTP Saat Senkronu Neden Kritik]]></title>
			<link>https://www.turkteam.org/konu-siem-e-log-almadan-once-ntp-saat-senkronu-neden-kritik.html</link>
			<pubDate>Mon, 19 Oct 2026 01:33:19 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-siem-e-log-almadan-once-ntp-saat-senkronu-neden-kritik.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=281" loading="lazy"  alt="[Resim: attachment.php?aid=281]" class="mycode_img" /></div>
<br />
Merhaba,<br />
<br />
SIEM'e log akıtmaya başlamadan önce en sık atlanan konu: saat senkronu. Dağınık zaman damgaları korelasyonu öldürür; saldırı zaman çizelgesi güveneceği kalmaz. Bu yazıda neden kritik olduğunu ve Linux'ta chrony ile nasıl düzelteceğinizi anlatıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ne bozulur?</span></span><ul class="mycode_list"><li>Aynı oturumun firewall logu 14:01, sunucu auth logu 13:48 görünür<br />
</li>
<li>Kerberos / sertifika doğrulama hataları (saat kayması)<br />
</li>
<li>SIEM kuralı "5 dakika içinde 10 fail" eşiğini kaçırır veya yanlış tetikler<br />
</li>
<li>Adli zaman çizelgesi mahkemede / postmortem'de çöker<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">chrony kurulumu (Debian/Ubuntu)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt install chrony
sudo systemctl enable --now chrony
chronyc tracking
chronyc sources -v</code></div></div><span style="font-weight: bold;" class="mycode_b">Reference ID</span> ve <span style="font-weight: bold;" class="mycode_b">System time</span> satırlarına bakın. "Last offset" mikrosaniye-milisaniye bandındaysa iyidir; saniyelerce kayma varsa kaynak veya firewall UDP/123 sorununa bakın.<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=282" loading="lazy"  alt="[Resim: attachment.php?aid=282]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynak seçimi</span></span><br />
Kurumsal ortamda iç NTP (domain controller veya dedicated NTP) kullanın. Ev labında pool.ntp.org veya ülkenizdeki pool uygun olabilir. /etc/chrony/chrony.conf örneği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>server time.cloudflare.com iburst
server 0.tr.pool.ntp.org iburst
makestep 1.0 3
rtcsync</code></div></div>Değişince:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo systemctl restart chrony
chronyc tracking</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Windows tarafı (kısa)</span></span><br />
Domain'e üyeyse genelde DC'den alır. Workgroup labında:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>w32tm /query /status
w32tm /resync</code></div></div>Hyper-V / VMware misafirlerinde host zaman senkronu ile guest NTP çakışabilir; tek kaynak seçin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">SIEM kontrol listesi</span></span><br />
<ol type="1" class="mycode_list"><li>Tüm kaynaklarda UTC mi, yoksa local time mı? Belgeleyin.<br />
</li>
<li>Normalize ederken timezone alanını koruyun.<br />
</li>
<li>Dashboard'a "en çok kayan host" paneli koyun (offset metric).<br />
</li>
<li>Yeni kaynak onboarding: önce NTP, sonra agent.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hızlı teşhis</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>timedatectl
timedatectl show-timesync
# veya
chronyc makestep</code></div></div>Konteynerlerde host saati geçer; VM'lerde RTC + NTP birlikte düşünülmeli.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>chrony resmi dokümantasyon<br />
</li>
<li>RFC 5905 (NTP)<br />
</li>
<li>NIST zaman hizmetleri bilgilendirmeleri<br />
</li>
</ul>
<br />
Sizin SIEM'inizde saat kaymasından doğan en komik (veya acı) yanlış alarm neydi?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Virtualizasyon tuzakları</span></span><br />
VMware Tools / Hyper-V time sync host'u kaynak alırken guest chrony de dış NTP'ye giderse osilasyon görürsünüz. Tek kaynak seçin. Snapshot'a geri dönüş eski saate de döndürebilir; snapshot sonrası chronyc makestep düşünün.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dağıtık izleme metriği</span></span><br />
node_exporter veya osquery ile chrony offset metriğini Prometheus'a alın; 100ms üstü için alarm. SIEM'den önce bu alarm çoğu "garip korelasyon" ticket'ını önler.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=281" target="_blank" title="">100-n16-e0f08e.png</a> (Dosya Boyutu: 62.97 KB / İndirme Sayısı: 13)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=282" target="_blank" title="">n16-inner.png</a> (Dosya Boyutu: 21.26 KB / İndirme Sayısı: 14)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=281" loading="lazy"  alt="[Resim: attachment.php?aid=281]" class="mycode_img" /></div>
<br />
Merhaba,<br />
<br />
SIEM'e log akıtmaya başlamadan önce en sık atlanan konu: saat senkronu. Dağınık zaman damgaları korelasyonu öldürür; saldırı zaman çizelgesi güveneceği kalmaz. Bu yazıda neden kritik olduğunu ve Linux'ta chrony ile nasıl düzelteceğinizi anlatıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ne bozulur?</span></span><ul class="mycode_list"><li>Aynı oturumun firewall logu 14:01, sunucu auth logu 13:48 görünür<br />
</li>
<li>Kerberos / sertifika doğrulama hataları (saat kayması)<br />
</li>
<li>SIEM kuralı "5 dakika içinde 10 fail" eşiğini kaçırır veya yanlış tetikler<br />
</li>
<li>Adli zaman çizelgesi mahkemede / postmortem'de çöker<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">chrony kurulumu (Debian/Ubuntu)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt install chrony
sudo systemctl enable --now chrony
chronyc tracking
chronyc sources -v</code></div></div><span style="font-weight: bold;" class="mycode_b">Reference ID</span> ve <span style="font-weight: bold;" class="mycode_b">System time</span> satırlarına bakın. "Last offset" mikrosaniye-milisaniye bandındaysa iyidir; saniyelerce kayma varsa kaynak veya firewall UDP/123 sorununa bakın.<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=282" loading="lazy"  alt="[Resim: attachment.php?aid=282]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynak seçimi</span></span><br />
Kurumsal ortamda iç NTP (domain controller veya dedicated NTP) kullanın. Ev labında pool.ntp.org veya ülkenizdeki pool uygun olabilir. /etc/chrony/chrony.conf örneği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>server time.cloudflare.com iburst
server 0.tr.pool.ntp.org iburst
makestep 1.0 3
rtcsync</code></div></div>Değişince:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo systemctl restart chrony
chronyc tracking</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Windows tarafı (kısa)</span></span><br />
Domain'e üyeyse genelde DC'den alır. Workgroup labında:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>w32tm /query /status
w32tm /resync</code></div></div>Hyper-V / VMware misafirlerinde host zaman senkronu ile guest NTP çakışabilir; tek kaynak seçin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">SIEM kontrol listesi</span></span><br />
<ol type="1" class="mycode_list"><li>Tüm kaynaklarda UTC mi, yoksa local time mı? Belgeleyin.<br />
</li>
<li>Normalize ederken timezone alanını koruyun.<br />
</li>
<li>Dashboard'a "en çok kayan host" paneli koyun (offset metric).<br />
</li>
<li>Yeni kaynak onboarding: önce NTP, sonra agent.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hızlı teşhis</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>timedatectl
timedatectl show-timesync
# veya
chronyc makestep</code></div></div>Konteynerlerde host saati geçer; VM'lerde RTC + NTP birlikte düşünülmeli.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>chrony resmi dokümantasyon<br />
</li>
<li>RFC 5905 (NTP)<br />
</li>
<li>NIST zaman hizmetleri bilgilendirmeleri<br />
</li>
</ul>
<br />
Sizin SIEM'inizde saat kaymasından doğan en komik (veya acı) yanlış alarm neydi?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Virtualizasyon tuzakları</span></span><br />
VMware Tools / Hyper-V time sync host'u kaynak alırken guest chrony de dış NTP'ye giderse osilasyon görürsünüz. Tek kaynak seçin. Snapshot'a geri dönüş eski saate de döndürebilir; snapshot sonrası chronyc makestep düşünün.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dağıtık izleme metriği</span></span><br />
node_exporter veya osquery ile chrony offset metriğini Prometheus'a alın; 100ms üstü için alarm. SIEM'den önce bu alarm çoğu "garip korelasyon" ticket'ını önler.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=281" target="_blank" title="">100-n16-e0f08e.png</a> (Dosya Boyutu: 62.97 KB / İndirme Sayısı: 13)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=282" target="_blank" title="">n16-inner.png</a> (Dosya Boyutu: 21.26 KB / İndirme Sayısı: 14)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[MITRE ATT&CK ile Detection Coverage Haritası: Boşlukları Görmek]]></title>
			<link>https://www.turkteam.org/konu-mitre-att-ck-ile-detection-coverage-haritasi-bosluklari-gormek.html</link>
			<pubDate>Mon, 19 Oct 2026 01:31:56 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-mitre-att-ck-ile-detection-coverage-haritasi-bosluklari-gormek.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=279" loading="lazy"  alt="[Resim: attachment.php?aid=279]" class="mycode_img" /></div>
<br />
Merhaba,<br />
<br />
"SIEM'de 2000 kuralımız var" demek coverage demek değildir. MITRE ATT&amp;CK ile detection coverage haritası, hangi tekniklerde kör olduğunuzu gösterir. Bu yazıda küçük bir SOC'un Excel/Spreadsheet ile bile yapabileceği pratik yöntemi anlatıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">ATT&amp;CK'ı ne kadar derin kullanmalı?</span></span><br />
Enterprise matrisinde yüzlerce teknik var. Hepsini yeşile boyamak hedef değil. Önce kurumunuza uygun tehdit modeli: ransomware, BEC, içeriden tehdit, tedarik zinciri... Sonra ilgili tactic/technique alt kümesi.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Basit harita nasıl kurulur?</span></span><br />
Satırlar: Technique ID (ör. T1003.001). Sütunlar: Veri kaynağı (process, auth, dns, proxy, endpoint), Kural var mı?, Test edildi mi?, Son test tarihi, Sahip.<br />
Renk:<ul class="mycode_list"><li>Yeşil: tespit var + son 90 günde test edildi<br />
</li>
<li>Sarı: kural var ama test yok / yüksek FP<br />
</li>
<li>Kırmızı: veri var, kural yok<br />
</li>
<li>Gri: veri yok (önce telemetri)<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=280" loading="lazy"  alt="[Resim: attachment.php?aid=280]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Veri kaynağı gerçekliği</span></span><br />
Kural yazmadan önce telemetri var mı bakın. Process Command Line yoksa "suspicious powershell" kuralı hayaldir. Windows'ta en azından:<ul class="mycode_list"><li>Security 4624/4625/4688<br />
</li>
<li>Sysmon 1/3/7/11 (mümkünse)<br />
</li>
<li>DNS / proxy log<br />
</li>
<li>Kimlik sağlayıcı (AD / Entra) audit<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Atomik test ile doğrulama</span></span><br />
Red Canary Atomic Red Team gibi kontrollü testler (yalnız kendi lab/izinli ortam) kuralın gerçekten tuttuğunu gösterir. Test sonrası:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek düşünce: T1059.001 PowerShell
# 1) Atomik testi labda çalıştır
# 2) SIEM'de alarm geldi mi?
# 3) Gelmediyse: telemetri mi eksik, kural mı yanlış?</code></div></div>Üretimde rastgele atomik çalıştırmayın; change penceresi ve izin şart.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Önceliklendirme</span></span><br />
<ol type="1" class="mycode_list"><li>Kritik varlıkları etkileyen teknikler<br />
</li>
<li>Son 12 ayda sektörünüzde görülen teknikler<br />
</li>
<li>Kolay kazanım: telemetrisi hazır, kuralı basit olanlar<br />
</li>
</ol>
Raporu yönetime "yüzde 80 coverage" diye sunmak yerine "ransomware kill chain'de 3 kör nokta" diye sunun; aksiyon çıkar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yaygın kör noktalar</span></span><ul class="mycode_list"><li>Living-off-the-land (LOLBins) — imza ile zor<br />
</li>
<li>Bulut yönetim düzlemi (Azure/AWS API) — endpoint odaklı SOC kaçırır<br />
</li>
<li>Mac/Linux endpoint telemetrisi eksikliği<br />
</li>
<li>E-posta kimlik doğrulama loglarının SIEM'e gelmemesi<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>MITRE ATT&amp;CK resmi site<br />
</li>
<li>ATT&amp;CK Navigator (katman dosyası paylaşımı)<br />
</li>
<li>Atomic Red Team<br />
</li>
<li>SigmaHQ (kural fikirleri)<br />
</li>
</ul>
<br />
Siz coverage'ı Navigator ile mi, yoksa servis kataloğuyla mı yönetiyorsunuz? Küçük ekip deneyimleri özellikle değerli.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Navigator katmanı paylaşımı</span></span><br />
ATT&amp;CK Navigator JSON katmanını ekipler arası paylaşmak, Excel renginden daha taşınabilirdir. Her major detection eklenince katmanı güncelleyin; çeyreklik gözden geçirmede kırmızı tekniklerden 3 tanesini yeşile çekme hedefi koyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Threat-informed defense</span></span><br />
Sektörünüze ait tehdit raporlarındaki technique ID'leri haritaya "priority" olarak işaretleyin. Genel matris yüzdesi yerine "bu çeyrek ransomware zinciri coverage" KPI'sı yönetime daha anlamlı gelir.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=279" target="_blank" title="">100-n14-b7a5dc.png</a> (Dosya Boyutu: 68.67 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=280" target="_blank" title="">n14-inner.png</a> (Dosya Boyutu: 19.9 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=279" loading="lazy"  alt="[Resim: attachment.php?aid=279]" class="mycode_img" /></div>
<br />
Merhaba,<br />
<br />
"SIEM'de 2000 kuralımız var" demek coverage demek değildir. MITRE ATT&amp;CK ile detection coverage haritası, hangi tekniklerde kör olduğunuzu gösterir. Bu yazıda küçük bir SOC'un Excel/Spreadsheet ile bile yapabileceği pratik yöntemi anlatıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">ATT&amp;CK'ı ne kadar derin kullanmalı?</span></span><br />
Enterprise matrisinde yüzlerce teknik var. Hepsini yeşile boyamak hedef değil. Önce kurumunuza uygun tehdit modeli: ransomware, BEC, içeriden tehdit, tedarik zinciri... Sonra ilgili tactic/technique alt kümesi.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Basit harita nasıl kurulur?</span></span><br />
Satırlar: Technique ID (ör. T1003.001). Sütunlar: Veri kaynağı (process, auth, dns, proxy, endpoint), Kural var mı?, Test edildi mi?, Son test tarihi, Sahip.<br />
Renk:<ul class="mycode_list"><li>Yeşil: tespit var + son 90 günde test edildi<br />
</li>
<li>Sarı: kural var ama test yok / yüksek FP<br />
</li>
<li>Kırmızı: veri var, kural yok<br />
</li>
<li>Gri: veri yok (önce telemetri)<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=280" loading="lazy"  alt="[Resim: attachment.php?aid=280]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Veri kaynağı gerçekliği</span></span><br />
Kural yazmadan önce telemetri var mı bakın. Process Command Line yoksa "suspicious powershell" kuralı hayaldir. Windows'ta en azından:<ul class="mycode_list"><li>Security 4624/4625/4688<br />
</li>
<li>Sysmon 1/3/7/11 (mümkünse)<br />
</li>
<li>DNS / proxy log<br />
</li>
<li>Kimlik sağlayıcı (AD / Entra) audit<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Atomik test ile doğrulama</span></span><br />
Red Canary Atomic Red Team gibi kontrollü testler (yalnız kendi lab/izinli ortam) kuralın gerçekten tuttuğunu gösterir. Test sonrası:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek düşünce: T1059.001 PowerShell
# 1) Atomik testi labda çalıştır
# 2) SIEM'de alarm geldi mi?
# 3) Gelmediyse: telemetri mi eksik, kural mı yanlış?</code></div></div>Üretimde rastgele atomik çalıştırmayın; change penceresi ve izin şart.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Önceliklendirme</span></span><br />
<ol type="1" class="mycode_list"><li>Kritik varlıkları etkileyen teknikler<br />
</li>
<li>Son 12 ayda sektörünüzde görülen teknikler<br />
</li>
<li>Kolay kazanım: telemetrisi hazır, kuralı basit olanlar<br />
</li>
</ol>
Raporu yönetime "yüzde 80 coverage" diye sunmak yerine "ransomware kill chain'de 3 kör nokta" diye sunun; aksiyon çıkar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yaygın kör noktalar</span></span><ul class="mycode_list"><li>Living-off-the-land (LOLBins) — imza ile zor<br />
</li>
<li>Bulut yönetim düzlemi (Azure/AWS API) — endpoint odaklı SOC kaçırır<br />
</li>
<li>Mac/Linux endpoint telemetrisi eksikliği<br />
</li>
<li>E-posta kimlik doğrulama loglarının SIEM'e gelmemesi<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>MITRE ATT&amp;CK resmi site<br />
</li>
<li>ATT&amp;CK Navigator (katman dosyası paylaşımı)<br />
</li>
<li>Atomic Red Team<br />
</li>
<li>SigmaHQ (kural fikirleri)<br />
</li>
</ul>
<br />
Siz coverage'ı Navigator ile mi, yoksa servis kataloğuyla mı yönetiyorsunuz? Küçük ekip deneyimleri özellikle değerli.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Navigator katmanı paylaşımı</span></span><br />
ATT&amp;CK Navigator JSON katmanını ekipler arası paylaşmak, Excel renginden daha taşınabilirdir. Her major detection eklenince katmanı güncelleyin; çeyreklik gözden geçirmede kırmızı tekniklerden 3 tanesini yeşile çekme hedefi koyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Threat-informed defense</span></span><br />
Sektörünüze ait tehdit raporlarındaki technique ID'leri haritaya "priority" olarak işaretleyin. Genel matris yüzdesi yerine "bu çeyrek ransomware zinciri coverage" KPI'sı yönetime daha anlamlı gelir.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=279" target="_blank" title="">100-n14-b7a5dc.png</a> (Dosya Boyutu: 68.67 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=280" target="_blank" title="">n14-inner.png</a> (Dosya Boyutu: 19.9 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Olay Müdahalesinde İlk 15 Dakika: Karar Ağacı ve İletişim Disiplini]]></title>
			<link>https://www.turkteam.org/konu-olay-mudahalesinde-ilk-15-dakika-karar-agaci-ve-iletisim-disiplini.html</link>
			<pubDate>Mon, 19 Oct 2026 01:14:45 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-olay-mudahalesinde-ilk-15-dakika-karar-agaci-ve-iletisim-disiplini.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=277" loading="lazy"  alt="[Resim: attachment.php?aid=277]" class="mycode_img" /></div>
<br />
Selam,<br />
<br />
Olay müdahalesinde ilk 15 dakika çoğu zaman sonraki 15 saati belirler. Bu yazıda panik yerine karar ağacı kullanan bir L1/L2 disiplini anlatıyorum. Kurum playbook'unuz varsa o üstündür; bu metin boşluğu doldurmak içindir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 0-2: ne olduğunu tek cümlede yaz</span></span><br />
"Ne gördük, nerede, ne zaman, kim bildirdi?" Ticket'a düz metin. Spekülasyon yok. Örnek: "Satış ekibinden 3 kullanıcı aynı anda sahte Microsoft girişi bildiriyor; 14:02 TRT."<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 2-5: güvenlik hijyeni ve kanıt</span></span><ul class="mycode_list"><li>Etkilenen hesabı/cihazı izole etmeden önce politika: izolasyon mu, yoksa izleme mi?<br />
</li>
<li>Ekran görüntüsü + ham log zaman damgası<br />
</li>
<li>Saat dilimi notu (Europe/Istanbul); SIEM UTC ise dönüşümü yaz<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Karar ağacı (özet)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Alarm/Bildirim
  |- Kimlik hırsızlığı şüphesi? -&gt; parola sıfırla, oturumları düşür, MFA kontrol
  |- Zararlı süreç/EDR? -&gt; ağ izolasyonu, bellek/disk kanıtı kuyruğu
  |- Veri sızıntısı? -&gt; DLP/egress log, hukuk/iletişim hattını bilgilendir
  |- Yanlış pozitif? -&gt; kanıtla kapat, kuralı iyileştir</code></div></div><br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=278" loading="lazy"  alt="[Resim: attachment.php?aid=278]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 5-10: iletişim</span></span><br />
Tek kanal seçin (IR chat / telefon köprüsü). Herkese ayrı ayrı yazmak kaosu büyütür. Roller:<ul class="mycode_list"><li>Olay komutanı (karar)<br />
</li>
<li>Teknik analist<br />
</li>
<li>İletişim (iş birimleri)<br />
</li>
<li>Varsa hukuk / KVKK noktası<br />
</li>
</ul>
"Her şeyi herkese mail atma" kuralı: durum özeti 5-10 dakikada bir, net madde işaretleriyle.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 10-15: kısa çevreleme</span></span><ul class="mycode_list"><li>Etkilenen hesaplarda aktif oturum listesi<br />
</li>
<li>Firewall / proxy'de bilinen kötü IOC blok (geçici)<br />
</li>
<li>Yedekleme işlerinin çalıştığını doğrula (silme/encryption senaryosu)<br />
</li>
<li>Dışa açık yönetim panellerinde anomali<br />
</li>
</ul>
Windows'ta oturum düşürme örneği (lab/politika dahilinde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek: belirli kullanıcı oturumlarını listele (ortama göre değişir)
quser</code></div></div>Entra ID / bulut için Unified Audit Log ve "Revoke sessions" prosedürünüzü hazır tutun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yapmayın</span></span><ul class="mycode_list"><li>Kanıt almadan disk silmek / yeniden kurmak<br />
</li>
<li>Saldırganla "pazarlık" maili<br />
</li>
<li>Herkese açık Slack'te IOC paylaşmak (sızıntı riski)<br />
</li>
<li>Saat senkronu bozuk sunucuda zaman çizelgesi kurmak<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">15. dakikada elde olması gerekenler</span></span><br />
<ol type="1" class="mycode_list"><li>Tek cümlelik durum<br />
</li>
<li>Etki tahmini (düşük/orta/yüksek) — gerekçeli<br />
</li>
<li>Uygulanan çevreleme adımları<br />
</li>
<li>Sonraki checkpoint zamanı<br />
</li>
<li>Escalate edildi mi?<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>NIST SP 800-61 (Computer Security Incident Handling Guide)<br />
</li>
<li>SANS PICERL modeli<br />
</li>
<li>Kurumunuzun IR runbook'u<br />
</li>
</ul>
<br />
Sizin ilk 15 dakikada en çok atlanan adım hangisi oldu? Bizde uzun süre "tek cümlelik durum" eksikti.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Severity'yi erken sabitlemeyin</span></span><br />
İlk 15 dakikada "critical" ilan etmek panik yaratır; "bilinmiyor, çevreleme uygulandı" daha dürüsttür. Severity'yi checkpoint'te güncelleyin. Yönetime giden mesajda teknik jargon yerine iş etkisi: "fatura sistemi yazılamıyor", "e-posta gecikiyor".<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Müşteri / regülasyon hattı</span></span><br />
Kişisel veri sızıntısı şüphesinde KVKK bildirim süreleri devreye girebilir. IR ekibi hukuk ile erken konuşsun; teknik ekip tek başına "bildirmeyelim" kararını vermesin. İlk 15 dakikanın işi hukuku bilgilendirmek olabilir, resmi bildirimi tamamlamak değil.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=277" target="_blank" title="">100-n13-70a53e.png</a> (Dosya Boyutu: 62.07 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=278" target="_blank" title="">n13-inner.png</a> (Dosya Boyutu: 19.83 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=277" loading="lazy"  alt="[Resim: attachment.php?aid=277]" class="mycode_img" /></div>
<br />
Selam,<br />
<br />
Olay müdahalesinde ilk 15 dakika çoğu zaman sonraki 15 saati belirler. Bu yazıda panik yerine karar ağacı kullanan bir L1/L2 disiplini anlatıyorum. Kurum playbook'unuz varsa o üstündür; bu metin boşluğu doldurmak içindir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 0-2: ne olduğunu tek cümlede yaz</span></span><br />
"Ne gördük, nerede, ne zaman, kim bildirdi?" Ticket'a düz metin. Spekülasyon yok. Örnek: "Satış ekibinden 3 kullanıcı aynı anda sahte Microsoft girişi bildiriyor; 14:02 TRT."<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 2-5: güvenlik hijyeni ve kanıt</span></span><ul class="mycode_list"><li>Etkilenen hesabı/cihazı izole etmeden önce politika: izolasyon mu, yoksa izleme mi?<br />
</li>
<li>Ekran görüntüsü + ham log zaman damgası<br />
</li>
<li>Saat dilimi notu (Europe/Istanbul); SIEM UTC ise dönüşümü yaz<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Karar ağacı (özet)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Alarm/Bildirim
  |- Kimlik hırsızlığı şüphesi? -&gt; parola sıfırla, oturumları düşür, MFA kontrol
  |- Zararlı süreç/EDR? -&gt; ağ izolasyonu, bellek/disk kanıtı kuyruğu
  |- Veri sızıntısı? -&gt; DLP/egress log, hukuk/iletişim hattını bilgilendir
  |- Yanlış pozitif? -&gt; kanıtla kapat, kuralı iyileştir</code></div></div><br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=278" loading="lazy"  alt="[Resim: attachment.php?aid=278]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 5-10: iletişim</span></span><br />
Tek kanal seçin (IR chat / telefon köprüsü). Herkese ayrı ayrı yazmak kaosu büyütür. Roller:<ul class="mycode_list"><li>Olay komutanı (karar)<br />
</li>
<li>Teknik analist<br />
</li>
<li>İletişim (iş birimleri)<br />
</li>
<li>Varsa hukuk / KVKK noktası<br />
</li>
</ul>
"Her şeyi herkese mail atma" kuralı: durum özeti 5-10 dakikada bir, net madde işaretleriyle.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Dakika 10-15: kısa çevreleme</span></span><ul class="mycode_list"><li>Etkilenen hesaplarda aktif oturum listesi<br />
</li>
<li>Firewall / proxy'de bilinen kötü IOC blok (geçici)<br />
</li>
<li>Yedekleme işlerinin çalıştığını doğrula (silme/encryption senaryosu)<br />
</li>
<li>Dışa açık yönetim panellerinde anomali<br />
</li>
</ul>
Windows'ta oturum düşürme örneği (lab/politika dahilinde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek: belirli kullanıcı oturumlarını listele (ortama göre değişir)
quser</code></div></div>Entra ID / bulut için Unified Audit Log ve "Revoke sessions" prosedürünüzü hazır tutun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yapmayın</span></span><ul class="mycode_list"><li>Kanıt almadan disk silmek / yeniden kurmak<br />
</li>
<li>Saldırganla "pazarlık" maili<br />
</li>
<li>Herkese açık Slack'te IOC paylaşmak (sızıntı riski)<br />
</li>
<li>Saat senkronu bozuk sunucuda zaman çizelgesi kurmak<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">15. dakikada elde olması gerekenler</span></span><br />
<ol type="1" class="mycode_list"><li>Tek cümlelik durum<br />
</li>
<li>Etki tahmini (düşük/orta/yüksek) — gerekçeli<br />
</li>
<li>Uygulanan çevreleme adımları<br />
</li>
<li>Sonraki checkpoint zamanı<br />
</li>
<li>Escalate edildi mi?<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>NIST SP 800-61 (Computer Security Incident Handling Guide)<br />
</li>
<li>SANS PICERL modeli<br />
</li>
<li>Kurumunuzun IR runbook'u<br />
</li>
</ul>
<br />
Sizin ilk 15 dakikada en çok atlanan adım hangisi oldu? Bizde uzun süre "tek cümlelik durum" eksikti.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Severity'yi erken sabitlemeyin</span></span><br />
İlk 15 dakikada "critical" ilan etmek panik yaratır; "bilinmiyor, çevreleme uygulandı" daha dürüsttür. Severity'yi checkpoint'te güncelleyin. Yönetime giden mesajda teknik jargon yerine iş etkisi: "fatura sistemi yazılamıyor", "e-posta gecikiyor".<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Müşteri / regülasyon hattı</span></span><br />
Kişisel veri sızıntısı şüphesinde KVKK bildirim süreleri devreye girebilir. IR ekibi hukuk ile erken konuşsun; teknik ekip tek başına "bildirmeyelim" kararını vermesin. İlk 15 dakikanın işi hukuku bilgilendirmek olabilir, resmi bildirimi tamamlamak değil.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=277" target="_blank" title="">100-n13-70a53e.png</a> (Dosya Boyutu: 62.07 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=278" target="_blank" title="">n13-inner.png</a> (Dosya Boyutu: 19.83 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Phishing Mailini SOAR'sız İncelemek: L1 Analist İçin 10 Adımlık Liste]]></title>
			<link>https://www.turkteam.org/konu-phishing-mailini-soar-siz-incelemek-l1-analist-icin-10-adimlik-liste.html</link>
			<pubDate>Mon, 19 Oct 2026 01:12:48 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-phishing-mailini-soar-siz-incelemek-l1-analist-icin-10-adimlik-liste.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=275" loading="lazy"  alt="[Resim: attachment.php?aid=275]" class="mycode_img" /></div>
<br />
L1 SOC'ta phishing kuyruğu hiç bitmez. SOAR yoksa bile tutarlı bir 10 adımlık liste işleri hızlandırır ve kaçanı azaltır. Bu yazı kendi kullandığım SOAR'sız triage notlarıdır; kurum politikasını ezmez, üzerine giydirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">0. Güvenlik hijyeni</span></span><br />
Analizi izole bir VM'de veya sandbox'ta yapın. Üretim hesabınızda şüpheli eki açmayın. Linklere kendi tarayıcınızdan tıklamak yerine URL'yi kopyalayıp sandbox'ta açın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">10 adım</span></span><br />
<span style="font-weight: bold;" class="mycode_b">1) Bildirimi kaydet</span><br />
Ticket no, bildirenin birimi, zaman (UTC+3 notuyla). Orijinal .eml/.msg dosyasını ekleyin; ekran görüntüsü yetmez.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">2) Başlıkları oku (header)</span><br />
From, Reply-To, Return-Path, Received zinciri. Display name "IT Destek" iken adres rastgele domain ise klasik.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># .eml içinden hızlı bakış (Linux lab)
grep -E '^(From|Reply-To|Return-Path|Authentication-Results):' mail.eml</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">3) Kimlik doğrulama sonuçları</span><br />
SPF / DKIM / DMARC Authentication-Results satırına bakın. fail/softfail tek başına yeterli değil ama skorunuzu etkiler.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">4) URL'leri çıkar, çöz</span><br />
Kısaltıcıları sandbox'ta expand edin. Benzer domain (rnicrosoft.com) avı yapın.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># örnek: HTML'den URL (kabaca)
grep -oE 'https?://[^"[:space:]]+' mail.eml | sort -u</code></div></div><br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=276" loading="lazy"  alt="[Resim: attachment.php?aid=276]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">5) Ekleri hash'le, açma</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sha256sum eklenti.zip</code></div></div>Hash'i VT / kurum sandbox'ına sorun (politikanıza göre). Makro'lu Office ve ISO/IMG taşıyıcılar hâlâ yaygın.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">6) İçerik dili ve senaryo</span><br />
Aciliyet, korku, ödül; fatura, kargo, HR, IT reset. Senaryoyu bir cümlede ticket'a yazın.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">7) İç / dış etki</span><br />
Aynı mail 1 kişiye mi, 500 kişiye mi geldi? Mail gateway logunda subject + message-id arayın.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">8) IOC listesi üret</span><br />
Domain, URL, ek SHA-256, varsa gönderen IP. Paylaşım formatını standardize edin (CSV yeterli).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">9) Kontrol önerisi</span><br />
Gateway'de blok, URL rewrite kategorisi, kullanıcıya "tıklama" duyurusu. L2'ye escalate kriterleri: credential harvest sayfasına giriş yapılmış olması, ek çalıştırılmış olması.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">10) Kapanış</span><br />
Yanlış pozitif ise nedenini yazın (öğrenme). Gerçek phishing ise kısa postmortem: hangi kontrol kaçırdı?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kullanıcıya dönüş şablonu (kısa)</span></span><br />
"Bildirdiğiniz ileti phishing olarak değerlendirildi. Lütfen bağlantıya tıklamayın / ek açmayın. Parola girdiyseniz hemen IT ile parola sıfırlama prosedürünü uygulayın."<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık L1 hataları</span></span><ul class="mycode_list"><li>Yalnızca spam kutusu gibi davranıp header okumamak<br />
</li>
<li>IOC'siz "phishing'tir" deyip kapatmak<br />
</li>
<li>Kullanıcıya suçlayıcı dil<br />
</li>
<li>Sandbox dışında ek çalıştırmak<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>CIS Controls - Email and Browser Protections<br />
</li>
<li>RFC 7208/6376/7489 (SPF/DKIM/DMARC kavramsal)<br />
</li>
<li>Kurumunuzun IR playbook'u (asıl kaynak)<br />
</li>
</ul>
<br />
Sizin 11. adımınız ne olurdu? SOAR'a geçerken hangi adımı ilk otomatikleştirdiniz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Header'da Received zinciri</span></span><br />
En alttaki Received genelde kullanıcıya en yakın sunucudur; yukarı çıktıkça köken görünür. Sahte "Received" uydurmak mümkündür; SPF/DKIM ile çaprazlayın. Relay gibi görünen üçüncü taraf (pazarlama platformu) meşru olabilir; domain benzerliği tek başına karar değildir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kullanıcı tıklamışsa</span></span><br />
URL rewrite / proxy logunda 200 mü dönmüş, kimlik bilgisi formu mu açılmış bakın. EDR'da process tree: outlook -&gt; browser -&gt; powershell zinciri var mı? L2'ye "tıklanmış olabilir" diye değil, kanıtla escalate edin.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=275" target="_blank" title="">100-n12-2319b5.png</a> (Dosya Boyutu: 63.28 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=276" target="_blank" title="">n12-inner.png</a> (Dosya Boyutu: 22.29 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=275" loading="lazy"  alt="[Resim: attachment.php?aid=275]" class="mycode_img" /></div>
<br />
L1 SOC'ta phishing kuyruğu hiç bitmez. SOAR yoksa bile tutarlı bir 10 adımlık liste işleri hızlandırır ve kaçanı azaltır. Bu yazı kendi kullandığım SOAR'sız triage notlarıdır; kurum politikasını ezmez, üzerine giydirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">0. Güvenlik hijyeni</span></span><br />
Analizi izole bir VM'de veya sandbox'ta yapın. Üretim hesabınızda şüpheli eki açmayın. Linklere kendi tarayıcınızdan tıklamak yerine URL'yi kopyalayıp sandbox'ta açın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">10 adım</span></span><br />
<span style="font-weight: bold;" class="mycode_b">1) Bildirimi kaydet</span><br />
Ticket no, bildirenin birimi, zaman (UTC+3 notuyla). Orijinal .eml/.msg dosyasını ekleyin; ekran görüntüsü yetmez.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">2) Başlıkları oku (header)</span><br />
From, Reply-To, Return-Path, Received zinciri. Display name "IT Destek" iken adres rastgele domain ise klasik.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># .eml içinden hızlı bakış (Linux lab)
grep -E '^(From|Reply-To|Return-Path|Authentication-Results):' mail.eml</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">3) Kimlik doğrulama sonuçları</span><br />
SPF / DKIM / DMARC Authentication-Results satırına bakın. fail/softfail tek başına yeterli değil ama skorunuzu etkiler.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">4) URL'leri çıkar, çöz</span><br />
Kısaltıcıları sandbox'ta expand edin. Benzer domain (rnicrosoft.com) avı yapın.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># örnek: HTML'den URL (kabaca)
grep -oE 'https?://[^"[:space:]]+' mail.eml | sort -u</code></div></div><br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=276" loading="lazy"  alt="[Resim: attachment.php?aid=276]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">5) Ekleri hash'le, açma</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sha256sum eklenti.zip</code></div></div>Hash'i VT / kurum sandbox'ına sorun (politikanıza göre). Makro'lu Office ve ISO/IMG taşıyıcılar hâlâ yaygın.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">6) İçerik dili ve senaryo</span><br />
Aciliyet, korku, ödül; fatura, kargo, HR, IT reset. Senaryoyu bir cümlede ticket'a yazın.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">7) İç / dış etki</span><br />
Aynı mail 1 kişiye mi, 500 kişiye mi geldi? Mail gateway logunda subject + message-id arayın.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">8) IOC listesi üret</span><br />
Domain, URL, ek SHA-256, varsa gönderen IP. Paylaşım formatını standardize edin (CSV yeterli).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">9) Kontrol önerisi</span><br />
Gateway'de blok, URL rewrite kategorisi, kullanıcıya "tıklama" duyurusu. L2'ye escalate kriterleri: credential harvest sayfasına giriş yapılmış olması, ek çalıştırılmış olması.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">10) Kapanış</span><br />
Yanlış pozitif ise nedenini yazın (öğrenme). Gerçek phishing ise kısa postmortem: hangi kontrol kaçırdı?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kullanıcıya dönüş şablonu (kısa)</span></span><br />
"Bildirdiğiniz ileti phishing olarak değerlendirildi. Lütfen bağlantıya tıklamayın / ek açmayın. Parola girdiyseniz hemen IT ile parola sıfırlama prosedürünü uygulayın."<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık L1 hataları</span></span><ul class="mycode_list"><li>Yalnızca spam kutusu gibi davranıp header okumamak<br />
</li>
<li>IOC'siz "phishing'tir" deyip kapatmak<br />
</li>
<li>Kullanıcıya suçlayıcı dil<br />
</li>
<li>Sandbox dışında ek çalıştırmak<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>CIS Controls - Email and Browser Protections<br />
</li>
<li>RFC 7208/6376/7489 (SPF/DKIM/DMARC kavramsal)<br />
</li>
<li>Kurumunuzun IR playbook'u (asıl kaynak)<br />
</li>
</ul>
<br />
Sizin 11. adımınız ne olurdu? SOAR'a geçerken hangi adımı ilk otomatikleştirdiniz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Header'da Received zinciri</span></span><br />
En alttaki Received genelde kullanıcıya en yakın sunucudur; yukarı çıktıkça köken görünür. Sahte "Received" uydurmak mümkündür; SPF/DKIM ile çaprazlayın. Relay gibi görünen üçüncü taraf (pazarlama platformu) meşru olabilir; domain benzerliği tek başına karar değildir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kullanıcı tıklamışsa</span></span><br />
URL rewrite / proxy logunda 200 mü dönmüş, kimlik bilgisi formu mu açılmış bakın. EDR'da process tree: outlook -&gt; browser -&gt; powershell zinciri var mı? L2'ye "tıklanmış olabilir" diye değil, kanıtla escalate edin.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=275" target="_blank" title="">100-n12-2319b5.png</a> (Dosya Boyutu: 63.28 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=276" target="_blank" title="">n12-inner.png</a> (Dosya Boyutu: 22.29 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Suricata ile İlk Kural Yazımı: Ev Labında IDS ve eve.json Okuma]]></title>
			<link>https://www.turkteam.org/konu-suricata-ile-ilk-kural-yazimi-ev-labinda-ids-ve-eve-json-okuma.html</link>
			<pubDate>Sun, 18 Oct 2026 11:20:43 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-suricata-ile-ilk-kural-yazimi-ev-labinda-ids-ve-eve-json-okuma.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=158" loading="lazy"  alt="[Resim: attachment.php?aid=158]" class="mycode_img" /></div>
<br />
Selam arkadaşlar,<br />
<br />
Suricata, Snort ailesinden gelen yüksek performanslı IDS/IPS motoru. Bu yazıda ev labımda Suricata'yı IDS modunda ayağa kaldırmayı, basit bir kural yazmayı ve eve.json logunu okumayı anlatıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum (Debian/Ubuntu lab)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install suricata
suricata -V</code></div></div>Arayüzü dinlemek için /etc/suricata/suricata.yaml içinde af-packet / pcap bölümünden doğru interface'i seçin (ör. eth0). Labda köprü veya mirror port yoksa, Suricata'yı gateway üzerinde veya trafik üreten VM'in yanında çalıştırın.<br />
<br />
Feed güncelleme:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo suricata-update
sudo systemctl restart suricata</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk kuralınız</span></span><br />
Yerel kural dosyası örneği (/etc/suricata/rules/local.rules):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>alert http &#36;HOME_NET any -&gt; &#36;EXTERNAL_NET any (msg:"TT LAB Suspicious UA"; &#92;
  flow:to_server,established; http.user_agent; content:"BadAgent"; &#92;
  classtype:policy-violation; sid:1000001; rev:1;)</code></div></div>suricata.yaml içinde local.rules'un yüklendiğinden emin olun. Test trafiği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>curl -A "BadAgent" http://example.com/</code></div></div><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">eve.json okumak</span></span><br />
Modern Suricata çıktısı JSON satırlarıdır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'</code></div></div>Alanlar: timestamp, src_ip, dest_ip, signature_id, signature, severity... jq ile SIEM'e gitmeden önce filtre öğrenmek çok faydalı.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>jq -r 'select(.event_type=="alert") | [.timestamp,.src_ip,.dest_ip,.alert.signature] | @tsv' eve.json | head</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural yazımında dikkat</span></span><ul class="mycode_list"><li>sid 1_000_000+ yerel kurallar için ayırın (çakışmasın)<br />
</li>
<li>content eşleşmeleri için nocase / depth / offset bilinçli kullanın<br />
</li>
<li>flow ve http buffer'ları yanlış protokolde çalışmaz<br />
</li>
<li>IPS (drop) moduna geçmeden önce IDS'te FP ölçün<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Performans</span></span><br />
Labda varsayılan tamam. Üretimde AF_PACKET cluster, CPU affinity ve bypass politikaları devreye girer. Önce doğru trafik gördüğünüzü doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo suricatasc -c "iface-stat eth0"</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Suricata Read the Docs (rules / eve)<br />
</li>
<li>Emerging Threats / Suricata-Update<br />
</li>
<li>jq el kitabı<br />
</li>
</ul>
<br />
Siz eve.json'u doğrudan mi SIEM'e atıyorsunuz, yoksa vector/filebeat ile mi? Küçük lab mimarinizi merak ediyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Home net değişkenleri</span></span><br />
suricata.yaml içindeki HOME_NET ve EXTERNAL_NET yanlışsa kurallar ya hiç tutmaz ya da her şeyi tutar. Labda HOME_NET'i [10.10.10.0/24] gibi dar tutun. Multi-homing varsa her iki arayüzü de af-packet'e ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">IPS moduna geçiş</span></span><br />
drop kuralları üretmeden önce bir hafta IDS modunda FP oranı ölçün. Özellikle outbound "policy" imzaları meşru güncellemeleri kesebilir. Önce alert, sonra selective drop.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=158" target="_blank" title="">100-n15-4e5f2d.png</a> (Dosya Boyutu: 65.75 KB / İndirme Sayısı: 6)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=158" loading="lazy"  alt="[Resim: attachment.php?aid=158]" class="mycode_img" /></div>
<br />
Selam arkadaşlar,<br />
<br />
Suricata, Snort ailesinden gelen yüksek performanslı IDS/IPS motoru. Bu yazıda ev labımda Suricata'yı IDS modunda ayağa kaldırmayı, basit bir kural yazmayı ve eve.json logunu okumayı anlatıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum (Debian/Ubuntu lab)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install suricata
suricata -V</code></div></div>Arayüzü dinlemek için /etc/suricata/suricata.yaml içinde af-packet / pcap bölümünden doğru interface'i seçin (ör. eth0). Labda köprü veya mirror port yoksa, Suricata'yı gateway üzerinde veya trafik üreten VM'in yanında çalıştırın.<br />
<br />
Feed güncelleme:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo suricata-update
sudo systemctl restart suricata</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk kuralınız</span></span><br />
Yerel kural dosyası örneği (/etc/suricata/rules/local.rules):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>alert http &#36;HOME_NET any -&gt; &#36;EXTERNAL_NET any (msg:"TT LAB Suspicious UA"; &#92;
  flow:to_server,established; http.user_agent; content:"BadAgent"; &#92;
  classtype:policy-violation; sid:1000001; rev:1;)</code></div></div>suricata.yaml içinde local.rules'un yüklendiğinden emin olun. Test trafiği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>curl -A "BadAgent" http://example.com/</code></div></div><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">eve.json okumak</span></span><br />
Modern Suricata çıktısı JSON satırlarıdır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'</code></div></div>Alanlar: timestamp, src_ip, dest_ip, signature_id, signature, severity... jq ile SIEM'e gitmeden önce filtre öğrenmek çok faydalı.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>jq -r 'select(.event_type=="alert") | [.timestamp,.src_ip,.dest_ip,.alert.signature] | @tsv' eve.json | head</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural yazımında dikkat</span></span><ul class="mycode_list"><li>sid 1_000_000+ yerel kurallar için ayırın (çakışmasın)<br />
</li>
<li>content eşleşmeleri için nocase / depth / offset bilinçli kullanın<br />
</li>
<li>flow ve http buffer'ları yanlış protokolde çalışmaz<br />
</li>
<li>IPS (drop) moduna geçmeden önce IDS'te FP ölçün<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Performans</span></span><br />
Labda varsayılan tamam. Üretimde AF_PACKET cluster, CPU affinity ve bypass politikaları devreye girer. Önce doğru trafik gördüğünüzü doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo suricatasc -c "iface-stat eth0"</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Suricata Read the Docs (rules / eve)<br />
</li>
<li>Emerging Threats / Suricata-Update<br />
</li>
<li>jq el kitabı<br />
</li>
</ul>
<br />
Siz eve.json'u doğrudan mi SIEM'e atıyorsunuz, yoksa vector/filebeat ile mi? Küçük lab mimarinizi merak ediyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Home net değişkenleri</span></span><br />
suricata.yaml içindeki HOME_NET ve EXTERNAL_NET yanlışsa kurallar ya hiç tutmaz ya da her şeyi tutar. Labda HOME_NET'i [10.10.10.0/24] gibi dar tutun. Multi-homing varsa her iki arayüzü de af-packet'e ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">IPS moduna geçiş</span></span><br />
drop kuralları üretmeden önce bir hafta IDS modunda FP oranı ölçün. Özellikle outbound "policy" imzaları meşru güncellemeleri kesebilir. Önce alert, sonra selective drop.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=158" target="_blank" title="">100-n15-4e5f2d.png</a> (Dosya Boyutu: 65.75 KB / İndirme Sayısı: 6)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Windows Event Log ile İlk Tehdit Avı: 4624, 4625, 4688 ve 1102]]></title>
			<link>https://www.turkteam.org/konu-windows-event-log-ile-ilk-tehdit-avi-4624-4625-4688-ve-1102.html</link>
			<pubDate>Sun, 18 Oct 2026 11:16:24 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-windows-event-log-ile-ilk-tehdit-avi-4624-4625-4688-ve-1102.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=152" loading="lazy"  alt="[Resim: attachment.php?aid=152]" class="mycode_img" /></div>
<br />
Merhaba,<br />
<br />
SIEM yokken veya EDR alarmı gelmeden önce Windows Event Log hâlâ en yakın dostunuz. Bu yazıda tehdit avında ilk baktığım dört olay kimliğini (4624, 4625, 4688, 1102) ve bunları nasıl sorguladığımı anlatıyorum. Ortam: Windows 11 / Server lab, PowerShell ile.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Önkoşul: audit politikası</span></span><br />
4688 (yeni süreç) varsayılanda her yerde dolu olmayabilir. Local Security Policy veya GPO ile "Audit Process Creation" Success açık olmalı; komut satırını da loglamak için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># PowerShell (yönetici) - lab
auditpol /set /subcategory:"Process Creation" /success:enable
# Komut satırı ekleme (Sysmon yoksa)
reg add HKLM&#92;Software&#92;Microsoft&#92;Windows&#92;CurrentVersion&#92;Policies&#92;System&#92;Audit /v ProcessCreationIncludeCmdLine_Enabled /t REG_DWORD /d 1 /f</code></div></div>Üretimde GPO ile yapın; kalıcı ve merkezi olsun. Sysmon varsa 1/3/11 ile bu boşluklar çok daha zengin dolar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4624 — başarılı oturum</span></span><br />
Logon Type değerleri kritik:<ul class="mycode_list"><li>2: etkileşimli (konsol)<br />
</li>
<li>3: ağ (SMB, vs.)<br />
</li>
<li>10: RemoteInteractive (RDP)<br />
</li>
<li>5: servis<br />
</li>
</ul>
Gece 03:00'te Type 10 + beklenmeyen hesap = incele. PowerShell:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddHours(-24)} |
  Select-Object TimeCreated,@{n='Target';e={&#36;_.Properties[5].Value}},@{n='LogonType';e={&#36;_.Properties[8].Value}},@{n='Ip';e={&#36;_.Properties[18].Value}} |
  Format-Table -AutoSize</code></div></div><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4625 — başarısız oturum</span></span><br />
Brute force ve parola spray burada görünür. Aynı Source IP'den çok sayıda 4625, ardından bir 4624 = klasik pattern.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-6)} |
  Group-Object { &#36;_.Properties[19].Value } | Sort-Object Count -Descending | Select-Object -First 10</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4688 — yeni süreç</span></span><br />
Parent-child ilişkisi ve CommandLine (açıksa) lateral movement / LOLBin avında altındır. Örnek şüpheli: winword.exe -&gt; powershell.exe, veya userinit -&gt; unknown.exe.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddHours(-4)} |
  Where-Object { &#36;_.Message -match 'powershell|cmd.exe|rundll32|mshta' } |
  Select-Object -First 20 TimeCreated, Message</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1102 — audit log temizlendi</span></span><br />
Security günlüğünün temizlenmesi nadiren meşrudur. Görürseniz kim yaptı, ne zaman, hangi süreç sorularını hemen sorun. Bu olay tek başına yüksek öncelikli alarındır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hızlı av senaryoları</span></span><br />
<ol type="1" class="mycode_list"><li>RDP brute: 4625 Type 10 yoğunluğu + nadir 4624<br />
</li>
<li>Pass-the-hash şüphesi: Type 3 logon pattern'leri + aynı anda süreç anormallikleri (ileri seviye; tek başına 4624 yetmez)<br />
</li>
<li>Log silme: 1102<br />
</li>
<li>Şüpheli yönetim aracı: 4688 içinde ntdsutil, diskshadow, procdump vb. (ortamınıza göre allowlist)<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">SIEM'e taşırken</span></span><br />
Ham Event Log'u WEF/Winlogbeat ile toplayın. Alanları parse edin (LogonType, IpAddress, CommandLine). Sigma kuralları bu ID'ler üzerine yazılır; yerel PowerShell avı Sigma'ya giden yoldur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Microsoft Event ID referansları (learn.microsoft.com)<br />
</li>
<li>MITRE ATT&amp;CK: Logon / Process Discovery teknikleri<br />
</li>
<li>SigmaHQ rules (windows)<br />
</li>
</ul>
<br />
Sizin ilk baktığınız Event ID hangisi? 4672 (özel yetkiler) ekleyenler de yorumda anlatsın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">wevtutil ve uzak log</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>wevtutil qe Security /q:"*[System[(EventID=4625)]]" /c:20 /f:text</code></div></div>WEF (Windows Event Forwarding) ile Collector kurmak, her endpoint'e SSH atmadan av yapmanızı sağlar. Collector şablonlarında 4624/4625/4688/1102'yi önceliklendirin. Disk dolmasın diye retention ve filtreyi ayarlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sysmon ile zenginleştirme</span></span><br />
4688 CommandLine bazen eksik kalır; Sysmon Event ID 1 process create, 3 network connect, 11 file create ile tabloyu tamamlar. SwiftOnSecurity veya Olaf Hartong yapılandırmalarını labda deneyip gürültüyü kendi baselineline göre kırpın.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=152" target="_blank" title="">100-n11-d9183f.png</a> (Dosya Boyutu: 62.29 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=152" loading="lazy"  alt="[Resim: attachment.php?aid=152]" class="mycode_img" /></div>
<br />
Merhaba,<br />
<br />
SIEM yokken veya EDR alarmı gelmeden önce Windows Event Log hâlâ en yakın dostunuz. Bu yazıda tehdit avında ilk baktığım dört olay kimliğini (4624, 4625, 4688, 1102) ve bunları nasıl sorguladığımı anlatıyorum. Ortam: Windows 11 / Server lab, PowerShell ile.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Önkoşul: audit politikası</span></span><br />
4688 (yeni süreç) varsayılanda her yerde dolu olmayabilir. Local Security Policy veya GPO ile "Audit Process Creation" Success açık olmalı; komut satırını da loglamak için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># PowerShell (yönetici) - lab
auditpol /set /subcategory:"Process Creation" /success:enable
# Komut satırı ekleme (Sysmon yoksa)
reg add HKLM&#92;Software&#92;Microsoft&#92;Windows&#92;CurrentVersion&#92;Policies&#92;System&#92;Audit /v ProcessCreationIncludeCmdLine_Enabled /t REG_DWORD /d 1 /f</code></div></div>Üretimde GPO ile yapın; kalıcı ve merkezi olsun. Sysmon varsa 1/3/11 ile bu boşluklar çok daha zengin dolar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4624 — başarılı oturum</span></span><br />
Logon Type değerleri kritik:<ul class="mycode_list"><li>2: etkileşimli (konsol)<br />
</li>
<li>3: ağ (SMB, vs.)<br />
</li>
<li>10: RemoteInteractive (RDP)<br />
</li>
<li>5: servis<br />
</li>
</ul>
Gece 03:00'te Type 10 + beklenmeyen hesap = incele. PowerShell:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddHours(-24)} |
  Select-Object TimeCreated,@{n='Target';e={&#36;_.Properties[5].Value}},@{n='LogonType';e={&#36;_.Properties[8].Value}},@{n='Ip';e={&#36;_.Properties[18].Value}} |
  Format-Table -AutoSize</code></div></div><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4625 — başarısız oturum</span></span><br />
Brute force ve parola spray burada görünür. Aynı Source IP'den çok sayıda 4625, ardından bir 4624 = klasik pattern.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-6)} |
  Group-Object { &#36;_.Properties[19].Value } | Sort-Object Count -Descending | Select-Object -First 10</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4688 — yeni süreç</span></span><br />
Parent-child ilişkisi ve CommandLine (açıksa) lateral movement / LOLBin avında altındır. Örnek şüpheli: winword.exe -&gt; powershell.exe, veya userinit -&gt; unknown.exe.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddHours(-4)} |
  Where-Object { &#36;_.Message -match 'powershell|cmd.exe|rundll32|mshta' } |
  Select-Object -First 20 TimeCreated, Message</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1102 — audit log temizlendi</span></span><br />
Security günlüğünün temizlenmesi nadiren meşrudur. Görürseniz kim yaptı, ne zaman, hangi süreç sorularını hemen sorun. Bu olay tek başına yüksek öncelikli alarındır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hızlı av senaryoları</span></span><br />
<ol type="1" class="mycode_list"><li>RDP brute: 4625 Type 10 yoğunluğu + nadir 4624<br />
</li>
<li>Pass-the-hash şüphesi: Type 3 logon pattern'leri + aynı anda süreç anormallikleri (ileri seviye; tek başına 4624 yetmez)<br />
</li>
<li>Log silme: 1102<br />
</li>
<li>Şüpheli yönetim aracı: 4688 içinde ntdsutil, diskshadow, procdump vb. (ortamınıza göre allowlist)<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">SIEM'e taşırken</span></span><br />
Ham Event Log'u WEF/Winlogbeat ile toplayın. Alanları parse edin (LogonType, IpAddress, CommandLine). Sigma kuralları bu ID'ler üzerine yazılır; yerel PowerShell avı Sigma'ya giden yoldur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Microsoft Event ID referansları (learn.microsoft.com)<br />
</li>
<li>MITRE ATT&amp;CK: Logon / Process Discovery teknikleri<br />
</li>
<li>SigmaHQ rules (windows)<br />
</li>
</ul>
<br />
Sizin ilk baktığınız Event ID hangisi? 4672 (özel yetkiler) ekleyenler de yorumda anlatsın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">wevtutil ve uzak log</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>wevtutil qe Security /q:"*[System[(EventID=4625)]]" /c:20 /f:text</code></div></div>WEF (Windows Event Forwarding) ile Collector kurmak, her endpoint'e SSH atmadan av yapmanızı sağlar. Collector şablonlarında 4624/4625/4688/1102'yi önceliklendirin. Disk dolmasın diye retention ve filtreyi ayarlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sysmon ile zenginleştirme</span></span><br />
4688 CommandLine bazen eksik kalır; Sysmon Event ID 1 process create, 3 network connect, 11 file create ile tabloyu tamamlar. SwiftOnSecurity veya Olaf Hartong yapılandırmalarını labda deneyip gürültüyü kendi baselineline göre kırpın.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=152" target="_blank" title="">100-n11-d9183f.png</a> (Dosya Boyutu: 62.29 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Entra ID Servis Sorumlusu Girişlerini İzlemek: KQL ile Tespit Kuralları]]></title>
			<link>https://www.turkteam.org/konu-entra-id-servis-sorumlusu-girislerini-izlemek-kql-ile-tespit-kurallari.html</link>
			<pubDate>Sat, 17 Oct 2026 16:18:55 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-entra-id-servis-sorumlusu-girislerini-izlemek-kql-ile-tespit-kurallari.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=125" loading="lazy"  alt="[Resim: attachment.php?aid=125]" class="mycode_img" /></div>
<br />
Herkese iyi akşamlar.<br />
<br />
Bu hafta yaşanan ConnectWise Cloud Backup olayı, SOC tarafında uzun süredir ihmal edilen bir konuyu yeniden gündeme getirdi: <span style="font-weight: bold;" class="mycode_b">servis sorumlusu (service principal) girişleri</span>. Çoğu ekip kullanıcı girişlerini didik didik izlerken, uygulamaların kendi adına aldığı token'lara pek bakmıyor. Bu yazıda Microsoft Sentinel (ya da Log Analytics) üzerinde bu boşluğu nasıl kapatabileceğinizi, sakin sakin ve adım adım anlatmaya çalışacağım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Önce kavram: Kullanıcı girişi ile servis sorumlusu girişi farkı</span></span><br />
Bir kullanıcı giriş yaptığında arkasında bir insan, bir cihaz ve genelde MFA vardır. Bir uygulama ise "client credentials" akışıyla, yani bir secret ya da sertifikayla doğrudan token alır. Ortada MFA yoktur, koşullu erişim politikaları çoğu zaman uygulanmaz. Bu yüzden bir uygulamanın secret'ı çalındığında saldırgan, uygulamanın sahip olduğu her izni miras alır.<br />
<br />
Entra tarafında bu girişler ayrı bir yerde tutulur. Sentinel'de karşılık gelen tablo:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AADServicePrincipalSignInLogs</code></div></div>Bu tablo varsayılan olarak gelmez; Entra ID veri bağlayıcısında "ServicePrincipalSignInLogs" seçeneğini işaretlemeniz gerekir. İlk iş, bunun açık olduğunu kontrol etmek:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AADServicePrincipalSignInLogs
| where TimeGenerated &gt; ago(1d)
| summarize count()</code></div></div>Sonuç sıfırsa, veri gelmiyor demektir. Önce bağlayıcıyı düzeltin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural 1: Uygulama başına bilinen IP tabanı</span></span><br />
Her uygulamanın normalde nereden bağlandığını öğrenmek, en değerli tespittir. Son 14 günün IP'lerini taban olarak alıp, bugün yeni görülen IP'leri çıkarıyoruz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>let taban = AADServicePrincipalSignInLogs
  | where TimeGenerated between (ago(14d) .. ago(1d))
  | summarize by AppId, IPAddress;
AADServicePrincipalSignInLogs
| where TimeGenerated &gt; ago(1d)
| where ResultType == 0
| join kind=leftanti taban on AppId, IPAddress
| summarize Ilk=min(TimeGenerated), Son=max(TimeGenerated), Adet=count()
    by ServicePrincipalName, AppId, IPAddress
| order by Adet desc</code></div></div>İlk hafta gürültülü olacaktır. Bulut sağlayıcıların IP havuzları değiştikçe yanlış pozitif görebilirsiniz. Bunu kabul edip birkaç gün boyunca beyaz liste oluşturmak gerekiyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural 2: Uygulamaya yeni kimlik bilgisi eklenmesi</span></span><br />
ConnectWise olayında en kritik adım, saldırganın başka uygulamalara yeni client secret eklemesiydi. Bu, kalıcılık için çok kullanılan bir yöntem. AuditLogs tablosunda şöyle yakalanır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AuditLogs
| where TimeGenerated &gt; ago(7d)
| where OperationName has_any ("Add service principal credentials",
                               "Update application - Certificates and secrets management")
| extend Yapan = coalesce(tostring(InitiatedBy.user.userPrincipalName),
                          tostring(InitiatedBy.app.displayName))
| extend Hedef = tostring(TargetResources[0].displayName)
| project TimeGenerated, OperationName, Yapan, Hedef, Result</code></div></div>Burada dikkat: <span style="font-weight: bold;" class="mycode_b">Yapan</span> alanı bir uygulama ise (yani InitiatedBy.app doluysa), bu çok daha şüphelidir. İnsanlar secret ekler, uygulamaların başka uygulamaya secret eklemesi nadir bir durumdur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural 3: Dizin rolüne kendini ekleyen uygulamalar</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AuditLogs
| where TimeGenerated &gt; ago(7d)
| where OperationName == "Add member to role"
| where isnotempty(InitiatedBy.app.displayName)
| extend Rol = tostring(TargetResources[0].modifiedProperties[1].newValue)
| project TimeGenerated, Uygulama=tostring(InitiatedBy.app.displayName), Rol, TargetResources</code></div></div>modifiedProperties dizisinin sırası kiracıdan kiracıya değişebilir; ilk çalıştırmada ham çıktıya bakıp indeksi doğrulamanızı öneririm.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Operasyonel öneriler</span></span><ul class="mycode_list"><li>Bu üç kuralı önce "sadece raporla" modunda bir hafta çalıştırın, sonra alarma çevirin.<br />
</li>
<li>Yüksek izinli uygulamaların bir listesini çıkarın (Directory.ReadWrite.All, Mail.ReadWrite, Files.ReadWrite.All). Alarm önceliğini bu listeye göre belirleyin.<br />
</li>
<li>Microsoft Graph activity log'larını açın. Graph üzerinden yapılan dizin okumaları başka türlü iz bırakmayabilir.<br />
</li>
<li>Olay müdahale planınıza "uygulama secret'ı çalındı" senaryosunu ekleyin. Kullanıcı parolasını sıfırlamak burada işe yaramaz; secret'ı döndürmek ve uygulamayı devre dışı bırakmak gerekir.<br />
</li>
</ul>
<br />
Benim deneyimim şu: bu tür kurallar ilk günlerde pek alarm üretmez ve ekip "gerek var mıydı" diye sorar. Ama tam olarak o bir gün geldiğinde, elinizde başka hiçbir iz olmayabilir.<br />
<br />
Sorularınızı konu altında sorabilirsiniz, kendi ortamınızda karşılaştığınız yanlış pozitifleri paylaşırsanız birlikte iyileştirebiliriz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Microsoft Learn - AADServicePrincipalSignInLogs ve AuditLogs tablo referansları<br />
</li>
<li>Microsoft Learn - Entra ID sign-in log türleri<br />
</li>
<li>The Hacker News - ConnectWise Cloud Backup olayı (17 Ekim 2026)<br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=125" target="_blank" title="">004-bilge-entra-sp.png</a> (Dosya Boyutu: 67.91 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=125" loading="lazy"  alt="[Resim: attachment.php?aid=125]" class="mycode_img" /></div>
<br />
Herkese iyi akşamlar.<br />
<br />
Bu hafta yaşanan ConnectWise Cloud Backup olayı, SOC tarafında uzun süredir ihmal edilen bir konuyu yeniden gündeme getirdi: <span style="font-weight: bold;" class="mycode_b">servis sorumlusu (service principal) girişleri</span>. Çoğu ekip kullanıcı girişlerini didik didik izlerken, uygulamaların kendi adına aldığı token'lara pek bakmıyor. Bu yazıda Microsoft Sentinel (ya da Log Analytics) üzerinde bu boşluğu nasıl kapatabileceğinizi, sakin sakin ve adım adım anlatmaya çalışacağım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Önce kavram: Kullanıcı girişi ile servis sorumlusu girişi farkı</span></span><br />
Bir kullanıcı giriş yaptığında arkasında bir insan, bir cihaz ve genelde MFA vardır. Bir uygulama ise "client credentials" akışıyla, yani bir secret ya da sertifikayla doğrudan token alır. Ortada MFA yoktur, koşullu erişim politikaları çoğu zaman uygulanmaz. Bu yüzden bir uygulamanın secret'ı çalındığında saldırgan, uygulamanın sahip olduğu her izni miras alır.<br />
<br />
Entra tarafında bu girişler ayrı bir yerde tutulur. Sentinel'de karşılık gelen tablo:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AADServicePrincipalSignInLogs</code></div></div>Bu tablo varsayılan olarak gelmez; Entra ID veri bağlayıcısında "ServicePrincipalSignInLogs" seçeneğini işaretlemeniz gerekir. İlk iş, bunun açık olduğunu kontrol etmek:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AADServicePrincipalSignInLogs
| where TimeGenerated &gt; ago(1d)
| summarize count()</code></div></div>Sonuç sıfırsa, veri gelmiyor demektir. Önce bağlayıcıyı düzeltin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural 1: Uygulama başına bilinen IP tabanı</span></span><br />
Her uygulamanın normalde nereden bağlandığını öğrenmek, en değerli tespittir. Son 14 günün IP'lerini taban olarak alıp, bugün yeni görülen IP'leri çıkarıyoruz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>let taban = AADServicePrincipalSignInLogs
  | where TimeGenerated between (ago(14d) .. ago(1d))
  | summarize by AppId, IPAddress;
AADServicePrincipalSignInLogs
| where TimeGenerated &gt; ago(1d)
| where ResultType == 0
| join kind=leftanti taban on AppId, IPAddress
| summarize Ilk=min(TimeGenerated), Son=max(TimeGenerated), Adet=count()
    by ServicePrincipalName, AppId, IPAddress
| order by Adet desc</code></div></div>İlk hafta gürültülü olacaktır. Bulut sağlayıcıların IP havuzları değiştikçe yanlış pozitif görebilirsiniz. Bunu kabul edip birkaç gün boyunca beyaz liste oluşturmak gerekiyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural 2: Uygulamaya yeni kimlik bilgisi eklenmesi</span></span><br />
ConnectWise olayında en kritik adım, saldırganın başka uygulamalara yeni client secret eklemesiydi. Bu, kalıcılık için çok kullanılan bir yöntem. AuditLogs tablosunda şöyle yakalanır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AuditLogs
| where TimeGenerated &gt; ago(7d)
| where OperationName has_any ("Add service principal credentials",
                               "Update application - Certificates and secrets management")
| extend Yapan = coalesce(tostring(InitiatedBy.user.userPrincipalName),
                          tostring(InitiatedBy.app.displayName))
| extend Hedef = tostring(TargetResources[0].displayName)
| project TimeGenerated, OperationName, Yapan, Hedef, Result</code></div></div>Burada dikkat: <span style="font-weight: bold;" class="mycode_b">Yapan</span> alanı bir uygulama ise (yani InitiatedBy.app doluysa), bu çok daha şüphelidir. İnsanlar secret ekler, uygulamaların başka uygulamaya secret eklemesi nadir bir durumdur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kural 3: Dizin rolüne kendini ekleyen uygulamalar</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>AuditLogs
| where TimeGenerated &gt; ago(7d)
| where OperationName == "Add member to role"
| where isnotempty(InitiatedBy.app.displayName)
| extend Rol = tostring(TargetResources[0].modifiedProperties[1].newValue)
| project TimeGenerated, Uygulama=tostring(InitiatedBy.app.displayName), Rol, TargetResources</code></div></div>modifiedProperties dizisinin sırası kiracıdan kiracıya değişebilir; ilk çalıştırmada ham çıktıya bakıp indeksi doğrulamanızı öneririm.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Operasyonel öneriler</span></span><ul class="mycode_list"><li>Bu üç kuralı önce "sadece raporla" modunda bir hafta çalıştırın, sonra alarma çevirin.<br />
</li>
<li>Yüksek izinli uygulamaların bir listesini çıkarın (Directory.ReadWrite.All, Mail.ReadWrite, Files.ReadWrite.All). Alarm önceliğini bu listeye göre belirleyin.<br />
</li>
<li>Microsoft Graph activity log'larını açın. Graph üzerinden yapılan dizin okumaları başka türlü iz bırakmayabilir.<br />
</li>
<li>Olay müdahale planınıza "uygulama secret'ı çalındı" senaryosunu ekleyin. Kullanıcı parolasını sıfırlamak burada işe yaramaz; secret'ı döndürmek ve uygulamayı devre dışı bırakmak gerekir.<br />
</li>
</ul>
<br />
Benim deneyimim şu: bu tür kurallar ilk günlerde pek alarm üretmez ve ekip "gerek var mıydı" diye sorar. Ama tam olarak o bir gün geldiğinde, elinizde başka hiçbir iz olmayabilir.<br />
<br />
Sorularınızı konu altında sorabilirsiniz, kendi ortamınızda karşılaştığınız yanlış pozitifleri paylaşırsanız birlikte iyileştirebiliriz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Microsoft Learn - AADServicePrincipalSignInLogs ve AuditLogs tablo referansları<br />
</li>
<li>Microsoft Learn - Entra ID sign-in log türleri<br />
</li>
<li>The Hacker News - ConnectWise Cloud Backup olayı (17 Ekim 2026)<br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=125" target="_blank" title="">004-bilge-entra-sp.png</a> (Dosya Boyutu: 67.91 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sigma Kurallari ile Tespit Muhendisligi: SIEM Bagimsiz Kural Yazimi]]></title>
			<link>https://www.turkteam.org/konu-sigma-kurallari-ile-tespit-muhendisligi-siem-bagimsiz-kural-yazimi.html</link>
			<pubDate>Sat, 17 Oct 2026 11:31:20 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=2">Tonyukuk</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-sigma-kurallari-ile-tespit-muhendisligi-siem-bagimsiz-kural-yazimi.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=120" loading="lazy"  alt="[Resim: attachment.php?aid=120]" class="mycode_img" /></div>
<br />
Mavi takımda bir süre çalışınca şu sorunla karşılaşırsınız: Splunk için yazdığınız tespit kuralı, kurum Elastic'e geçince çöpe gidiyor. Her SIEM'in kendi sorgu dili var ve kurallarınız o dile kilitleniyor. İşte Sigma tam da bu sorunu çözmek için var. Bu rehberde Sigma'yı sıfırdan, pratik bir kural yazarak anlatıyorum.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span><br />
<ol type="1" class="mycode_list"><li>Sigma nedir, neden gerekli?<br />
</li>
<li>Bir Sigma kuralının anatomisi<br />
</li>
<li>İlk kuralı yazmak<br />
</li>
<li>sigma-cli ile dönüştürme<br />
</li>
<li>İyi kural yazmanın ilkeleri<br />
</li>
<li>Kaynaklar ve pratik<br />
</li>
<li>Yasal/operasyonel not<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sigma Nedir?</span></span><br />
<br />
Sigma, log tabanlı tespit kuralları için <span style="font-weight: bold;" class="mycode_b">genel ve SIEM'den bağımsız</span> bir formattır. YAML ile yazılır. Mantık şudur: kuralı bir kez Sigma formatında yazarsınız, sonra bir dönüştürücüyle (converter) Splunk SPL, Elastic KQL, Microsoft Sentinel, QRadar gibi hedeflerin diline çevirirsiniz. Yani "tespit mantığının ortak dili". IOC'ler için nasıl ki STIX varsa, tespit kuralları için de Sigma odur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Bir Sigma Kuralının Anatomisi</span></span><br />
<br />
Temel alanlar:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">title / id / status:</span> Kuralın adı, benzersiz kimliği ve olgunluğu.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">logsource:</span> Hangi log kaynağı (ör. windows / process_creation).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">detection:</span> Asıl mantık; selection blokları ve condition.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">level:</span> Önem derecesi (low/medium/high/critical).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">falsepositives:</span> Bilinen yanlış alarm senaryoları.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk Kuralı Yazmak</span></span><br />
<br />
Örnek: whoami komutunun bir web sunucusu süreci tarafından çalıştırılması çoğu zaman şüphelidir (web shell sonrası keşif). Basit bir Sigma kuralı:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>title: Web Sunucusu Tarafindan whoami Calistirilmasi
id: 7b2a1f4c-1111-2222-3333-444455556666
status: experimental
description: Web sunucusu surecinin alt surec olarak whoami calistirmasi
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    ParentImage|endswith:
      - '&#92;w3wp.exe'
      - '&#92;httpd.exe'
      - '&#92;nginx.exe'
    Image|endswith: '&#92;whoami.exe'
  condition: selection
falsepositives:
  - Yoneticinin elle yaptigi mesru kontroller
level: high
tags:
  - attack.discovery
  - attack.t1033</code></div></div><br />
Buradaki mantık: ebeveyn süreç bir web sunucusu ve çalışan komut whoami ise alarm üret. MITRE ATT&amp;CK etiketi (T1033) ile de tekniği işaretledik.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">sigma-cli ile Dönüştürme</span></span><br />
<br />
Resmi araç <span style="font-weight: bold;" class="mycode_b">sigma-cli</span> (pySigma tabanlı) kuralı hedef SIEM diline çevirir:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pipx install sigma-cli
# veya: pip install sigma-cli

# Splunk hedefi icin backend kur
sigma plugin install splunk

# Donusturme
sigma convert -t splunk kural.yml</code></div></div><br />
Aynı kuralı -t ile farklı hedeflere (ör. elasticsearch, loki) çevirebilirsiniz. Böylece tek kaynak, çok SIEM.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İyi Kural Yazmanın İlkeleri</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Davranışa odaklan:</span> Tek bir dosya adına değil, tekniğin değişmez davranışına kural yazın (ör. "hangi ebeveyn hangi çocuğu çalıştırdı").<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Yanlış alarmı en baştan düşün:</span> falsepositives alanını doldurmak, kuralın üretime alınabilirliğini belirler.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ATT&amp;CK ile etiketle:</span> Kapsamınızı (coverage) ölçebilmek için her kuralı tekniğe bağlayın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Önce test:</span> Kuralı üretime almadan önce bilinen bir örnek olayla (ör. Atomic Red Team) tetikleyip doğrulayın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Gürültüyü yönet:</span> Çok geniş kural, analisti alarm yorgunluğuna sürükler; dar ve anlamlı tutun.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar ve Pratik</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">SigmaHQ</span> deposu: binlerce hazır topluluk kuralı; okuyarak kalıpları öğrenin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Atomic Red Team</span>: kurallarınızı güvenle tetikleyip test etmek için.<br />
</li>
<li>Kendi Windows lab'ınızda Sysmon + bir SIEM (Wazuh/Elastic) kurup uçtan uca deneyin: olay üret, logla, Sigma yaz, dönüştür, alarmı gör.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
<br />
Sigma, tespit mühendisliğini "bir SIEM'e kilitli uğraş" olmaktan çıkarıp taşınabilir, paylaşılabilir ve ölçülebilir bir disipline dönüştürüyor. Tek bir basit kuralla başlayın, SigmaHQ'daki örnekleri okuyun, kendi lab'ınızda test edin. Siz hangi SIEM backend'ini kullanıyorsunuz ve Sigma dönüşümünde takıldığınız yerler neler, yorumlarda paylaşın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal/Operasyonel Not</span></span><br />
<br />
Bu rehberdeki tüm pratikler kendi lab ortamınızda veya yönettiğiniz/izinli sistemlerde yapılmalıdır. Test amaçlı saldırı simülasyonları (Atomic Red Team vb.) yalnızca kendi makinelerinizde çalıştırılmalıdır.<br />
<br />
Görsel: TurkTeam özgün kapak görseli<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=120" target="_blank" title="">tonyukuk-19-sigma.jpg</a> (Dosya Boyutu: 81.62 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=120" loading="lazy"  alt="[Resim: attachment.php?aid=120]" class="mycode_img" /></div>
<br />
Mavi takımda bir süre çalışınca şu sorunla karşılaşırsınız: Splunk için yazdığınız tespit kuralı, kurum Elastic'e geçince çöpe gidiyor. Her SIEM'in kendi sorgu dili var ve kurallarınız o dile kilitleniyor. İşte Sigma tam da bu sorunu çözmek için var. Bu rehberde Sigma'yı sıfırdan, pratik bir kural yazarak anlatıyorum.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span><br />
<ol type="1" class="mycode_list"><li>Sigma nedir, neden gerekli?<br />
</li>
<li>Bir Sigma kuralının anatomisi<br />
</li>
<li>İlk kuralı yazmak<br />
</li>
<li>sigma-cli ile dönüştürme<br />
</li>
<li>İyi kural yazmanın ilkeleri<br />
</li>
<li>Kaynaklar ve pratik<br />
</li>
<li>Yasal/operasyonel not<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sigma Nedir?</span></span><br />
<br />
Sigma, log tabanlı tespit kuralları için <span style="font-weight: bold;" class="mycode_b">genel ve SIEM'den bağımsız</span> bir formattır. YAML ile yazılır. Mantık şudur: kuralı bir kez Sigma formatında yazarsınız, sonra bir dönüştürücüyle (converter) Splunk SPL, Elastic KQL, Microsoft Sentinel, QRadar gibi hedeflerin diline çevirirsiniz. Yani "tespit mantığının ortak dili". IOC'ler için nasıl ki STIX varsa, tespit kuralları için de Sigma odur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Bir Sigma Kuralının Anatomisi</span></span><br />
<br />
Temel alanlar:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">title / id / status:</span> Kuralın adı, benzersiz kimliği ve olgunluğu.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">logsource:</span> Hangi log kaynağı (ör. windows / process_creation).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">detection:</span> Asıl mantık; selection blokları ve condition.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">level:</span> Önem derecesi (low/medium/high/critical).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">falsepositives:</span> Bilinen yanlış alarm senaryoları.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk Kuralı Yazmak</span></span><br />
<br />
Örnek: whoami komutunun bir web sunucusu süreci tarafından çalıştırılması çoğu zaman şüphelidir (web shell sonrası keşif). Basit bir Sigma kuralı:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>title: Web Sunucusu Tarafindan whoami Calistirilmasi
id: 7b2a1f4c-1111-2222-3333-444455556666
status: experimental
description: Web sunucusu surecinin alt surec olarak whoami calistirmasi
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    ParentImage|endswith:
      - '&#92;w3wp.exe'
      - '&#92;httpd.exe'
      - '&#92;nginx.exe'
    Image|endswith: '&#92;whoami.exe'
  condition: selection
falsepositives:
  - Yoneticinin elle yaptigi mesru kontroller
level: high
tags:
  - attack.discovery
  - attack.t1033</code></div></div><br />
Buradaki mantık: ebeveyn süreç bir web sunucusu ve çalışan komut whoami ise alarm üret. MITRE ATT&amp;CK etiketi (T1033) ile de tekniği işaretledik.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">sigma-cli ile Dönüştürme</span></span><br />
<br />
Resmi araç <span style="font-weight: bold;" class="mycode_b">sigma-cli</span> (pySigma tabanlı) kuralı hedef SIEM diline çevirir:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pipx install sigma-cli
# veya: pip install sigma-cli

# Splunk hedefi icin backend kur
sigma plugin install splunk

# Donusturme
sigma convert -t splunk kural.yml</code></div></div><br />
Aynı kuralı -t ile farklı hedeflere (ör. elasticsearch, loki) çevirebilirsiniz. Böylece tek kaynak, çok SIEM.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İyi Kural Yazmanın İlkeleri</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Davranışa odaklan:</span> Tek bir dosya adına değil, tekniğin değişmez davranışına kural yazın (ör. "hangi ebeveyn hangi çocuğu çalıştırdı").<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Yanlış alarmı en baştan düşün:</span> falsepositives alanını doldurmak, kuralın üretime alınabilirliğini belirler.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ATT&amp;CK ile etiketle:</span> Kapsamınızı (coverage) ölçebilmek için her kuralı tekniğe bağlayın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Önce test:</span> Kuralı üretime almadan önce bilinen bir örnek olayla (ör. Atomic Red Team) tetikleyip doğrulayın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Gürültüyü yönet:</span> Çok geniş kural, analisti alarm yorgunluğuna sürükler; dar ve anlamlı tutun.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar ve Pratik</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">SigmaHQ</span> deposu: binlerce hazır topluluk kuralı; okuyarak kalıpları öğrenin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Atomic Red Team</span>: kurallarınızı güvenle tetikleyip test etmek için.<br />
</li>
<li>Kendi Windows lab'ınızda Sysmon + bir SIEM (Wazuh/Elastic) kurup uçtan uca deneyin: olay üret, logla, Sigma yaz, dönüştür, alarmı gör.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
<br />
Sigma, tespit mühendisliğini "bir SIEM'e kilitli uğraş" olmaktan çıkarıp taşınabilir, paylaşılabilir ve ölçülebilir bir disipline dönüştürüyor. Tek bir basit kuralla başlayın, SigmaHQ'daki örnekleri okuyun, kendi lab'ınızda test edin. Siz hangi SIEM backend'ini kullanıyorsunuz ve Sigma dönüşümünde takıldığınız yerler neler, yorumlarda paylaşın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal/Operasyonel Not</span></span><br />
<br />
Bu rehberdeki tüm pratikler kendi lab ortamınızda veya yönettiğiniz/izinli sistemlerde yapılmalıdır. Test amaçlı saldırı simülasyonları (Atomic Red Team vb.) yalnızca kendi makinelerinizde çalıştırılmalıdır.<br />
<br />
Görsel: TurkTeam özgün kapak görseli<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=120" target="_blank" title="">tonyukuk-19-sigma.jpg</a> (Dosya Boyutu: 81.62 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sigma Kurallari ile Tespit: Windows Event Loglarindan SIEM Kuralina]]></title>
			<link>https://www.turkteam.org/konu-sigma-kurallari-ile-tespit-windows-event-loglarindan-siem-kuralina.html</link>
			<pubDate>Sat, 17 Oct 2026 11:22:56 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-sigma-kurallari-ile-tespit-windows-event-loglarindan-siem-kuralina.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=88" loading="lazy"  alt="[Resim: attachment.php?aid=88]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Mavi takim tarafinda en degerli becerilerden biri, bir saldiri davranisini jenerik bir tespit kuralina cevirebilmek. Sigma tam da bunun icin var: tek bir YAML kuralini yazip Splunk, Elastic, Sentinel gibi farkli SIEM'lere cevirebiliyorsunuz. Bu konuda Sigma mantigini ve basit bir kural yazimini adim adim gosterecegim.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatilacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Sigma nedir, neden standart haline geldi?<br />
</li>
<li>Kural anatomisi (logsource, detection)<br />
</li>
<li>Ornek: supheli PowerShell indirmesi<br />
</li>
<li>sigma-cli ile hedefe cevirme<br />
</li>
<li>False positive yonetimi<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Sigma Nedir?</span></span><br />
Sigma, log tabanli tespit kurallari icin acik bir imza formatidir. YARA dosyalara, Snort ag trafigine ne ise, Sigma da log olaylarina odur. Avantaji tasinabilirlik: bir kez yazilan kural, backend'e gore hedef sorguya cevrilir. 2026 itibariyle topluluk deposu binlerce hazir kural barindiriyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Kural Anatomisi</span></span><br />
Her kuralin iki kilit bolumu vardir: hangi logda arayacagini soyleyen <span style="font-weight: bold;" class="mycode_b">logsource</span> ve neyi arayacagini soyleyen <span style="font-weight: bold;" class="mycode_b">detection</span>.<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>title: Supheli PowerShell Web Indirmesi
status: experimental
logsource:
    product: windows
    category: process_creation
detection:
    selection:
        Image|endswith: '&#92;powershell.exe'
        CommandLine|contains:
            - 'DownloadString'
            - 'IEX'
            - 'Invoke-WebRequest'
    condition: selection
level: medium</code></div></div><br />
Burada process olusturma loglarinda (Sysmon Event ID 1 veya Security 4688) powershell.exe'nin indirme/execute kaliplariyla calismasini ariyoruz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Hedefe Cevirme</span></span><br />
sigma-cli ile kurali istediginiz backend'e cevirirsiniz:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pip install sigma-cli
sigma plugin install splunk
sigma convert -t splunk -p sysmon powershell_download.yml</code></div></div><br />
Cikan sorguyu dogrudan SIEM'inizde arama olarak kullanabilir veya alarma baglayabilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) False Positive Yonetimi</span></span><br />
Hicbir kural ilk gunden mukemmel degildir. Kurali yazdiktan sonra birkac gun "audit" modunda calistirip gelen eslesmeleri inceleyin. Mesru yonetim scriptleri de Invoke-WebRequest kullanabilir; bu durumda bilinen sunucu adlarini veya imzali scriptleri <span style="font-weight: bold;" class="mycode_b">filter</span> blokuyla elersiniz:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>filter:
        CommandLine|contains: 'https://repo.sirketiniz.local'
    condition: selection and not filter</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) Pratik Tavsiye</span></span><br />
Once Sysmon'u iyi bir config ile kurun (telemetri olmadan kural calismaz), sonra MITRE ATT&amp;CK tekniklerinden birini secip ona karsilik gelen Sigma kurallarini inceleyin. Hazir kurallari okumak, kendi kuralinizi yazmanin en hizli yoludur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://github.com/SigmaHQ/sigma" target="_blank" rel="noopener" class="mycode_url">SigmaHQ - Topluluk kural deposu</a><br />
</li>
<li><a href="https://sigmahq.io/" target="_blank" rel="noopener" class="mycode_url">Sigma resmi site ve dokumantasyon</a><br />
</li>
<li><a href="https://attack.mitre.org/" target="_blank" rel="noopener" class="mycode_url">MITRE ATT&amp;CK</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal not:</span> Tespit kurallarini yalnizca yonettiginiz veya izinli oldugunuz log kaynaklarinda uygulayin.</blockquote>
<br />
Siz hangi teknik icin kural yaziyorsunuz, altta paylasin.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=88" target="_blank" title="">bilgekagan-b02.png</a> (Dosya Boyutu: 87.9 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=88" loading="lazy"  alt="[Resim: attachment.php?aid=88]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Mavi takim tarafinda en degerli becerilerden biri, bir saldiri davranisini jenerik bir tespit kuralina cevirebilmek. Sigma tam da bunun icin var: tek bir YAML kuralini yazip Splunk, Elastic, Sentinel gibi farkli SIEM'lere cevirebiliyorsunuz. Bu konuda Sigma mantigini ve basit bir kural yazimini adim adim gosterecegim.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatilacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Sigma nedir, neden standart haline geldi?<br />
</li>
<li>Kural anatomisi (logsource, detection)<br />
</li>
<li>Ornek: supheli PowerShell indirmesi<br />
</li>
<li>sigma-cli ile hedefe cevirme<br />
</li>
<li>False positive yonetimi<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Sigma Nedir?</span></span><br />
Sigma, log tabanli tespit kurallari icin acik bir imza formatidir. YARA dosyalara, Snort ag trafigine ne ise, Sigma da log olaylarina odur. Avantaji tasinabilirlik: bir kez yazilan kural, backend'e gore hedef sorguya cevrilir. 2026 itibariyle topluluk deposu binlerce hazir kural barindiriyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Kural Anatomisi</span></span><br />
Her kuralin iki kilit bolumu vardir: hangi logda arayacagini soyleyen <span style="font-weight: bold;" class="mycode_b">logsource</span> ve neyi arayacagini soyleyen <span style="font-weight: bold;" class="mycode_b">detection</span>.<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>title: Supheli PowerShell Web Indirmesi
status: experimental
logsource:
    product: windows
    category: process_creation
detection:
    selection:
        Image|endswith: '&#92;powershell.exe'
        CommandLine|contains:
            - 'DownloadString'
            - 'IEX'
            - 'Invoke-WebRequest'
    condition: selection
level: medium</code></div></div><br />
Burada process olusturma loglarinda (Sysmon Event ID 1 veya Security 4688) powershell.exe'nin indirme/execute kaliplariyla calismasini ariyoruz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Hedefe Cevirme</span></span><br />
sigma-cli ile kurali istediginiz backend'e cevirirsiniz:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pip install sigma-cli
sigma plugin install splunk
sigma convert -t splunk -p sysmon powershell_download.yml</code></div></div><br />
Cikan sorguyu dogrudan SIEM'inizde arama olarak kullanabilir veya alarma baglayabilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) False Positive Yonetimi</span></span><br />
Hicbir kural ilk gunden mukemmel degildir. Kurali yazdiktan sonra birkac gun "audit" modunda calistirip gelen eslesmeleri inceleyin. Mesru yonetim scriptleri de Invoke-WebRequest kullanabilir; bu durumda bilinen sunucu adlarini veya imzali scriptleri <span style="font-weight: bold;" class="mycode_b">filter</span> blokuyla elersiniz:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>filter:
        CommandLine|contains: 'https://repo.sirketiniz.local'
    condition: selection and not filter</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) Pratik Tavsiye</span></span><br />
Once Sysmon'u iyi bir config ile kurun (telemetri olmadan kural calismaz), sonra MITRE ATT&amp;CK tekniklerinden birini secip ona karsilik gelen Sigma kurallarini inceleyin. Hazir kurallari okumak, kendi kuralinizi yazmanin en hizli yoludur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://github.com/SigmaHQ/sigma" target="_blank" rel="noopener" class="mycode_url">SigmaHQ - Topluluk kural deposu</a><br />
</li>
<li><a href="https://sigmahq.io/" target="_blank" rel="noopener" class="mycode_url">Sigma resmi site ve dokumantasyon</a><br />
</li>
<li><a href="https://attack.mitre.org/" target="_blank" rel="noopener" class="mycode_url">MITRE ATT&amp;CK</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal not:</span> Tespit kurallarini yalnizca yonettiginiz veya izinli oldugunuz log kaynaklarinda uygulayin.</blockquote>
<br />
Siz hangi teknik icin kural yaziyorsunuz, altta paylasin.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=88" target="_blank" title="">bilgekagan-b02.png</a> (Dosya Boyutu: 87.9 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Wazuh 4.14 ile SIEM'e Giriş: Kurulum ve İlk Alarm Kuralları]]></title>
			<link>https://www.turkteam.org/konu-wazuh-4-14-ile-siem-e-giris-kurulum-ve-ilk-alarm-kurallari.html</link>
			<pubDate>Fri, 16 Oct 2026 11:19:28 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=2">Tonyukuk</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-wazuh-4-14-ile-siem-e-giris-kurulum-ve-ilk-alarm-kurallari.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=27" loading="lazy"  alt="[Resim: attachment.php?aid=27]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Wazuh 4.14 ile SIEM'e Giriş</span></span><br />
<br />
Merhaba,<br />
<br />
Wazuh, açık kaynak XDR/SIEM platformudur. 15 Ekim 2026'da <span style="font-weight: bold;" class="mycode_b">v4.14.9</span> yayımlandı. Bu rehberde tek düğüm lab kurulumu ve ilk alarm mantığını anlatıyoruz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Mimariye kısa bakış<br />
</li>
<li>Lab kurulumu (Docker)<br />
</li>
<li>Ajan bağlama<br />
</li>
<li>İlk kural / uyarısı<br />
</li>
<li>Kaynakça<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Mimari</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Wazuh indexer:</span> Log depolama / arama<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Wazuh manager:</span> Analiz, kurallar, ajan yönetimi<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Wazuh dashboard:</span> Web arayüzü<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Ajanlar:</span> Uç noktalarda log ve FIM<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Lab Kurulumu (Docker)</span></span><br />
Resmi dokümantasyondaki tek düğüm / Docker Compose senaryosunu kendi lab sunucunuzda izleyin:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek iskelet (sürüm numaralarını resmi dokümana göre güncelleyin)
git clone https://github.com/wazuh/wazuh-docker.git
cd wazuh-docker/single-node
docker compose up -d
# Dashboard genelde https://localhost:443</code></div></div>Kurulum bitince varsayılan parolaları hemen değiştirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Ajan Bağlama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Linux ajan (lab)
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor &gt; /tmp/wazuh.gpg
# Resmi paket deposundan ajanı kurun; WAZUH_MANAGER=lab_ip ile kaydedin</code></div></div>Dashboard -&gt; Agents bölümünde ajanın "Active" olduğunu doğrulayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) İlk Alarm Fikri</span></span><ul class="mycode_list"><li>SSH başarısız giriş eşiği<br />
</li>
<li>Yeni root yetkili kullanıcı oluşturma<br />
</li>
<li>Web sunucu 4xx/5xx patlaması<br />
</li>
<li>FIM: /etc/passwd veya /etc/sudoers değişimi<br />
</li>
</ul>
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Manager üzerinde kural dosyaları genelde
# /var/ossec/etc/rules/local_rules.xml
# Değişiklikten sonra:
# systemctl restart wazuh-manager</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) İyi Uygulamalar</span></span><ul class="mycode_list"><li>Lab ile production'ı ayırın<br />
</li>
<li>Ajan iletişimi için TLS zorunlu<br />
</li>
<li>Disk doluluğunu izleyin (indexer şişer)<br />
</li>
<li>Her alarm için "ne yapacağız?" runbook'u yazın<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li><a href="https://documentation.wazuh.com/" target="_blank" rel="noopener" class="mycode_url">Wazuh Documentation</a><br />
</li>
<li><a href="https://github.com/wazuh/wazuh/releases" target="_blank" rel="noopener" class="mycode_url">Wazuh Releases (v4.14.9)</a><br />
</li>
<li><a href="https://github.com/wazuh/wazuh-docker" target="_blank" rel="noopener" class="mycode_url">wazuh-docker</a><br />
</li>
</ul>
<br />
Görsel: TurkTeam özgün kapak görseli.<br />
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı:</span> SIEM'i yalnızca yönettiğiniz sistemlerde kurun. Başkasının loglarını izinsiz toplamak hukuka aykırıdır.</blockquote>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=27" target="_blank" title="">tonyukuk-17.jpg</a> (Dosya Boyutu: 96.92 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=27" loading="lazy"  alt="[Resim: attachment.php?aid=27]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Wazuh 4.14 ile SIEM'e Giriş</span></span><br />
<br />
Merhaba,<br />
<br />
Wazuh, açık kaynak XDR/SIEM platformudur. 15 Ekim 2026'da <span style="font-weight: bold;" class="mycode_b">v4.14.9</span> yayımlandı. Bu rehberde tek düğüm lab kurulumu ve ilk alarm mantığını anlatıyoruz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Mimariye kısa bakış<br />
</li>
<li>Lab kurulumu (Docker)<br />
</li>
<li>Ajan bağlama<br />
</li>
<li>İlk kural / uyarısı<br />
</li>
<li>Kaynakça<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Mimari</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Wazuh indexer:</span> Log depolama / arama<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Wazuh manager:</span> Analiz, kurallar, ajan yönetimi<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Wazuh dashboard:</span> Web arayüzü<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Ajanlar:</span> Uç noktalarda log ve FIM<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Lab Kurulumu (Docker)</span></span><br />
Resmi dokümantasyondaki tek düğüm / Docker Compose senaryosunu kendi lab sunucunuzda izleyin:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek iskelet (sürüm numaralarını resmi dokümana göre güncelleyin)
git clone https://github.com/wazuh/wazuh-docker.git
cd wazuh-docker/single-node
docker compose up -d
# Dashboard genelde https://localhost:443</code></div></div>Kurulum bitince varsayılan parolaları hemen değiştirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Ajan Bağlama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Linux ajan (lab)
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor &gt; /tmp/wazuh.gpg
# Resmi paket deposundan ajanı kurun; WAZUH_MANAGER=lab_ip ile kaydedin</code></div></div>Dashboard -&gt; Agents bölümünde ajanın "Active" olduğunu doğrulayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) İlk Alarm Fikri</span></span><ul class="mycode_list"><li>SSH başarısız giriş eşiği<br />
</li>
<li>Yeni root yetkili kullanıcı oluşturma<br />
</li>
<li>Web sunucu 4xx/5xx patlaması<br />
</li>
<li>FIM: /etc/passwd veya /etc/sudoers değişimi<br />
</li>
</ul>
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Manager üzerinde kural dosyaları genelde
# /var/ossec/etc/rules/local_rules.xml
# Değişiklikten sonra:
# systemctl restart wazuh-manager</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) İyi Uygulamalar</span></span><ul class="mycode_list"><li>Lab ile production'ı ayırın<br />
</li>
<li>Ajan iletişimi için TLS zorunlu<br />
</li>
<li>Disk doluluğunu izleyin (indexer şişer)<br />
</li>
<li>Her alarm için "ne yapacağız?" runbook'u yazın<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li><a href="https://documentation.wazuh.com/" target="_blank" rel="noopener" class="mycode_url">Wazuh Documentation</a><br />
</li>
<li><a href="https://github.com/wazuh/wazuh/releases" target="_blank" rel="noopener" class="mycode_url">Wazuh Releases (v4.14.9)</a><br />
</li>
<li><a href="https://github.com/wazuh/wazuh-docker" target="_blank" rel="noopener" class="mycode_url">wazuh-docker</a><br />
</li>
</ul>
<br />
Görsel: TurkTeam özgün kapak görseli.<br />
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı:</span> SIEM'i yalnızca yönettiğiniz sistemlerde kurun. Başkasının loglarını izinsiz toplamak hukuka aykırıdır.</blockquote>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=27" target="_blank" title="">tonyukuk-17.jpg</a> (Dosya Boyutu: 96.92 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Windows 11 Yerleşik Sysmon: Kurulum, Yapılandırma ve SOC İçin İlk Adımlar]]></title>
			<link>https://www.turkteam.org/konu-windows-11-yerlesik-sysmon-kurulum-yapilandirma-ve-soc-icin-ilk-adimlar.html</link>
			<pubDate>Fri, 16 Oct 2026 11:18:42 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-windows-11-yerlesik-sysmon-kurulum-yapilandirma-ve-soc-icin-ilk-adimlar.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=26" loading="lazy"  alt="[Resim: attachment.php?aid=26]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Yıllardır Sysinternals Sysmon'u ayrı bir exe ile kuruyorduk. 2026'da Microsoft, Windows 11 ve Windows Server 2025'te Sysmon'u isteğe bağlı yerleşik özellik olarak sundu. Lab makinemde denedim; bu konuda kurulum notlarımı ve SOC açısından ne işe yaradığını paylaşıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Yerleşik Sysmon nedir, ne değildir?<br />
</li>
<li>Standalone ile birlikte çalışmaz<br />
</li>
<li>Etkinleştirme (PowerShell / DISM)<br />
</li>
<li>Yapılandırma dosyası (SwiftOnSecurity vb.)<br />
</li>
<li>Olayları nerede görürsünüz, SIEM'e nasıl gider?<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Ne Yapar, Ne Yapmaz?</span></span><br />
Microsoft Learn'e göre yerleşik Sysmon süreç oluşturma, ağ bağlantısı, sürücü/DLL yükleme, ham disk erişimi gibi olayları Windows Event Log'a yazar. Analiz etmez, engellemez, varlığını gizlemez. Yani bir EDR değil; yüksek kaliteli telemetri kaynağıdır. SIEM veya Defender for Endpoint gibi ürünlerle birlikte anlam kazanır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Standalone ile Bir Arada Olmaz</span></span><br />
Cihazda eski Sysinternals Sysmon kuruluysa önce kaldırın. İkisi aynı anda desteklenmiyor. Kontrol:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-Service sysmon*</code></div></div><br />
Çıktı boş olmalı. Varsa standalone'u kaldırıp devam edin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Etkinleştirme</span></span><br />
Yönetici PowerShell:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Enable-WindowsOptionalFeature -Online -FeatureName Sysmon
sysmon -i</code></div></div><br />
DISM alternatifi: <div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Dism /Online /Enable-Feature /FeatureName:Sysmon</code></div></div> sonra yine <div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sysmon -i</code></div></div>.<br />
<br />
Varsayılan kurulum az olay üretir; mutlaka bir config uygulayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) Yapılandırma</span></span><br />
Popüler topluluk config'leri:<ul class="mycode_list"><li>SwiftOnSecurity/sysmon-config<br />
</li>
<li>olafhartong/sysmon-modular (MITRE eşlemeli, modüler)<br />
</li>
</ul>
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek: config ile kurulum
sysmon -i C:&#92;Sysmon&#92;sysmonconfig.xml

# Sonradan güncelleme (restart gerekmez)
sysmon -c C:&#92;Sysmon&#92;sysmonconfig.xml</code></div></div><br />
Lab'da önce dar bir config ile başlayıp Event Viewer'da gürültüyü izleyin; production'a körlemesine "her şeyi aç" demeyin, disk ve lisans maliyetiniz şişer.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) Olaylar Nerede?</span></span><br />
Event Viewer: Applications and Services Logs &gt; Microsoft &gt; Windows &gt; Sysmon &gt; Operational.<br />
<br />
Yerleşik Sysmon'da görüntülenen mesaj metinleri yerelleştirilmiş olabilir; toplama için XML/alan bazlı parsing kullanın (Microsoft bunu özellikle belirtiyor). WEF veya SIEM agent ile merkezileştirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/sysmon/overview" target="_blank" rel="noopener" class="mycode_url">Microsoft Learn: Sysmon Overview</a><br />
</li>
<li><a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/sysmon/how-to-enable-sysmon" target="_blank" rel="noopener" class="mycode_url">Enable and configure Sysmon</a><br />
</li>
<li><a href="https://github.com/SwiftOnSecurity/sysmon-config" target="_blank" rel="noopener" class="mycode_url">SwiftOnSecurity/sysmon-config</a><br />
</li>
<li><a href="https://github.com/olafhartong/sysmon-modular" target="_blank" rel="noopener" class="mycode_url">sysmon-modular</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal not:</span> Yalnızca yönettiğiniz lab veya kurumsal endpoint'lerde etkinleştirin.</blockquote>
<br />
Kapak: özgün TurkTeam görseli.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=26" target="_blank" title="">bilgekagan-05.png</a> (Dosya Boyutu: 97.11 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=26" loading="lazy"  alt="[Resim: attachment.php?aid=26]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Yıllardır Sysinternals Sysmon'u ayrı bir exe ile kuruyorduk. 2026'da Microsoft, Windows 11 ve Windows Server 2025'te Sysmon'u isteğe bağlı yerleşik özellik olarak sundu. Lab makinemde denedim; bu konuda kurulum notlarımı ve SOC açısından ne işe yaradığını paylaşıyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Yerleşik Sysmon nedir, ne değildir?<br />
</li>
<li>Standalone ile birlikte çalışmaz<br />
</li>
<li>Etkinleştirme (PowerShell / DISM)<br />
</li>
<li>Yapılandırma dosyası (SwiftOnSecurity vb.)<br />
</li>
<li>Olayları nerede görürsünüz, SIEM'e nasıl gider?<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Ne Yapar, Ne Yapmaz?</span></span><br />
Microsoft Learn'e göre yerleşik Sysmon süreç oluşturma, ağ bağlantısı, sürücü/DLL yükleme, ham disk erişimi gibi olayları Windows Event Log'a yazar. Analiz etmez, engellemez, varlığını gizlemez. Yani bir EDR değil; yüksek kaliteli telemetri kaynağıdır. SIEM veya Defender for Endpoint gibi ürünlerle birlikte anlam kazanır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Standalone ile Bir Arada Olmaz</span></span><br />
Cihazda eski Sysinternals Sysmon kuruluysa önce kaldırın. İkisi aynı anda desteklenmiyor. Kontrol:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Get-Service sysmon*</code></div></div><br />
Çıktı boş olmalı. Varsa standalone'u kaldırıp devam edin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Etkinleştirme</span></span><br />
Yönetici PowerShell:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Enable-WindowsOptionalFeature -Online -FeatureName Sysmon
sysmon -i</code></div></div><br />
DISM alternatifi: <div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>Dism /Online /Enable-Feature /FeatureName:Sysmon</code></div></div> sonra yine <div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sysmon -i</code></div></div>.<br />
<br />
Varsayılan kurulum az olay üretir; mutlaka bir config uygulayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) Yapılandırma</span></span><br />
Popüler topluluk config'leri:<ul class="mycode_list"><li>SwiftOnSecurity/sysmon-config<br />
</li>
<li>olafhartong/sysmon-modular (MITRE eşlemeli, modüler)<br />
</li>
</ul>
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek: config ile kurulum
sysmon -i C:&#92;Sysmon&#92;sysmonconfig.xml

# Sonradan güncelleme (restart gerekmez)
sysmon -c C:&#92;Sysmon&#92;sysmonconfig.xml</code></div></div><br />
Lab'da önce dar bir config ile başlayıp Event Viewer'da gürültüyü izleyin; production'a körlemesine "her şeyi aç" demeyin, disk ve lisans maliyetiniz şişer.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) Olaylar Nerede?</span></span><br />
Event Viewer: Applications and Services Logs &gt; Microsoft &gt; Windows &gt; Sysmon &gt; Operational.<br />
<br />
Yerleşik Sysmon'da görüntülenen mesaj metinleri yerelleştirilmiş olabilir; toplama için XML/alan bazlı parsing kullanın (Microsoft bunu özellikle belirtiyor). WEF veya SIEM agent ile merkezileştirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/sysmon/overview" target="_blank" rel="noopener" class="mycode_url">Microsoft Learn: Sysmon Overview</a><br />
</li>
<li><a href="https://learn.microsoft.com/en-us/windows/security/operating-system-security/sysmon/how-to-enable-sysmon" target="_blank" rel="noopener" class="mycode_url">Enable and configure Sysmon</a><br />
</li>
<li><a href="https://github.com/SwiftOnSecurity/sysmon-config" target="_blank" rel="noopener" class="mycode_url">SwiftOnSecurity/sysmon-config</a><br />
</li>
<li><a href="https://github.com/olafhartong/sysmon-modular" target="_blank" rel="noopener" class="mycode_url">sysmon-modular</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal not:</span> Yalnızca yönettiğiniz lab veya kurumsal endpoint'lerde etkinleştirin.</blockquote>
<br />
Kapak: özgün TurkTeam görseli.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=26" target="_blank" title="">bilgekagan-05.png</a> (Dosya Boyutu: 97.11 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>