EASM — Gestion de la surface d'attaque externe // MODULES

EASM — Gestion de la surface d'attaque externe

Cartographie de ce que l’organisation expose vers l’extérieur, à partir des amorces qu’elle déclare elle-même. Le module découvre des actifs, enregistre des constats de risque et tient à jour le graphe de la façon dont chaque élément se rattache aux autres — sans jamais solliciter la cible de manière intrusive.

Vue d’ensemble

L’unité de travail est le périmètre : un domaine d’application nommé au sein de l’organisation, par exemple « production » ou « préproduction ». Chaque périmètre reçoit des amorces de quatre types — CNPJ (l’identifiant fiscal des entreprises au Brésil), nom de domaine, plage d’IP en notation CIDR et domaine de messagerie — et chaque type déclenche un pipeline différent.

L’amorce CNPJ est celle qui change la donne au Brésil. À partir d’elle, la plateforme interroge le registre public de l’administration fiscale brésilienne (Receita Federal), déjà indexé, retrouve les établissements secondaires par le CNPJ racine, identifie les associés et signale comme constat tout code d’activité économique (CNAE) à risque élevé. C’est le chemin qui permet de découvrir la filiale dont l’équipe sécurité ignorait l’existence — le scénario classique des fusions-acquisitions.

Découverte passive par principe

La collecte se limite à des requêtes DNS et à une négociation TLS. Aucune charge utile n’est envoyée à la cible. Trois règles de sécurité s’appliquent avant qu’un résultat ne devienne un actif :

  • toute IP privée, de bouclage, de lien local ou multicast renvoyée par le DNS est écartée, afin que l’inventaire externe ne laisse pas fuir la topologie interne ;
  • les domaines .local, .internal et .localhost sont bloqués dès la saisie ;
  • chaque exécution est plafonnée — 500 actifs, 1 000 constats, 500 relations et 50 enregistrements par type d’entrée DNS. Une zone hostile ou mal configurée ne met pas l’ingestion à terre.

Les actifs découverts relèvent de neuf types (domaine, sous-domaine, IP, adresse e-mail, filiale identifiée par CNPJ, certificat, application, serveur MX et serveur NS), et chacun porte l’origine de sa découverte : enregistrement A/AAAA, MX, NS, TXT, CNAME, SAN de certificat, requête CNPJ, corrélation avec une fuite ou saisie manuelle. Le graphe relie les actifs par neuf types de relation — résout vers, utilise MX, utilise NS, héberge, possède le domaine, détient le certificat, filiale de, trouvé dans une fuite et corrèle avec.

Un score qui s’explique

Le risque d’un actif est la somme des points des constats ouverts, plafonnée à 100. Un certificat expiré vaut 25 points, un sous-domaine de développement exposé 20, un certificat auto-signé 15, un certificat proche de l’expiration 10.

La conséquence pratique, c’est que le chiffre est auditable : on peut désigner exactement les constats qui le composent, et le score baisse de lui-même dès qu’un constat est clos, reconnu ou marqué comme faux positif. Chaque périmètre conserve en outre le nombre d’actifs, de constats ouverts, de constats critiques et élevés, ainsi que le risque moyen des actifs actifs.

Calendrier

Vérification des certificats à 03:00 UTC, corrélation avec les fuites à 04:00, recalcul du risque à 05:00, archivage des constats à 02:00, et surveillance continue toutes les 6 heures — celle-ci revérifie le DNS, contrôle les ports 80, 443, 8080 et 8443, puis compare à l’état précédent pour émettre un constat de changement, avec un plafond de 100 actifs par exécution. La découverte par domaine et par CNPJ, la détection de typosquatting et la recherche de subdomain takeover s’exécutent à la demande.

Fonctionnalités

  • Douze types de constat, dont subdomain takeover, candidat au typosquatting, shadow IT, port d’administration exposé et identifiant ayant fuité corrélé
  • Détection de subdomain takeover par CNAME pointant vers un service non revendiqué, avec les signatures de GitHub Pages, Heroku, Fastly, Shopify, Zendesk, AWS S3, Azure, Bitbucket et Netlify
  • Typosquatting via dnstwist, avec un plafond de 500 variantes par exécution, un délai maximal de 3 secondes par requête DNS et un parallélisme maîtrisé
  • Corrélation avec le module Leaks : un actif de type e-mail ou domaine apparaissant dans une empreinte de fuite devient un constat
  • Cycle de vie du constat en quatre états : ouvert, reconnu, faux positif, corrigé
  • Registre des programmes de bug bounty et de VDP (BugHunt, HackerOne, Bugcrowd, Intigriti, YesWeHack, HackenProof)

Cas d’usage

  • Inventorier le périmètre d’un groupe à partir de son CNPJ, établissements secondaires compris
  • Repérer le shadow IT : un sous-domaine de développement ou de préproduction accessible depuis l’extérieur
  • Anticiper une interruption due à un certificat arrivant à échéance, 30 jours à l’avance
  • Préparer le périmètre d’un test d’intrusion avec la liste de ce qui est réellement exposé

Ce que le module ne fait pas

  • Il ne réalise pas de scan de vulnérabilités. Il n’envoie pas d’exploit, ne teste pas de charge utile et ne s’authentifie sur aucune application.
  • Il n’utilise ni CVSS ni EPSS. Le score est une somme de points par constat, pas une notation de vulnérabilité issue d’un tiers.
  • Il ne fait pas de scan de ports étendu : la surveillance continue contrôle quatre ports de service web.
  • Il n’interroge ni Shodan, ni Censys, ni BinaryEdge, et n’inventorie pas les ressources cloud via les API d’AWS, d’Azure ou de GCP.
  • Il ne découvre aucun actif interne — l’IP privée est une règle de rejet, pas une limitation temporaire.
  • typosquat_candidate reste un candidat. La confirmation d’une intention malveillante relève de l’analyse humaine, et la suite se traite dans le module Legal & Takedown.

Intégrations

  • Airflow (orchestration) et OpenSearch (historique des constats, ooda_easm_findings-*)
  • Registre public des CNPJ de la Receita Federal, indexé dans la plateforme
  • dnstwist, pour la génération des variantes de domaine
  • OODA Leaks et OODA Search

SLA et garanties

Collecte strictement passive · aucune IP privée n’est indexée · score traçable jusqu’au constat qui l’a produit

Étapes suivantes