Volver a publicaciones
Archivo de investigación

Detección de Seguridad Interna a través de los Centros de Confianza de SafeBase

Usando portales de confianza expuestos de SafeBase y el escaneo headless de Nuclei para extraer controles de seguridad públicos, validar afirmaciones de garantía y automatizar la detección de cambios a escala.

osintnucleidetectionsafebasecompliance

Introducción — Búsqueda de garantías y OSINT

Los portales de SafeBase expuestos sirven a dos audiencias a la vez:

  • Prospectos que necesitan prueba de su postura de seguridad
  • Investigadores de seguridad (equipos azul y rojo)

Cada marca verde revela un control que (supuestamente) existe hoy; cada marca ausente es una pista igual de clara sobre lo que no existe.


Qué hace este método de detección

El enfoque descrito en este artículo:

  • Extrae cada título de control directamente del cuerpo HTML usando Nuclei en modo headless
  • Normaliza esos títulos en hallazgos legibles por máquina mediante una única plantilla basada en expresiones regulares
  • Genera coincidencias JSON/CLI de controles de seguridad internos

¿Por qué recopilar estos datos?

Los marcos de cumplimiento tales como:

  • ISO 27001
  • SOC 2
  • PCI-DSS
  • Regulaciones de privacidad regionales

…requieren evidencia de que los controles de seguridad están en vigor y funcionando.

SafeBase simplifica esto eliminando la necesidad de interminables intercambios de correos electrónicos y solicitudes de documentos.

¿Por qué hacer scraping de tu propio Trust Centre?

Aunque tú lo hayas construido, existen razones de peso:

  • Garantía continua
    Los auditores esperan cada vez más evidencia continua y en tiempo real

  • Detección de cambios
    Los nombres de controles, agrupaciones o políticas pueden cambiar tras actualizaciones o adquisiciones

  • Mapeos de terceros
    La salida en JSON permite mapear contra marcos como NIST 800-53


Valor para el equipo azul vs. equipo rojo

Equipo Beneficio
Equipo Azul Garantiza que las afirmaciones públicas se mantengan precisas
Equipo Rojo Identifica brechas comparando con bibliotecas de controles internos

Detección

La revisión manual funciona, pero no escala.

En cambio, este enfoque usa ProjectDiscovery / Nuclei, una herramienta de escaneo rápido impulsada por plantillas YAML.

¿Por qué Nuclei?

  • Detección basada en plantillas
  • Escaneo de alta velocidad
  • Fácilmente personalizable
  • Ideal para automatización a gran escala

Matchers

La plantilla incluye 70 matchers.

Ejemplos de matchers con expresiones regulares

- 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 expresiones regulares utilizadas

Problema Solución
Diferentes capitalizaciones Bandera (?i)
Espacios/saltos de línea mixtos \s+
Separación desconocida entre título e icono [\s\S]{0,600}?

Eliminación de falsos positivos

Un matcher DSL garantiza mayor precisión:

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

Qué verifica esto

Ambas condiciones deben ser verdaderas:

  • El código de estado de respuesta es 200
  • El HTML contiene "Powered by SafeBase"

Evasión del WAF de Cloudflare

La mayoría de los portales SafeBase están detrás del WAF de Cloudflare, que bloquea los intentos de scraping.

Solución: Modo headless

Usando la ejecución de Chromium headless de Nuclei:

  • Ejecuta desafíos JavaScript
  • Evita el Managed Challenge de Cloudflare
  • Renderiza contenido dinámico

Configuración headless

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

Descripción

  • navigate
    Lanza Chromium y carga la URL objetivo

  • sleep (1s)
    Permite:

    • Ejecución de JavaScript
    • Establecimiento de cookies
    • Renderizado completo de la página

Aumenta el retardo si el HTML aparece incompleto.


Resolución de problemas

Si faltan resultados:

  • Tu IP puede estar bloqueada
  • Usa un proxy si es necesario

Escaneo a gran escala

1. Construye tu lista de objetivos

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

También puedes incluir:

  • Subdominios
  • Endpoints rastreados

2. Ejecuta Nuclei con concurrencia

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

Banderas clave

Bandera Propósito
-l Archivo de entrada
-c 50 Navegadores en paralelo (consume muchos recursos)
-o Archivo de salida

Opciones de salida

  • JSON
  • CSV
  • Stdout

Puedes reenviar resultados a:

  • S3
  • Slack
  • SIEM

Repositorio de plantillas

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


3. Automatizar mediante CI/CD

Ejemplo con 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

Reflexiones finales

Esta técnica se limita a organizaciones que usan SafeBase, pero demuestra un concepto poderoso:

El OSINT pasivo puede intersectarse con el cumplimiento, la garantía y la detección.

Al aprovechar los portales de confianza de acceso público, los investigadores pueden:

  • Analizar marcos de control
  • Validar afirmaciones de seguridad
  • Detectar cambios automáticamente

…todo sin autenticación ni acceso directo al sistema.