# T1567.001 - Exfiltration to Code Repository
## Técnica Pai
Sub-técnica de [[t1567-exfiltration-over-web-service|T1567 - Exfiltration Over Web Service]]
## Descrição
**T1567.001 - Exfiltration to Code Repository** é uma sub-técnica de [[t1567-exfiltration-over-web-service|T1567 - Exfiltration Over Web Service]] na qual adversários utilizam plataformas de repositório de código - como GitHub, GitLab, Bitbucket ou Gitea - para exfiltrar dados roubados de redes comprometidas. Ao contrário de métodos de exfiltração tradicionais que dependem de infraestrutura de C2 própria, esta técnica abusa de serviços legítimos e amplamente utilizados, cujas APIs são acessadas via HTTPS e raramente bloqueadas por políticas de firewall corporativo.
O acesso às APIs desses repositórios - por exemplo, `https://api.github.com` - ocorre sobre TLS, adicionando uma camada de proteção que impede inspeção de conteúdo sem SSL inspection. Além disso, plataformas como o GitHub são rotineiramente acessadas por desenvolvedores em ambientes corporativos, fazendo com que o tráfego de exfiltração se misture naturalmente ao uso legítimo. Repositórios privados podem ser criados de forma gratuita e descartados após a operação, eliminando rastros de infraestrutura persistente.
A técnica é particularmente insidiosa em ambientes de desenvolvimento de software, onde conexões ao GitHub e GitLab são consideradas ruído de fundo e raramente são objeto de monitoramento aprofundado. Grupos como [[g0096-apt41|APT41]] e [[g0032-lazarus-group|Lazarus Group]] exploram justamente essa lacuna de visibilidade. A ferramenta [[s0363-empire|Empire]] - framework de pós-exploração de código aberto amplamente utilizado por grupos de ameaça - implementa módulos de exfiltração para repositórios de código como parte de seu arsenal.
## Como Funciona
Após obter acesso persistente ao ambiente comprometido, o adversário identifica os dados de interesse - código-fonte proprietário, credenciais, documentos internos, bases de dados ou arquivos de configuração. Em muitos casos, os dados são renomeados para parecerem arquivos de código legítimo (`.py`, `.js`, `.json`, `.yaml`) antes de serem enviados, dificultando a detecção por DLP baseada em tipo de arquivo.
O adversário autentica-se na plataforma de repositório com um Personal Access Token (PAT) previamente gerado em uma conta descartável ou comprometida. Utilizando o cliente `git` nativo do sistema operacional - já presente na maioria dos ambientes de desenvolvimento - ou via chamadas diretas à API REST da plataforma com `curl`, os dados são empurrados (`git push`) para um repositório privado. Todo o tráfego ocorre via HTTPS na porta 443, sendo práticamente indistinguível de um desenvolvedor realizando um commit normal.
Em operações sofisticadas, os dados são fragmentados em múltiplos commits menores distribuídos ao longo do tempo, mimetizando o ritmo natural de desenvolvimento de software e evitando anomalias de volume que poderiam disparar alertas.
## Attack Flow
```mermaid
graph TB
A[Acesso ao sistema comprometido] --> B[Identificação de dados de interesse<br/>código-fonte, credenciais, documentos]
B --> C[Renomeação ou camuflagem de arquivos<br/>dados disfarçados como código legítimo]
C --> D[Criação de conta ou repositório descartável<br/>GitHub, GitLab, Bitbucket]
D --> E[Autenticação via Personal Access Token<br/>ou credenciais comprometidas]
E --> F{Método de upload}
F --> G[git init / git add / git push<br/>cliente nativo do SO]
F --> H[curl para API REST da plataforma<br/>upload via HTTP PUT/POST]
F --> I[Módulos de framework<br/>ex: Empire, InvisibleFerret]
G --> J[Dados exfiltrados em repositório privado<br/>tráfego HTTPS na porta 443]
H --> J
I --> J
J --> K[Exfiltração bem-sucedida<br/>camuflada como atividade de desenvolvimento]
```
## Exemplos de Uso
**APT41** - O grupo chinês de dupla motivação (espionagem estatal + crime financeiro) foi documentado utilizando repositórios de código como canal de exfiltração em campanhas contra empresas de tecnologia, videogames e saúde. O APT41 cria repositórios privados em plataformas legítimas para armazenar dados roubados - incluindo código-fonte proprietário e credenciais de sistemas internos - antes de transferi-los para infraestrutura controlada pela China.
**Lazarus Group / Contagious Interview** - Em uma das campanhas mais sofisticadas do [[g0032-lazarus-group|Lazarus Group]], denominada [[g1052-contagious-interview|Contagious Interview]], desenvolvedores de software são atraídos com falsas ofertas de emprego e instruídos a executar código malicioso durante um "teste técnico". O implante [[s1245-invisibleferret|InvisibleFerret]] - entregue nessa cadeia de ataque - coleta credenciais, chaves de API e arquivos de configuração, exfiltrando-os via APIs de repositórios de código e outras plataformas web.
**Uso de Empire** - O framework [[s0363-empire|Empire]], amplamente utilizado tanto por grupos de ameaça quanto em exercícios de red team, inclui módulos de exfiltração para repositórios GitHub. Esses módulos permitem que operadores configurem um repositório de destino e automatizem o envio de dados coletados em múltiplos estágios da operação.
**Grupos de espionagem industrial** - Campanhas de espionagem econômica contra empresas de tecnologia na América Latina documentaram o uso de repositórios GitLab auto-hospedados (instâncias privadas) como destino de exfiltração - uma variante que elimina até mesmo a visibilidade de tráfego para domínios conhecidos como `github.com`.
## Detecção
```yaml
title: Detecção de Exfiltração para Repositório de Código
status: experimental
logsource:
category: proxy
product: generic
detection:
selection_code_repos:
http.method:
- 'POST'
- 'PUT'
http.uri|contains:
- 'github.com'
- 'gitlab.com'
- 'bitbucket.org'
- 'api.github.com'
- 'api.gitlab.com'
- 'gitea.io'
selection_git_operations:
http.uri|contains:
- '/git-receive-pack'
- '/git-upload-pack'
- '/info/refs'
- '/repos/'
- '/contents/'
filter_developers:
src_host|contains:
- 'dev-workstation'
- 'build-server'
condition: (selection_code_repos and selection_git_operations) and not filter_developers
level: medium
tags:
- attack.exfiltration
- attack.t1567.001
```
**Estrategias adicionais de detecção:**
- Alertar em `git push` originados de servidores de produção, máquinas de banco de dados ou endpoints não relacionados a desenvolvimento
- Monitorar criação ou uso de Personal Access Tokens de plataformas de código em hosts inesperados
- Correlacionar commits em repositórios privados com horários anômalos (madrugada, feriados)
- EDR: monitorar execução de `git.exe` ou `git` em processos filhos de serviços de sistema
- Inspecionar commits com arquivos de extensões atípicas para código (`.db`, `.csv`, `.pdf`, `.docx`)
- Implementar SSL inspection para visualizar conteúdo de requisições a `api.github.com` e similares
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1021-restrict-web-based-content\|M1021]] | Restrict Web-Based Content | Restringir acesso a plataformas de repositório de código via proxy corporativo. Implementar allowlist limitando acesso apenas a repositórios e contas aprovadas pelo time de segurança. |
| [[m1057-data-loss-prevention\|M1057]] | Data Loss Prevention | Configurar políticas de DLP para detectar uploads de dados sensíveis (documentos, bases de dados, arquivos de configuração) mascarados como código. Implementar SSL inspection para inspecionar conteúdo de commits. |
## Contexto Brasil/LATAM
O uso de repositórios de código como canal de exfiltração é uma ameaça crescente no contexto brasileiro, especialmente no setor de tecnologia e nas startups do ecossistema de fintechs - onde o acesso ao GitHub e GitLab é onipresente e raramente monitorado com profundidade.
Campanhas de espionagem industrial documentadas contra empresas de software e telecomúnicações na América Latina incluíram exfiltração de código-fonte proprietário via repositórios de código. O modelo de trabalho remoto, acelerado após 2020, expandiu o perímetro de risco: desenvolvedores acessam repositórios de múltiplas redes, tornando a distinção entre tráfego legítimo e malicioso ainda mais desafiadora.
A campanha [[g1052-contagious-interview|Contagious Interview]] do [[g0032-lazarus-group|Lazarus Group]] é particularmente relevante para o Brasil, pois mira desenvolvedores de software - uma categoria profissional em rápido crescimento no país - por meio de plataformas de recrutamento como LinkedIn e Telegram. O [[sources|CERT.br]] recomenda que equipes de desenvolvimento implementem controles de acesso a repositórios e monitorem credenciais de API em uso nos ambientes corporativos.
## Referências
- [[t1567-exfiltration-over-web-service|T1567 - Exfiltration Over Web Service]]
- [[t1567-002-exfiltration-cloud-storage|T1567.002 - Exfiltration to Cloud Storage]]
- [[g0096-apt41|APT41]]
- [[g0032-lazarus-group|Lazarus Group]]
- [[g1052-contagious-interview|Contagious Interview]]
- [[s1245-invisibleferret|InvisibleFerret]]
- [[s0363-empire|Empire]]
- [[m1021-restrict-web-based-content|M1021 - Restrict Web-Based Content]]
- [[m1057-data-loss-prevention|M1057 - Data Loss Prevention]]
- [[t1560-archive-collected-data|T1560 - Archive Collected Data]]
- [[t1059-command-scripting-interpreter|T1059 - Command and Scripting Interpreter]]
- [[t1071-application-layer-protocol|T1071 - Application Layer Protocol]]
- [[t1078-valid-accounts|T1078 - Valid Accounts]]
*Fonte: MITRE ATT&CK - T1567.001*