TürkTeam Portal

Siber güvenlik topluluğunun nabzı

Duyurular, öne çıkan konular ve topluluktan son haberler burada.

Duyurular
 Bug Bounty'ye Başlarken: Kapsam, Program Seçimi ve İlk Rapor Disiplini
Tonyukuk 10-18-2026, 08:29 AM · Bug Bounty Genel
0 51
[Resim: attachment.php?aid=162]

Merhaba,

Bug bounty'ye başlarken en büyük hata, rastgele siteye rastgele scanner çalıştırmak. Bu yazıda kapsam okuma, program seçimi ve ilk rapor disiplinini anlatıyorum.

Program seçimi
  • Platformlar: HackerOne, Bugcrowd, Intigriti, YesWeHack... (ülkenize / ödemeye göre)
  • VDP (yalnızca sorumlu açıklama, ödül yok) ile bounty'yi ayırın
  • Scope netliği, yanıt süresi, ortalama ödeme gibi metriklere bakın
  • Wildcard kapsamlar yeni başlayan için öğretici ama rekabet yüksek

Kapsamı satır satır okuyun
Out of scope örnekleri: DoS, sosyal mühendislik, fiziksel, üçüncü taraf servisler, self-XSS... İhlal = ban riski. Ayrıca rate limit ve otomasyon kuralları yazılıdır.



İlk günler metodoloji
  1. Hedefi haritala (pasif + nazik aktif)
  2. Auth akışı, rol farkları, IDOR potansiyeli
  3. Teknoloji parmak izi (Wappalyzer vb.) ama kör scanner yağmuru yok
  4. Not defteri: her deneme, her parametre

İlk rapor disiplini
Net yeniden üretim, etki, düzeltme önerisi. Duplicate olabilir; moral bozmayın. Kaliteli yazım bir sonraki raporunuzun ciddiye alınmasını sağlar.

Yasal çerçeve
Programın Safe Harbor metni varsa okuyun. Türkiye'de TCK 243-245; kapsam dışına çıkmak "ben bounty avcısıyım" diye savunma sağlamaz.

Kaynaklar
  • Platform program politikaları
  • OWASP Testing Guide
  • PortSwigger Academy (ücretsiz lab)

İlk ödülünüzü hangi zafiyet sınıfında aldınız? (Genel sınıf yeterli; hedef adı vermeyin.)

Duplicate ve triager
Aynı açık başkası tarafından bildirilmiş olabilir. Küsenmeyin; programın previous reports / known issues bölümünü okuyun. Kendi açınızı farklı bir endpoint'te bulduysanız neden duplicate olmadığını net yazın.

Araç etiği
Nuclei / mass scanner yağmuru birçok programda yasaktır veya sınırlıdır. Manuel + hedefli otomasyon. Ban yemek portfolyodaki tüm hesapları yakar.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri
   
 Mobilde 2FA: Authenticator, Passkey ve SMS Karşılaştırması 2026
Tonyukuk 10-18-2026, 08:28 AM · Mobil Güvenlik
0 31
[Resim: attachment.php?aid=161]

Selam,

Mobilde ikinci faktör artık sadece SMS değil. Authenticator uygulamaları (TOTP) ve passkey / platform authenticator seçenekleri olgunlaştı. Bu yazıda 2026 itibarıyla pratik karşılaştırmamı ve neyi ne zaman önerdiğimi yazıyorum.

SMS OTP
Artıları: herkes kullanabilir. Eksileri: SIM swap, SS7 riskleri, phishing ile aynı anda çalınabilir (gerçek zamanlı proxy). Hassas hesaplarda tek başına yeterli görmüyorum.

Authenticator (TOTP)
Zaman tabanlı 6 haneli kod. Çevrimdışı çalışır. Seed'i yedeklemek kritik; telefonu kaybedince hesap kilitlenmesin. Uygulama seçerken açık kaynak / saygın satıcı + cihaz içi şifreleme bakın.
  • Kurulumda QR'ı ekran görüntüsü olarak buluta atmayın
  • Yedek kodları parola yöneticisine veya offline kasaya
  • Aynı TOTP seed'i birden fazla cihaza bilinçli koyun



Passkey
FIDO2 / WebAuthn tabanlı; phishing'e karşı TOTP'tan daha dirençli (origin bağlı). iOS / Android / masaüstü platform anahtarları ve donanım güvenlik anahtarları. Senkron passkey kolaylık sağlar; tehdit modelinize göre cihaz şifresi + iCloud/Google hesabı güvenliği de dahil olur.

Pratik önerim
  • E-posta ve parola yöneticisi: passkey veya donanım anahtarı + TOTP yedek
  • Banka uygulaması: bankanın sunduğu yöntem + SIM PIN + operatördeki ek şifre
  • İş hesapları: mümkünse FIDO2 zorunlu, SMS yalnızca break-glass

Kurtarma senaryosu
Telefon çalındığında: Find My / Google Find ile uzaktan silme, SIM blok, kritik hesaplarda oturum düşürme, TOTP seed yedeklerinden yeni cihaz. Bu tatbikatı yılda bir yapın.

Kaynaklar
  • FIDO Alliance / WebAuthn spesifikasyon özetleri
  • NIST SP 800-63B (authenticator gücü kavramları)
  • Platform üreticilerinin passkey belgeleri

Siz passkey'e geçerken hangi sitede takıldınız? Hâlâ TOTP zorunlu tutan büyük servisler var mı listenizde?

Donanım anahtarı
YubiKey / benzeri anahtarlar phishing direnci yüksek ikinci faktördür. Hesap başına en az iki anahtar (asıl + yedek) kaydedin; tek anahtar kaybı hesap kilidi demektir. NFC / USB-C uyumunu telefonunuza göre seçin.

Kurumsal MDM
Şirket telefonunda passkey / authenticator politikası MDM ile yönetilir. BYOD'da iş hesaplarını kişisel TOTP uygulamasına koymak veri sınıflandırma politikasını ihlal edebilir; iş profili kullanın.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri
   
 GitHub'da Dork ile Secret Avı: Kendi Repolarınızı Tarama Rehberi
Tonyukuk 10-18-2026, 08:27 AM · OSINT
0 41
[Resim: attachment.php?aid=160]

Merhaba,

GitHub'da unutulan secret'lar hâlâ ihlallerin yaygın nedeni. Bu yazıda kendi repolarınızı ve organizasyonunuzu taramak için dork mantığını ve gitleaks gibi araçları anlatıyorum. Başkasının private alanına izinsiz tırmanmak değil; savunma amaçlı hygiene.

