Retour aux articles
Archive de recherche

Détection de Sécurité Interne via les Centres de Confiance SafeBase

Utilisation des portails de confiance SafeBase exposés et du scan headless Nuclei pour extraire les contrôles de sécurité publics, valider les déclarations d'assurance et automatiser la détection des changements à grande échelle.

osintnucleidetectionsafebasecompliance

Introduction — Chasse aux garanties et OSINT

Les portails SafeBase exposés servent deux audiences à la fois :

  • Les prospects qui ont besoin d'une preuve de votre posture de sécurité
  • Les chercheurs en sécurité (équipes bleues et rouges)

Chaque coche verte révèle un contrôle qui (supposément) existe aujourd'hui ; chaque coche manquante est un indice tout aussi éloquent sur ce qui n'existe pas.


Ce que fait cette méthode de détection

L'approche décrite dans cet article :

  • Collecte chaque titre de contrôle directement depuis le corps HTML via Nuclei en mode headless
  • Normalise ces titres en résultats lisibles par machine via un unique gabarit basé sur des expressions régulières
  • Produit des correspondances JSON/CLI des contrôles de sécurité internes

Pourquoi collecter ces données ?

Les référentiels de conformité tels que :

  • ISO 27001
  • SOC 2
  • PCI-DSS
  • Réglementations régionales sur la vie privée

…exigent des preuves que les contrôles de sécurité sont en place et opérationnels.

SafeBase simplifie cela en supprimant la nécessité d'interminables échanges de courriels et de demandes de documents.

Pourquoi scraper votre propre Trust Centre ?

Même si vous l'avez construit, les raisons sont solides :

  • Assurance continue
    Les auditeurs attendent de plus en plus des preuves permanentes en temps réel

  • Détection des changements
    Les noms de contrôles, les regroupements ou les politiques peuvent évoluer après des mises à jour ou des acquisitions

  • Mappages tiers
    La sortie JSON permet la mise en correspondance avec des référentiels comme NIST 800-53


Valeur pour l'équipe bleue vs. l'équipe rouge

Équipe Avantage
Équipe Bleue S'assure que les déclarations publiques restent exactes
Équipe Rouge Identifie les lacunes en comparant avec les bibliothèques de contrôles internes

Détection

La revue manuelle fonctionne, mais ne passe pas à l'échelle.

Cette approche utilise plutôt ProjectDiscovery / Nuclei, un outil de scan rapide propulsé par des gabarits YAML.

Pourquoi Nuclei ?

  • Détection pilotée par gabarit
  • Scan haute vitesse
  • Facilement personnalisable
  • Idéal pour l'automatisation à grande échelle

Matchers

Le gabarit comprend 70 matchers.

Exemples de matchers avec expressions régulières

- 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")?']

Techniques d'expressions régulières utilisées

Problème Solution
Casse différente Indicateur (?i)
Espaces/sauts de ligne mixtes \s+
Écart inconnu entre titre et icône [\s\S]{0,600}?

Élimination des faux positifs

Un matcher DSL garantit une précision accrue :

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

Ce que cela vérifie

Les deux conditions doivent être vraies :

  • Le code de statut de la réponse est 200
  • Le HTML contient "Powered by SafeBase"

Contournement du WAF Cloudflare

La plupart des portails SafeBase se trouvent derrière le WAF Cloudflare, qui bloque les tentatives de scraping.

Solution : Mode headless

Via l'exécution de Chromium headless de Nuclei :

  • Exécute les défis JavaScript
  • Contourne le Managed Challenge de Cloudflare
  • Rend le contenu dynamique

Configuration headless

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

Détail

  • navigate
    Lance Chromium et charge l'URL cible

  • sleep (1s)
    Permet :

    • L'exécution JavaScript
    • La pose des cookies
    • Le rendu complet de la page

Augmenter le délai si le HTML apparaît incomplet.


Dépannage

Si des résultats sont manquants :

  • Votre IP est peut-être bloquée
  • Utiliser un proxy si nécessaire

Scan à grande échelle

1. Constituer votre liste de cibles

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

Vous pouvez également inclure :

  • Des sous-domaines
  • Des points de terminaison explorés

2. Lancer Nuclei avec concurrence

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

Options clés

Option Rôle
-l Fichier d'entrée
-c 50 Navigateurs parallèles (gourmand en ressources)
-o Fichier de sortie

Options de sortie

  • JSON
  • CSV
  • Stdout

Vous pouvez transmettre les résultats à :

  • S3
  • Slack
  • SIEM

Dépôt de gabarits

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


3. Automatiser via CI/CD

Exemple avec 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

Réflexions finales

Cette technique se limite aux organisations utilisant SafeBase, mais elle illustre un concept puissant :

L'OSINT passif peut croiser la conformité, l'assurance et la détection.

En exploitant les portails de confiance accessibles au public, les chercheurs peuvent :

  • Analyser les référentiels de contrôle
  • Valider les déclarations de sécurité
  • Détecter les changements automatiquement

…le tout sans authentification ni accès direct au système.