Skip to content
Siber Vatan

Atomic Red Team Senaryolarını Sysmon ve Security Loglarında İncelemek

Rabia Ekşi

Atomic Red Team çalışması için siber güvenlik görseli

Atomic Red Team, MITRE ATT&CK tekniklerini küçük ve tekrarlanabilir testlere dönüştüren açık kaynak bir kütüphanedir. Amaç “sistemi ele geçirmek” değil; güvenlik kontrolünün beklenen davranışı görüp görmediğini, doğru logun oluşup oluşmadığını ve analistin bu sinyali yakalayıp yakalayamadığını ölçmektir.

Bu çalışmada kontrollü bir Windows lab'ında testi seçiyor, Sysmon ve Security log kaynaklarını hazırlıyor, Atomic test'i çalıştırıyor ve elde ettiğimiz event'leri DFIR bakışıyla inceliyoruz.

ATT&CK tekniğinden doğrulanmış tespite uzanan Atomic Red Team akışı

1. MITRE ATT&CK, Taktik ve Teknik

MITRE ATT&CK, gerçek dünya gözlemlerine dayanan saldırgan davranışı bilgi tabanıdır. İki temel kavramı ayırmak gerekir:

  • Taktik, saldırganın o aşamadaki hedefidir: Initial Access, Execution, Persistence veya Discovery gibi.
  • Teknik, bu hedefe ulaşmak için kullanılan somut davranıştır: PowerShell, Scheduled Task/Job veya Registry Run Keys / Startup Folder gibi.

Atomic Red Team'deki her test bir ATT&CK teknik kimliği altında tutulur. Örneğin PowerShell testleri T1059.001 dizininde yer alır. Aynı teknik altında farklı komut, prerequisite ve platformlara sahip birden fazla Atomic test bulunabilir.

2. Event ID Nedir?

Windows Event Log'daki her olay türü sayısal bir Event ID ile tanımlanır. Event ID olayın sınıfını söyler; olayın bağlamı ise kullanıcı, host, zaman, process, komut satırı ve ağ alanlarından çıkarılır.

KaynakÖrnek Event IDSağladığı visibility
Windows Security4688Yeni process, kullanıcı ve isteğe bağlı komut satırı
Windows Security4624/4625Başarılı ve başarısız oturum açma
Sysmon1Process oluşturma, parent process, hash ve ProcessGUID
Sysmon3Process ile ilişkilendirilmiş ağ bağlantısı; yapılandırmada açıyoruz
Sysmon11Dosya oluşturma
Sysmon12/13/14Registry nesnesi oluşturma, değer yazma, silme veya yeniden adlandırma

Tek bir Event ID “saldırı” demek değildir. Testin beklenen davranışıyla logdaki alanları eşleştiriyor, ardından bu davranışın meşru yazılım etkinliğinden nasıl ayrıldığını değerlendiriyoruz.

3. Lab Hazırlığı

Test ortamımızı şu bileşenlerle hazırlıyoruz:

  • Snapshot alınmış, üretimden izole bir Windows sanal makinesi
  • Yönetici erişimi ve belgelenmiş test izni
  • Aktif Sysmon yapılandırması
  • Security loglarında process creation audit'i
  • Logları merkezi sisteme taşıyan EDR, SIEM veya Windows Event Forwarding
  • Test öncesi ve sonrası timestamp

Test sonunda önce Atomic testinin kendi Cleanup Commands bölümünü uyguluyor, gerektiğinde snapshot ile lab'ı bütünüyle sıfırlıyoruz.

4. Sysmon Kurulumu ve Log Kaynağı

Sysmon, Microsoft Sysinternals tarafından sağlanan bir Windows hizmeti ve sürücüsüdür. Process, ağ, dosya ve Registry gibi olayları ayrıntılı alanlarla Microsoft-Windows-Sysmon/Operational kanalına yazar.

Microsoft'un imzalı paketini indirip ortamımıza uygun XML yapılandırmasını hazırladıktan sonra yönetici terminalinde şu komutu çalıştırıyoruz:

powershell
Sysmon64.exe -accepteula -i .\sysmonconfig.xml