GitHub code search dork örnekleri (kendi org)
Kod:
org:SIZIN_ORG AWS_SECRET_ACCESS_KEY org:SIZIN_ORG "BEGIN RSA PRIVATE KEY" org:SIZIN_ORG filename:.env org:SIZIN_ORG AKIA
public aramada da benzer sorgular sızmış şirketleri bulmak için saldırganlarca kullanılır; bu yüzden siz önce bulun.
[Resim: attachment.php?aid=183]



gitleaks ile yerel tarama
Kod:
gitleaks detect -s . -v --report-path gitleaks-report.json
CI'ya ekleyin (GitHub Action). Pre-commit hook ile commit öncesi engellemek daha da iyidir.
Kod:
# pre-commit örneği düşüncesi # repo kökünde .pre-commit-config.yaml ile gitleaks hook

Bulunduysa ne yapmalı?
  1. Secret'i hemen rotate et (silmek yetmez; git tarihçesinde vardır)
  2. Geçmişi temizlemek için BFG / git filter-repo — dikkatli ve ekiple
  3. GitHub secret scanning alerts / push protection açık olsun
  4. Nerede kullanıldığını loglardan kontrol et (suistimal var mı?)

Ek kontroller
  • trufflehog
  • GitHub Advanced Security (varsa)
  • Docker imajlarında ve Terraform state'te secret araması

Kaynaklar
  • gitleaks GitHub
  • GitHub Docs: secret scanning / push protection
  • OWASP Secrets Management Cheat Sheet

Siz secret scanning'i monorepo'da mı yoksa her mikro serviste mi çalıştırıyorsunuz?

History temizliği uyarısı
git filter-repo SHA'ları değiştirir; tüm klonların yeniden clone etmesi gerekir. Koordineli yapın. GitHub'da secret scanning bir kez görmüşse alert kapanmaz; rotate şart.

IaC ve CI logları
Terraform plan çıktısı, GitHub Actions logu, Docker build arg — secret'lar oralarda da sızar. Masking ve OIDC role (uzun ömürlü cloud key yerine) tercih edin.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri
   
 Kerberoasting Nedir? Servis Biletlerinden Hash Avı ve Savunma
Tonyukuk 10-18-2026, 08:21 AM · Active Directory & Kurumsal
0 39
[Resim: attachment.php?aid=159]

Merhaba,

Kerberoasting, Active Directory'de servis hesaplarının TGS biletlerinden offline parola kırma saldırısıdır. Bu yazıda nasıl çalıştığını, labda nasıl görüldüğünü ve savunma kontrollerini anlatıyorum. Yalnızca kendi AD lab'ınızda deneyin.

Mantık
SPN (Service Principal Name) kayıtlı hesaplar için herhangi bir domain kullanıcısı TGS isteyebilir. Biletin bir kısmı servis hesabı anahtarıyla şifrilidir; zayıf parolada offline Hashcat/John ile kırma denemesi yapılır. Hedefe sürekli online brute force değildir.

Savunmacı bakış: kim risk altında?
  • Uzun ömürlü, insan tarafından seçilmiş parolalı servis hesapları
  • Eski SQL / IIS / monitör hesapları
  • Gereksiz SPN'ler
Kod:
# Labda SPN listesi (PowerView / yerleşik) setspn -Q */*



Tespit sinyalleri
  • Kısa sürede çok sayıda TGS-REQ (anormal)
  • RC4 (0x17) kullanan isteklerin artması (ortama göre)
  • Servis hesabıyla alışılmadık istemcilerden erişim
Windows Security log ve RGEF / Azure Sentinel / Splunk kuralları bu pattern için yazılır. Yanlış pozitif olabilir; baseline alın.

Savunma
  1. Servis hesaplarında uzun rastgele parola (25+ karakter) veya gMSA
  2. Gereksiz SPN temizliği
  3. AES kullanımını teşvik, eski şifreleme türlerini kısıtlama (dikkatli pilot)
  4. Yönetici hesaplarına rastgele SPN eklemeyin
  5. Tier model: krıtık sunuculara yolu daraltın
gMSA (Group Managed Service Account) parolayı Windows'un yönetmesini sağlar; Kerberoasting yüzeyini ciddi azaltır.

Kaynaklar
  • MITRE ATT&CK T1558.003 Steal or Forge Kerberos Tickets: Kerberoasting
  • Microsoft Docs: gMSA
  • ADSecurity.org arşiv yazıları (tarihsel referans)

Siz gMSA'ya geçerken hangi uygulama direnç gösterdi? Deneyimleri duymak isterim.

Honey SPN
Sahte SPN'li tuzak hesap, Kerberoast denemelerini alarm olarak yakalamak için kullanılır. Parolası imkânsız uzunlukta olsun; TGS isteği gelince SIEM alarm. Labda deneyin, production'da legal/etik çerçevede uygulayın.

Raporlama dili
Yönetime "Kerberoasting mümkün" yerine "zayıf parolalı 12 servis hesabı offline kırmaya açık; gMSA ile kapatılabilir" deyin. Sayı ve düzeltme yolu olmadan bulgu yaşamaz.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri
   
 Suricata ile İlk Kural Yazımı: Ev Labında IDS ve eve.json Okuma
BilgeKagan 10-18-2026, 08:20 AM · Mavi Takım / SOC
0 37
[Resim: attachment.php?aid=158]

Selam arkadaşlar,

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.

Kurulum (Debian/Ubuntu lab)
Kod:
sudo apt update sudo apt install suricata suricata -V
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.

Feed güncelleme:
Kod:
sudo suricata-update sudo systemctl restart suricata

İlk kuralınız
Yerel kural dosyası örneği (/etc/suricata/rules/local.rules):
Kod:
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"TT LAB Suspicious UA"; \ flow:to_server,established; http.user_agent; content:"BadAgent"; \ classtype:policy-violation; sid:1000001; rev:1;)
suricata.yaml içinde local.rules'un yüklendiğinden emin olun. Test trafiği:
Kod:
curl -A "BadAgent" http://example.com/



eve.json okumak
Modern Suricata çıktısı JSON satırlarıdır:
Kod:
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'
Alanlar: timestamp, src_ip, dest_ip, signature_id, signature, severity... jq ile SIEM'e gitmeden önce filtre öğrenmek çok faydalı.
Kod:
jq -r 'select(.event_type=="alert") | [.timestamp,.src_ip,.dest_ip,.alert.signature] | @tsv' eve.json | head

