# DC0018 - Scheduled Task/Job Creation > [!info] Monitora o estabelecimento de tarefas agendadas em Windows, Linux e macOS. Um dos mecanismos de persistência mais frequentemente abusados — sobrevivem a reinicializações e executam com privilégios elevados. ## Descrição Scheduled Task/Job Creation monitora o estabelecimento de tarefas agendadas ou jobs que serão executados automaticamente em momentos predefinidos ou mediante gatilhos específicos. Tarefas agendadas são um dos mecanismos de persistência mais frequentemente abusados por adversários e ransomware, pois sobrevivem a reinicializações, executam com privilégios elevados e são frequentemente ignoradas por monitoramento menos sofisticado. Cobrem Windows Task Scheduler, cron (Linux/macOS), at, systemd timers e similares. ## Fonte de Dados Parent: [[ds0003-scheduled-job|DS0003 - Scheduled Job]] ## Pipeline de Detecção ```mermaid graph TB A["⏰ Event ID 4698<br/>Tarefa Criada"] --> B["📋 TaskContent +<br/>Trigger Capturados"] B --> C{"👤 Quem<br/>Criou?"} C -->|Usuário não-admin| D["🚨 Alerta P1<br/>Escalação de Privilégio"] C -->|Conta de Serviço| E{"📁 Action Path<br/>Suspeito?"} E -->|Temp/AppData| F["🚨 Alerta P1<br/>Payload Suspeito"] E -->|Caminho Normal| G["📋 Verificar<br/>Contexto"] C -->|Admin Fora do Horário| H["🟧 Alerta P2<br/>Hora Suspeita"] classDef p1 fill:#e74c3c,color:#ecf0f1 classDef p2 fill:#e67e22,color:#ecf0f1 classDef ok fill:#2c3e50,color:#ecf0f1 class D,F p1 class G,H p2 class A,B,C,E ok ``` ## O Que Monitorar - Windows Event ID 4698 (Tarefa agendada criada) - Sysmon Event ID 11 - arquivo XML criado em `C:\Windows\System32\Tasks\` - Criação de tasks por usuários não administrativos - Tasks apontando para executáveis em `%TEMP%`, `%APPDATA%` ou rede - Tasks com triggers de logon ou inicialização (persistência clássica) - Uso de `schtasks.exe /create` em linha de comando suspeita - Cron jobs adicionados em `/etc/cron*` ou crontab de usuários de serviço - Tasks criadas remotamente via WMI ou COM (Task Scheduler COM object) ## Técnicas Detectadas | Técnica | ID | Como Detectar | |---------|-----|---------------| | Scheduled Task | [[t1053-scheduled-task-job\|T1053.005]] | Event 4698 ou XML em System32\Tasks com payload suspeito | | Cron | [[t1053-scheduled-task-job\|T1053.003]] | Modificações em /etc/cron* ou crontab fora de manutenção | | At | [[t1053-scheduled-task-job\|T1053.002]] | Uso do comando at (depreciado, mas ainda funcional) | | Systemd Timers | [[t1053-scheduled-task-job\|T1053.006]] | Criação de .service e .timer units em /etc/systemd/ | ## Implementação **Habilitar auditoria de tarefas agendadas:** ``` Computer Configuration > Windows Settings > Security Settings > Advanced Audit Policy > Object Access > Audit Other Object Access Events ``` **SIEM - tarefas criadas por usuários comuns:** ``` index=windows EventCode=4698 | where SubjectUserName!="SYSTEM" AND SubjectUserName!="Administrator" | stats count by TaskName, SubjectUserName, ComputerName, TaskContent ``` **Linux - monitorar cron via auditd:** ``` -w /etc/crontab -p wa -k cron_change -w /var/spool/cron -p wa -k cron_change ``` **Ferramentas:** Sysmon, Windows Event Log, auditd (Linux), Microsoft Defender for Endpoint, CrowdStrike Falcon, Wazuh. ## Consultas KQL — Microsoft Sentinel / Defender ### Task Criada com Payload em Local Suspeito ```kql // DC0018 - Tarefa agendada criada com executável em caminho suspeito SecurityEvent | where TimeGenerated > ago(1d) | where EventID == 4698 | extend TaskXML = tostring(EventData), TaskName = tostring(extract(@"TaskName:\s*([^\n]+)", 1, tostring(EventData))) | where TaskXML has_any ( "AppData", "\\Temp\\", "\\Users\\Public\\", "powershell", "cmd.exe", "wscript", "mshta" ) | project TimeGenerated, Computer, TaskName, SubjectUserName, SubjectDomainName, TaskXML = substring(TaskXML, 0, 1000) | order by TimeGenerated desc ``` ### Tarefas Criadas por Conta Não Administrativa ```kql // DC0018 - Tarefa criada por usuário sem permissão administrativa usual DeviceEvents | where Timestamp > ago(7d) | where ActionType == "ScheduledTaskCreated" | where InitiatingProcessAccountSid !startswith "S-1-5-18" // Não SYSTEM | where InitiatingProcessAccountSid !startswith "S-1-5-32-544" // Não Admins | where InitiatingProcessFileName !in~ ( "msiexec.exe", "setup.exe", "svchost.exe" ) | extend TaskInfo = parse_json(AdditionalFields) | project Timestamp, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, TaskInfo | order by Timestamp desc ``` ## Contexto LATAM > [!latam] Relevância Regional > **Tarefas agendadas são a segunda técnica de persistência mais comum em incidentes no Brasil.** O relatório ISH Tecnologia 2024 identificou tarefas agendadas em 71% dos casos de ransomware investigados em empresas brasileiras. Grupos como **Medusa Ransomware** e **Play Ransomware** (ativos na região) utilizam `schtasks.exe` para criar tarefas de execução periódica que re-executam o payload caso o processo seja encerrado. No Brasil, onde ambientes Active Directory frequentemente têm políticas de auditoria incompletas, o **Event ID 4698 pode não estar habilitado** em grande parte dos endpoints — tornando este gap uma prioridade de hardening para SOCs brasileiros. ## Referências - [MITRE ATT&CK - DS0003 Scheduled Job](https://attack.mitre.org/datasources/DS0003/) - [Windows Event ID 4698 - Task Scheduled](https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698) - [Scheduled Task Abuse - Red Canary](https://redcanary.com/blog/) - [ISH Tecnologia Relatório 2024](https://www.ish.com.br/blog)