HowDefend English

Nasıl savunulur · T1547.001

Run anahtarıyla kalıcılığa karşı nasıl savunulur

Run anahtarına yazmak kurulu yazılımlar için normaldir ve onları bozmadan engellenemez; savunma tespit ve neyin çalışabileceği üzerindeki kontroldür. Run ve RunOnce anahtarlarına yazılan değerleri loglayın (Sysmon Event ID 13), değer bir script yorumlayıcısını ya da kod çalıştırmak için sık kullanılan bir sistem dosyasını başlatıyorsa alarm üretin, açılışta çalışan kayıtları Autoruns ile gözden geçirin ve onaylanmamış bir program kayıtlı olsa bile oturum açılışında çalışmasın diye App Control for Business kullanın.

Saldırgan ne yapar

Bu anahtarlar altındaki her değer, bir kullanıcı oturum açtığında bir program başlatır:

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run ve RunOnce: mevcut kullanıcı için. Her kullanıcı buraya yönetici yetkisi olmadan yazabilir.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Run ve RunOnce: bütün kullanıcılar için. Buraya yazmak yönetici yetkisi ister.

Bir kez kod çalıştırmış saldırgan, kod her yeniden başlatmadan sonra tekrar çalışsın diye bir değer ekler. RunOnce değerleri çalıştıktan sonra silinir.

Logda nasıl görünür

Bir registry değer yazma olayı (Sysmon Event ID 13, category: registry_set): TargetObject değerin tam yolu, Details çalışacak komut, Image onu yazan programdır. Kayıtlarda bir post-exploitation framework'ünün yazdığı iki kayıttan biri:

ImageC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
TargetObjectHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Updater
Details"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -c "$x=$((gp HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion Debug).Debug);powershell -Win Hidden -enc $x"
EventTypeSetValue

Değer PowerShell'i başlatıyor; PowerShell asıl script'ini başka bir registry değerinden okuyor. Kurulu yazılımlar ise genellikle kendi çalıştırılabilir dosyasını kaydeder.

Tespit

Challenge verisinde ölçüldü: kural 2 saldırı olayından 2 tanesini yakaladı, 9.691 normal olaydan 1 tanesiyle eşleşti.

Kuralı göster (önce challenge'ı deneyin)
title: Run key value that starts a script interpreter
id: 5e7f0a3c-9d28-4b61-8e4a-2c6b1f9d7a05
status: test
description: Detects a value written under a Run or RunOnce key whose command starts a script interpreter or a system binary often used to run code. Installed software normally registers its own executable.
references:
  - https://attack.mitre.org/techniques/T1547/001/
  - https://howdefend.com/defend/run-key-persistence/
author: Bartu Kılıç
date: 2026-10-20
tags:
  - attack.persistence
  - attack.t1547.001
logsource:
  product: windows
  category: registry_set
detection:
  selection_key:
    TargetObject|contains:
      - '\CurrentVersion\Run\'
      - '\CurrentVersion\RunOnce\'
  selection_value:
    Details|contains:
      - 'powershell'
      - 'pwsh'
      - 'mshta'
      - 'wscript'
      - 'cscript'
      - 'rundll32'
      - 'regsvr32'
      - 'cmd.exe'
  condition: all of selection_*
falsepositives:
  - Software that registers a script or a rundll32 command at logon (review the Details value)
level: medium

Kuralın kaçırdıkları

  • Bırakılmış bir çalıştırılabilir dosya. Değer saldırganın kendi programını, örneğin AppData içinde, gösteriyorsa Details'te yorumlayıcı görünmez. Kurulu yazılımlar da AppData'da durur (temiz istemcide Spotify ve bir Python kurulum programı oraya işaret eden değerler kaydediyor); klasör tek başına bir şey ayırmaz, App Control ayırır.
  • Diğer otomatik başlatma yerleri. Startup klasörü, servisler, zamanlanmış görevler, Winlogon değerleri ve ATT&CK'in listelediği diğer anahtarların her biri ayrı kural ister.
  • Bilinen bir false positive. Temiz Windows 10 istemcisinde OneDrive kurulumu, eski sürüm klasöründe cmd.exe /q /c rmdir /s /q çalıştıran bir RunOnce değeri yazdı. Onu cmd.exe'ye göre değil, değerin tamamına göre filtreleyin.
  • Eksik loglama. Sysmon yalnızca yapılandırmasındaki anahtarları kaydeder. Kurala güvenmeden önce kullanılan yapılandırmanın Run anahtarlarını kapsadığını kontrol edin.

Önleme

  • Nereye kaydedildiğini değil, neyin çalıştığını kontrol edin. App Control for Business ya da AppLocker uygulandığında, kayıtlı ama politikanın izin vermediği bir program oturum açılışında başlamaz.
  • Listeyi gözden geçirin. Autoruns (Sysinternals) her otomatik başlatma yerini imza ve yayıncı bilgisiyle listeler; çıktısını makineler arasında karşılaştırmak yalnızca bir makinede olan kayıtları gösterir.

Pratik

Kuralı aynı veri üzerinde, hedeflerin hepsi etiketliyken kendiniz yazın.

Kaynaklar