Mevcut yapılandırmayı güncelliyoruz:

powershell
Sysmon64.exe -c .\sysmonconfig.xml

Durumu ve geçerli yapılandırmayı kontrol ediyoruz:

powershell
Sysmon64.exe -c
Get-WinEvent -LogName 'Microsoft-Windows-Sysmon/Operational' -MaxEvents 5

Sysmon bütün event'leri varsayılan olarak toplamadığı için özellikle ağ bağlantılarını gösteren Event ID 3'ü yapılandırmada açıyoruz. Noise'u azaltmak için dahil etme ve hariç tutma filtrelerini test hedeflerimize göre planlıyoruz.

5. Security Logunda 4688'i Hazırlamak

Windows Security Event ID 4688, yeni process oluşturulduğunda üretilir. Bunun için Advanced Audit Policy altında Detailed Tracking → Audit Process Creation başarılı olaylarını etkinleştiriyoruz.

Komut satırını da görmek için Group Policy'de:

text
Computer Configuration
└─ Administrative Templates
   └─ System
      └─ Audit Process Creation
         └─ Include command line in process creation events = Enabled

6. Invoke-AtomicRedTeam Kurulumu

PowerShell'i yönetici olarak açıyor ve Invoke-AtomicRedTeam modülünü PowerShell Gallery'den kullanıcı scope'unda kuruyoruz:

powershell
Install-Module -Name invoke-atomicredteam,powershell-yaml -Scope CurrentUser
Import-Module invoke-atomicredteam

Test tanımlarını resmi depodan ayrı bir lab dizinine alıyoruz:

powershell
git clone --depth 1 https://github.com/redcanaryco/atomic-red-team.git C:\AtomicRedTeam

$PSDefaultParameterValues = @{
  'Invoke-AtomicTest:PathToAtomicsFolder' = 'C:\AtomicRedTeam\atomics'
}

Atomic deposundaki bin ve src dosyaları güvenlik ürünlerini tetikleyebilir. Geniş bir klasör istisnası açmıyor; yalnızca seçtiğimiz testi izole VM'de çalıştırıyoruz.

7. Test Seçimi ve Ön İnceleme

Önce teknik altındaki testleri listeliyor, komutu doğrudan çalıştırmadan içeriğini inceliyoruz:

powershell
$Technique = 'T1059.001'
Invoke-AtomicTest $Technique -ShowDetailsBrief

Listeden bir test seçtikten sonra numarasını değişkene alıyoruz:

powershell
$TestNumber = 1  # ShowDetailsBrief çıktısında incelediğiniz test
Invoke-AtomicTest $Technique -TestNumbers $TestNumber -ShowDetails
Invoke-AtomicTest $Technique -TestNumbers $TestNumber -CheckPrereqs

ShowDetails çıktısında şu alanlara bakıyoruz:

  • Çalıştırılacak komut ve kullanılan binary
  • Yönetici yetkisi gerekip gerekmediği
  • İndirilecek veya oluşturulacak dosyalar
  • Değiştirilecek Registry, servis veya görev alanları
  • Ağ bağlantısı gereksinimi
  • Cleanup komutu
  • Beklenen Sysmon ve Security olayları

Prerequisite eksikse -GetPrereqs kullanmak mümkündür; ancak bu adım dış kaynaktan dosya indirebilir. Bu nedenle URL'yi ve hash'i incelemeden otomatik indirme yapmıyoruz.

8. Testi Çalıştırma ve Temizleme

Test başlangıç zamanını kaydediyor ve testi çalıştırıyoruz:

powershell
$StartTime = Get-Date
Invoke-AtomicTest $Technique -TestNumbers $TestNumber
$EndTime = Get-Date

Test tamamlanınca merkezi log altyapısındaki aktarım gecikmesini hesaba katıp kısa bir süre bekliyor, ardından cleanup adımını çalıştırıyoruz:

powershell
Invoke-AtomicTest $Technique -TestNumbers $TestNumber -Cleanup

Cleanup komutunun başarılı dönmesi yeterli değildir. Oluşturulan dosya, Registry değeri, kullanıcı, servis veya görevin gerçekten kaldırıldığını ayrıca doğruluyoruz.

