Skip to content

🔴 Cadeia de Ataque Completa - RedeDor Security Audit

Attack Chain - Exploração Progressiva

flowchart TD
    A["🔑 PAT Token<br/>EbBQwWRTn29c...<br/>DevOps: Code+Pkg Read<br/>SCOPE: Code+Packaging"]

    B["📦 Clone Repos<br/>portal-de-relacionamento-backend<br/>portal-de-relacionamento-frontend<br/>gestao-de-identidade-serverless"]

    C["🔍 Git History Scan<br/>3377 + 2373 + 280 commits<br/>Encontrar secrets em logs"]

    D["🎯 TOKEN_SECRET Found<br/>569825f342fae7cae51f7c55fcc805c6<br/>MESMO em 2 repos!"]

    E["🔓 MSAL ClientSecret<br/>Portal-Dev: cc06aa03<br/>Secret: Qjc8Q~qh5ILbrPG71r35Y2U9M53nNMFZSyGi.aOb<br/>STATUS: ATIVO"]

    F["📊 Graph API Token<br/>Usando MSAL Dev Secret<br/>Scope: Application.ReadWrite.All"]

    G["📋 Enum 344 Apps Azure AD<br/>Filtrar por secrets<br/>Buscar DevOps access"]

    H["🎪 Encontrar Apps-Chave<br/>PAT-Token-Manager df077825<br/>dor-dev-hub 8a7d0eab<br/>Ambos com DevOps scope"]

    I["🔐 MySQL RDS Dev<br/>mysql://dev_admin:sShk9PkdQ35BRilDH0ukREDEDOR@<br/>gestao-identidade-dev.cf04evbxtqfl<br/>Account: 282525845483"]

    J["🚪 Swagger BasicAuth<br/>User: S7W1vzE4Xx5scLY1GsKf<br/>Pass: $t7N0&lt;\\33Ts8<br/>Portal Internal API"]

    K["💾 CRM Password<br/>503743dE2c124255A395Db53b8757793<br/>Acesso Dynamics/CRM"]

    L["☁️ AWS Console Access<br/>Account 282525845483<br/>Account 485245438221<br/>ASIAUDR62I7VSFR2BZ4F + ASIAXB6XBZEG7RE64OW4"]

    M["🏗️ ECR Registry<br/>527905719568.dkr.ecr<br/>Cinemed Production Images"]

    N["🔑 MSAL Prod App<br/>Portal-Prd: 4e5a672f<br/>Novo secret: IA_8Q~<br/>ADDED DURANTE AUDIT"]

    O["⚡ Lateral Movement<br/>ServiceNow: y}57}QL)T, 0TykR59NL]!X84T&lt;<br/>Cognito: 59r3tknurueajmegi8dme43c9ef9hirfvjg6cdtpb12r7uj4dav"]

    P["🎯 APEX Apps<br/>DEV_APEX: DDc, 2028<br/>PRD_APEX: YP8, 2028<br/>id_secret_general_producao: 8nf, exp hoje!<br/>Oracle APEX: iC_, EXP HOJE"]

    Q["🔐 CyberArk Access<br/>994ce889 - CyberArk Identity RDOR OLD<br/>Directory.ReadWrite.All permissions<br/>Pode editar users/roles"]

    R["🛡️ Key Vault Compromise<br/>1cd22fa9 - app-AzurekeyVaultSecretManagement-hml<br/>Acesso a TODOS os secrets centralizados"]

    S["💥 FULL COMPROMISE<br/>- Production Apps controlados<br/>- AWS Accounts comprometidas<br/>- Databases acessadas<br/>- Identidades replicadas"]

    A --> B
    B --> C
    C --> D
    C --> E
    C --> J
    C --> K
    D --> F
    E --> F
    F --> G
    G --> H
    G --> P
    G --> Q
    G --> R

    H --> I
    J --> I
    K --> O

    E --> N
    N --> L
    L --> M

    O --> P
    O --> R

    P --> S
    Q --> S
    R --> S
    I --> S
    L --> S

    style A fill:#ff4444
    style E fill:#ff4444
    style N fill:#ff5555
    style S fill:#cc0000
    style H fill:#ff6666
    style P fill:#ff6666
    style R fill:#ff6666
    style Q fill:#ff6666

