# T1606.001 - Web Cookies ## Técnica Pai Esta é uma sub-técnica de [[t1606-forge-web-credentials|T1606 - T1606 - Forge Web Credentials]]. ## Descrição A técnica **T1606.001 - Web Cookies** descreve como adversários podem **forjar cookies de sessão web** para obter acesso não autorizado a aplicações web e serviços de Internet. Essa abordagem se diferencia fundamentalmente do roubo tradicional de credenciais: em vez de capturar cookies legítimos de usuários reais (como em [[t1539-steal-web-session-cookie|T1539 - Steal Web Session Cookie]]), o adversário **cria novos cookies falsos** a partir do zero, utilizando valores secretos comprometidos previamente. Aplicações web modernas - sejam hospedadas em ambientes SaaS na nuvem ou em servidores on-premises - dependem amplamente de cookies de sessão para autenticar e autorizar usuários. Esses tokens funcionam como "crachás digitais": após o login, o servidor emite um cookie que o navegador apresenta em cada requisição subsequente, dispensando a necessidade de repetir autenticação. Quando um adversário consegue forjar esses tokens com precisão, pode se passar por qualquer usuário - incluindo administradores - sem precisar conhecer a senha. A geração de cookies forjados geralmente exige acesso a valores criptográficos secretos, como [[t1552-004-private-keys|chaves privadas]], segredos de assinatura JWT, chaves de sessão do framework web, ou outros seeds criptográficos. Esses valores são frequentemente obtidos por meio de outras técnicas de acesso inicial, como exploração de vulnerabilidades de injeção, acesso a arquivos de configuração expostos, ou comprometimento de infraestrutura de backend. Uma vez que cookies forjados válidos são criados, o adversário os utiliza via [[t1550-004-web-session-cookie|T1550.004 - Web Session Cookie]] para acessar recursos protegidos, contornando efetivamente controles de [[t1078-valid-accounts|autenticação multifator]] e outros mecanismos de proteção de identidade. Esse tipo de ataque é especialmente perigoso em plataformas de e-commerce, portais bancários, sistemas de gestão corporativa e ambientes de nuvem - todos amplamente presentes no contexto brasileiro e latino-americano. ## Como Funciona O processo de forjamento de cookies web envolve várias etapas técnicas encadeadas: **1. Obtenção do segredo criptográfico:** O adversário precisa primeiro comprometer o valor secreto usado pelo servidor para assinar ou gerar cookies. Isso pode ocorrer por meio de: - Exfiltração de arquivos de configuração (ex: `config.php`, `.env`, `application.yml`) contendo `SECRET_KEY` ou `SESSION_SECRET` - Exploração de vulnerabilidades como Local File Inclusion (LFI) para ler arquivos sensíveis - Acesso ao banco de dados onde segredos são armazenados - Comprometimento de sistemas de gerenciamento de segredos em nuvem **2. Análise do formato do cookie:** O adversário inspeciona o formato dos cookies da aplicação alvo. Formatos comuns incluem: - **JWT (JSON Web Tokens):** amplamente usados em APIs REST e SPAs; assinados com HMAC-SHA256 ou RSA - **Cookies de sessão de frameworks:** Django (base64+HMAC), Flask (itsdangerous), Rails (ActiveSupport::MessageEncryptor), Laravel (serialize+encrypt) - **Tokens SAML e OAuth:** usados em federações de identidade corporativa **3. Geração do cookie forjado:** Com o segredo em mãos, o adversário usa ferramentas disponíveis públicamente ou código customizado para criar um cookie válido com os atributos desejados - incluindo nível de privilégio elevado, identidade de usuário arbitrária, e válidade estendida. **4. Uso do cookie:** O cookie forjado é inserido no navegador ou em requisições HTTP diretas (via ferramentas como `curl` ou Burp Suite) para acessar recursos protegidos, evitando qualquer prompt de autenticação. ### Ferramentas frequentemente abusadas - **jwt_tool:** permite decodificar, modificar e forjar JWTs - **hashcat / john:** para recuperar segredos de assinatura por força bruta - **Burp Suite:** para interceptar e manipular requisições HTTP com cookies modificados - **Flask-Unsign:** ferramenta específica para forjar cookies de sessão Flask ## Attack Flow ```mermaid graph TB A["Reconhecimento<br/>(Mapeamento da aplicação web)"] --> B["Comprometimento de segredo<br/>(LFI, config leak, DB dump)"] B --> C["Análise do formato do cookie<br/>(JWT, Flask, Django, Rails)"] C --> D["Geração do cookie forjado<br/>(jwt_tool, flask-unsign, custom)"] D --> E["Injeção do cookie<br/>(Browser, curl, Burp Suite)"] E --> F["Acesso autenticado<br/>(Bypassa MFA e controles de sessão)"] F --> G["Ações sobre objetivos<br/>(Exfiltração, lateral movement, persistência)"] B --> H["Técnicas auxiliares<br/>(Chaves Privadas)"] H --> D F --> I["T1550.004 - Web Session Cookie"] ``` ## Exemplos de Uso ### Caso 1: Comprometimento de SECRET_KEY em Django Em 2022, pesquisadores documentaram casos onde adversários exploravam instâncias Django com a `SECRET_KEY` padrão ou exposta em repositórios GitHub públicos. Com a chave em posse, era trivial gerar cookies de sessão assinados válidos para qualquer usuário - incluindo superusuários. Essa técnica foi utilizada em ataques a portais de e-commerce e sistemas internos de empresas brasileiras que usavam frameworks Python. ### Caso 2: Forjamento de JWT em aplicações SaaS Grupos de crime financeiro cibernético têm explorado configurações inseguras de JWT - como o uso do algoritmo `none` (sem assinatura) ou o algoritmo `HS256` com segredos fracos - para escalar privilégios em plataformas SaaS. Uma vez obtido o segredo, o adversário pode criar tokens com `"role": "admin"` ou `"is_superuser": true` e acessar painéis administrativos sem autenticação válida. ### Caso 3: Ataque a plataformas de e-commerce LATAM Grupos como [[magecart|Magecart]] e variantes de skimmers digitais documentados no Brasil combinam a técnica de forjamento de cookies com exfiltração de dados de pagamento. Após comprometer arquivos de configuração do servidor via vulnerabilidades em plugins de CMS (WordPress, Magento), os atacantes geram sessões administrativas forjadas para instalar webshells e scripts maliciosos persistentes. ### Caso 4: Golden SAML Attack A técnica "Golden SAML" - documentada no contexto do comprometimento da SolarWinds pela [[g0016-apt29|APT29]] - é conceitualmente análoga ao forjamento de cookies web. O adversário compromete o certificado de assinatura SAML do Identity Provider para forjar assertions SAML válidas, acessando qualquer serviço federado da organização sem credenciais legítimas. ## Detecção A detecção de cookies forjados é desafiadora porque, do ponto de vista da aplicação, eles são válidos. As estrategias mais efetivas focam em **anomalias comportamentais** e **auditoria criptográfica**. ### Estrategias de detecção **1. Monitoramento de acesso a arquivos de segredo:** Qualquer acesso a arquivos de configuração contendo segredos (`.env`, `config.yml`, `settings.py`) por processos não autorizados deve gerar alerta imediato. **2. Análise de anomalias de sessão:** - Sessões com timestamps inconsistentes (criada no futuro, expiração muito longa) - Sessões associadas a user-agents ou IPs não vistos anteriormente para o usuário - Múltiplas sessões simultâneas de geografias diferentes **3. Auditoria de logs de autenticação:** Monitorar acessos a recursos privilegiados sem evento prévio de autenticação correspondente (login sem registro de credencial válida). **4. Rotação e monitoramento de segredos:** Implementar rotação regular de `SECRET_KEY` e monitorar tentativas de uso de tokens com segredos antigos (replay attacks). ### Regra Sigma - Acesso suspeito a arquivos de configuração web ```yaml title: Suspicious Web Application Config File Access status: experimental logsource: category: file_access product: linux detection: selection: TargetFilename|contains: - '.env' - 'settings.py' - 'config.yml' - 'application.properties' - 'secrets.json' Image|contains: - '/tmp/' - '/var/www/' filter_legit: User|contains: - 'www-data' - 'nginx' - 'apache' condition: selection and not filter_legit level: high tags: - attack.credential_access - attack.t1606.001 ``` ### Regra Sigma - Uso de JWT com algoritmo 'none' ```yaml title: JWT Token with Algorithm None Detected status: experimental logsource: category: webserver product: generic detection: selection: cs-uri-query|contains: 'eyJhbGciOiJub25lIn0' condition: selection level: critical tags: - attack.credential_access - attack.t1606.001 ``` ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1047 | [[m1047-audit\|M1047 - Audit]] | Auditar regularmente a segurança das aplicações web, incluindo análise de segredos expostos, rotação de SECRET_KEY e revisão de configurações de sessão. Verificar repositórios de código por segredos acidentalmente commitados. | | M1054 | [[m1054-software-configuration\|M1054 - Software Configuration]] | Configurar frameworks web com segredos fortes e únicos por ambiente. Desabilitar algoritmos de assinatura inseguros (JWT `none`, `RS256` com chave pública como segredo). Implementar rotação automática de segredos de sessão. Habilitar `HttpOnly` e `Secure` em todos os cookies. Usar `SameSite=Strict` para prevenir CSRF. | ### Controles adicionais recomendados - **Gestão de segredos:** Usar soluções como HashiCorp Vault, AWS Secrets Manager ou Azure Key Vault - nunca armazenar segredos em arquivos de configuração commitados - **Curta duração de tokens:** Configurar tempo de expiração de sessão/JWT curto (15-60 minutos) com renovação automática para minimizar jánela de uso de tokens forjados - **Vinculação de sessão:** Associar sessões ao IP de origem, user-agent, ou fingerprint do cliente; inválidar ao detectar mudança - **Monitoramento contínuo:** Implementar WAF com regras para detectar manipulação de JWT e anomalias em cookies de sessão ## Contexto Brasil/LATAM O forjamento de cookies web tem relevância particular no contexto brasileiro e latino-americano devido à: **Alta adoção de e-commerce e fintech:** O Brasil é o maior mercado de e-commerce da América Latina, com milhões de transações diárias em plataformas que dependem extensamente de autenticação baseada em cookies de sessão. Grupos de crime cibernético financeiro - como os que operam os trojans bancários [[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]] e [[s0528-javali|Javali]] - frequentemente combinam o roubo de credenciais com técnicas de manipulação de sessão para maximizar a persistência em contas bancárias online. **Exposição de secrets em repositórios públicos:** Pesquisas recentes revelaram que desenvolvedores brasileiros, como em outros países em desenvolvimento, tendem a expor acidentalmente chaves de API e segredos de aplicação em repositórios GitHub públicos. Ferramentas como `truffleHog` e `git-secrets` identificam regularmente `SECRET_KEY` e `DATABASE_URL` em projetos open source do Brasil. **Frameworks vulneráveis amplamente utilizados:** WordPress, Magento e Laravel têm alta penetração no mercado brasileiro. Vulnerabilidades nesses frameworks que expõem arquivos de configuração diretamente alimentam a cadeia de ataque desta técnica. **Regulamentação LGPD:** Incidentes envolvendo sessões forjadas podem configurar violações da Lei Geral de Proteção de Dados (Lei 13.709/2018), com potencial de multas de até 2% do faturamento e obrigatoriedade de notificação à ANPD - elevando o custo regulatório de detecção tardia. Equipes de SOC brasileiras devem priorizar a análise de logs de acesso web e o monitoramento de repositórios de código por exposição de segredos, especialmente em ambientes de desenvolvimento e staging que frequentemente compartilham configurações com produção. ## Referências - [MITRE ATT&CK - T1606.001](https://attack.mitre.org/techniques/T1606/001) - [OWASP Session Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html) - [JWT Security Best Practices - Auth0](https://auth0.com/blog/a-look-at-the-security-model-of-json-web-tokens/) - [Golden SAML - CyberArk Research](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps) - [[t1539-steal-web-session-cookie|T1539 - Steal Web Session Cookie]] - técnica complementar de roubo de cookies legítimos - [[t1550-004-web-session-cookie|T1550.004 - Web Session Cookie]] - uso de cookies para lateral movement - [[t1552-004-private-keys|T1552.004 - Private Keys]] - obtenção de chaves criptográficas - [[t1078-valid-accounts|T1078 - Valid Accounts]] - uso de contas legítimas comprometidas - [[m1047-audit|M1047 - Audit]] - controle de mitigação primário - [[m1054-software-configuration|M1054 - Software Configuration]] - configuração segura de sessões --- *Fonte: [MITRE ATT&CK - T1606.001](https://attack.mitre.org/techniques/T1606/001) | Versão: 16.2*