Skip to content

🌐 Mapa de Infraestrutura RedeDor - Sistemas Comprometidos

Arquitetura Completa

graph TB
    subgraph "ATACANTE 🔓"
        ATK["Acesso externo<br/>- PAT Token Azure DevOps<br/>- Git clone com secrets<br/>- MSAL Dev secret em plaintext"]
    end

    subgraph "MICROSOFT CLOUD"
        subgraph "AZURE AD TENANT 03a1fb23-83f2-4fbf-81f9-e40d15b58719"
            AAD_CORE["Azure AD Tenant<br/>344 apps<br/>344 secrets"]

            MSAL_D["MSAL Dev<br/>cc06aa03<br/>SECRET: Qjc8Q~"]
            MSAL_P["MSAL Prd<br/>4e5a672f<br/>SECRET: IA_8Q~"]

            APEX["APEX Auth<br/>4459f6a9<br/>7 secrets"]

            PAT_M["PAT-Token-Manager<br/>df077825<br/>DevOps FULL"]

            DOR_DEV["dor-dev-hub<br/>8a7d0eab<br/>DevOps scope"]

            CYBERARK["CyberArk Identity<br/>994ce889<br/>Directory.WriteAll"]

            KEYVAULT["Key Vault Mgmt<br/>1cd22fa9<br/>All secrets"]

            OTHERS["+ 336 apps<br/>com secrets"]

            GRAPH["Microsoft Graph API<br/>Access: Application.ReadWrite.All<br/>Pode listar/editar TODAS as apps"]
        end

        subgraph "AZURE DEVOPS - rededorlabs"
            DEVOPS_ORG["Azure DevOps Org<br/>rededorlabs"]

            PAT_TOKEN["🔑 PAT Token<br/>EbBQwWRTn29c...<br/>Scope: Code+Packaging<br/>ATIVO"]

            REPO1["portal-de-relacionamento-backend<br/>3377 commits<br/>SECRET: TOKEN_SECRET<br/>MySQL creds<br/>Swagger creds"]

            REPO2["portal-de-relacionamento-frontend<br/>2373 commits<br/>MSAL config<br/>API endpoints"]

            REPO3["portal-de-relacionamento-fe-terceiro<br/>898 commits"]

            REPO4["gestao-de-identidade-serverless<br/>280 commits<br/>SECRET: TOKEN_SECRET (duplicado!)<br/>Cognito config"]

            REPO5["coca<br/>34 commits"]

            REPO6["user-importer<br/>29 commits"]
        end
    end

    subgraph "AWS CLOUD"
        subgraph "Account 282525845483 - gestao-de-identidade"
            VPC1["VPC Privada<br/>10.247.x.x"]

            SECURENV["securenv API<br/>prod-k8s.rededorlabs.com<br/>10.247.x.x<br/>NÃO alcançável<br/>de fora"]

            RDS_DEV["🔓 MySQL RDS DEV<br/>gestao-identidade-dev.cf04evbxtqfl<br/>Port: 3306<br/>User: dev_admin<br/>Pass: sShk9PkdQ35BRilDH0ukREDEDOR<br/>DATABASE ACESSÍVEL"]

            ECS1["ECS Cluster<br/>gestao-identidade services"]

            TOKEN_R1["🔓 TOKEN_SECRET<br/>569825f342fae7cae51f7c55fcc805c6cec4e2cb7b1535e5344266d332911977<br/>Em uso nesta account"]
        end

        subgraph "Account 485245438221 - portal-backend"
            VPC2["VPC Privada<br/>AWS Region: sa-east-1"]

            RDS_PROD["MySQL RDS PROD<br/>Credenciais potencialmente<br/>expostas também"]

            ECS2["ECS Cluster<br/>Portal services<br/>Backend + Frontend"]

            TOKEN_R2["🔓 TOKEN_SECRET<br/>Mesmo token de 282525845483<br/>Vulnerability!"]

            LAMBDA["Lambda Functions<br/>Processamento de dados<br/>Medical workflows"]
        end

        subgraph "Account 527905719568 - Cinemed PRD"
            ECR["🔓 ECR Registry<br/>527905719568.dkr.ecr.sa-east-1<br/>Docker images<br/>Production containers"]
        end
    end

    subgraph "EXTERNAL SERVICES"
        subgraph "ServiceNow"
            SN["ServiceNow Instance<br/>Ticketing System<br/>CREDS: y}57}QL)T<br/>CREDS: 0TykR59NL]!X84T<"]
        end

        subgraph "AWS Cognito"
            COGNITO["AWS Cognito<br/>User Pool<br/>CLIENT_SECRET: 59r3tknurueajmegi8dme43c9ef9hirfvjg6cdtpb12r7uj4dav"]
        end

        subgraph "Swagger API"
            SWAGGER["Swagger BasicAuth<br/>User: S7W1vzE4Xx5scLY1GsKf<br/>Pass: $t7N0<\\33Ts8"]
        end

        subgraph "CRM / Dynamics"
            CRM["CRM System<br/>Password: 503743dE2c124255A395Db53b8757793"]
        end

        subgraph "AWS Credentials (Expiradas)"
            CRED1["ASIAUDR62I7VSFR2BZ4F<br/>Account 282525845483<br/>EXPIRADA"]

            CRED2["ASIAXB6XBZEG7RE64OW4<br/>Account 485245438221<br/>EXPIRADA"]
        end
    end

    subgraph "PESSOAS CHAVE"
        PESSOA["Diogo Menezes<br/>diogo.menezes@rededor.com.br<br/>ID: 4c651a5b<br/>Possível proprietário<br/>de múltiplas credenciais"]
    end

    %% Fluxos de Ataque
    ATK -->|"Clone com PAT"| DEVOPS_ORG
    ATK -->|"PAT Token"| PAT_TOKEN

    PAT_TOKEN -->|"Acesso código"| REPO1
    PAT_TOKEN -->|"Acesso código"| REPO2
    PAT_TOKEN -->|"Acesso código"| REPO3
    PAT_TOKEN -->|"Acesso código"| REPO4

    REPO1 -->|"Extrai"| MSAL_D
    REPO1 -->|"Extrai"| SWAGGER
    REPO1 -->|"Extrai"| CRM
    REPO1 -->|"Extrai RDS creds"| RDS_DEV

    REPO4 -->|"Duplica"| TOKEN_R1
    REPO1 -->|"Duplica"| TOKEN_R2

    REPO4 -->|"Cognito creds"| COGNITO

    MSAL_D -->|"Graph API access"| GRAPH
    MSAL_D -->|"Token para"| MSAL_P

    GRAPH -->|"Enumera"| AAD_CORE
    GRAPH -->|"Encontra"| PAT_M
    GRAPH -->|"Encontra"| DOR_DEV
    GRAPH -->|"Encontra"| CYBERARK
    GRAPH -->|"Encontra"| KEYVAULT
    GRAPH -->|"Encontra"| OTHERS

    KEYVAULT -->|"Acesso"| OTHERS

    PAT_M -->|"DevOps full access"| DEVOPS_ORG
    DOR_DEV -->|"DevOps access"| DEVOPS_ORG

    CYBERARK -->|"Directory.WriteAll"| AAD_CORE

    SWAGGER -->|"API access"| ECS2
    RDS_DEV -->|"Database access"| ECS1

    TOKEN_R1 -->|"JWT auth"| SECURENV
    TOKEN_R2 -->|"JWT auth"| LAMBDA

    COGNITO -->|"User pool access"| ECS2

    SN -->|"Ticket system"| PESSOA
    CRM -->|"CRM system"| PESSOA

    ECR -->|"Production images"| ECS2

    %% Estilos
    style ATK fill:#ff0000,color:#fff
    style AAD_CORE fill:#ffcc00
    style MSAL_D fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style MSAL_P fill:#ff6666,color:#fff,stroke:#cc0000,stroke-width:3px
    style GRAPH fill:#ff9999,color:#fff
    style KEYVAULT fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style PAT_M fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style DOR_DEV fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style DEVOPS_ORG fill:#ff9999,color:#fff,stroke:#cc0000,stroke-width:2px
    style PAT_TOKEN fill:#ff0000,color:#fff,stroke:#8b0000,stroke-width:3px
    style RDS_DEV fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style REPO1 fill:#ff9999,color:#fff
    style REPO4 fill:#ff9999,color:#fff
    style TOKEN_R1 fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style TOKEN_R2 fill:#ff3333,color:#fff,stroke:#8b0000,stroke-width:3px
    style VPC1 fill:#fff3cd
    style VPC2 fill:#fff3cd
    style ECR fill:#ff9999,color:#fff
    style CRED1 fill:#999999,color:#fff
    style CRED2 fill:#999999,color:#fff