Kural yazımında dikkat
  • sid 1_000_000+ yerel kurallar için ayırın (çakışmasın)
  • content eşleşmeleri için nocase / depth / offset bilinçli kullanın
  • flow ve http buffer'ları yanlış protokolde çalışmaz
  • IPS (drop) moduna geçmeden önce IDS'te FP ölçün

Performans
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:
Kod:
sudo suricatasc -c "iface-stat eth0"

Kaynaklar
  • Suricata Read the Docs (rules / eve)
  • Emerging Threats / Suricata-Update
  • jq el kitabı

Siz eve.json'u doğrudan mi SIEM'e atıyorsunuz, yoksa vector/filebeat ile mi? Küçük lab mimarinizi merak ediyorum.

Home net değişkenleri
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.

IPS moduna geçiş
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.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri
   
 Bash Scripting ile Basit Güvenlik Otomasyonu: Sıfırdan Giriş
KulTigin 10-18-2026, 08:20 AM · Linux Genel
0 36
Merhaba TurkTeam,

Güvenlikte tekrarlayan işleri elle yapmak hem zaman kaybı hem de hata kaynağıdır. "Her gün açık portları kontrol et", "yeni SUID dosyası var mı bak", "başarısız giriş sayısını say" gibi işleri bir kez yazıp otomatikleştirmek, hem tutarlılık hem de hız kazandırır. Bu rehber, Bash betik yazımını sıfırdan ele alıyor ve sonunda işe yarar, küçük bir güvenlik kontrol betiği çıkarıyoruz. Amaç, saldırı değil; kendi sisteminizi düzenli denetlemek.

Konuda Anlatılacaklar
  1. Bash betiği nedir, shebang ve çalıştırma
  2. Değişkenler, komut ikamesi ve tırnak kuralları
  3. Koşullar, karşılaştırmalar ve çıkış kodları
  4. Döngüler ve fonksiyonlar
  5. Uygulamalı: güvenlik kontrol betiği
  6. Güvenli betik yazımı ve zamanlama (cron)
  7. Sonuç, kaynakça ve yasal uyarı

1. İlk Betik: Shebang ve Çalıştırma
Bir Bash betiği, ilk satırında yorumlayıcıyı belirten "shebang" ile başlar:
Kod:
#!/usr/bin/env bash echo "Merhaba TurkTeam"
Dosyayı kaydedip çalıştırılabilir yapın ve çalıştırın:
Kod:
chmod +x betik.sh ./betik.sh
Betiklerinizi sağlamlaştırmak için başa güvenli kipi eklemek iyi bir alışkanlıktır:
Kod:
#!/usr/bin/env bash set -euo pipefail
Burada -e hata olunca durur, -u tanımsız değişkende hata verir, pipefail boru hattındaki hatayı yakalar. Bu üçlü, sessiz hataların önüne geçer.

2. Değişkenler, Komut İkamesi ve Tırnak
Kod:
ad="TurkTeam" tarih=$(date +%F) echo "Rapor: $ad - $tarih"
Kritik kural: Değişkenleri daima çift tırnak içinde kullanın; aksi halde boşluk içeren değerler bölünür ve betik beklenmedik davranır:
Kod:
dosya="rapor 2026.txt" # yanlış: cat $dosya -> iki argüman cat "$dosya" # doğru
Komut ikamesi $(...) ile bir komutun çıktısını değişkene alırsınız; bu, otomasyonun temel taşıdır.

3. Koşullar, Karşılaştırmalar ve Çıkış Kodları
Her komut bir çıkış kodu döndürür: 0 başarı, sıfırdan farklısı hata. Bunu koşullarda kullanırsınız:
Kod:
if systemctl is-active --quiet ssh; then echo "SSH çalışıyor" else echo "SSH kapalı!" fi
Sayısal ve metinsel karşılaştırmalar [[ ]] içinde yapılır:
Kod:
sayi=5 if [[ "$sayi" -gt 3 ]]; then echo "üçten büyük"; fi if [[ -f /etc/passwd ]]; then echo "dosya var"; fi
Burada -gt sayısal "büyüktür", -f "dosya mevcut mu" testidir. Dizin için -d, okunabilirlik için -r kullanılır.

4. Döngüler ve Fonksiyonlar
for döngüsü bir liste üzerinde gezer:
Kod:
for servis in ssh cron auditd; do systemctl is-active --quiet "$servis" \ && echo "$servis: aktif" \ || echo "$servis: PASİF" done
while read ile bir dosyayı satır satır okursunuz:
Kod:
while IFS= read -r satir; do echo "Kontrol: $satir" done < hedefler.txt
Fonksiyonlar tekrarı önler ve betiği okunur kılar:
Kod:
log() { echo "[$(date +%T)] $*" } log "Tarama başladı"

5. Uygulamalı: Güvenlik Kontrol Betiği
Şimdi öğrendiklerimizi, kendi makinenizde çalıştırabileceğiniz küçük bir günlük kontrol betiğinde birleştirelim:
Kod:
#!/usr/bin/env bash set -euo pipefail log() { echo "[$(date +%F_%T)] $*"; } log "== Dinlenen portlar ==" ss -tulnp log "== Root SUID dosyaları ==" find / -perm -4000 -type f 2>/dev/null log "== Son başarısız SSH girişleri (sayı) ==" if command -v journalctl >/dev/null; then journalctl -u ssh --since "today" 2>/dev/null \ | grep -c "Failed password" || true fi log "== Kontrol tamamlandı =="
Betiği çalıştırın:
Kod:
chmod +x guvenlik_kontrol.sh ./guvenlik_kontrol.sh
Çıktı; açık portları, root SUID ikililerini ve bugünkü başarısız SSH giriş sayısını zaman damgalı satırlarla özetler. Beklenmedik bir açık port veya yeni bir SUID dosyası, incelenmesi gereken ilk sinyallerdir.
[Resim: attachment.php?aid=157]

Çıktıyı dosyaya kaydetme: Raporu tarihli bir dosyaya yazdırmak için:
Kod:
./guvenlik_kontrol.sh | tee "rapor_$(date +%F).txt"
[Resim: attachment.php?aid=184]


