Voltar às publicações
Arquivo de pesquisa

Detecção de Segurança Interna através dos Centros de Confiança SafeBase

Usando portais de confiança SafeBase expostos e varredura headless com Nuclei para extrair controles de segurança públicos, validar afirmações de garantia e automatizar a detecção de mudanças em escala.

osintnucleidetectionsafebasecompliance

Introdução — Caçando garantias e OSINT

Os portais SafeBase expostos servem a dois públicos ao mesmo tempo:

  • Prospects que precisam de prova da sua postura de segurança
  • Pesquisadores de segurança (equipes azul e vermelha)

Cada marca verde revela um controle que (supostamente) existe hoje; cada marca ausente é uma dica igualmente clara sobre o que não existe.


O que esse método de detecção faz

A abordagem descrita neste post:

  • Coleta cada título de controle diretamente do corpo HTML usando Nuclei no modo headless
  • Normaliza esses títulos em achados legíveis por máquina via um único template baseado em regex
  • Gera correspondências JSON/CLI de controles de segurança internos

Por que coletar esses dados?

Frameworks de conformidade como:

  • ISO 27001
  • SOC 2
  • PCI-DSS
  • Regulamentações regionais de privacidade

…exigem evidências de que os controles de segurança estão implantados e funcionando.

O SafeBase simplifica isso eliminando a necessidade de intermináveis trocas de e-mails e solicitações de documentos.

Por que fazer scraping do próprio Trust Centre?

Mesmo que você tenha construído, há razões sólidas:

  • Garantia contínua
    Auditores esperam cada vez mais evidências contínuas em tempo real

  • Detecção de mudanças
    Nomes de controles, agrupamentos ou políticas podem mudar após atualizações ou aquisições

  • Mapeamentos de terceiros
    A saída JSON permite mapeamento contra frameworks como NIST 800-53


Valor para equipe azul vs. equipe vermelha

Equipe Benefício
Equipe Azul Garante que as declarações públicas permaneçam precisas
Equipe Vermelha Identifica lacunas comparando com bibliotecas de controles internos

Detecção

A revisão manual funciona, mas não escala.

Em vez disso, essa abordagem usa o ProjectDiscovery / Nuclei, uma ferramenta de varredura rápida baseada em templates YAML.

Por que o Nuclei?

  • Detecção orientada a templates
  • Varredura de alta velocidade
  • Facilmente customizável
  • Ideal para automação em larga escala

Matchers

O template inclui 70 matchers.

Exemplos de matchers com regex

- type: regex
  name: firewall
  regex: ['(?i)Firewall(?:[\s\S]{0,600}?data-testid="enabled")?']

- type: regex
  name: incident-response-policy
  regex: ['(?i)Incident\s+Response\s+Policy(?:[\s\S]{0,600}?data-testid="enabled")?']

Técnicas de regex utilizadas

Problema Solução
Capitalização diferente Flag (?i)
Espaços/quebras de linha misturados \s+
Espaço desconhecido entre título e ícone [\s\S]{0,600}?

Eliminando falsos positivos

Um matcher DSL garante maior precisão:

- type: dsl
  name: names
  dsl:
    - 'status_code == 200'
    - 'contains_any(body, "Powered by SafeBase")'
  condition: and

O que é verificado

Ambas devem ser verdadeiras:

  • O código de status da resposta é 200
  • O HTML contém "Powered by SafeBase"

Contornando o WAF do Cloudflare

A maioria dos portais SafeBase fica atrás do WAF do Cloudflare, que bloqueia tentativas de scraping.

Solução: Modo headless

Usando a execução em Chromium headless do Nuclei:

  • Executa desafios JavaScript
  • Contorna o Managed Challenge do Cloudflare
  • Renderiza conteúdo dinâmico

Configuração headless

headless:
  - steps:
      - action: navigate
        args:
          url: "{{BaseURL}}"
      - action: sleep
        args:
          duration: 1s

Detalhamento

  • navigate
    Inicializa o Chromium e carrega a URL alvo

  • sleep (1s)
    Permite:

    • Execução de JavaScript
    • Definição de cookies
    • Renderização completa da página

Aumente o atraso se o HTML aparecer incompleto.


Resolução de problemas

Se os resultados estiverem faltando:

  • Seu IP pode estar bloqueado
  • Use um proxy se necessário

Varredura em escala

1. Monte sua lista de alvos

# domains.txt
https://trust.gitlab.com
https://security.projectdiscovery.io
https://trust.your-vendor-here.com

Você também pode incluir:

  • Subdomínios
  • Endpoints rastreados

2. Execute o Nuclei com concorrência

nuclei \
  -t safebase-checks-enabled.yaml \
  -headless \
  -l matches.txt \
  -c 50 \
  -o safebase-scan.json

Flags principais

Flag Propósito
-l Arquivo de entrada
-c 50 Navegadores paralelos (consome muitos recursos)
-o Arquivo de saída

Opções de saída

  • JSON
  • CSV
  • Stdout

Você pode encaminhar os resultados para:

  • S3
  • Slack
  • SIEM

Repositório de templates

https://github.com/rxerium/internal-security-detect


3. Automatizar via CI/CD

Exemplo com GitHub Actions

jobs:
  safebase-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: |
          nuclei -t safebase-checks-enabled.yaml -headless -l domains.txt -c 50 -o results.json
      - name: Upload artefact
        uses: actions/upload-artifact@v4
        with:
          name: safebase-results
          path: results.json

Considerações finais

Essa técnica se limita a organizações que usam SafeBase, mas demonstra um conceito poderoso:

O OSINT passivo pode se cruzar com conformidade, garantia e detecção.

Ao aproveitar portais de confiança acessíveis publicamente, pesquisadores podem:

  • Analisar frameworks de controle
  • Validar declarações de segurança
  • Detectar mudanças automaticamente

…tudo sem autenticação ou acesso direto ao sistema.