Detalhamento por Sistema

Azure DevOps Organization (rededorlabs)

URL: https://dev.azure.com/rededorlabs

Repositório Commits Secrets Encontrados Severidade
portal-de-relacionamento-backend 3377 TOKEN_SECRET, MySQL RDS, Swagger BasicAuth, CRM pass 🔴 CRÍTICA
gestao-de-identidade-serverless 280 TOKEN_SECRET (DUPLICADO!), Cognito secret, ServiceNow creds 🔴 CRÍTICA
portal-de-relacionamento-frontend 2373 MSAL config, API endpoints 🟠 ALTA
portal-de-relacionamento-fe-terceiro 898 Config files 🟡 MÉDIA
coca 34 Desconhecido 🟡 BAIXA
user-importer 29 Desconhecido 🟡 BAIXA

Total de commits escaneados: 6,991 Taxa de descoberta: ~9 secrets majores em ~0.13% dos commits = RISCO CRÍTICO


AWS Account 282525845483 - Gestão de Identidade

Região: sa-east-1

Componentes

  • RDS MySQL Dev: gestao-identidade-dev.cf04evbxtqfl.sa-east-1.rds.amazonaws.com:3306
  • User: dev_admin
  • Password: sShk9PkdQ35BRilDH0ukREDEDOR
  • Status: ACESSÍVEL de qualquer lugar (possivelmente)
  • Contém: Database de identidades, usuarios, privilégios

  • VPC Privada: 10.247.x.x

  • Securenv API: securenv.prod-k8s.rededorlabs.com
  • Status: Não alcançável de fora (proteção)

  • ECS Cluster: Gestao-identidade services

  • Usa TOKEN_SECRET para autenticação interna
  • Acesso a RDS Dev

