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