# T1606 - Forge Web Credentials ## Descrição A técnica **T1606 - Forge Web Credentials** descreve o comportamento de adversários que **fabricam** materiais de credencial - cookies de sessão, tokens de acesso, asserções SAML, JWTs - que permitem acesso a aplicações web e serviços de nuvem sem passar pelo processo normal de autenticação. Esta é uma distinção crítica em relação a técnicas de roubo como [[t1539-steal-web-session-cookie|T1539 - Steal Web Session Cookie]] ou [[t1528-steal-application-access-token|T1528 - Steal Application Access Token]]: aqui, as credenciais são **criadas do zero** pelo adversário, não interceptadas de usuários legítimos. A efetividade desta técnica depende do adversário ter obtido previamente os **valores secretos** necessários para a forjá: chaves privadas de assinatura de tokens (RSA/ECDSA), certificados X.509 de provedores de identidade, segredos de sessão de aplicações web, ou credenciais de APIs de nuvem com permissão para gerar tokens temporários. Quando bem-sucedida, a técnica permite ao adversário impersonar qualquer usuário do ambiente - incluindo administradores - sem conhecer as senhas reais e frequentemente **bypassando a autenticação multifator (MFA)**, uma vez que o mecanismo de MFA já foi "ultrapassado" na geração do token forjado. A técnica se desdobra em duas sub-técnicas principais: - **[[t1606-001-web-cookies|T1606.001 - Web Cookies]]**: forjá de cookies de sessão web - **[[t1606-002-saml-tokens|T1606.002 - SAML Tokens]]**: forjá de asserções SAML - o ataque conhecido como "Golden SAML" Em ambientes de nuvem (IaaS), adversários podem usar APIs nativas como `AssumeRole` (AWS), `GetFederationToken` (AWS) ou a chave de pré-autenticação do Zimbra (`zmprov gdpak`) para gerar tokens com permissões arbitrárias. Isso transforma credenciais de serviço de baixo privilégio em tokens de alta permissão de forma programática. ## Como Funciona O processo de forjá de credenciais web segue etapas bem definidas dependendo do tipo de credencial alvo: **1. Forjá de Cookies de Sessão (T1606.001)** Aplicações web que geram cookies usando segredos compartilhados previsíveis ou que utilizam algoritmos de assinatura fracos são vulneráveis. O adversário que obtém o segredo de sessão (via dump de memória, acesso ao banco de dados de configuração ou exfiltração de variáveis de ambiente) consegue gerar cookies assinados válidos para qualquer usuário, incluindo o campo de identificação de conta (`user_id`, `email`, `sub`). Ferramentas como `flask-unsign` permitem decodificar, modificar e reassinar cookies de sessão Flask. Aplicações que usam frameworks com configurações padrão inseguras (chave secreta padrão, fraca ou hardcoded) são alvos especialmente vulneráveis. **2. Forjá de Tokens SAML - "Golden SAML" (T1606.002)** SAML (Security Assertion Markup Language) é o protocolo padrão de federação de identidade corporativa. Uma SAMLResponse é assinada digitalmente pelo Identity Provider (IdP) usando seu certificado de token signing. Quando o adversário obtém a chave privada do certificado de assinatura do AD FS, Okta, Azure AD ou outro IdP, ele pode gerar SAMLResponses para qualquer usuário e qualquer serviço (SP - Service Provider) sem interagir com o IdP real. Esse ataque foi central no incidente **SolarWinds/SUNBURST** (2020), onde o grupo [[g0016-apt29|APT29]] (Cozy Bear) utilizou acesso aos sistemas da SolarWinds para extrair certificados de assinatura ADFS de vítimas e persistir no ambiente por meses gerando tokens SAML legítimos para usuários privilegiados no Microsoft 365. **3. Geração de Tokens Temporários via APIs de Nuvem** APIs como `sts:AssumeRole` (AWS) e `auth:generateAccessToken` (GCP) permitem que identidades autorizadas gerem tokens de curta duração com permissões específicas. Adversários com acesso a credenciais de serviço que têm permissão de `AssumeRole` em roles privilegiadas podem gerar tokens com amplos privilégios administrativos. Isso é especialmente crítico quando IAM policies usam wildcards (`*`) ou quando existe trust policy excessivamente permissiva entre roles. **4. Pre-authentication Keys em Zimbra** O comando `zmprov gdpak` do Zimbra gera uma chave de pré-autenticação que permite fazer login como qualquer usuário do domínio. Adversários com acesso de administrador ao Zimbra podem gerar estas chaves e acessar qualquer caixa de email sem conhecer as senhas individuais. ## Attack Flow ```mermaid graph TB A["Obtenção de Acesso Inicial<br/>(phishing, exploit, supply chain)"] --> B["Reconhecimento Interno<br/>(identificar IdP, certificados, segredos)"] B --> C{"Tipo de<br/>credencial alvo?"} C -->|"Cookie de sessão web"| D["Extração do segredo<br/>de assinatura da aplicação"] C -->|"SAML Token"| E["Extração do certificado<br/>de token signing do IdP"] C -->|"Token de nuvem"| F["Identificação de role<br/>assumível com wildcards"] D --> G["Forjá do cookie<br/>com usuário privilegiado"] E --> H["Geração de SAMLResponse<br/>(Golden SAML)"] F --> I["Chamada API AssumeRole /<br/>GetFederationToken"] G --> J[">de autenticação alternativo"] H --> J I --> J J --> K["Acesso a recursos SaaS/IaaS<br/>com bypass de MFA"] K --> L["Exfiltração, Persistência<br/>ou Destruição"] ``` ## Exemplos de Uso ### APT29 - Operação SolarWinds / Golden SAML (2020) O grupo russo [[g0016-apt29|APT29]] (Cozy Bear), responsável pelo ataque à cadeia de suprimentos da SolarWinds em 2020, utilizou a técnica Golden SAML de forma extensiva. Após comprometer os sistemas internos da SolarWinds e distribuir o backdoor [[s0559-sunburst|SUNBURST]] via atualizações do Orion, os adversários acessaram os ambientes das vítimas e extraíram os certificados de assinatura do ADFS. Com esses certificados, geraram tokens SAML para usuários privilegiados no Microsoft 365, obtendo acesso a email corporativo, SharePoint e outras aplicações sem disparar alertas de MFA por meses. Mais de 100 organizações nos EUA foram afetadas, incluindo agências governamentais. ### Ataque a Identity Providers SaaS - Okta (2022) Em 2022, o grupo LAPSUS$ e posteriormente o grupo Scattered Spider obtiveram acesso a sistemas internos da Okta via engenharia social. Com acesso ao painel administrativo, conseguiram gerar sessões para clientes da plataforma sem autenticação. Embora o mecanismo específico variasse, o resultado era equivalente à forjá de credenciais web: acesso autenticado a dezenas de clientes corporativos sem conhecimento das credenciais reais dos usuários. ### Exploração de IAM Policies Permissivas na AWS Em auditorias de segurança recorrentes em ambientes cloud brasileiros, é comum encontrar roles AWS com `sts:AssumeRole` permitido para `*` (qualquer entidade) ou com condições ausentes. Um adversário que compromete qualquer credencial de serviço no ambiente pode encadear múltiplos `AssumeRole` até obter permissões de administrador (`AdministratorAccess`), gerando tokens temporários completamente legítimos do ponto de vista da AWS CloudTrail. ### Zimbra em Ambientes Governamentais Múltiplos grupos de espionagem patrocinados por estados - incluindo atores com foco na América Latina - exploraram servidores Zimbra expostos em órgãos governamentais da região. Com acesso ao servidor, o uso de `zmprov gdpak` permite geração de tokens de acesso a qualquer caixa do domínio, resultando em exfiltração silenciosa de comúnicações governamentais. ## Detecção A detecção de forjá de credenciais web é desafiadora porque os tokens gerados são **criptograficamente válidos** - do ponto de vista dos serviços, eles são indistinguíveis de tokens legítimos. A detecção deve ser baseada em **anomalias comportamentais**: **Indicadores de Golden SAML:** - SAMLResponses geradas fora do horário normal de operação do IdP - Atributos SAML com valores inconsistentes (ex: usuário sem licença acessando recurso premium) - Ausência de eventos de autenticação correspondentes nos logs do IdP para uma sessão ativa - Acesso de IPs incomuns com tokens válidos **Indicadores em ambientes de nuvem:** - Chamadas `AssumeRole` ou `GetFederationToken` de entidades incomuns - Tokens com TTL máximo gerados fora de horário de expediente - Atividade em roles raramente usadas logo após assumir a role **Regra de detecção (Sigma):** ```yaml title: Suspicious SAML Token Generation Outside Business Hours status: experimental logsource: category: application product: azure_ad detection: selection_saml_issue: EventType: 'SamlTokenIssuance' filter_business_hours: EventTime|re: '^.*(0[0-7]|2[0-3]):[0-5][0-9]:[0-5][0-9]' selection_privileged_user: TargetUserRoles|contains: - 'GlobalAdmin' - 'PrivilegedRoleAdmin' - 'SecurityAdmin' condition: selection_saml_issue and filter_business_hours and selection_privileged_user level: high tags: - attack.credential_access - attack.t1606.002 ``` **Monitoramento adicional recomendado:** - Auditar acesso ao certificado de token signing do ADFS/IdP (eventos de exportação de certificado) - Alertar sobre rotação incomum de segredos de aplicação ou chaves de API - Correlacionar tokens de nuvem com chamadas de API que os geraram - Implementar detecção de uso de tokens em múltiplos IPs/regiões geograficamente distantes (impossible travel) ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1026 | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Restringir o acesso ao certificado de token signing do IdP a um número mínimo de contas de serviço. Usar HSMs (Hardware Security Modules) para armazenar chaves privadas de assinatura, impedindo extração por software. Rotacionar certificados periodicamente. | | M1054 | [[m1054-software-configuration\|M1054 - Software Configuration]] | Configurar aplicações web para usar segredos de sessão longos e aleatórios (mínimo 256 bits). Desabilitar funcionalidades de geração de tokens permissivas (ex: restringir `AssumeRole` via condições estritas em políticas IAM). Revogar pré-chaves de autenticação Zimbra regularmente. | | M1047 | [[m1047-audit\|M1047 - Audit]] | Auditar regularmente quem tem acesso aos certificados de assinatura do IdP, às chaves secretas de aplicações e às permissões de geração de tokens em ambientes de nuvem. Revisar IAM policies para remover wildcards em trust policies. | | M1018 | [[m1018-user-account-management\|M1018 - User Account Management]] | Implementar princípio do menor privilégio para roles e permissões de geração de tokens. Limitar quais identidades podem assumir roles com altos privilégios. Implementar condições temporais e de IP em políticas de AssumeRole. | ## Contexto Brasil/LATAM A técnica T1606 tem impacto crescente no contexto regional por múltiplos fatores: **Adoção acelerada de SaaS e nuvem no Brasil:** O Brasil lidera a adoção de SaaS na América Latina, com Microsoft 365 e Google Workspace amplamente difundidos em empresas de todos os portes e no governo. Isso aumenta a superfície de ataque para forjá de tokens SAML e OAuth, já que muitas organizações dependem de um único IdP para centenas de aplicações. **Lacunas em configuração de Identity Providers:** Diagnósticos de segurança em organizações brasileiras frequentemente revelam configurações inadequadas em ADFS e Azure AD - incluindo certificados de token signing sem proteção adequada, ausência de Conditional Access policies e trust policies IAM excessivamente permissivas em ambientes AWS e Azure. **Ataques de ransomware pré-criptografia via credenciais forjadas:** Grupos de ransomware que operam no Brasil, como afiliados do [[lockbit|LockBit]] e do [[black-basta|Black Basta]], têm adotado técnicas de acesso via credenciais web forjadas para persistir silenciosamente nas redes por semanas antes de detonar o payload de criptografia - maximizando o impacto e dificultando a recuperação. **Fornecedores de IdP locais:** Provedores de identidade e SSO com presença no mercado brasileiro (como TOTVS Identity, fornecedores de certificado digital ICP-Brasil) podem conter vulnerabilidades específicas que precisam de aténção e cobertura de inteligência de ameaças local. **LGPD e responsabilidade:** Incidentes envolvendo forjá de credenciais que resultem em acesso não autorizado a dados pessoais têm implicações regulatórias diretas sob a [[lgpd|Lei Geral de Proteção de Dados]] - tornando a mitigação desta técnica não apenas uma questão de segurança, mas de conformidade legal. ## Sub-técnicas - [[t1606-001-web-cookies|T1606.001 - Web Cookies]] - [[t1606-002-saml-tokens|T1606.002 - SAML Tokens]] ## Referências - [MITRE ATT&CK - T1606](https://attack.mitre.org/techniques/T1606) - [Golden SAML - CyberArk Research](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps) - [SolarWinds SUNBURST - Mandiant Report](https://www.mandiant.com/resources/blog/sunburst-additional-technical-details) - [AWS AssumeRole Security Considerations](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) - [[t1539-steal-web-session-cookie|T1539 - Steal Web Session Cookie]] - [[t1528-steal-application-access-token|T1528 - Steal Application Access Token]] - [[t1550-use-alternate-authentication-material|T1550 - Use Alternaté Authentication Material]] - [[g0016-apt29|APT29 - Cozy Bear]] - [[s0559-sunburst|SUNBURST Malware]]