Fluxo de Ataque

PAT Token → git clone → TOKEN_SECRET
                ↓
Usa TOKEN_SECRET para acessar APIs internas
                ↓
Acessa RDS com credenciais em código
                ↓
Database completa de usuários/roles

AWS Account 485245438221 - Portal Backend

Região: sa-east-1

Componentes

  • RDS MySQL Prod: Potencialmente com mesmas credenciais
  • Impacto: Dados de produção em risco

  • ECS Cluster: Portal services

  • Frontend + Backend services
  • Usa TOKEN_SECRET (DUPLICADO de 282525845483!)

  • Lambda Functions: Processamento medical workflows

  • Acesso a dados sensíveis de pacientes

Fluxo de Ataque

TOKEN_SECRET (mesmo token de 282525845483!)
                ↓
Acessa production ECS/Lambda
                ↓
Medical data pipeline compromise

AWS Account 527905719568 - Cinemed Production

Componentes

  • ECR Registry: 527905719568.dkr.ecr.sa-east-1.amazonaws.com
  • Docker images production
  • Status: Potencialmente acessível com AWS credentials

Azure AD Tenant - 03a1fb23-83f2-4fbf-81f9-e40d15b58719

Total Apps: 344 Total Secrets: 344 (1 por app, em média)

Aplicações Críticas

Portal Dev (cc06aa03) ← SECRET EM GIT
        ↓ (Graph API)
Enumera 344 apps
        ↓
Encontra:
- PAT-Token-Manager (DevOps full)
- dor-dev-hub (DevOps scope)
- Key Vault Manager (all secrets)
- CyberArk Identity (directory.write)
- APEX Auth (7 secrets)
- + 339 outros apps

Fluxo de Dados Comprometido

Atacante
    ↓
PAT Token Azure DevOps
    ↓
├─ Clone repos + scan history
    │  ├─ TOKEN_SECRET (jwt)
    │  ├─ MySQL RDS (dev_admin:password)
    │  ├─ Swagger BasicAuth
    │  ├─ CRM Password
    │  ├─ Cognito secret
    │  └─ ServiceNow creds
    │
    ├─ MSAL Dev Secret (Qjc8Q~)
    │  ├─ Graph API token
    │  ├─ Enumera 344 apps
    │  ├─ Encontra PAT-Token-Manager
    │  ├─ Encontra Key Vault Manager
    │  └─ Add password to Portal Prd
    │
    └─ AWS Credentials (expiradas, mas histórico)
       ├─ Acesso anterior a RDS
       └─ ECR registry compromise

Resultado: Controle de
- Azure AD (344 apps)
- Azure DevOps (6 repos)
- AWS Accounts (3 contas)
- Production databases
- Medical data pipelines

Pontos Críticos de Exposição

Ponto Exposição Risco Mitigação
Git History 6,991 commits com 9+ secrets 🔴 CRÍTICA Rebase/force-push history + rotate secrets
RDS Dev Acess MySQL dev credentials em código 🔴 CRÍTICA Change password + force reconnect
TOKEN_SECRET Duplicação Mesmo token em 2 AWS accounts 🔴 CRÍTICA Invalidar token + reissue por account
MSAL Dev Secret Em git + active 🔴 CRÍTICA Revoke + delete app
Key Vault Access App com acesso a 344 secrets 🔴 CRÍTICA Audit + restrict to 1 secret
PAT Token Code+Packaging scope em git 🔴 CRÍTICA Revoke + issue new with min scope
ServiceNow/CRM Creds Em git history 🟠 ALTA Rotate all 3 passwords
Cognito Secret Em git history 🟠 ALTA Rotate in Cognito
AWS Credentials Histórico de acesso visível 🟠 ALTA Enable CloudTrail analysis

Recomendações Prioritárias

Imediato (HOJE)

  1. Revoke MSAL Dev secret (cc06aa03)
  2. Force rotate RDS Dev password
  3. Revoke PAT Token Azure DevOps
  4. Audit + invalidate MSAL Prod new secret (IA_8Q~)

24 Horas

  1. Scan completo git history com TruffleHog
  2. Assess AWS CloudTrail para credenciais expiradas
  3. Audit CyberArk Directory.WriteAll permissions
  4. Change RDS Prod password

1 Semana

  1. Rotate TODOS os 344 app secrets Azure AD
  2. Implement Secret Rotation Policy (90 dias máximo)
  3. Enable Azure AD sign-in logs + alerts
  4. Disable legacy dev Azure AD applications

30 Dias

  1. Implement secrets detection in CI/CD pipeline
  2. Migrate to Azure Key Vault for secret management
  3. Enable MFA em todos os service principals
  4. Audit IAM permissions across 3 AWS accounts