6. Güvenli Betik Yazımı ve Zamanlama
  • set -euo pipefail kullanın; sessiz hataları yakalar.
  • Değişkenleri tırnaklayın ve kullanıcı girdisini asla doğrudan komuta gömmeyin (komut enjeksiyonu riski).
  • Mutlak yollar: Otomatik çalışan betiklerde komutları tam yoluyla veya kontrollü bir PATH ile çağırın.
  • shellcheck ile denetleyin:
    Kod:
    sudo apt install shellcheck && shellcheck guvenlik_kontrol.sh
    Bu araç, yaygın hataları ve riskli kalıpları işaretler.
  • cron ile zamanlama: Betiği her gün 07:00'de çalıştırmak için kullanıcı crontab'ına ekleyin:
    Kod:
    crontab -e
    ve satır:
    Kod:
    0 7 * * * /home/kullanici/guvenlik_kontrol.sh >> /home/kullanici/gunluk.log 2>&1
[Resim: attachment.php?aid=185]

Betiklerinizi küçük tutun, her birini tek bir işe odaklayın ve çıktıyı makinece okunur (örn. anahtar=değer) biçimde tasarlarsanız, ileride bir uyarı sistemine bağlamak kolaylaşır.

6.1. Betik Otomasyonunda Sık Yapılan Hatalar
Yeni başlayanların güvenlik betiklerinde en sık düştüğü tuzak, tırnaksız değişken kullanımıdır. Bir dosya adında veya bir log satırında boşluk, yıldız veya özel karakter bulunduğunda, tırnaksız bir değişken beklenmedik biçimde bölünür ya da genişler; bu hem hatalı sonuç hem de ciddi güvenlik açığı doğurabilir. Kural basittir: hemen her zaman "$degisken" yazın. İkinci sık hata, kullanıcıdan veya dış bir dosyadan gelen veriyi doğrudan bir komuta gömmektir; bu, komut enjeksiyonuna kapı açar. Dış veriyi her zaman güvenilmez kabul edin ve mümkün olduğunca değişken olarak, tırnaklı biçimde kullanın.

Bir diğer önemli nokta, betiğin hatasız çalıştığını varsaymaktır. set -euo pipefail olmadan yazılmış bir betik, ortasında bir komut başarısız olsa bile çalışmaya devam eder ve yanıltıcı bir "başarıyla tamamlandı" çıktısı üretebilir. Örneğin disk dolu olduğu için rapor dosyası yazılamazsa, güvenli kip olmadan betik bunu fark etmeden ilerler. Güvenli kip ve anlamlı çıkış kodları, otomasyona güvenebilmenin ön koşuludur; çünkü otomasyonun değeri, siz izlemezken bile doğru çalışmasındadır.

Son olarak, bir betiği cron ile zamanlamadan önce mutlaka elle birkaç kez çalıştırıp çıktısını doğrulayın. cron ortamı etkileşimli kabuğunuzdan farklıdır: PATH daha dardır, bazı ortam değişkenleri tanımsızdır ve ev dizini farklı bağlamda çözülebilir. Bu yüzden cron ile çalışacak betiklerde komutları tam yoluyla çağırmak veya betiğin başında gerekli PATH'i açıkça ayarlamak, "elimde çalışıyordu ama cron'da çalışmadı" sorununu baştan engeller. Çıktıyı bir log dosyasına yönlendirmek de (>> gunluk.log 2>&1) sorun ayıklamayı kolaylaştırır.

Sonuç
Bash, güvenlik otomasyonuna başlamak için en erişilebilir araçtır: her Linux sisteminde hazırdır ve birkaç temel yapıyla (değişken, koşul, döngü, fonksiyon) güçlü kontroller yazabilirsiniz. Önce güvenli kip ve tırnak disiplinini oturtun, shellcheck ile denetleyin, sonra cron ile düzenli çalıştırın. Karmaşık işler büyüdüğünde Python'a geçebilirsiniz, ama günlük denetimlerin çoğu için iyi yazılmış bir Bash betiği fazlasıyla yeterlidir.

Kaynakça
Yasal Uyarı
Alıntı:Buradaki betikler yalnızca kendi sistemlerinizde veya yönetim yetkiniz olan sistemlerde çalıştırılmalıdır. Başkasının sistemine izinsiz müdahale Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.

Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).

Ek DosyalarEkran Görüntüleri
   
 nmap NSE Scriptleri: http-enum, smb-os-discovery ve Kendi Lab Notlarım
0 34
[Resim: attachment.php?aid=155]

Arkadaşlar selam,

nmap'i herkes port taramak için kullanıyor ama asıl gücü NSE (Nmap Scripting Engine) tarafında. Bu yazıda lab ortamında en sık kullandığım birkaç scripti, nasıl seçildiğini ve çıktıyı nasıl okuduğumu anlatacağım. Hedef: kendi Metasploitable2 / DVWA labım. Başkasının sisteminde izinsiz script çalıştırmayın; bazı scriptler agresif trafik üretir.

NSE'ye hızlı bakış
Scriptler kategorilere ayrılır: auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln. safe ve default günlük keşif için; intrusive / brute / exploit yalnızca yazılı izinli pentest kapsamında.

Kurulu scriptleri görmek:
Kod:
ls /usr/share/nmap/scripts | head nmap --script-help http-enum

http-enum: web dizin ve dosya keşfi
Kod:
nmap -p 80,443 --script http-enum 10.10.10.50
Bu script bilinen yolları (admin panelleri, yedek dosyalar, .git kalıntıları vb.) dener. Gobuster/ffuf kadar kapsamlı wordlist kullanmaz; hızlı sinyal için iyidir. Lab çıktısı kabaca şöyle görünür:



Dikkat: http-enum varsayılan olarak bazı yolları dener; WAF veya rate-limit varsa gürültü çıkar. Pentest raporunda "discovery" bulgusu olarak not düşmek için yeterlidir; derin fuzzing için ffuf'a geçin.

Daha kontrollü kullanım:
Kod:
nmap -p 80 --script http-enum --script-args http-enum.displayall 10.10.10.50

smb-os-discovery: SMB üzerinden OS ve alan bilgisi
Windows / Samba hedeflerinde:
Kod:
nmap -p 445 --script smb-os-discovery 10.10.10.20
Çıktıda işletim sistemi, bilgisayar adı, çalışma grubu / domain, bazen forest bilgisi gelir. Bu bilgi later hareket planını etkiler: domain üyesi bir makine ile iş grubu makinesi aynı değildir.

SMB imza zorunluluğunu da kontrol etmek isterseniz:
Kod:
nmap -p 445 --script smb2-security-mode 10.10.10.20
"Message signing enabled but not required" satırı mavi takım için düzeltilmesi gereken bir bulgudur.

