# DS0006 — Web Credential ## Descrição Credenciais web são materiais de autenticação — como cookies de sessão, tokens JWT (JSON Web Tokens), tokens OAuth, tokens SAML e chaves de API — utilizados para autenticar e manter sessões em aplicações web e serviços SaaS. Diferentemente de senhas tradicionais, credenciais web frequentemente têm válidade prolongada, não exigem nova autenticação com MFA após emissão, e podem ser reutilizadas em qualquer dispositivo que as apresente ao servidor. Esta característica torna credenciais web um alvo extremamente valioso: um adversário que roba um cookie de sessão de uma conta do Microsoft 365 ou Google Workspace pode acessar completamente esses ambientes sem conhecer a senha, sem disparar alertas de MFA, e frequentemente sem gerar alertas de impossible travel se usar um proxy na mesma região da vítima. Esta técnica — chamada **session hijacking** ou **pass-the-cookie** — é responsável por um número crescente de comprometimentos de ambientes cloud. No contexto brasileiro, o roubo de cookies de sessão bancária e corporativa é uma técnica madura usada por grupos de fraude financeira locais, e o comprometimento de sessões Microsoft 365 via phishing com adversary-in-the-middle (AiTM) tem sido documentado em campanhas contra empresas no Brasil e LATAM, incluindo ataques atribuídos ao grupo Storm-1167 e operadores de kits como EvilProxy e Modlishka. ## Visão Geral **Principais gaps identificados:** 1. **AiTM phishing não detectado:** Kits de phishing com adversary-in-the-middle (EvilProxy, Modlishka, Evilginx) bypassam MFA roubando tokens diretamente. No Brasil, campanhas usando esses kits contra bancos e fintechs são documentadas. Sem correlação entre IP de geração do token e IP de uso, esses ataques são invisíveis. 2. **Tokens OAuth de longa duração não revogados:** Aplicações de terceiros com OAuth grants no M365 ou Google Workspace frequentemente têm tokens que nunca expiram. Uma aplicação maliciosa com consent pode manter acesso por anos. Poucas organizações brasileiras fazem auditoria regular de OAuth grants. 3. **Session cookies de sistemas legados:** Aplicações web legadas (sistemas bancários internos, ERPs, portais governamentais) frequentemente usam cookies sem os flags `Secure`, `HttpOnly` e `SameSite`, tornando-os vulneráveis a XSS e roubo. Esses sistemas raramente têm seus logs integrados ao SIEM. 4. **Falta de MFA resistente a phishing:** Mesmo organizações com MFA habilitado usam SMS OTP ou TOTP — ambos contornáveis via AiTM. FIDO2/WebAuthn, que elimina o risco de AiTM, tem adoção mínima no Brasil. 5. **Recomendações para contexto LATAM:** - Habilitar o Unified Audit Log e configurar retenção de 1 ano no M365 como prioridade imediata - Implementar Conditional Access com avaliação de conformidade do dispositivo para bloquear sessões de dispositivos não gerenciados - Auditar mensalmente todos os OAuth grants e enterprise applications no Entra ID - Migrar para FIDO2/passkeys para contas privilegiadas e de alto impacto ## Pipeline de Coleta ```mermaid graph TB A["🌐 IdP / SaaS<br/>Entra ID · Okta · ADFS"] --> B["📋 Unified Audit Log<br/>SignInLogs · AADNonInteractive"] C["🖥️ WAF / Proxy<br/>Nginx · F5 · Zscaler"] --> D["📋 Access Logs<br/>Cookie ID · User-Agent · IP"] B --> E["📡 Conector SIEM<br/>M365 / Azure integration"] D --> E E --> F["🗄️ SIEM<br/>Sentinel · Splunk · Elastic"] F --> G["🚨 Alerta<br/>Mesmo token em múltiplos IPs<br/>Pass-the-Cookie / AiTM"] ``` ## Componentes de Dados | Componente | ID | Descrição | |---|---|---| | Web Credential Creation | [[dc0006-web-credential-creation\|DC0006]] | Geração de novos cookies de sessão, tokens OAuth ou API keys | | Web Credential Usage | [[dc0007-web-credential-usage\|DC0007]] | Uso de credenciais web em requisições autenticadas — fonte de anomalias de acesso | ## Como Coletar ### SaaS / Office Suite — Microsoft 365 / Entra ID **Logs de auditoria Microsoft 365:** - **Unified Audit Log (UAL):** Principal fonte de eventos de autenticação e uso de tokens em M365. Acessível via portal de compliance ou API (`https://manage.office.com/api/v1.0/`) - **Microsoft Entra ID Sign-in Logs:** Captura autenticações com detalhes de token, MFA status, IP, conditional access results - **Microsoft Defender for Cloud Apps (MDCA):** Detecta sessões impossíveis, acesso de países incomuns, uso anômalo de tokens **Eventos de interesse no UAL:** ``` Operation = "UserLoggedIn" AND ClientInfoString CONTAINS "evilproxy" Operation = "Add service principal credentials" Operation = "OAuth2PermissionGrant" ResultStatus = "Success" AND DeviceProperties.trustType = "" -- sem device compliance ``` **Microsoft Sentinel — detecção de session hijacking:** ```kusto // Detectar token de sessão usado de múltiplos IPs em curto intervalo SignInLogs | where TimeGenerated > ago(1h) | summarize Locations = make_set(Location), IPs = make_set(IPAddress), Count = count() by UserPrincipalName, CorrelationId | where array_length(IPs) > 2 | where array_length(Locations) > 1 ``` ### Aplicações Web — Servidores e Proxies **Nginx / Apache — coleta de access logs:** ```nginx # nginx.conf — log format incluindo cookie de sessão (anonimizado) log_format cti_format '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' 'sid=$cookie_sessionid'; ``` **WAF (Web Application Firewall):** - Logs de WAF são a fonte mais rica para detecção de roubo e reuso de cookies - Focar em anomalias: mesmo `session_id` usado de IPs diferentes, User-Agent diferente do que criou a sessão, acesso a recursos privilegiados com token emitido muito antes ### Identity Provider — Okta, Ping, ADFS **Okta System Log:** ```json { "eventType": "session.hijacking.detected", "displayMessage": "Session context mismatch detected", "actor.type": "User" } ``` Eventos Okta relevantes: `user.session.start`, `user.session.expire`, `policy.evaluate_sign_on` **ADFS (Active Directory Federation Services):** - Habilitar auditoria ADFS: `Set-AdfsProperties -AuditLevel Verbose` - Event IDs: 411 (token emitido), 510 (erro de válidação), 516 (revogação) ### SIEM — Integração | SIEM | Fonte de Dados | Observações | |---|---|---| | **Microsoft Sentinel** | `SignInLogs`, `AADNonInteractiveUserSignInLogs`, `M365D DeviceLogonEvents` | Cobertura nativa para M365 — solução preferida para ambiente Microsoft | | **Splunk** | Splunk Add-on for Microsoft Office 365 + custom inputs para UAL | Parser robusto disponível no Splunkbase | | **Elastic** | Azure integration + M365 integration | Ingest pipeline para normalização de eventos de autenticação | | **Wazuh + graylog** | API polling do UAL via Python + Graylog para parsing | Solução low-cost viável para PMEs brasileiras | ## Técnicas Detectadas | Técnica | Descrição | |---|---| | [[t1539-steal-web-session-cookie\|T1539 — Steal Web Session Cookie]] | Roubo de cookies de sessão para acesso não autorizado a aplicações web | | [[t1550-use-alternate-authentication-material\|T1550 — Use Alternate Authentication Material]] | Uso de tokens ou cookies roubados como material alternativo de autenticação | | [[t1550-001-application-access-token\|T1550.001 — Application Access Token]] | Abuso de tokens OAuth roubados para acesso a APIs e serviços SaaS | | [[t1528-steal-application-access-token\|T1528 — Steal Application Access Token]] | Roubo de tokens OAuth via aplicações maliciosas ou phishing de consentimento | | [[t1606-forge-web-credentials\|T1606 — Forge Web Credentials]] | Criação de cookies ou tokens falsificados para autenticação fraudulenta | ## Gaps de Cobertura Brasil/LATAM **Lacunas mais comuns em organizações brasileiras:** > [!warning] Gap Crítico — Microsoft 365 sem Unified Audit Log Ativado > O Unified Audit Log do Microsoft 365 precisa ser **explicitamente habilitado** e por padrão não retém logs por período suficiente nos planos básicos (apenas 90 dias no E1/E3). Muitas organizações brasileiras com M365 nunca habilitaram ou configuraram retenção adequada, ficando cegas a comprometimentos de sessão que podem durar semanas. ## Referências - [[_auth\|Data Components — Autenticação]] — DC0006, DC0007 - [[m1032-multi-factor-authentication\|M1032 — Multi-Factor Authentication]] — controle preventivo contra roubo de credenciais web - [[m1027-password-policies\|M1027 — Password Policies]] — políticas de rotação e complexidade de credenciais - [[t1539-steal-web-session-cookie\|T1539 — Steal Web Session Cookie]] — técnica primária coberta por esta fonte - [[t1550-001-application-access-token\|T1550.001 — Application Access Token]] — abuso de tokens OAuth - [[m1054-software-configuration\|M1054 — Software Configuration]] — configurar flags de segurança em cookies (Secure, HttpOnly, SameSite) --- *Fonte: [MITRE ATT&CK — DS0006](https://attack.mitre.org/datasources/DS0006)*