9. Sysmon ve Security Log Analizi

Test penceresindeki Sysmon process olaylarını PowerShell ile çekmek için:

powershell
Get-WinEvent -FilterHashtable @{
  LogName   = 'Microsoft-Windows-Sysmon/Operational'
  Id        = 1
  StartTime = $StartTime
  EndTime   = $EndTime.AddMinutes(2)
} | Select-Object TimeCreated, Id, Message

Security 4688 için:

powershell
Get-WinEvent -FilterHashtable @{
  LogName   = 'Security'
  Id        = 4688
  StartTime = $StartTime
  EndTime   = $EndTime.AddMinutes(2)
} | Select-Object TimeCreated, Id, Message

Analizde yalnızca test komutunu aramıyor, event chain'i kuruyoruz:

AlanAnaliz sorusu
UtcTime / TimeCreatedOlay test penceresinde mi? Saat dilimleri doğru mu?
User / SubjectUserNameTest beklenen hesap bağlamında mı çalıştı?
Image / NewProcessNameHangi executable başladı?
CommandLineParametreler test tanımıyla eşleşiyor mu?
ParentImage / CreatorProcessNameProcess'i hangi üst process başlattı?
ProcessGUID / ProcessIdDosya ve ağ olayları aynı process'e bağlanabiliyor mu?
Hashes / SignatureBinary bilinen ve imzalı mı?
DestinationIp / DestinationPortBeklenen veya beklenmeyen ağ bağlantısı var mı?

Beklenen sonuç matrisi

KontrolBeklentiSonuç
Endpoint loguSysmon Event ID 1 oluşurGeçti / Kaldı
Security logu4688 ve komut satırı görünürGeçti / Kaldı
ToplamaOlay SIEM'e belirlenen sürede ulaşırGeçti / Kaldı
TespitKural doğru önem seviyesiyle alert üretirGeçti / Kaldı
EnrichmentATT&CK teknik kimliği ve host bilgisi eklenirGeçti / Kaldı
CleanupOluşturulan artifact'ler kaldırılırGeçti / Kaldı

Bir kontrolün “kaldı” sonucu vermesi başarısız bir çalışma değildir; eksik telemetri, yanlış filtre veya tespit mantığındaki boşluğu görünür hâle getirir.

10. DFIR Raporu

Her test için kısa ama tekrarlanabilir bir rapor tutuyoruz:

text
Test kimliği        : ATT&CK tekniği + Atomic test GUID/numarası
Amaç                : Doğrulanacak güvenlik kontrolü
Yetki ve scope      : Onay sahibi, host ve zaman aralığı
Prerequisite'ler    : Sysmon sürümü, config hash'i, audit policy
Çalıştırma zamanı   : UTC başlangıç ve bitiş
Üretilen artifact'ler: Dosya, Registry, servis, görev, ağ bağlantısı
Gözlenen loglar     : Kanal, Event ID, Record ID
Tespit sonucu       : Alert adı, önem seviyesi, gecikme
Boşluklar           : Eksik alan, filtre veya korelasyon
Cleanup sonucu      : Kaldırılan artifact'ler ve doğrulama
Kanıtlar            : Sorgu çıktısı, ekran görüntüsü, olay dışa aktarımı

Test numaraları ve adları zaman içinde değişebilir. Otomasyonda mümkün olduğunda Atomic test GUID'sini ve kullanılan repo commit'ini kaydetmek sonucu yeniden üretilebilir kılar.

Sonuç

Atomic Red Team'in değeri yalnızca bir komut çalıştırmasında değil, test boyunca kurulan ölçüm döngüsündedir: ATT&CK tekniğini seçmek, telemetriyi hazırlamak, beklenen olayı üretmek, tespiti doğrulamak ve ortamı temizlemek.

Sysmon ayrıntılı endpoint bağlamını, Security logları ise Windows denetim izini sağlar. İki kaynak aynı zaman, kullanıcı ve process bağlamında korele edildiğinde tek bir event'ten çok daha güçlü bir tespit hikâyesi oluşur.

Kaynakça

Atomic Red Team ve Windows Logları İçin Kaynakça