Birkaç scripti birlikte çalıştırmak
Kod:
nmap -sV -p 80,443,445 --script "default and safe" 10.10.10.0/28
and safe ifadesi default kategorisinden yalnızca güvenli olanları seçer. Büyük alt ağlarda önce host discovery, sonra dar port listesi, en son script sırasını tercih ederim; aksi halde tarama saatler sürer ve logları kirletirsiniz.

vuln kategorisi: dikkatli kullanın
Kod:
nmap -p 443 --script vuln 10.10.10.50
Bu komut bilinen zafiyet imzalarını dener. Yanlış pozitif oranı yüksektir; her kırmızı satırı "kırıldı" sanmayın. Bulguyu manuel doğrulayın, CVE numarasını NVD'den kontrol edin, sürüm bilgisini -sV ile çaprazlayın.

Çıktıyı saklamak
Kod:
nmap -oA lab-scan-20261017 -sV -p 80,445 --script http-enum,smb-os-discovery 10.10.10.50
-oA üç format üretir: .nmap (metin), .xml, .gnmap. XML'i daha sonra searchsploit veya kendi betiklerinizle işleyebilirsiniz.

Performans ve nezaket
  • -T3 varsayılan; labda -T4 kabul edilebilir, internette müşteri ağında -T2 daha naziktir.
  • --max-rate ile saniyedeki paket sayısını sınırlayın.
  • IDS/IPS olan ortamlarda script taraması alarm üretir; kapsam belgesinde belirtin.

Kendi not defterimden kısa komutlar
Kod:
# SSL/TLS sertifika özeti nmap -p 443 --script ssl-cert,ssl-enum-ciphers 10.10.10.50 # Redis bilerek açık mı (lab) nmap -p 6379 --script redis-info 10.10.10.50 # HTTP başlıkları nmap -p 80 --script http-headers,http-security-headers 10.10.10.50

Sık yaptığım hatalar
  1. Tüm script kategorilerini körlemesine çalıştırmak (dos/brute dahil) — labı bozar, yasal kapsamı aşabilir.
  2. -Pn ile her IP'ye script yağdırmak — firewall ICMP kesiyorsa host discovery'yi ayrı düşünün, ama kör tarama maliyeti yüksektir.
  3. Çıktıyı kaydetmemek — iki gün sonra "o SMB ne demişti?" diye ararsınız.

Kaynaklar
  • Nmap Network Scanning (kitap) ve resmi NSE dokümantasyonu: nmap.org/nsedoc
  • Script yardım: nmap --script-help <ad>

Sizin favori NSE scriptiniz hangisi? Özellikle AD keşfinde kullandığınız bir kombinasyon varsa yazın.

Script argümanları ve sürüm
Birçok NSE scripti --script-args ile ince ayar alır. http-enum için displayall, smb-os-discovery için ekstra kimlik bilgisi (izinli pentestte) gibi. Script sürümü nmap sürümüyle gelir; Kali rolling'de nmap güncellemesi script davranışını değiştirebilir. Raporunuza nmap --version yazın ki tekrarlanabilir olsun.

Çıktıyı ekibe taşımak
XML'i xsltproc veya kendi Python parser'ınızla Markdown özetine çevirmek, müşteri raporuna ham nmap dump yapıştırmaktan iyidir. gnmap satırları grep ile "open" port listesini hızlı çıkarır:
Kod:
grep '/open/' lab-scan.gnmap


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri
   
 İngiltere Legal Aid Agency Veri İhlali: Çalınan Kayıtlar 1978'e Kadar Uzanıyor
Tonyukuk 10-18-2026, 08:17 AM · Siber Güvenlik Haberleri
0 35
[Resim: attachment.php?aid=154]

Selam arkadaşlar,

Bazı veri ihlalleri ilk açıklandıkları günden çok daha büyük çıkar; bu da onlardan biri. İngiltere Adalet Bakanlığı'na bağlı adli yardım kurumu Legal Aid Agency (LAA), 2025'te yaşadığı siber saldırıya ilişkin 14 Ekim 2026'da yeni bir veri güncellemesi yayımladı. Bir buçuk yıllık analizden sonra gelen tablo şu: Çalınan veriler arasında yaklaşık 250.000 kayıt 2007 öncesine ait ve şu ana kadar doğrulanan en eski kayıt 1978 tarihli. Üstelik saldırıda denetimli serbestlik (probation) verilerinin de alındığı ortaya çıktı.

Konuda Anlatılacaklar
  1. Saldırının kısa geçmişi
  2. Yeni güncellemede neler var?
  3. Hangi gruplar ve hangi veriler etkilendi?
  4. Denetimli serbestlik (HMPPS) verileri
  5. Neden bilgiler bu kadar geç netleşti?
  6. Kurumun aldığı önlemler ve maliyet
  7. Bizim için dersler: eski veri, eski sistem
  8. Kaynaklar

Saldırının Kısa Geçmişi

GOV.UK'deki resmi açıklamaya göre LAA, 23 Nisan 2025 çarşamba günü çevrimiçi dijital hizmetlerini etkileyen bir siber saldırı tespit etti. Kurum ilk günlerde sistemlerini güvenceye almak için harekete geçti ve adli yardım sağlayıcılarına (avukatlık büroları vb.) finansal bilgiler dahil bazı bilgilerinin ele geçirilmiş olabileceğini bildirdi.

16 Mayıs 2025'te ise saldırının başta düşünülenden çok daha kapsamlı olduğu, arkasındaki suç grubunun büyük miktarda kişisel veriye eriştiği ve bunları dışarı çıkardığı anlaşıldı. Kurum o dönemde Ulusal Suç Ajansı (NCA), Ulusal Siber Güvenlik Merkezi (NCSC) ve veri koruma otoritesi Information Commission ile birlikte çalıştığını açıkladı.

BleepingComputer'a göre LAA yaklaşık 1.250 çalışanı olan ve yaklaşık 2.000 hizmet sağlayıcıyla çalışan bir kurum. Yani İngiltere ve Galler'de adli yardım sisteminin merkezinde duruyor.



Yeni Güncellemede Neler Var?

