Zamanlanmış görev kötüye kullanımına karşı nasıl savunulur
Zamanlanmış görevler Windows'un ve kurulu yazılımların normal bir parçasıdır; savunma engelleme değil, loglama ve gözden geçirmedir. Task Scheduler Operational logunu açın (görev kaydını Event ID 106 olarak tutar) ve Other Object Access Events'i denetleyin (Security Event ID 4698), süreç oluşturmayı loglayın ki schtasks.exe /Create komut satırıyla görünsün, görev bir script yorumlayıcısını ya da kullanıcının yazabildiği bir klasördeki bir programı çalıştırdığında alarm üretin. Görev listesini makinelerin bir örnekleminde bilinen iyi bir referansla karşılaştırarak gözden geçirin.
Saldırgan ne yapar
Zamanlanmış görev bir programı belirli bir saatte, açılışta, oturum açılışında ya da bir olayda, onu oluşturanın belirttiği herhangi bir hesapla (SYSTEM dahil) çalıştırır. Bir kez kod çalıştırmış bir saldırgan, kod yeniden başlatmadan sonra tekrar çalışsın diye bir görev oluşturur ya da görevi SYSTEM olarak veya başka bir makinede çalışmak için kullanır. Görev schtasks.exe ile, ScheduledTasks PowerShell modülüyle ya da görev XML'i doğrudan C:\Windows\System32\Tasks içine yazılarak oluşturulabilir.
Logda nasıl görünür
schtasks.exe için bir süreç oluşturma olayı (Sysmon Event ID 1 ya da komut satırı denetimiyle Windows Security Event ID 4688). /Create ile birlikte /TR parametresi görevin çalıştıracağı komutu, /SC zamanlamayı, /RU hesabı tutar. Kayıtlardaki görevlerden biri:
| Image | C:\Windows\System32\schtasks.exe |
|---|---|
| CommandLine | "C:\windows\system32\schtasks.exe" /Create /F /SC DAILY /ST 09:00 /TN MordorSchtask /TR "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NonI -W hidden -c \"IEX ([Text.Encoding]::UNICODE.GetString([Convert]::FromBase64String((gp HKCU:\Software\Microsoft\Windows\CurrentVersion debug).debug)))\"" |
| ParentImage | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
| User | THESHIRE\pgustavo |
Başka bir makinede oluşturulan bir görev /S <makineadı> taşır. Aynı işlem, loglar açıksa, Security Event ID 4698 ve Task Scheduler Operational Event ID 106 olarak da kaydedilir.
Tespit
Challenge verisinde ölçüldü: kural 3 saldırı olayından 3 tanesini yakaladı, 2.438 normal olaydan 0 tanesiyle eşleşti.
Kuralı göster (önce challenge'ı deneyin)
title: Scheduled task created to run a script interpreter or a user-path binary
id: 22d5efc0-ed55-43a6-9d3a-7d7f514e09c5
status: test
description: >
Detects a task created with schtasks.exe whose run command starts a script interpreter or a binary
from a user-writable folder. Software usually registers a task that runs its own signed program, so
these are worth an alert. Installed software that creates tasks from an XML file (/XML) does not match.
references:
- https://attack.mitre.org/techniques/T1053/005/
- https://howdefend.com/defend/scheduled-task-persistence/
author: Bartu Kılıç
date: 2026-10-20
tags:
- attack.persistence
- attack.execution
- attack.t1053.005
logsource:
product: windows
category: process_creation
detection:
selection:
Image|endswith: '\schtasks.exe'
CommandLine|contains|all:
- '/create'
- '/tr'
run_suspicious:
CommandLine|contains:
- 'powershell'
- 'pwsh'
- 'cmd.exe'
- 'mshta'
- 'wscript'
- 'cscript'
- 'rundll32'
- 'regsvr32'
- '\users\'
- '\appdata\'
- '\programdata\'
- '\temp\'
- '\public\'
condition: selection and run_suspicious
falsepositives:
- An installer that registers a task running a script or a program from ProgramData (review the task command)
level: medium
Kuralın kaçırdıkları
- İmzalı bir program çalıştıran görev. Saldırganın yükü düz yola sahip, indirilmiş bir programsa komut satırında ne bir yorumlayıcı ne de bir kullanıcı klasörü işareti olur. Bunun yerine görevleri bir referansta bilinen iyilerle eşleştirin ya da hesaba göre alarm üretin (etkileşimli bir oturumdan
/RU system). - schtasks.exe olmadan oluşturulan görevler. PowerShell modülü ve Tasks klasörüne doğrudan yazma bir
schtasks.exesüreci bırakmaz. Event ID 4698 ve Operational log bunları yakalar, çünkü kaydın kendisini tutarlar. - Eksik loglama. Task Scheduler Operational logu varsayılan olarak kapalıdır ve 4698 için
Other Object Access Eventsdenetim alt kategorisi gerekir. Onlar olmadan geriye yalnızca süreç oluşturma kalır.
Önleme
- Temiz bir engelleme yok. Zamanlanmış görevler Windows ve çoğu kurulu yazılım tarafından kullanılır; bu yüzden kontrol önleme değil, loglama ve gözden geçirmedir.
- Referansla karşılaştırın. Görev listesini makineler arasında kıyaslayın; yalnızca bir makinede olan ya da bir kullanıcı klasöründen çalışan bir görev öne çıkar.
- Kimin oluşturabileceğini kısıtlayın. Standart bir kullanıcı kendisi olarak çalışan görevler oluşturabilir; SYSTEM olarak ya da başka bir makinede çalıştırmak yönetici hakları gerektirir. Daha az yerel yönetici, bir görevi Windows'un parçası gibi gizleyebilecek daha az hesap demektir.
Pratik
Kuralı aynı veri üzerinde, hedeflerin hepsi etiketliyken kendiniz yazın.