- À propos de l'Attack Surface Management (ASM)
- Les différents types de surfaces d'attaque
- Les étapes du processus Attack Surface Management
- Les techniques et les outils d'identification de la surface d'attaque
- La surveillance continue et la réduction de la surface d'attaque
- Exemples pratiques d'Attack Surface Management avec Python
- À retenir
L'Attack Surface Management, généralement abrégé en ASM, désigne l'ensemble des méthodes et des outils permettant d'identifier, d'inventorier, d'analyser, de surveiller et de réduire les points d'exposition d'un système informatique. Son objectif est de connaître les ressources susceptibles d'être ciblées par des attaquants afin de limiter les risques de compromission. L'ASM s'applique aux serveurs, applications Web, API, équipements réseau, services Cloud, noms de domaine et autres ressources numériques d'une organisation.
1. À propos de l'Attack Surface Management (ASM)
Définition de l'Attack Surface Management
L'Attack Surface Management est une démarche de cybersécurité consistant à recenser et à surveiller les ressources pouvant constituer des points d'entrée ou d'interaction avec un système informatique.
Elle permet aux organisations de mieux comprendre leur exposition aux menaces et de prendre des mesures pour réduire les risques.
Qu'est-ce qu'une surface d'attaque ?
La surface d'attaque, ou Attack Surface, correspond à l'ensemble des points par lesquels un attaquant pourrait tenter d'interagir avec un système, d'exploiter une vulnérabilité ou d'obtenir un accès non autorisé.
Elle peut comprendre des éléments matériels, logiciels, réseau, humains et organisationnels.
Exemple simple
Supposons qu'une entreprise possède un site Web, un serveur de messagerie, une application mobile et plusieurs équipements réseau.
Ces éléments constituent une partie de sa surface d'attaque.
Si un ancien serveur de test reste accessible sur Internet alors qu'il n'est plus utilisé, il peut représenter une exposition inutile.
L'ASM permet d'identifier ce serveur, d'évaluer le risque associé et de décider s'il doit être supprimé, isolé ou sécurisé.
Pourquoi l'ASM est-il important ?
Les infrastructures informatiques évoluent continuellement.
De nouveaux services sont déployés, des applications sont mises à jour et des ressources Cloud sont créées ou supprimées.
Ces changements peuvent introduire des expositions qui ne figurent pas dans les inventaires existants.
L'ASM vise à maintenir une vision actualisée de ces ressources.
Les objectifs de l'ASM
- Identifier les actifs numériques de l'organisation.
- Découvrir les ressources inconnues ou oubliées.
- Repérer les services inutilement exposés.
- Détecter les changements de configuration.
- Identifier les vulnérabilités et les mauvaises configurations.
- Prioriser les risques selon leur importance.
- Réduire les points d'exposition inutiles.
- Assurer une surveillance continue.
ASM et gestion des vulnérabilités
L'ASM cherche à identifier et à surveiller les ressources exposées.
La Vulnerability Management, ou gestion des vulnérabilités, vise à détecter, évaluer, prioriser et corriger les faiblesses techniques.
Les deux démarches sont complémentaires.
ASM et pentesting
Le pentesting consiste à réaliser des tests d'intrusion autorisés afin d'évaluer la sécurité d'un système.
L'ASM est généralement une démarche continue, tandis qu'un test d'intrusion est souvent réalisé dans un périmètre et une période déterminés.
ASM et défense en profondeur
L'ASM contribue à la défense en profondeur en améliorant la visibilité sur les ressources et en facilitant la réduction des expositions inutiles.
2. Les différents types de surfaces d'attaque
La surface d'attaque d'une organisation peut être divisée en plusieurs catégories.
Surface d'attaque externe
L'External Attack Surface regroupe les ressources accessibles depuis des réseaux externes, notamment Internet.
Elle peut comprendre :
- Les sites Web publics.
- Les serveurs de messagerie.
- Les API publiques.
- Les services d'accès distant.
- Les applications Cloud exposées.
- Les adresses IP publiques.
- Les sous-domaines.
Surface d'attaque interne
L'Internal Attack Surface comprend les ressources accessibles depuis le réseau interne de l'organisation.
Elle peut inclure les postes de travail, serveurs, bases de données, imprimantes réseau et services internes.
Surface d'attaque applicative
L'Application Attack Surface comprend les interfaces et fonctionnalités pouvant être utilisées pour interagir avec une application.
Elle peut comprendre les formulaires, les mécanismes d'authentification, les API et les fonctions de téléversement.
Surface d'attaque réseau
La Network Attack Surface comprend les interfaces réseau, ports, protocoles et services accessibles.
Un service inutilement accessible peut augmenter l'exposition d'un système.
Surface d'attaque Cloud
La Cloud Attack Surface comprend les ressources hébergées dans des environnements Cloud.
Elle peut inclure les machines virtuelles, espaces de stockage, identités, fonctions serverless et interfaces d'administration.
Surface d'attaque humaine
La Human Attack Surface concerne les risques liés aux interactions humaines.
Elle comprend notamment l'ingénierie sociale, le phishing, les erreurs de configuration et les mauvaises pratiques de gestion des accès.
Surface d'attaque physique
La Physical Attack Surface comprend les points d'accès physiques aux systèmes informatiques.
Elle peut inclure les salles serveurs, les postes de travail, les ports USB et les équipements non protégés.
Surface d'attaque des fournisseurs
La Third-Party Attack Surface comprend les dépendances et les connexions avec les fournisseurs, prestataires et partenaires.
Un fournisseur compromis peut, dans certaines circonstances, créer un risque pour les systèmes de l'organisation.
Surface d'attaque inconnue
Les Unknown Assets sont des ressources non répertoriées dans les inventaires officiels.
Ils peuvent résulter d'anciens projets, de déploiements temporaires ou d'initiatives non coordonnées.
Shadow IT
Le Shadow IT désigne l'utilisation de ressources ou de services informatiques sans validation ou supervision appropriée par les responsables concernés.
Il peut compliquer l'inventaire et la gestion des risques.
Tableau comparatif
| Type de surface | Exemples | Risques possibles |
|---|---|---|
| Externe | Sites Web, API, adresses IP publiques. | Exposition à des attaques distantes. |
| Interne | Serveurs, postes de travail. | Déplacements latéraux après compromission. |
| Applicative | Formulaires, authentification, API. | Exploitation de vulnérabilités applicatives. |
| Réseau | Ports et services accessibles. | Exposition de services non nécessaires. |
| Cloud | Stockage, machines virtuelles, identités. | Mauvaises configurations et accès excessifs. |
| Humaine | Utilisateurs, administrateurs. | Phishing et ingénierie sociale. |
| Physique | Équipements et locaux. | Accès ou manipulation non autorisés. |
| Fournisseurs | Prestataires, partenaires, dépendances. | Risques liés aux tiers. |
3. Les étapes du processus Attack Surface Management
La gestion de la surface d'attaque repose sur un processus continu comprenant plusieurs étapes.
Étape 1 : définir le périmètre
La première étape consiste à déterminer les systèmes et ressources appartenant à l'organisation ou explicitement autorisés à être analysés.
Le périmètre peut comprendre les domaines, sous-domaines, adresses IP, applications et environnements Cloud.
Étape 2 : découvrir les actifs
La Asset Discovery consiste à rechercher les ressources numériques présentes dans le périmètre défini.
Cette étape peut utiliser des inventaires internes, des sources documentaires et des techniques de découverte autorisées.
Étape 3 : inventorier les ressources
Chaque actif identifié est ajouté à un inventaire.
L'inventaire peut contenir :
- Le nom de l'actif.
- Son adresse IP ou son domaine.
- Son type.
- Son propriétaire.
- Son environnement.
- Son niveau de criticité.
- Son état d'exposition.
- La date de dernière vérification.
Étape 4 : classifier les actifs
Les ressources sont classées selon leur rôle, leur importance et la sensibilité des informations qu'elles traitent.
Étape 5 : analyser l'exposition
L'organisation examine les services accessibles, les configurations, les mécanismes d'authentification et les autres caractéristiques pouvant augmenter les risques.
Étape 6 : identifier les vulnérabilités
Les faiblesses connues et les mauvaises configurations sont recherchées à l'aide de contrôles adaptés.
Les analyses actives doivent être réalisées uniquement sur des systèmes appartenant au périmètre autorisé.
Étape 7 : évaluer les risques
Chaque exposition est évaluée en tenant compte de plusieurs critères :
- Criticité de l'actif.
- Accessibilité depuis Internet.
- Sensibilité des données.
- Existence de vulnérabilités connues.
- Facilité d'exploitation.
- Impact potentiel.
- Mesures de protection existantes.
Étape 8 : prioriser les corrections
Les risques les plus importants sont traités en priorité.
La priorisation doit tenir compte du contexte métier et ne pas reposer uniquement sur un score technique.
Étape 9 : réduire la surface d'attaque
Les ressources inutiles peuvent être supprimées, désactivées ou isolées.
Les services nécessaires doivent être correctement configurés et protégés.
Étape 10 : surveiller les changements
Une surveillance régulière permet de détecter les nouveaux actifs, les changements de configuration et les nouvelles expositions.
Étape 11 : documenter les résultats
Les découvertes, décisions et actions correctives sont enregistrées afin d'assurer le suivi.
Étape 12 : améliorer le processus
Les résultats des contrôles permettent d'améliorer les procédures d'inventaire, de déploiement et de gestion des risques.
4. Les techniques et les outils d'identification de la surface d'attaque
Plusieurs techniques permettent d'identifier les actifs et d'examiner leur exposition.
Asset Discovery
L'Asset Discovery consiste à découvrir les ressources informatiques appartenant au périmètre autorisé.
DNS Enumeration
La DNS Enumeration consiste à examiner les informations DNS disponibles afin d'identifier des domaines, sous-domaines et services associés.
Subdomain Discovery
La Subdomain Discovery consiste à identifier les sous-domaines associés à un domaine donné.
Port Scanning
Le Port Scanning permet de déterminer quels ports réseau sont accessibles sur un système.
Cette technique doit être utilisée dans un périmètre autorisé et avec des paramètres adaptés afin d'éviter toute perturbation.
Service Discovery
La Service Discovery consiste à identifier les services associés aux interfaces et ports accessibles.
Technology Fingerprinting
Le Technology Fingerprinting consiste à rechercher des indices sur les technologies utilisées par une application ou un serveur.
Cloud Asset Discovery
La Cloud Asset Discovery consiste à inventorier les ressources déployées dans les environnements Cloud.
Certificate Transparency
Les journaux de Certificate Transparency contiennent des informations publiques relatives à des certificats TLS.
Ils peuvent aider à identifier certains noms de domaines associés à une organisation.
OSINT
L'OSINT, ou Open Source Intelligence, consiste à collecter et analyser des informations provenant de sources ouvertes.
Dans le cadre de l'ASM, elle peut contribuer à découvrir des ressources publiquement référencées.
Attack Surface Monitoring
L'Attack Surface Monitoring consiste à suivre les changements de la surface d'attaque dans le temps.
Nmap
Nmap est un outil permettant notamment d'examiner les ports et services accessibles sur des systèmes autorisés.
Amass
OWASP Amass est un outil utilisé pour la découverte et la cartographie de ressources externes, notamment les domaines et sous-domaines.
Subfinder
Subfinder est un outil de découverte passive de sous-domaines.
Shodan
Shodan est un moteur de recherche spécialisé dans les équipements et services visibles sur Internet.
Censys
Censys fournit des données et des outils permettant d'analyser certaines ressources exposées sur Internet.
OWASP ZAP
OWASP ZAP permet d'analyser certains aspects de la sécurité des applications Web dans un cadre autorisé.
Greenbone/OpenVAS
Greenbone/OpenVAS est une solution d'analyse de vulnérabilités pouvant contribuer à la gestion des risques techniques.
CMDB
Une CMDB, ou Configuration Management Database, permet de conserver des informations structurées sur les composants et configurations d'un système d'information.
Tableau comparatif des outils
| Outil | Fonction principale | Utilisation en ASM |
|---|---|---|
| Nmap | Découverte réseau. | Identifier les ports et services accessibles. |
| OWASP Amass | Découverte et cartographie d'actifs. | Identifier des domaines et sous-domaines. |
| Subfinder | Découverte passive de sous-domaines. | Compléter l'inventaire des domaines. |
| Shodan | Recherche de services exposés. | Examiner la visibilité externe. |
| Censys | Analyse de ressources Internet. | Identifier des expositions publiques. |
| OWASP ZAP | Analyse de sécurité Web. | Examiner certaines faiblesses applicatives. |
| Greenbone/OpenVAS | Analyse de vulnérabilités. | Détecter certaines vulnérabilités techniques. |
| CMDB | Gestion des configurations. | Centraliser les informations sur les actifs. |
5. La surveillance continue et la réduction de la surface d'attaque
L'Attack Surface Management ne se limite pas à un inventaire ponctuel.
Il nécessite une surveillance régulière des changements et une démarche continue de réduction des risques.
Continuous Attack Surface Monitoring
Le Continuous Attack Surface Monitoring consiste à suivre l'évolution des actifs et des expositions.
Cette surveillance peut être automatisée en partie.
Détection des nouveaux actifs
L'apparition d'un nouveau sous-domaine, serveur ou service doit pouvoir être identifiée et examinée.
Détection des actifs supprimés
La disparition d'un actif doit également être enregistrée afin de maintenir un inventaire fiable.
Détection des changements de configuration
Les modifications des services, des ports accessibles et des paramètres de sécurité peuvent augmenter ou réduire la surface d'attaque.
Détection des services inutiles
Un service qui n'est plus nécessaire doit être désactivé ou supprimé lorsque cela est possible.
Réduction des privilèges
Le principe du moindre privilège permet de limiter les permissions attribuées aux utilisateurs et aux services.
Segmentation réseau
La segmentation réseau permet de limiter les communications entre différents environnements.
Gestion des correctifs
Le Patch Management consiste à gérer les mises à jour destinées notamment à corriger les vulnérabilités connues.
Protection des interfaces d'administration
Les interfaces d'administration doivent être protégées et ne devraient pas être exposées inutilement à Internet.
Gestion des certificats TLS
Les certificats TLS doivent être inventoriés et renouvelés avant leur expiration.
Surveillance des sous-domaines
Les sous-domaines oubliés ou associés à des services abandonnés peuvent constituer des points d'exposition supplémentaires.
Gestion du Shadow IT
Les ressources déployées sans supervision doivent être identifiées et intégrées aux procédures de gestion des risques.
Gestion des fournisseurs
Les dépendances envers les prestataires et fournisseurs doivent être prises en compte dans l'évaluation des risques.
Indicateurs de performance ASM
Plusieurs indicateurs peuvent être utilisés pour mesurer l'efficacité du processus :
- Nombre total d'actifs identifiés.
- Nombre d'actifs exposés à Internet.
- Nombre de services non nécessaires.
- Nombre de nouvelles expositions détectées.
- Nombre de vulnérabilités critiques.
- Délai moyen de détection.
- Délai moyen de correction.
- Pourcentage d'actifs disposant d'un propriétaire identifié.
Exemple de réduction de la surface d'attaque
Supposons qu'une entreprise possède dix services accessibles depuis Internet.
Après analyse, quatre services sont considérés comme inutiles.
Leur suppression peut réduire le nombre de services exposés de dix à six.
Cette diminution ne signifie pas automatiquement que le risque global a diminué dans les mêmes proportions, car la criticité des services restants doit également être prise en compte.
6. Exemples pratiques d'Attack Surface Management avec Python
Python peut être utilisé pour automatiser certaines tâches d'Attack Surface Management, notamment l'inventaire, la comparaison des configurations et la génération de rapports.
Les exemples suivants utilisent principalement des données fictives ou des vérifications locales. Les tests actifs doivent être limités aux ressources dont l'analyse est autorisée.
Exemple 1 : créer un inventaire des actifs numériques
Le programme suivant crée une liste d'actifs et affiche leurs principales caractéristiques.
1 2 3 4 5 6 7 | actifs = [ {"nom": "Serveur Web", "type": "Web", "critique": True}, {"nom": "Serveur Mail", "type": "Messagerie", "critique": True}, {"nom": "Serveur Test", "type": "Développement", "critique": False} ] for actif in actifs: print(actif["nom"], "-", actif["type"]) |
Output :
1 2 3 | Serveur Web - Web Serveur Mail - Messagerie Serveur Test - Développement |
Exemple 2 : identifier les actifs exposés
Le programme suivant examine un inventaire fictif et affiche les actifs indiqués comme accessibles depuis Internet.
1 2 3 4 5 6 7 8 9 | actifs = { "Site Web": True, "Base de données": False, "Serveur Mail": True, "Serveur Interne": False } for nom, expose in actifs.items(): if expose: print("Actif exposé :", nom) |
Output :
1 2 | Actif exposé : Site Web Actif exposé : Serveur Mail |
Exemple 3 : détecter de nouveaux actifs
Le programme suivant compare deux inventaires fictifs réalisés à des dates différentes et identifie les ressources nouvellement apparues.
1 2 3 4 5 | ancien_inventaire = {"web", "mail", "dns"} nouvel_inventaire = {"web", "mail", "dns", "api", "vpn"} nouveaux = nouvel_inventaire - ancien_inventaire for actif in sorted(nouveaux): print("Nouvel actif :", actif) |
Output :
1 2 | Nouvel actif : api Nouvel actif : vpn |
Exemple 4 : détecter les actifs disparus
Le programme suivant compare deux inventaires et identifie les ressources présentes dans l'ancien inventaire mais absentes du nouveau.
1 2 3 4 5 | ancien_inventaire = {"web", "mail", "ftp", "dns"} nouvel_inventaire = {"web", "mail", "dns"} disparus = ancien_inventaire - nouvel_inventaire for actif in sorted(disparus): print("Actif disparu :", actif) |
Output :
1 | Actif disparu : ftp |
Exemple 5 : détecter les changements de ports exposés
Le programme suivant compare deux listes fictives de ports accessibles et affiche les nouveaux ports détectés.
1 2 3 4 5 | ports_avant = {80, 443} ports_apres = {22, 80, 443, 3306} nouveaux_ports = ports_apres - ports_avant for port in sorted(nouveaux_ports): print("Nouveau port exposé :", port) |
Output :
1 2 | Nouveau port exposé : 22 Nouveau port exposé : 3306 |
Exemple 6 : calculer un indicateur simple d'exposition
Le programme suivant calcule le pourcentage d'actifs déclarés comme exposés dans un inventaire fictif.
1 2 3 4 5 6 | actifs = [True, False, True, False, True] total = len(actifs) exposes = sum(actifs) pourcentage = exposes / total * 100 if total else 0 print("Actifs exposés :", exposes) print("Pourcentage :", pourcentage, "%") |
Output :
1 2 | Actifs exposés : 3 Pourcentage : 60.0 % |
Cet indicateur mesure uniquement une proportion d'actifs déclarés exposés. Il ne constitue pas un score global de risque.
Exemple 7 : attribuer un score pédagogique de priorité
Le programme suivant calcule un score simplifié à partir de trois critères fictifs : exposition, criticité et vulnérabilité connue.
1 2 3 4 5 6 7 8 9 10 11 | actif = { "exposition": 3, "criticite": 5, "vulnerabilite": 4 } score = ( actif["exposition"] + actif["criticite"] + actif["vulnerabilite"] ) print("Score pédagogique :", score) |
Output :
1 | Score pédagogique : 12 |
Ce score est uniquement illustratif. Il ne remplace pas une méthode formelle d'analyse des risques.
Exemple 8 : classifier les actifs selon leur criticité
Le programme suivant attribue une catégorie de criticité aux ressources d'un inventaire fictif.
1 2 3 4 5 6 7 8 9 10 11 12 13 | actifs = { "Serveur Web": 4, "Serveur Test": 1, "Base de données": 5 } for nom, criticite in actifs.items(): if criticite >= 4: niveau = "Élevée" elif criticite >= 2: niveau = "Moyenne" else: niveau = "Faible" print(nom, ":", niveau) |
Output :
1 2 3 | Serveur Web : Élevée Serveur Test : Faible Base de données : Élevée |
Exemple 9 : vérifier la résolution DNS d'un domaine de test
Le programme suivant utilise le module standard socket pour rechercher les adresses IP associées à un domaine de démonstration.
Il réalise une requête DNS et ne procède pas à une analyse des ports.
1 2 3 4 5 6 7 8 9 | import socket domaine = "example.com" try: adresses = socket.getaddrinfo(domaine, None) ips = sorted({element[4][0] for element in adresses}) print("Domaine :", domaine) print("Adresses trouvées :", len(ips)) except socket.gaierror: print("Résolution DNS impossible") |
Output possible :
1 2 | Domaine : example.com Adresses trouvées : 2 |
Le nombre et les valeurs des adresses dépendent des réponses DNS et de l'environnement réseau.
Exemple 10 : vérifier la présence d'un port sur un serveur local
Le programme suivant tente d'établir une connexion TCP vers le port 80 de l'ordinateur local.
Il peut servir à vérifier si un service local est accessible sur ce port.
1 2 3 4 5 6 7 8 9 10 11 | import socket hote = "127.0.0.1" port = 80 connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM) connexion.settimeout(2) resultat = connexion.connect_ex((hote, port)) connexion.close() if resultat == 0: print("Port local accessible") else: print("Port local non accessible") |
Output possible si aucun service n'écoute :
1 | Port local non accessible |
Le résultat dépend des services actifs sur l'ordinateur.
Exemple 11 : comparer deux configurations de sécurité
Le programme suivant identifie les paramètres ayant changé entre deux états fictifs d'un serveur.
1 2 3 4 5 6 7 8 9 10 11 12 13 | avant = { "https": True, "ssh_public": False, "debug": False } apres = { "https": True, "ssh_public": True, "debug": False } for parametre in avant: if avant[parametre] != apres[parametre]: print("Changement détecté :", parametre) |
Output :
1 | Changement détecté : ssh_public |
Exemple 12 : identifier les services inutiles
Le programme suivant compare les services actifs d'un système fictif à la liste des services officiellement autorisés.
1 2 3 4 5 | services_actifs = {"http", "https", "ftp", "ssh"} services_autorises = {"https", "ssh"} services_non_autorises = services_actifs - services_autorises for service in sorted(services_non_autorises): print("Service à examiner :", service) |
Output :
1 2 | Service à examiner : ftp Service à examiner : http |
Exemple 13 : générer un rapport CSV des actifs
Le programme suivant utilise le module csv pour enregistrer un inventaire dans un fichier pouvant être ouvert avec Excel ou un autre tableur.
1 2 3 4 5 6 7 8 9 10 | import csv actifs = [ ["Nom", "Type", "Exposition"], ["Serveur Web", "Web", "Publique"], ["Base de données", "SQL", "Interne"] ] with open("inventaire_asm.csv", "w", newline="", encoding="utf-8") as fichier: writer = csv.writer(fichier) writer.writerows(actifs) print("Rapport CSV créé") |
Output :
1 | Rapport CSV créé |
Exemple 14 : détecter les actifs sans propriétaire
Le programme suivant recherche les ressources qui ne possèdent pas de responsable identifié.
1 2 3 4 5 6 7 8 | actifs = { "Serveur Web": "Equipe Web", "Serveur Mail": "Equipe Systeme", "Serveur Test": None } for nom, proprietaire in actifs.items(): if proprietaire is None: print("Actif sans propriétaire :", nom) |
Output :
1 | Actif sans propriétaire : Serveur Test |
Exemple 15 : mini tableau de bord ASM
Le programme suivant calcule quelques indicateurs simples à partir d'un inventaire fictif.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | actifs = [ {"nom": "Web", "expose": True, "critique": True}, {"nom": "Mail", "expose": True, "critique": True}, {"nom": "Test", "expose": True, "critique": False}, {"nom": "BDD", "expose": False, "critique": True} ] total = len(actifs) exposes = sum(a["expose"] for a in actifs) critiques = sum(a["critique"] for a in actifs) critiques_exposes = sum( a["expose"] and a["critique"] for a in actifs ) print("Total des actifs :", total) print("Actifs exposés :", exposes) print("Actifs critiques :", critiques) print("Actifs critiques exposés :", critiques_exposes) |
Output :
1 2 3 4 | Total des actifs : 4 Actifs exposés : 3 Actifs critiques : 3 Actifs critiques exposés : 2 |
Exemple 16 : mini surveillance des changements
Le programme suivant compare deux inventaires et affiche les ressources ajoutées ou supprimées.
1 2 3 4 5 6 | inventaire_hier = {"web", "mail", "dns"} inventaire_aujourdhui = {"web", "mail", "api"} ajoutes = inventaire_aujourdhui - inventaire_hier supprimes = inventaire_hier - inventaire_aujourdhui print("Actifs ajoutés :", sorted(ajoutes)) print("Actifs supprimés :", sorted(supprimes)) |
Output :
1 2 | Actifs ajoutés : ['api'] Actifs supprimés : ['dns'] |
Exemple de laboratoire pédagogique avec Kali Linux
Pour pratiquer l'ASM dans un environnement contrôlé, il est possible d'utiliser Kali Linux et une machine virtuelle de test.
Le laboratoire peut être organisé de la manière suivante :
- Créer une machine virtuelle Kali Linux.
- Créer une seconde machine virtuelle destinée aux tests.
- Placer les deux machines sur un réseau virtuel isolé.
- Définir les adresses IP des machines.
- Vérifier la connectivité réseau.
- Identifier les services volontairement exposés sur la machine de test.
- Enregistrer les résultats dans un inventaire.
- Modifier un service sur la machine de test.
- Effectuer une nouvelle vérification autorisée.
- Comparer les résultats avant et après la modification.
Ce laboratoire permet d'illustrer la découverte d'actifs, l'inventaire, la détection des changements et la réduction de la surface d'attaque.
7. À retenir
L'Attack Surface Management, ou ASM, est une démarche de cybersécurité visant à identifier, analyser, surveiller et réduire les points d'exposition des systèmes informatiques.
La surface d'attaque comprend les ressources, interfaces et services susceptibles d'être utilisés comme points d'interaction ou d'entrée par des attaquants.
Elle peut être externe, interne, applicative, réseau, Cloud, humaine ou physique.
L'ASM repose sur plusieurs étapes : découverte, inventaire, classification, analyse, priorisation, correction et surveillance continue.
Les techniques de découverte comprennent l'analyse des inventaires, l'examen des informations DNS, la découverte des services et l'utilisation de sources ouvertes.
Des outils comme Nmap, OWASP Amass, Subfinder, Shodan et Censys peuvent contribuer à l'identification des ressources exposées.
La réduction de la surface d'attaque consiste notamment à supprimer les services inutiles, corriger les configurations dangereuses et limiter les accès non nécessaires.
La surveillance continue permet de détecter les nouveaux actifs, les changements de configuration et les nouvelles expositions.
Python permet d'automatiser plusieurs tâches d'ASM, comme la gestion des inventaires, la comparaison des configurations et la production de rapports.
Enfin, l'ASM doit être intégré dans une stratégie globale de gestion des risques et de défense en profondeur.
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/