Güncellemenin ana bulguları:
  • Verilerin büyük çoğunluğu, Ocak 2007 ile 16 Mayıs 2025 arasında LAA'ya yapılan başvurular, talepler veya ödemelerle ya da bu dönemde aktif olan davalarla ilgili.
  • Ancak yaklaşık 250.000 kayıt 2007 öncesine ait. Bunların ezici çoğunluğu 1990'lar ve 2000'lerden; 1990 öncesine ait kayıt sayısı çok küçük.
  • Şu ana kadar doğrulanan en eski kayıt 1978 tarihli.
  • Saldırıda HMPPS'e (Cezaevi ve Denetimli Serbestlik Hizmeti) ait denetimli serbestlik verileri de alınmış. Bu verilerin hiçbiri suç mağdurlarıyla ilgili değil.
  • Çalınan verilerin yayımlandığına ya da paylaşıldığına dair bir işaret yok.

Kurum önemli bir uyarı da ekliyor: 2007 öncesi kayıtların bulunması, o dönemde adli yardım alan ya da başvuran herkesin etkilendiği anlamına gelmiyor. Hangi bilginin çalındığı kişiden kişiye büyük farklılık gösteriyor.

Hangi Gruplar ve Hangi Veriler?

GOV.UK sayfası, etkilenmiş olabilecek grupları ve veri türlerini ayrıntılı tablolarla veriyor. Birkaç dikkat çekici örnek:
  • Sivil hukuki yardım veya arabuluculuk alanlar (Ocak 2000 - Mayıs 2025 arası maliyet talepleri): Ad soyad, doğum tarihi, Ulusal Sigorta Numarası, posta kodu, dava başlangıç-bitiş tarihleri ve talep edilen maliyetler.
  • Crown Court'ta adli yardım alanlar (belirli dönemler): Kişi ve partnerinin adı, adresi, doğum tarihi, Ulusal Sigorta Numarası, telefon, suç kategorisi, banka hesapları ve mal varlığı bilgileri; bazı dönemler için suçlamalar, savunma beyanı, mahkûmiyet ve ceza bilgisi.
  • 1978-2012 arasında sosyal yardım durumu değerlendirilenler: Ad soyad, dava referansı ve yardımı alan kişinin doğum tarihi, Ulusal Sigorta Numarası ve adresi.
  • 1981-2004 arası Çok Yüksek Maliyetli Davalar (VHCC) ödemeleri: Ad soyad, dava referansı, avukat adı ve ödeme bilgileri.
  • Ödeme yapanlar (Nisan 2019 - Aralık 2025): Bazı kart ödemelerinde kısmen maskelenmiş kart bilgileri dahil ödeme ayrıntıları.

Adli yardım sağlayıcıları tarafında ise sözleşmeler, banka hesap bilgileri, LAA çevrimiçi portalının kullanıcı hesap bilgileri ve sistemlerden gelen yazışma kayıtları etkilenmiş olabilir. Hatta Crown Court davalarında görev almış hakimlerin, avukatların ve zabıt kâtiplerinin adları da etkilenen veriler arasında sayılıyor.

Bu ayrıntı seviyesi, verinin hassasiyetini çok net gösteriyor: Burada sadece iletişim bilgileri değil, kişilerin yargılandığı suçlar, mahkûmiyetleri, mali durumları ve aile bilgileri söz konusu.

Denetimli Serbestlik (HMPPS) Verileri

Güncellemeye göre saldırganlar, 2010-2017 arasında denetimli serbestlik servisi tarafından aktif olarak yönetilen "görece az sayıda" hükümlüye ait ad, doğum tarihi, uyruk ve dava referans numaralarını da almış. Bu verilerin %99'undan fazlası özellikle 2016-2017 döneminde denetim altında olan kişilere ait.

Neden Bu Kadar Geç Netleşti?

LAA'nın açıklaması dürüst ve öğretici: Saldırı çok sayıda karmaşık dijital sistemi ve büyük hacimde bilgiyi etkilemiş. Verilerin önemli kısmı yapılandırılmamış, parçalı ya da eksik olduğu için analizi zorlaşmış. Uzman teknik ve veri ekipleri bu süre boyunca saldırganların neye erişip neyi çıkardığını anlamaya çalışmış; artan analiz kapasitesiyle tablo netleşmiş.

Bu, olay müdahalesinde sık atlanan bir gerçeği hatırlatıyor: "Ne çalındı?" sorusunun cevabı, verinizin nerede, hangi formatta ve ne kadar süredir durduğunu bilmenize bağlı. 1978'den kalma bir kaydın 2025'te erişilebilir bir sistemde durması, veri saklama politikalarının pratikte nasıl işlemediğinin iyi bir örneği.



Kurumun Aldığı Önlemler ve Maliyet

GOV.UK'e göre Adalet Bakanlığı ve LAA saldırıdan bu yana kimlik doğrulama ve erişim kontrollerini güçlendirdi, güvenlik izlemesini iyileştirdi, açıkları giderdi, yüksek riskli teknolojileri emekliye ayırdı ya da izole etti ve eski sistemleri modernleştirmeye yönelik uzun vadeli çalışmaları sürdürüyor.

BleepingComputer'ın aktardığına göre bu dönüşümün maliyeti de dikkat çekici: Saldırıdan önce taahhüt edilen harcama 20 milyon sterlin seviyesindeyken, bu rakam artık 200 milyon sterlini aşmış. Yani olay sonrası maliyet, önceden planlanan yatırımın on katını geçmiş.

BleepingComputer, İngiltere'de son dönemde Co-op, Harrods ve Marks & Spencer gibi perakende devlerine yönelik DragonForce saldırılarını ve hükümetin 210 milyon sterlinlik siber güvenlik stratejisini de hatırlatıyor.

Etkilenmiş Olabilecekler İçin Öneriler

LAA'nın önerileri:
  • Şüpheli mesaj, e-posta ve telefon aramalarına karşı dikkatli olun.
  • Beklenmedik kişisel veya finansal bilgi taleplerine karşı temkinli olun.
  • Hassas bilgi isteyen kişinin kimliğini bağımsız olarak doğrulayın.
  • Güçlü ve hesaplar arasında tekrar kullanılmayan parolalar kullanın.

Bizim İçin Dersler

Onlarca yıllık kayıtları dijitalleştirip modern sistemlere taşıyan her kurum (kamu, sağlık, hukuk) için bu olaydan çıkarılacak birkaç ders var:
  • Saklama süresi dolan veriyi silin ya da çevrimdışı arşive alın. Tutmadığınız veri çalınamaz.
  • Veri envanteri olmadan olay müdahalesi kör kalır. Ne çalındığını bilmek için ne tuttuğunuzu bilmeniz gerekir.
  • Eski sistemler borçtur, faizi de yüksektir. 20 milyondan 200 milyon sterline çıkan maliyet bunun en net göstergesi.