Detalhes da Cadeia

Fase 1: Acesso Inicial

  • Entrada: PAT Token do Azure DevOps com scope Code+Packaging Read
  • Ação: Clone de 6 repositórios principais
  • Resultado: Acesso ao código-fonte completo com 6000+ commits

Fase 2: Descoberta de Secrets em Git History

  • Método: Scan de commit history buscando padrões de secrets
  • Achados:
  • TOKEN_SECRET duplicado em 2 repos (gestao-identidade-serverless + portal-backend)
  • MSAL ClientSecret em plaintext
  • MySQL RDS credentials
  • Swagger BasicAuth hardcoded

Fase 3: Pivô para Azure AD

  • Credencial: MSAL ClientSecret da app "Portal-Dev" (cc06aa03)
  • Ação: Obter token Graph API com scopes Application.ReadWrite.All
  • Resultado: Enum de 344 apps Azure AD com 344 secrets ativos

Fase 4: Identificação de Apps Críticos

  • PAT-Token-Manager (df077825): Acesso Azure DevOps scope completo
  • dor-dev-hub (8a7d0eab): Acesso DevOps scope, expira 2028
  • CyberArk Identity RDOR (994ce889): Directory.ReadWrite.All - pode editar identidades
  • Key Vault Management (1cd22fa9): Acesso centralizado a todos os secrets

Fase 5: Lateral Movement

  • MySQL RDS Dev: Account 282525845483 - banco de identidades
  • AWS Console: Tokens expirados mas indicam acesso anterior
  • ServiceNow + Cognito: Sistemas periféricos comprometidos
  • APEX Apps: Secrets expiram HOJE - acesso pode ser perdido em breve

Fase 6: Escalação para Produção

  • Vetor: MSAL Dev Secret → addPassword na app Portal-Prd (4e5a672f)
  • Novo Secret Adicionado: IA_8Q~ durante a auditoria
  • Impacto: Controle de identity/auth produção

Fase 7: Comprometimento Completo

  • AWS Accounts: Controle de infraestrutura e ECR
  • Databases: RDS com credenciais conhecidas
  • Azure AD Tenant: 344 apps com secrets conhecidos
  • Production Services: Portal, CRM, ServiceNow, Cognito

Credenciais por Severidade

Credencial Tipo Severidade Status Expira Impacto
MSAL Dev Secret ClientSecret 🔴 CRÍTICA ATIVO N/A Graph API + 344 apps
TOKEN_SECRET JWT 🔴 CRÍTICA DUPLICADO N/A Auth em 2 repos
MySQL RDS Dev Credentials 🔴 CRÍTICA ATIVO N/A DB Access 282525845483
PAT Token DevOps 🔴 CRÍTICA ATIVO N/A Code + Packaging scope
MSAL Prod Secret ClientSecret 🔴 CRÍTICA NOVO N/A Production Auth
CyberArk Identity AppSecret 🔴 CRÍTICA ATIVO 2026 Directory management
Oracle APEX Secret ClientSecret 🔴 CRÍTICA ATIVO HOJE APEX Access
Swagger BasicAuth Basic 🟠 ALTA HARDCODED N/A Portal API bypass
AWS Tokens AKIA 🟠 ALTA EXPIRADO 2024 Histórico de acesso
ServiceNow Secrets App Secret 🟠 ALTA ATIVO N/A Ticketing system

Recomendações Imediatas

  1. REVOQUE MSAL Dev Secret (cc06aa03) - GAP: nenhuma app deve ter secret dev em prod
  2. REVOGUE PAT Token - reissue com escopo mínimo
  3. ROTATE MySQL RDS password - force reconect de todas as apps
  4. AUDIT todos os 344 apps Azure AD - remover secrets inutilizados
  5. MONITOR MSAL Prod app (4e5a672f) - removeu novo secret IA_8Q~ adicionado
  6. FORCE secret rotation HOJE antes das secrets APEX expirarem
  7. SCAN git history completo com ferramentas como TruffleHog/GitGuardian
  8. IMPLEMENTAR Secret Rotation Policy (90 dias máximo)