# T1213.003 - Code Repositories
## Descrição
Code Repositories é uma técnica de [[collection|Coleta]] em que adversários exploram repositórios de código-fonte - internos ou hospedados em plataformas SaaS como GitHub, GitLab e Bitbucket - para extrair informações sensíveis de alto valor. Uma vez dentro de um repositório privado, o atacante pode obter código proprietário, credenciais hardcoded, chaves de API, segredos de infraestrutura e lógica de negócio crítica.
No contexto brasileiro e da América Latina, essa técnica representa um risco crescente: empresas de tecnologia, fintechs, bancos digitais e startups de SaaS armazenam código-fonte em plataformas cloud que são acessadas por funcionários via credenciais individuais - frequentemente protegidas apenas por senha, sem MFA. A presença de [[t1552-unsecured-credentials|credenciais não protegidas]] em repositórios privados é um problema sistêmico documentado em auditorias de segurança de empresas brasileiras.
O [[g1004-lapsus|grupo LAPSUS$]], com membros identificados no Brasil e no Reino Unido, tornou essa técnica sua marca registrada: após comprometer contas de colaboradores ou prestadores de serviço com acesso a repositórios internos (Okta, Microsoft, Samsung, Nvidia), o grupo realizou downloads em massa de código-fonte proprietário. Esse padrão - acesso legítimo via [[t1078-valid-accounts|contas válidas]] seguido de exfiltração de repositórios inteiros - é especialmente difícil de detectar sem monitoramento comportamental específico.
**Nota:** Esta técnica é distinta de [[t1593-003-code-repositories|T1593.003 - Code Repositories (Reconnaissance)]], que trata da busca em repositórios *públicos* como fase de reconhecimento. T1213.003 foca na coleta a partir de repositórios *privados* após acesso inicial.
> **Técnica pai:** [[t1213-data-from-information-repositories|T1213 - Data from Information Repositories]]
---
## Attack Flow
```mermaid
graph TB
A([Acesso Inicial<br/>Conta Comprometida]) --> B[Autenticar em<br/>Plataforma SaaS]
B --> C{{"T1213.003<br/>Code Repositories"}}:::highlight
C --> D[Clonar repositórios<br/>privados em massa]
C --> E[Extrair segredos<br/>hardcoded]
D --> F[Desenvolver<br/>Exploits customizados]
E --> G[Reutilizar credenciais<br/>Valid Accounts]
F --> H([Comprometimento<br/>Expandido])
G --> H
classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b,stroke-width:2px
```
---
## Como Funciona
**Passo 1 - Obter acesso à plataforma de repositório**
O adversário autentica-se na plataforma de repositório usando credenciais legítimas obtidas via [[t1566-phishing|phishing]], [[t1539-steal-web-session-cookie|roubo de cookie de sessão]], compra em fórum underground ou comprometimento de identidade de terceiros (prestador de serviço, contratado). Com MFA ausente ou bypassado via engenharia social contra o suporte de TI, o acesso é indistinguível do legítimo.
**Passo 2 - Enumerar e priorizar repositórios**
Utilizando a API da plataforma (GitHub API, GitLab REST API) ou a interface web, o atacante lista todos os repositórios privados disponíveis para a conta. Repositórios com nomes sugestivos (`infra`, `secrets`, `credentials`, `payment`, `core-api`) são priorizados. Ferramentas como `trufflehog`, `gitleaks` ou scripts customizados varrem automaticamente o conteúdo em busca de padrões de credencial.
**Passo 3 - Exfiltrar em massa e explorar segredos**
O adversário clona repositórios selecionados via `git clone` ou realiza downloads em bulk via API. Credenciais descobertas (tokens de API, chaves AWS/GCP, strings de conexão de banco de dados) são testadas imediatamente para ampliar o acesso. Código-fonte proprietário é exfiltrado para infraestrutura externa ou vendido em fóruns de ameaça.
---
## Detecção
### Event IDs e Indicadores de Plataforma SaaS
| Fonte | Indicador | Descrição |
|-------|-----------|-----------|
| GitHub Audit Log | `repo.clone` em massa | Múltiplos clones em curto intervalo - especialmente de repositórios raramente acessados |
| GitHub Audit Log | `oauth_access` de IP incomum | Acesso OAuth de localização geográfica inesperada (ex: conta BR acessando de VPN estrangeira) |
| GitLab Audit Events | `project_export` | Exportação de projeto completo - evento de alto risco, raramente legítimo em produção |
| CASB / DLP | Download anômalo de código | Baseline de comportamento por usuário; alertar acima de X MB de clone em 1 hora |
| Okta / IdP | `session.hijack` ou `user.session.impersonation` | Indicativo de comprometimento de identidade antes do acesso ao repositório |
### Sigma Rule
```yaml
title: Bulk Clone of Private Code Repositories
id: a7f23c1b-8e54-4d29-b3a1-coderepocollect01
status: stable
description: >
Detecta clonagem em massa de repositórios privados via API, indicador de
possível coleta de código-fonte por adversário com acesso legítimo comprometido.
author: RunkIntel
daté: 2026-03-24
logsource:
product: github
service: audit
detection:
selection:
action: 'git.clone'
aggregaté:
count(repo): '>= 10'
timeframe: 30m
group_by: actor
condition: selection | aggregaté
falsepositives:
- Migração legítima de repositórios por equipe de infraestrutura
- Onboarding de novos desenvolvedores clonando múltiplos projetos
level: high
tags:
- attack.collection
- attack.t1213.003
fields:
- actor
- repo
- action
- created_at
- actor_location.country_code
```
---
## Mitigação
| ID | Mitigação | Aplicação em Organizações Brasileiras |
|----|-----------|--------------------------------------|
| [[m1032-multi-factor-authentication\|M1032]] | Multi-factor Authentication | MFA obrigatório em GitHub/GitLab para todos os usuários - crítico para fintechs sob regulação do BACEN |
| [[m1018-user-account-management\|M1018]] | User Account Management | Princípio de menor privilégio: devs só acessam repositórios do seu squad; revisão trimestral de permissões |
| [[m1047-audit\|M1047]] | Audit | Habilitar e exportar GitHub Audit Log para SIEM; configurar alertas de clone em massa e acesso fora de horário |
| [[m1017-user-training\|M1017]] | User Training | Treinar equipes sobre riscos de credenciais hardcoded - endêmico em projetos BR com histórico de desenvolvimento ágil sem SecDevOps |
| - | Secret Scanning | Habilitar GitHub Secret Scanning ou Gitleaks em CI/CD - detecta tokens antes do commit chegar ao repositório remoto |
| - | CASB / DLP | Implementar Cloud Access Security Broker para monitorar padrões anômalos de acesso a plataformas SaaS de código |
---
## Threat Actors que Usam
### [[g1004-lapsus|LAPSUS$]]
Grupo de extorsão e vazamento de dados com membros identificados no Brasil (adolescentes de São Paulo e Minas Gerais foram investigados pela Polícia Federal em 2022). O LAPSUS$ especializou-se em comprometer identidades de funcionários e prestadores de serviço com acesso a repositórios internos, exfiltrando código-fonte de empresas como Microsoft, Nvidia, Samsung e Ubisoft. A técnica central do grupo é T1213.003 combinada com [[t1539-steal-web-session-cookie|roubo de sessão]] e engenharia social agressiva contra helpdesks de TI.
### [[g1015-scattered-spider|Scattered Spider]]
Grupo anglófono (UNC3944) com sobreposição de TTP com LAPSUS$. Utiliza repositórios de código como fonte de credenciais para comprometimentos em nuvem - especialmente tokens de AWS e segredos de Okta encontrados em código não higienizado. Relevante para empresas brasileiras com operações cloud-native.
### [[g0096-apt41|APT41]]
Grupo de espionagem e crime financeiro de origem chinesa. Além de espionagem, o APT41 realiza coleta intelectual de código-fonte proprietário de empresas de tecnologia, jogos e telecomúnicações. Presença documentada em LATAM via campanhas de supply chain.
---
*Fonte: [MITRE ATT&CK - T1213.003](https://attack.mitre.org/techniques/T1213/003)*