Kurumunuzda en eski dijital kayıt hangi yıla ait, hiç baktınız mı? Yorumlarda paylaşırsanız ilginç bir tablo çıkabilir.

Kaynaklar
Alıntı:Yasal Uyarı: Bu konu yalnızca bilgilendirme ve savunma amaçlıdır. Paylaşılan kontrol ve tespit adımlarını yalnızca sahibi olduğunuz veya yazılı izinle yönettiğiniz sistemlerde uygulayın. İzinsiz erişim, tarama ve sistemlere müdahale, 5237 sayılı Türk Ceza Kanunu'nun 243-245. maddeleri kapsamında suçtur.

Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).

Ek DosyalarEkran Görüntüleri
   
 PwnEscape CVE-2026-99999: Linux Çekirdeğinde VM'den Host Belleğine Uzanan Kritik Açık
Tonyukuk 10-18-2026, 08:17 AM · Siber Güvenlik Haberleri
0 33
[Resim: attachment.php?aid=153]

Selam arkadaşlar,

Bulut ve sanallaştırma tarafında çalışan herkesin en çok korktuğu senaryo, misafir (guest) makinedeki bir kullanıcının host'a uzanabilmesi. Bu hafta tam bu kategoriden bir Linux çekirdeği açığı kamuya açıklandı: PwnEscape adı verilen ve CVE-2026-99999 numarasını alan açık, Linux çekirdeğinin ağ yığınındaki sağlama toplamı (checksum) işleme kodunda. Hikâyenin ilginç tarafı, açığın Vercel'in 1 milyon dolarlık sandbox kaçış yarışmasında, yapay zeka desteğiyle ve 700 dolardan az token harcanarak bulunmuş olması.

Konuda Anlatılacaklar
  1. Açık nedir, nerede?
  2. Nasıl bulundu? Vercel yarışması ve yapay zeka destekli araştırma
  3. Gerçek etki: neler gösterildi, neler gösterilmedi?
  4. Düzeltme ve yamalı çekirdek sürümleri
  5. Neden host'u yamalamak gerekiyor?
  6. Kontrol ve sıkılaştırma önerileri
  7. Kaynaklar

Açık Nedir?

The Hacker News ve LWN'nin aktardığına göre açık, çekirdeğin ağ kodunda skb_checksum_help fonksiyonu ve IPv4 sağlama toplamı meta verilerinin işlenmesiyle ilgili. Sanal makineden gelen, özel olarak hazırlanmış paketlerdeki checksum meta verisine host çekirdeğinin fazla güvenmesi, bellek sınırlarının dışına erişime yol açıyor.

Kernel CNA'nın verdiği CVSS puanı 9.3. Saldırı vektörü "yerel" (local), çünkü saldırganın önce bir misafir makinenin içinde kod çalıştırabiliyor olması gerekiyor. Ama düşünün: Bulut sağlayıcıları, CI/CD platformları ve kod çalıştırma sandbox'ları tam olarak bunu, yani yabancıların kodunu kendi altyapılarında çalıştırmayı satıyor. Bu ortamlarda "yerel" vektör, pratikte "herhangi bir müşteri" anlamına geliyor.

Açık şu an CISA KEV kataloğunda değil ve gerçek dünyada sömürüldüğüne dair bir rapor yok.



Nasıl Bulundu?

Açığı pwn.ai'dan güvenlik araştırmacısı Paulos Yibelo buldu. Vercel, ağustos ayında iki haftadan uzun süren ve sandbox altyapısından kaçmayı hedefleyen 1 milyon dolarlık bir yarışma düzenledi. The Hacker News'e göre Vercel bu yarışmada 1.285 rapor için toplam 242 bin dolar ödeme yaptı; en yüksek tekil ödül 50 bin dolardı ve PwnEscape, yarışmada "Kritik" olarak derecelendirilen tek bulguydu.

pwn.ai blog yazısına göre açık üç günde, yapay zeka desteğiyle ve 700 dolardan az model token maliyetiyle bulundu. Bu ayrıntı bence haberin asıl başlığı olmayı hak ediyor. Çekirdek ağ yığını gibi yıllardır binlerce gözün incelediği bir kodda, düşük maliyetli yapay zeka destekli araştırmanın kritik bir açık çıkarabilmesi, hem savunmacılar hem saldırganlar için oyunun kurallarının değiştiğini gösteriyor.

Gerçek Etki: Ne Gösterildi, Ne Gösterilmedi?

Burada abartıya kaçmamak önemli, çünkü kaynaklar farklı ortamlardaki sonuçları ayrı ayrı anlatıyor:
  • Vercel üretim sandbox'larında: Paket başına yaklaşık 32 baytlık bir bellek sızıntısı gösterildi. Yani host belleğinden küçük parçalar okunabildi.
  • Araştırmacının kendi KVM/Firecracker makinelerinde: Host'un çökertilmesi ve root yetkisiyle kod çalıştırma gösterildi. Sadece iki paketin bir host'u çökertmeye yettiği belirtiliyor.

Yani "Vercel'de host ele geçirildi" demek yanlış olur. Üretimde gösterilen etki bilgi sızıntısı; tam ele geçirme ise kontrollü test ortamında gösterildi. Ancak bellek sızıntısı da tek başına ciddi: Host belleğindeki küçük parçalar, aynı makinede çalışan başka müşterilerin verilerini ya da sonraki saldırı adımları için gereken adres bilgilerini içerebilir.

Düzeltme ve Yamalı Sürümler

Düzeltme, Red Hat'ten Michael S. Tsirkin'in 6785011f8b16 numaralı commit'i. Commit "derinlemesine savunma" (defence-in-depth) olarak tanımlanıyor. LWN'ye göre düzeltme 8 Ekim'de net.git ağacına alındı ve 14 Ekim'de ana dala (mainline) birleştirildi.

LWN'nin 15 Ekim tarihli haberine göre düzeltmeyi içeren kararlı (stable) çekirdek sürümleri:
Kod:
5.10.272 5.15.223 6.1.190 6.6.159 6.12.113 6.18.57 7.2.11

Konunun oss-security listesine düşen duyurusu da 15 Ekim tarihli. Dağıtım çekirdeği kullananlar, kendi dağıtımlarının güvenlik bildirimlerini takip etmeli; düzeltme dağıtıma özgü paket sürümlerine geri taşınacaktır.

Neden Host'u Yamalamak Gerekiyor?

