# 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/)*