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