Bu açıkta en sık yapılabilecek hata, misafir makineleri güncelleyip rahatlamak. Zafiyetli kod host çekirdeğinde çalışıyor; saldırgan ise misafirin içinde. Misafirin çekirdeğini güncellemek, kötü niyetli bir misafirin host'a paket göndermesini engellemez, çünkü saldırgan zaten kendi misafir çekirdeğini kontrol ediyor olabilir.

Yapılması gereken:
  • Host çekirdeğini yamalı sürüme yükseltin.
  • Host'u yeniden başlatın. Çekirdek güncellemesi yeniden başlatma olmadan etkinleşmez (canlı yama çözümü kullanıyorsanız sağlayıcınızın bu CVE'yi kapsayıp kapsamadığını kontrol edin).



Kontrol ve Sıkılaştırma

Host üzerinde çalışan çekirdek sürümünü kontrol edin:
Kod:
uname -r

Kurulu ama henüz başlatılmamış daha yeni bir çekirdek olup olmadığına bakın (Debian/Ubuntu):
Kod:
ls /boot/vmlinuz-* cat /var/run/reboot-required 2>/dev/null

RHEL tabanlı sistemlerde:
Kod:
rpm -q kernel needs-restarting -r

Dağıtımınızın güvenlik takipçisinde CVE'yi arayarak hangi paket sürümünde düzeltildiğini teyit edin. Bunu yapmadan "sürüm numaram yüksek, sorun yok" demeyin; dağıtım çekirdekleri upstream numaralandırmasını birebir izlemez.

The Hacker News'in aktardığına göre Vercel, yama dışında ek önlemler de alıyor: iç içe sanallaştırmayı (nested virtualization) devre dışı bırakmak ve Firecracker'ı jailer ile çalıştırmak. Bunlar genel olarak çok kiracılı sanallaştırma ortamları için de mantıklı sıkılaştırma adımları:
  • İhtiyaç yoksa nested virtualization'ı kapatın.
  • Firecracker kullanıyorsanız jailer ile çalıştırın; VMM sürecini ayrı kullanıcı, chroot, cgroup ve seccomp ile sınırlayın.
  • Güvenilmeyen kod çalıştıran host'ları, hassas iş yükleri çalıştıran host'lardan ayırın.

Ev labında Proxmox ya da düz KVM çalıştıranlar için de durum aynı: Misafir makinelerinizde güvenmediğiniz kod çalışıyorsa (test ortamları, CTF makineleri, zararlı analizi) host'u önceliklendirin.

Yapay zeka destekli açık avcılığının üç günde, birkaç yüz dolara çekirdek seviyesinde kritik bulgu çıkarması hakkında ne düşünüyorsunuz? Önümüzdeki dönemde yama hızımızın buna yetişip yetişemeyeceği bence tartışmaya değer.

Kaynaklar
Alıntı:Yasal Uyarı: Bu konu yalnızca bilgilendirme ve savunma amaçlıdır. Paylaşılan kontrol ve tespit adımlarını yalnızca sahibi olduğunuz veya yazılı izinle yönettiğiniz sistemlerde uygulayın. İzinsiz erişim, tarama ve sistemlere müdahale, 5237 sayılı Türk Ceza Kanunu'nun 243-245. maddeleri kapsamında suçtur.

Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).

Ek DosyalarEkran Görüntüleri
   
 Windows Event Log ile İlk Tehdit Avı: 4624, 4625, 4688 ve 1102
BilgeKagan 10-18-2026, 08:16 AM · Mavi Takım / SOC
0 35
[Resim: attachment.php?aid=152]

Merhaba,

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.

Önkoşul: audit politikası
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:
Kod:
# PowerShell (yönetici) - lab auditpol /set /subcategory:"Process Creation" /success:enable # Komut satırı ekleme (Sysmon yoksa) reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit /v ProcessCreationIncludeCmdLine_Enabled /t REG_DWORD /d 1 /f
Üretimde GPO ile yapın; kalıcı ve merkezi olsun. Sysmon varsa 1/3/11 ile bu boşluklar çok daha zengin dolar.

4624 — başarılı oturum
Logon Type değerleri kritik:
  • 2: etkileşimli (konsol)
  • 3: ağ (SMB, vs.)
  • 10: RemoteInteractive (RDP)
  • 5: servis
Gece 03:00'te Type 10 + beklenmeyen hesap = incele. PowerShell:
Kod:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddHours(-24)} | Select-Object TimeCreated,@{n='Target';e={$_.Properties[5].Value}},@{n='LogonType';e={$_.Properties[8].Value}},@{n='Ip';e={$_.Properties[18].Value}} | Format-Table -AutoSize



4625 — başarısız oturum
Brute force ve parola spray burada görünür. Aynı Source IP'den çok sayıda 4625, ardından bir 4624 = klasik pattern.
Kod:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-6)} | Group-Object { $_.Properties[19].Value } | Sort-Object Count -Descending | Select-Object -First 10

4688 — yeni süreç
Parent-child ilişkisi ve CommandLine (açıksa) lateral movement / LOLBin avında altındır. Örnek şüpheli: winword.exe -> powershell.exe, veya userinit -> unknown.exe.
Kod:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=(Get-Date).AddHours(-4)} | Where-Object { $_.Message -match 'powershell|cmd.exe|rundll32|mshta' } | Select-Object -First 20 TimeCreated, Message

1102 — audit log temizlendi
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.

Hızlı av senaryoları
  1. RDP brute: 4625 Type 10 yoğunluğu + nadir 4624
  2. Pass-the-hash şüphesi: Type 3 logon pattern'leri + aynı anda süreç anormallikleri (ileri seviye; tek başına 4624 yetmez)
  3. Log silme: 1102
  4. Şüpheli yönetim aracı: 4688 içinde ntdsutil, diskshadow, procdump vb. (ortamınıza göre allowlist)

SIEM'e taşırken
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.

Kaynaklar
  • Microsoft Event ID referansları (learn.microsoft.com)
  • MITRE ATT&CK: Logon / Process Discovery teknikleri
  • SigmaHQ rules (windows)

Sizin ilk baktığınız Event ID hangisi? 4672 (özel yetkiler) ekleyenler de yorumda anlatsın.

wevtutil ve uzak log
Kod:
wevtutil qe Security /q:"*[System[(EventID=4625)]]" /c:20 /f:text
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.

Sysmon ile zenginleştirme
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.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Uygulama notu
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.
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.

Ek DosyalarEkran Görüntüleri