# T1547.013 - XDG Autostart Entries
## Técnica Pai
Esta é uma sub-técnica de [[t1547-boot-logon-autostart-execution|T1547 - Execução Automática na Inicialização ou Logon]].
## Descrição
O padrão **XDG** (Cross-Desktop Group) define específicações de interoperabilidade para ambientes de desktop Linux, incluindo o mecanismo de Autostart que determina quais aplicações são lançadas automaticamente quando o ambiente gráfico do usuário é carregado. Esse mecanismo usa arquivos de configuração no formato **Desktop Entry** (extensão `.desktop`) que específicam o executável a ser iniciado, o ícone, o nome exibido e condições de execução.
Adversários abusam desse mecanismo criando ou modificando arquivos `.desktop` para executar payloads maliciosos toda vez que o usuário faz login em seu ambiente gráfico. Os arquivos Autostart do sistema ficam em `/etc/xdg/autostart/` (requer root, afeta todos os usuários) enquanto os arquivos por usuário ficam em `~/.config/autostart/` (não requer privilégios elevados - qualquer processo rodando como o usuário pode criar um arquivo de persistência aqui). Essa característica torna o XDG Autostart particularmente atraente: a persistência é estabelecida sem escalada de privilégios.
A técnica frequentemente é combinada com [[t1036-masquerading|T1036 - Mascaramento]] para que o arquivo `.desktop` malicioso imite aplicações legítimas instaladas no sistema - usando nomes como `updaté-checker.desktop`, `gnome-keyring-daemon.desktop` ou `discord-updater.desktop`. O campo `Hidden=true` pode ser usado para tornar a entrada invisível no gerenciador de aplicações de inicialização, enquanto o campo `X-GNOME-Autostart-enabled=true` garante a execução em ambientes GNOME.
**Contexto Brasil/LATAM:** O uso de Linux em desktops corporativos e desenvolvimentos cresce consistentemente no Brasil, especialmente em ambientes de startups tecnológicas, institutos de pesquisa e órgãos governamentais que adotam distribuições como Ubuntu e Fedora. A campanha [[g1052-contagious-interview|Contagious Interview]], atribuída ao grupo norte-coreano [[g0032-lazarus-group|Lazarus Group]], tem como alvo desenvolvedores de software - perfil profissional muito presente no ecossistema tecnológico brasileiro e latino-americano. O malware [[s1245-invisibleferret|InvisibleFerret]] e o [[s0198-netwire|NETWIRE]] RAT utilizam XDG Autostart para garantir presença persistente após o comprometimento inicial, geralmente distribuídos por meio de falsas entrevistas de emprego com testes técnicos maliciosos.
## Attack Flow
```mermaid
graph TB
A[Entrega do Payload<br/>Engenharia social / download malicioso] --> B[Execução Inicial<br/>Usuário roda o binário]
B --> C[Criação de arquivo .desktop malicioso<br/>em ~/.config/autostart/]
C --> D[ESTA TÉCNICA<br/>T1547.013 - XDG Autostart Entries]
D --> E{Usuário faz login<br/>no ambiente gráfico}
E --> F[Ambiente desktop carrega<br/>entradas de Autostart]
F --> G[Payload executado<br/>no contexto do usuário]
G --> H[Persistência a cada sessão<br/>sem privilégios de root]
```
## Como Funciona
1. **Preparação** - O adversário obtém execução de código no contexto do usuário-alvo, sejá por meio de engenharia social (falso instalador, arquivo malicioso em entrevista técnica), exploração de vulnerabilidade em aplicação ou acesso remoto já estabelecido.
2. **Implantação da entrada Autostart** - Um arquivo `.desktop` é criado em `~/.config/autostart/` (sem necessidade de root). O arquivo segue a específicação Desktop Entry padrão para não gerar erros de parse, mas o campo `Exec=` aponta para o payload malicioso. O `Name=` e `Icon=` podem imitar uma aplicação legítima para evasão.
3. **Evasão e mascaramento** - O adversário pode usar `Hidden=true` para ocultar a entrada no gerenciador de inicialização da interface gráfica, ou nomear o arquivo de forma que se confunda com entradas de sistema legítimas (ex: `org.gnome.Shell.desktop`). A combinação com [[t1036-masquerading|mascaramento]] é comum nessa técnica.
4. **Persistência garantida** - Em cada login do usuário no ambiente gráfico (GNOME, KDE, XFCE, etc.), o ambiente desktop lê os arquivos `.desktop` dos diretórios de Autostart e lança automaticamente os programas configurados, incluindo o payload malicioso.
**Exemplo de arquivo .desktop malicioso:**
```ini
[Desktop Entry]
Type=Application
Name=GNOME Keyring Daemon
Exec=/home/usuario/.local/share/.gnome/gkd-helper
Hidden=false
X-GNOME-Autostart-enabled=true
NoDisplay=true
Comment=
```
## Detecção
**Fontes de dados:** Monitoramento de criação de arquivos `.desktop` em diretórios de Autostart (tanto sistema quanto por usuário), análise de processos filhos lançados pelos gerenciadores de sessão gráfica, auditoria de arquivos com campo `Exec=` apontando para diretórios incomuns.
```yaml
title: Criação de Entrada XDG Autostart Suspeita
id: c8d3e5f2-0b94-4a7c-d9f3-3456789012de
status: experimental
description: >
Detecta criação ou modificação de arquivos .desktop em diretórios XDG Autostart,
o que pode indicar tentativa de persistência via T1547.013.
logsource:
category: file_change
product: linux
detection:
selection_system:
TargetFilename|startswith: '/etc/xdg/autostart/'
TargetFilename|endswith: '.desktop'
selection_user:
TargetFilename|contains: '/.config/autostart/'
TargetFilename|endswith: '.desktop'
filter_package_manager:
Image|startswith:
- '/usr/bin/dpkg'
- '/usr/bin/rpm'
- '/usr/bin/apt'
condition: (selection_system or selection_user) and not filter_package_manager
falsepositives:
- Instalação legítima de aplicações pelo usuário ou gerenciador de pacotes
- Scripts de configuração de ambiente de desenvolvimento
- Ferramentas de provisionamento de desktop (Ansible roles para workstations)
level: medium
tags:
- attack.persistence
- attack.t1547.013
```
**Indicadores complementares:**
- Arquivos `.desktop` com campo `Exec=` apontando para `/tmp`, `/dev/shm`, `~/.local/share/`, `~/.cache/` ou caminhos com prefixos `.` (ocultos)
- Campo `NoDisplay=true` combinado com `X-GNOME-Autostart-enabled=true` - oculta da GUI mas executa
- Processos lançados pelo gerenciador de sessão (`gnome-session`, `startxfce4`) com conexões de rede estabelecidas para IPs externos logo após login
- Hashes de arquivos `.desktop` em `~/.config/autostart/` não correspondendo a nenhum pacote instalado no sistema
## Mitigação
| Mitigação | Recomendação Prática |
|-----------|---------------------|
| [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Monitorar e auditar regularmente o conteúdo de `~/.config/autostart/` e `/etc/xdg/autostart/`. Considerar políticas que alertem sobre novos arquivos `.desktop` criados fora de instalações de pacotes |
| [[m1018-user-account-management\|M1018 - User Account Management]] | Aplicar o princípio do menor privilégio - usuários sem necessidade de instalar software não devem poder gravar em diretórios de Autostart do sistema. Revisar contas com acesso a diretórios `/etc/xdg/` |
| [[m1033-limit-software-installation\|M1033 - Limit Software Installation]] | Restringir a capacidade de instalar software não autorizado que possa criar entradas Autostart. Usar gerenciadores de pacotes com repositórios controlados e verificação de assinatura |
| [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Implementar listas de permissão de aplicações (AppArmor, SELinux) para controlar quais executáveis o gerenciador de sessão pode iniciar. Configurar perfis AppArmor para restringir entradas Autostart a diretórios aprovados |
## Threat Actors que Usam Esta Técnica
- [[g1052-contagious-interview|Contagious Interview]] - campanha do [[g0032-lazarus-group|Lazarus Group]] (Coreia do Norte) que tem como alvo desenvolvedores de software com falsas entrevistas de emprego, usando XDG Autostart para persistência do [[s1245-invisibleferret|InvisibleFerret]] em sistemas Linux
## Software Associado
- [[s0198-netwire|NETWIRE]] - RAT multiplataforma que cria entradas XDG Autostart em sistemas Linux para garantir persistência
- [[s0192-pupy|Pupy]] - framework de acesso remoto open-source amplamente abusado por atores de ameaça, com suporte nativo a persistência via XDG Autostart
- [[s1245-invisibleferret|InvisibleFerret]] - malware Python usado na campanha Contagious Interview, persiste via `~/.config/autostart/` em sistemas Linux
- [[crossrat|CrossRAT]] - RAT Java multiplataforma que estabelece persistência via XDG Autostart em distribuições Linux com ambiente gráfico
- [[s1078-rotajkiro|RotaJákiro]] - backdoor Linux de longa duração (inativo desde 2018, detectado em 2021) que utiliza XDG Autostart entre outros mecanismos
- [[s0410-fysbis|Fysbis]] - backdoor Linux do grupo Sofacy/APT28 que pode utilizar entradas de Autostart para persistência em estações de trabalho comprometidas
## Referências
*Fonte: [MITRE ATT&CK - T1547.013](https://attack.mitre.org/techniques/T1547/013/)*