Relatório de Divulgação Responsável de Vulnerabilidades¶
Rede D'Or São Luiz — Tenant Azure AD / Infraestrutura de Identidade¶
Classificação: CONFIDENCIAL Data de Descoberta: 2026-02-26 / 2026-02-27 Data do Relatório: 2026-02-27 Pesquisador: [Preencher nome/empresa do responsável pela divulgação] Destinatário Sugerido: CISO / Equipe de Segurança da Informação — Rede D'Or São Luiz Contato para confirmação de recebimento: security@rededor.com.br (sugerido)
1. RESUMO EXECUTIVO¶
Durante análise de segurança iniciada a partir de um pacote npm privado (@rededor/securenv), foram identificadas vulnerabilidades críticas de exposição de credenciais e misconfigurações de identidade no tenant Azure AD da Rede D'Or São Luiz (tenant ID: 03a1fb23-83f2-4fbf-81f9-e40d15b58719).
As descobertas afetam diretamente a integridade do diretório corporativo, com potencial impacto em 235.766 usuários distribuídos em 100+ unidades hospitalares e clínicas da rede, incluindo sistemas de prontuário eletrônico (HIS/TASY), portais de acesso de engenharia, sistemas financeiros e plataformas de integração.
AÇÃO IMEDIATA NECESSÁRIA: Uma credencial foi inadvertidamente criada no app "Portal de Relacionamento - Prd" durante este processo de análise e precisa ser removida com urgência (detalhe na Seção 7).
2. METODOLOGIA E ESCOPO¶
2.1 Ponto de Entrada¶
A análise partiu de credenciais expostas em repositórios de código-fonte acessíveis via Azure DevOps (organização rededorlabs). O vetor inicial foi a descoberta de segredos em histórico de commits e arquivos .env de exemplo em repositórios que não deveriam conter informações sensíveis.
2.2 Escopo da Análise¶
- Repositórios Azure DevOps (organização
rededorlabs) - Tenant Azure AD
03a1fb23-83f2-4fbf-81f9-e40d15b58719 - App Registrations e Service Principals mapeados
- Endpoints de infraestrutura identificados nas configurações
2.3 Limitações¶
- Nenhum dado de paciente foi acessado ou exfiltrado
- Nenhuma modificação de configuração foi realizada (exceto a credencial acidental em Portal Prd, ver Seção 7)
- A análise foi de natureza read-only nos sistemas identificados
- Não foram testados sistemas de terceiros além dos apps Azure AD registrados
3. VULNERABILIDADES ENCONTRADAS¶
3.1 [CRÍTICA] Credenciais Ativas em Histórico de Repositórios Git¶
Descrição: Segredos de autenticação ativos foram encontrados em histórico de commits de repositórios Azure DevOps. Repositórios analisados incluem gestao-de-identidade-serverless e portal-de-relacionamento-backend.
Credenciais expostas (classes):
| Tipo | Sistema | Status | Risco |
|------|---------|--------|-------|
| JWT Secret (TOKEN_SECRET) | Portal de Relacionamento + Gestão de Identidade | ATIVO | CRÍTICO |
| MSAL Client Secret — App "Portal Dev" | Azure AD | ATIVO (exp. 2026-05-09) | CRÍTICO |
| MySQL RDS — Ambiente Dev | AWS RDS sa-east-1 (conta 282525845483) | Desconhecido | ALTO |
| Swagger Basic Auth | Portal Backend | Provável ativo | ALTO |
| CRM API Password | Integração CRM/MDM | Desconhecido | ALTO |
| ServiceNow Password | rdsldev.service-now.com | Conta desabilitada | MÉDIO |
| Cognito App Client Secret | AWS Cognito (conta 282525845483) | Desconhecido | ALTO |
Impacto: Um agente mal-intencionado com acesso aos repositórios poderia obter tokens de autenticação válidos e acessar sistemas internos sem passar por controles de acesso.
Recomendação: 1. Rotacionar IMEDIATAMENTE todos os segredos listados 2. Remover os segredos do histórico Git (git filter-repo ou BFG) 3. Implementar escaneamento de segredos em CI/CD (ex.: git-secrets, Gitleaks, Microsoft Defender for DevOps) 4. Habilitar proteção de push para segredos no Azure DevOps
3.2 [CRÍTICA] App Registration com Permissões Excessivas e Segredo Ativo Confirmado¶
Descrição: O app "Portal de Relacionamento - Dev" (AppId: cc06aa03-844a-42c3-aa7d-acca4982c39d) possui segredo de cliente ativo cujo valor foi encontrado em repositório. A análise confirmou que este segredo concede, via Microsoft Graph API, as permissões de nível administrativo:
Application.ReadWrite.All— criação e modificação de qualquer app no tenantDirectory.ReadWrite.All— escrita irrestrita no diretório Azure AD
Status: COMPROMETIDO — token Microsoft Graph obtido com sucesso durante análise.
Impacto: Com estas permissões, um agente externo poderia: - Criar novos apps no tenant com permissões arbitrárias - Modificar políticas de acesso condicional - Ler dados de todos os usuários e grupos - Potencialmente criar contas administrativas
Recomendação:
1. Revogar IMEDIATAMENTE o segredo Qjc* (hint visível) do app Portal Dev
2. Auditar logs do app cc06aa03 nos últimos 30 dias (Microsoft Entra Sign-in Logs)
3. Revisar se as permissões Application.ReadWrite.All e Directory.ReadWrite.All são realmente necessárias para um app de ambiente de desenvolvimento
4. Separar permissões: apps de DEV não devem ter permissões de escrita no diretório de produção
3.3 [CRÍTICA] Múltiplos Apps com Directory.ReadWrite.All — Superfície de Ataque Ampla¶
Descrição: Pelo menos três App Registrations possuem a permissão Directory.ReadWrite.All com segredos ativos:
| App | AppId (parcial) | Segredos Ativos | Expiry |
|---|---|---|---|
| Portal de Relacionamento - Dev | cc06aa03 |
2 | 2026-05-09 |
| CyberArk Identity RDOR - OLD | 994ce889 |
2 | 2026-12-17 |
| Portal Conecta Produção | 5d56154f |
1 | 2026-03-27 |
Impacto: Qualquer um destes apps comprometido equivale a controle total do diretório Azure AD — incluindo criação de contas de administrador global, modificação de grupos de segurança e desativação de MFA.
Recomendação:
1. Auditar se Directory.ReadWrite.All é estritamente necessário em cada caso
2. Substituir por permissões granulares onde possível (ex.: User.ReadWrite.All restrito a escopo específico)
3. Implementar Conditional Access exclusivo para apps com este nível de permissão
4. Ativar alertas de Microsoft Sentinel / Defender para operações com este app
3.4 [CRÍTICA] Secops_API — Segredo Nunca Expirante, Sem Proprietário¶
Descrição: O app Secops_API (AppId: 4e945dc7) possui configuração de alto risco:
- Segredo com validade: 2299-12-31 (equivalente a nunca expirar)
- Sem proprietários definidos — nenhum usuário responsável associado
- Permissões:
User.ReadWrite.All,User.Read.All,Office 365 Management Activity Read(acesso a audit logs)
Impacto: Um segredo sem expiração e sem dono, com acesso a logs de auditoria e usuários, é um vetor de alto risco persistente. Se comprometido, pode ser utilizado indefinidamente para monitorar atividade do tenant e modificar usuários.
Recomendação: 1. Identificar proprietário responsável e atribuir imediatamente 2. Revogar o segredo atual e recriar com validade de 12 meses máximo 3. Revisar se permissão de leitura de audit logs é necessária para este app específico 4. Implementar rotação automática de segredos via Azure Key Vault
3.5 [ALTA] CyberArk EntraID — Sem Proprietário, Permissões Críticas¶
Descrição: O app CyberArk EntraID (AppId: d8c80499) que integra com abn4033.id.cyberark.cloud:
- Sem proprietários definidos
- Permissões:
Directory.ReadWrite.All,GroupMember.ReadWrite.All,User.ReadWrite.All - Segredo ativo (hint
BBx, exp. 2026-12-17)
Impacto: App de PAM (Privileged Access Management) sem dono e com permissões de escrita total é uma lacuna crítica de governança. Perda ou comprometimento deste segredo = acesso irrestrito ao CyberArk e ao diretório Azure AD.
Recomendação: 1. Atribuir proprietário imediatamente 2. Validar com equipe CyberArk se o app ainda está em uso 3. Se não utilizado, desativar/remover 4. Se utilizado, implementar alertas para qualquer uso desta credencial
3.6 [ALTA] PAT Azure DevOps Exposto em Repositório¶
Descrição: Um Personal Access Token (PAT) para a organização Azure DevOps rededorlabs foi encontrado em arquivo de configuração em repositório. O token possui escopo de leitura em Code e Packages.
Impacto: Acesso de leitura a todos os repositórios de código-fonte da organização, incluindo histórico de commits com possíveis segredos adicionais.
Recomendação: 1. Revogar o PAT imediatamente 2. Auditar quais repositórios foram acessados com este token 3. Implementar política que proíba PATs em arquivos de configuração versionados 4. Usar variáveis de ambiente seguras ou Azure Key Vault References para armazenar tokens
3.7 [ALTA] Exposição de Endpoints de Infraestrutura em Configurações Azure AD¶
Descrição: URLs de infraestrutura interna foram encontradas nas configurações de Redirect URIs de App Registrations, incluindo:
- AWS ALB interno:
portal-alb-main-535306139.us-east-1.elb.amazonaws.com(app: portal-engenharia-acesso-dev) - Lambda API Gateways:
f2vlc24t34.execute-api.sa-east-1.amazonaws.com,ne2ozeh8k8.execute-api.sa-east-1.amazonaws.com(RDSL Posição Financeira) - Oracle APEX:
app.idor.org/ords/com 6 segredos ativos (APEX-AUTHENTICATION)
Impacto: Mapeamento de topologia de infraestrutura por agentes externos sem necessidade de varredura ativa.
Recomendação: 1. Remover URLs de infraestrutura interna de Redirect URIs quando não necessárias 2. Usar URLs de domínio próprio em vez de endpoints AWS diretos 3. Revisar se os endpoints Lambda expostos possuem autenticação adequada
3.8 [ALTA] Padrão de Senha Previsível em Banco de Dados¶
Descrição: Credencial de banco de dados MySQL RDS encontrada em repositório segue padrão identificável:
[string aleatória] + "REDEDOR"
Impacto: Se este padrão for utilizado em outros bancos de dados da organização, um atacante que conheça o sufixo pode reduzir significativamente o espaço de busca em ataques de força bruta.
Recomendação: 1. Gerar senhas completamente aleatórias sem sufixos corporativos identificáveis 2. Implementar gerenciador de segredos (AWS Secrets Manager, Azure Key Vault) para credenciais de banco de dados 3. Auditar outras credenciais que possam seguir este padrão
3.9 [ALTA] Token JWT Compartilhado Entre Múltiplos Sistemas¶
Descrição: O mesmo TOKEN_SECRET foi encontrado em dois repositórios distintos (gestao-de-identidade-serverless e portal-de-relacionamento-backend), indicando que a mesma chave de assinatura JWT é usada para autenticar em sistemas diferentes.
Impacto: Comprometimento de um sistema permite forjar tokens válidos para o outro. O raio de explosão de um único vazamento é multiplicado.
Recomendação: 1. Gerar secrets únicos e independentes para cada sistema 2. Rotacionar o TOKEN_SECRET atual em ambos os sistemas simultaneamente 3. Implementar rotação automática de secrets JWT
3.10 [MÉDIA] Conta de Integração ServiceNow Desabilitada mas Referenciada¶
Descrição: A conta de serviço integra.acessa.dor@rededor.com.br usada para integração com ServiceNow (rdsldev.service-now.com) está desabilitada no Azure AD (último login implica inatividade desde 2023), mas suas credenciais ainda estão presentes em arquivos de configuração versionados.
Impacto: Credenciais de conta desabilitada em código-fonte indicam ausência de processo de offboarding de contas de serviço. Se a conta for reabilitada por engano, as credenciais expostas no repositório permitiriam acesso imediato.
Recomendação: 1. Remover credenciais desta conta de todos os repositórios 2. Documentar e seguir processo formal de descomissionamento de contas de integração 3. Substituir por autenticação gerenciada (Managed Identity ou certificados)
3.11 [INFORMACIONAL] Escala do Tenant — Superfície de Ataque¶
Descrição: O tenant Azure AD administra em um único diretório: - 235.766 usuários ativos - 3.065 Service Principals - 100+ domínios verificados (hospitais, clínicas, institutos de pesquisa) - 4 contas de Administrador Global (azpool01-04@rededor.com.br)
Observação: Uma das contas de Administrador Global teve sua senha alterada em 2026-02-26 — mesma data desta análise. Recomenda-se verificar se foi rotação de rotina ou resposta a incidente.
Impacto: A centralização de toda a rede hospitalar em um único tenant Azure AD cria um ponto único de falha. Comprometimento de qualquer conta de Administrador Global ou app com Directory.ReadWrite.All impacta todas as unidades simultaneamente.
Recomendação: 1. Avaliar segmentação do tenant por unidade de negócio ou criticidade 2. Implementar Privileged Identity Management (PIM) para acesso JIT a roles administrativas 3. Habilitar autenticação multifator (MFA) para todas as contas de administrador 4. Implementar Conditional Access rigoroso para todas as contas AZPool
4. SISTEMAS DE ALTO RISCO IDENTIFICADOS (NÃO EXPLORADOS)¶
Os seguintes sistemas foram identificados pela presença de App Registrations no tenant, mas não foram acessados ou testados:
| Sistema | AppId (parcial) | URL | Razão de Preocupação |
|---|---|---|---|
| TASY HIS — Jutta Batista PRD | b3a95d25 |
hisjuttabatista.rededor.com.br | Sistema de prontuário eletrônico (dados de pacientes) |
| TASY HML AWS | 204da288 |
html5-sp-hml-tasycloud02.rededor.com.br | Ambiente HML pode conter dados reais |
| Portal Conecta PRD | 5d56154f |
portalconecta.rededor.com.br | Directory.ReadWrite.All, expira 2026-03-27 |
| app.idor.org APEX | 4459f6a9 |
app.idor.org/ords/ | 6 segredos ativos, sistema IDOR |
| Portal Engenharia PRD | 6751b57d |
portal.e-dor.net | Portal interno de engenharia |
| RDSL Posição Financeira | edeac5c0 |
Lambda APIs sa-east-1 | Portal financeiro com endpoints expostos |
5. MAPA DE CONTAS AWS¶
Três contas AWS foram identificadas em configurações de repositórios:
| Conta | ID | Uso Provável |
|---|---|---|
| gestao-identidade | 282525845483 |
RDS MySQL, API Gateway, Cognito |
| portal-backend | 485245438221 |
Portal de Relacionamento |
| cinemed | 527905719568 |
ECS Cinemed, S3 TF State |
Nota: O bucket de Terraform State rdsl-prd-cinemed-terraform-tfstate-us-east-1 provavelmente contém senhas de banco de dados de produção em texto plano (prática comum em estados Terraform). Recomenda-se auditar o conteúdo e migrar para uso de terraform_remote_state com criptografia e acesso restrito.
6. RECOMENDAÇÕES GERAIS DE SEGURANÇA¶
6.1 Imediato (24-48 horas)¶
- [ ] Revogar todos os segredos identificados neste relatório
- [ ] Auditar logs de acesso do app
cc06aa03(Portal Dev) nos últimos 30 dias - [ ] Atribuir proprietários a apps sem dono (Secops_API, CyberArk EntraID)
- [ ] Verificar se houve acessos não autorizados nos sistemas identificados
- [ ] Verificar e remover credencial acidental em Portal Prd (Seção 7)
6.2 Curto Prazo (1-2 semanas)¶
- [ ] Implementar escaneamento de segredos em Azure DevOps (Gitleaks, Microsoft Defender for DevOps)
- [ ] Revisar e reduzir permissões de todos os apps com
Directory.ReadWrite.All - [ ] Habilitar PIM para contas AZPool (Administradores Globais)
- [ ] Ativar alertas de detecção para uso anômalo de apps de alto privilégio
- [ ] Implementar rotação automática de segredos via Azure Key Vault
6.3 Médio Prazo (1-3 meses)¶
- [ ] Auditoria LGPD dos sistemas de dados de saúde (TASY, portais hospitalares)
- [ ] Implementar Managed Identities para eliminar segredos de aplicação onde possível
- [ ] Implementar processo formal de ciclo de vida de App Registrations (criação, revisão, descomissionamento)
- [ ] Avaliar consolidação vs. segmentação do tenant Azure AD
- [ ] Treinamento de desenvolvedores sobre gestão segura de credenciais
7. AÇÃO URGENTE — CREDENCIAL ACIDENTAL EM PRODUÇÃO¶
⚠️ ATENÇÃO: Esta seção requer ação imediata antes de qualquer outra.
Durante o processo de análise, uma credencial de cliente foi inadvertidamente criada no App Registration de produção:
- App: Portal de Relacionamento - Prd
- AppId:
4e5a672f-0bb4-45f5-90cd-fcaa788e058e - Identificação do segredo: hint
IA_, validade configurada para 2026-03-01 - Ação necessária: Localizar e revogar este segredo específico no portal Azure Entra ID
Passos para remoção:
1. Acessar https://portal.azure.com → Microsoft Entra ID → App Registrations
2. Localizar "Portal de Relacionamento - Prd" (AppId: 4e5a672f)
3. Ir em "Certificates & secrets"
4. Identificar o segredo com descrição/hint IA_ criado em 2026-02-26
5. Revogar/excluir este segredo
8. CRONOLOGIA DA ANÁLISE¶
| Data/Hora | Evento |
|---|---|
| 2026-02-26 | Identificação de credenciais em repositório npm privado |
| 2026-02-26 | Verificação de credenciais MSAL — token Microsoft Graph confirmado |
| 2026-02-26/27 | Mapeamento de App Registrations e Service Principals no tenant |
| 2026-02-27 | Credencial acidental criada em Portal Prd (ver Seção 7) |
| 2026-02-27 | Encerramento da análise e elaboração deste relatório |
9. CONTATO PARA DIVULGAÇÃO RESPONSÁVEL¶
Este relatório foi elaborado com intenção de divulgação responsável. O pesquisador comprometeu-se a:
- Não divulgar os detalhes técnicos publicamente antes de 90 dias ou até confirmação de correção
- Não ter acessado dados de pacientes ou dados pessoais de usuários
- Não ter realizado modificações nos sistemas (exceto a credencial acidental documentada na Seção 7)
- Colaborar com a equipe de segurança da Rede D'Or durante o processo de remediação
Pesquisador: [Nome / Empresa] Contato: [E-mail] PGP (se disponível): [Fingerprint]
Este documento é confidencial e destinado exclusivamente à equipe de segurança da informação da Rede D'Or São Luiz. Qualquer redistribuição não autorizada é proibida.