- À propos de l'Air Gap en cybersécurité
- Fonctionnement et architecture d'un système Air Gap
- Les différents types d'isolation et leurs différences
- Applications et domaines d'utilisation de l'Air Gap
- Menaces, limites et risques de contournement
- Mise en pratique de l'Air Gap et simulations avec Python
- À retenir
En cybersécurité, un Air Gap, également appelé isolement réseau ou séparation physique des réseaux, est une mesure de sécurité visant à isoler un système informatique ou un réseau sensible des autres réseaux, notamment d'Internet. Dans son sens strict, l'Air Gap repose sur une absence de connexion réseau directe entre l'environnement protégé et les réseaux extérieurs. Par extension, le terme est parfois utilisé pour décrire des architectures de séparation logique très stricte, même si celles-ci ne constituent pas nécessairement un véritable Air Gap physique.
1. À propos de l'Air Gap en cybersécurité
Définition de l'Air Gap
Un Air Gap est une méthode d'isolation consistant à maintenir un système informatique séparé des réseaux externes afin de réduire les possibilités d'accès à distance et de propagation de certaines cyberattaques.
Le terme anglais Air Gap signifie littéralement espace d'air, ce qui évoque une séparation entre deux environnements informatiques.
Dans une architecture Air Gap physique, le système protégé ne dispose pas de liaison réseau opérationnelle vers les réseaux non autorisés.
Pourquoi utiliser un Air Gap ?
Certains systèmes informatiques contiennent des informations particulièrement sensibles ou assurent des fonctions critiques.
Une connexion permanente à Internet peut augmenter leur exposition à certaines menaces.
L'Air Gap permet de réduire cette exposition en supprimant ou en limitant fortement les chemins de communication.
Objectifs de l'Air Gap
- Réduire la surface d'attaque accessible depuis les réseaux externes.
- Limiter certaines intrusions à distance.
- Réduire les possibilités de propagation de malwares par le réseau.
- Protéger les informations sensibles.
- Renforcer la sécurité des infrastructures critiques.
- Limiter les communications non autorisées.
- Créer une séparation de sécurité entre plusieurs environnements.
Exemple simple
Supposons qu'une organisation possède un ordinateur contenant des documents confidentiels.
Cet ordinateur n'est connecté ni à Internet ni au réseau local de l'organisation.
Les données sont transférées uniquement selon une procédure contrôlée, par exemple à l'aide de supports amovibles autorisés.
Cette architecture peut correspondre à un Air Gap physique.
Air Gap et cybersécurité défensive
L'Air Gap constitue une mesure de défense en profondeur.
Il ne remplace cependant pas les autres mécanismes de sécurité, comme le contrôle d'accès, le chiffrement, les mises à jour et la surveillance.
Air Gap et sécurité absolue
Un système isolé n'est pas nécessairement invulnérable.
Les supports amovibles, les interventions humaines, les opérations de maintenance et les accès physiques peuvent introduire des risques.
Il est donc incorrect de considérer l'Air Gap comme une garantie absolue contre toutes les cyberattaques.
2. Fonctionnement et architecture d'un système Air Gap
Le fonctionnement d'un Air Gap repose sur la séparation des chemins de communication entre un environnement sensible et les réseaux extérieurs.
Architecture générale
Une architecture Air Gap physique peut comprendre deux environnements distincts :
- Un réseau connecté utilisé pour les activités courantes.
- Un réseau isolé réservé aux traitements sensibles.
Les deux environnements ne disposent pas de connexion réseau directe.
Étape 1 : identifier les ressources sensibles
L'organisation détermine les données, applications et systèmes nécessitant une protection renforcée.
Étape 2 : définir le périmètre d'isolation
Les équipements devant appartenir à l'environnement isolé sont identifiés.
Les flux autorisés et interdits sont documentés.
Étape 3 : supprimer les connexions non nécessaires
Les connexions Ethernet, Wi-Fi, Bluetooth, cellulaires ou autres interfaces de communication non autorisées sont supprimées, désactivées ou contrôlées selon le niveau de sécurité recherché.
Étape 4 : contrôler les accès physiques
Les accès aux ordinateurs, serveurs et équipements du réseau isolé doivent être limités aux personnes autorisées.
Étape 5 : définir les procédures de transfert
Les échanges de données doivent être réalisés selon des procédures strictes, par exemple à l'aide de supports approuvés et analysés.
Étape 6 : assurer la maintenance
Les systèmes isolés doivent continuer à recevoir les mises à jour de sécurité nécessaires, selon une procédure adaptée.
Étape 7 : vérifier régulièrement l'isolation
Des contrôles périodiques permettent de vérifier qu'aucune nouvelle connexion non autorisée n'a été introduite.
Exemple d'architecture
Le tableau suivant présente deux environnements distincts.
| Réseau connecté | Réseau Air Gap |
|---|---|
| Accès Internet possible. | Absence d'accès Internet direct. |
| Services de messagerie. | Applications sensibles isolées. |
| Navigation Web. | Traitement de données confidentielles. |
| Mises à jour en ligne. | Mises à jour selon une procédure contrôlée. |
| Communications réseau courantes. | Communications limitées au périmètre isolé. |
Air Gap et réseau local isolé
Un Air Gap peut concerner un ordinateur unique ou un réseau interne complet.
Un réseau local isolé peut permettre les communications entre plusieurs équipements appartenant au même environnement protégé, tout en restant déconnecté des réseaux extérieurs.
Air Gap et supports amovibles
Les supports amovibles, comme les clés USB, peuvent être utilisés pour transférer des données vers un environnement isolé.
Ils constituent cependant un risque important et doivent être soumis à des contrôles appropriés.
Air Gap et transfert unidirectionnel
Certaines architectures utilisent des dispositifs de transfert à sens unique, parfois appelés Data Diodes.
Ces dispositifs permettent de limiter matériellement les communications à une direction déterminée.
Ils ne sont pas équivalents à une absence totale de connexion, mais peuvent être utiles dans des architectures de séparation forte.
3. Les différents types d'isolation et leurs différences
Le terme Air Gap est parfois utilisé pour désigner plusieurs formes d'isolation. Il est important de distinguer les séparations physiques des séparations logiques.
Air Gap physique
Un Physical Air Gap repose sur l'absence de liaison réseau directe entre l'environnement protégé et les réseaux externes.
Il peut nécessiter des équipements dédiés et des procédures de transfert spécifiques.
Isolation logique
Une isolation logique utilise des mécanismes logiciels ou réseau pour séparer plusieurs environnements.
Elle peut reposer sur des VLAN, des pare-feu, des politiques de routage ou des mécanismes de virtualisation.
Cette approche ne constitue pas nécessairement un Air Gap au sens strict, car des équipements et des chemins de communication peuvent être partagés.
Isolation par VLAN
Un VLAN, ou Virtual Local Area Network, permet de segmenter logiquement un réseau Ethernet.
Un VLAN peut contribuer à la séparation des flux, mais il ne garantit pas à lui seul une isolation physique.
Isolation par pare-feu
Un pare-feu permet d'autoriser ou d'interdire des communications selon des règles.
Il peut renforcer une segmentation réseau, mais une mauvaise configuration peut laisser passer des flux indésirables.
Isolation par virtualisation
La virtualisation permet d'exécuter plusieurs machines virtuelles sur un même ordinateur physique.
Les réseaux virtuels peuvent être configurés pour limiter les communications entre les machines.
Une machine virtuelle isolée ne doit pas être considérée comme un véritable Air Gap physique, notamment lorsque l'hôte reste connecté à Internet.
Isolation par réseau interne
Certains hyperviseurs proposent un mode Internal Network permettant de faire communiquer des machines virtuelles entre elles sans leur donner automatiquement accès au réseau de l'hôte ou à Internet.
Il s'agit d'une isolation logique dont l'efficacité dépend de la configuration de l'hyperviseur et de l'hôte.
Air Gap et réseau Host-Only
Dans VirtualBox, le mode Host-Only permet généralement les communications entre l'hôte et les machines virtuelles connectées au réseau Host-Only.
Ce mode n'est donc pas un Air Gap physique.
Il peut être utile pour créer des laboratoires pédagogiques sans accès direct à Internet depuis les machines virtuelles, sous réserve de vérifier les autres interfaces réseau.
Air Gap et réseau NAT
Le mode NAT permet généralement à une machine virtuelle d'accéder à des réseaux externes par l'intermédiaire de l'hôte.
Il ne constitue donc pas un mécanisme d'Air Gap.
Tableau comparatif
| Mécanisme | Type d'isolation | Air Gap physique ? |
|---|---|---|
| Ordinateur sans liaison réseau externe. | Physique. | Oui, si aucune liaison externe n'existe. |
| Réseau local physiquement séparé. | Physique. | Oui, vis-à-vis des autres réseaux. |
| VLAN. | Logique. | Non. |
| Pare-feu. | Logique. | Non. |
| Machine virtuelle isolée. | Logique. | Non. |
| VirtualBox Host-Only. | Logique. | Non. |
| VirtualBox NAT. | Connectivité indirecte. | Non. |
| Data Diode. | Transfert matériel unidirectionnel. | Non, car une liaison existe. |
4. Applications et domaines d'utilisation de l'Air Gap
L'Air Gap peut être utilisé dans les environnements nécessitant un niveau élevé de séparation et de protection.
Infrastructures critiques
Les infrastructures critiques peuvent comprendre les systèmes liés à l'énergie, à l'eau, aux transports ou aux télécommunications.
Certains composants peuvent être isolés pour réduire leur exposition aux menaces externes.
Systèmes industriels
Les environnements ICS, ou Industrial Control Systems, utilisent des systèmes informatiques pour surveiller et contrôler des processus industriels.
Une séparation forte peut être mise en place pour protéger certains équipements sensibles.
SCADA
Les systèmes SCADA, ou Supervisory Control and Data Acquisition, permettent de superviser et de contrôler des installations industrielles.
Selon les besoins opérationnels, certaines parties de ces architectures peuvent être fortement isolées.
Défense et sécurité nationale
Les organisations traitant des informations classifiées peuvent utiliser des environnements physiquement séparés.
Les procédures de transfert de données y sont généralement soumises à des contrôles stricts.
Institutions financières
Certains environnements sensibles peuvent être isolés pour protéger des données ou des opérations critiques.
Laboratoires scientifiques
Les laboratoires peuvent utiliser des systèmes isolés pour protéger des données expérimentales ou des équipements spécialisés.
Centres de recherche
Des environnements de calcul ou de stockage contenant des données confidentielles peuvent être séparés des réseaux courants.
Sauvegardes hors ligne
Les sauvegardes hors ligne sont déconnectées des systèmes de production lorsqu'elles ne sont pas utilisées.
Elles peuvent contribuer à réduire les risques de destruction ou de chiffrement des sauvegardes lors d'une attaque par ransomware.
Sauvegardes Air-Gapped
Une Air-Gapped Backup est une sauvegarde conservée dans un environnement séparé des systèmes de production.
Il est important de distinguer les sauvegardes réellement déconnectées des sauvegardes simplement protégées par des contrôles logiques.
Laboratoires de cybersécurité
Les laboratoires pédagogiques peuvent utiliser des réseaux isolés afin de réaliser des expériences sans exposer les systèmes externes.
Une isolation logique correctement configurée peut être adaptée à de nombreux exercices, même si elle n'est pas équivalente à un Air Gap physique.
Protection des données sensibles
Les organisations peuvent isoler certains environnements contenant des données confidentielles afin de réduire les chemins d'accès possibles.
5. Menaces, limites et risques de contournement
Un Air Gap réduit certaines possibilités d'attaque, mais il ne supprime pas tous les risques.
Supports USB infectés
Un support amovible peut transporter un logiciel malveillant vers un système isolé.
Les transferts de fichiers doivent donc être soumis à des procédures de contrôle.
Ingénierie sociale
Un attaquant peut tenter de manipuler une personne autorisée afin d'obtenir un accès physique ou de faire introduire un fichier malveillant.
Menaces internes
Une personne disposant d'un accès légitime peut volontairement ou involontairement compromettre un environnement isolé.
Erreurs de configuration
Une interface réseau oubliée ou une connexion temporaire non supprimée peut remettre en cause l'isolation.
Maintenance des systèmes
Les interventions techniques peuvent nécessiter des échanges de fichiers ou des connexions particulières.
Ces opérations doivent être planifiées, autorisées et contrôlées.
Vulnérabilités des logiciels
Un système isolé peut contenir des logiciels vulnérables.
Son isolement ne remplace pas la gestion des mises à jour de sécurité.
Canaux auxiliaires
Des travaux de recherche ont montré que certaines informations peuvent, dans des conditions particulières, être transmises par des canaux auxiliaires utilisant des phénomènes physiques.
Ces techniques peuvent notamment exploiter des signaux électromagnétiques, acoustiques ou optiques.
Leur faisabilité dépend fortement de l'environnement, des équipements et des capacités de l'attaquant.
Accès physiques non autorisés
Une personne ayant accès physiquement à un ordinateur isolé peut tenter d'en modifier le fonctionnement ou d'en extraire des données.
La protection physique reste donc indispensable.
Limites opérationnelles
Un Air Gap peut rendre certaines opérations plus complexes :
- Installation des mises à jour.
- Transfert de fichiers.
- Administration à distance.
- Supervision centralisée.
- Collaboration entre équipes.
- Maintenance des applications.
Bonnes pratiques
- Documenter le périmètre d'isolation.
- Supprimer les interfaces inutiles.
- Contrôler les supports amovibles.
- Limiter les accès physiques.
- Mettre à jour les systèmes selon une procédure validée.
- Vérifier régulièrement les connexions.
- Surveiller les changements de configuration.
- Tester les procédures de sauvegarde et de restauration.
6. Mise en pratique de l'Air Gap et simulations avec Python
Python peut être utilisé pour simuler certaines règles d'isolation et vérifier des paramètres de configuration.
Les exemples suivants sont pédagogiques. Ils ne créent pas à eux seuls un Air Gap physique et ne garantissent pas l'absence de communications réseau.
Exemple 1 : simuler une politique de réseau isolé
Le programme suivant définit deux réseaux fictifs et vérifie si une communication est autorisée selon une règle simple.
1 2 3 4 5 6 7 8 | reseau_isole = ["PC-SECRET", "SERVEUR-SECRET"] reseau_externe = ["PC-BUREAU", "INTERNET"] source = "PC-SECRET" destination = "INTERNET" if source in reseau_isole and destination in reseau_externe: print("Communication interdite") else: print("Communication non interdite par cette règle") |
Output :
1 | Communication interdite |
Exemple 2 : vérifier l'appartenance à un réseau autorisé
Le programme suivant utilise le module standard ipaddress pour vérifier si une adresse IP appartient à un réseau local fictif.
1 2 3 4 5 6 7 | import ipaddress reseau = ipaddress.ip_network("192.168.100.0/24") adresse = ipaddress.ip_address("192.168.100.25") if adresse in reseau: print("Adresse dans le réseau autorisé") else: print("Adresse hors du réseau autorisé") |
Output :
1 | Adresse dans le réseau autorisé |
Cette vérification ne prouve pas qu'un réseau est physiquement isolé.
Exemple 3 : simuler le blocage des communications externes
Le programme suivant définit une liste de destinations externes interdites et vérifie si une destination donnée doit être refusée.
1 2 3 4 5 6 | destinations_interdites = ["INTERNET", "RESEAU-PUBLIC"] destination = "INTERNET" if destination in destinations_interdites: print("Accès externe refusé") else: print("Destination non bloquée par cette règle") |
Output :
1 | Accès externe refusé |
Exemple 4 : détecter une interface réseau non autorisée
Le programme suivant examine une configuration fictive d'interfaces réseau. Il signale toute interface active qui ne figure pas dans la liste des interfaces autorisées.
1 2 3 4 5 6 7 8 9 | interfaces = { "Ethernet0": False, "WiFi": True, "Bluetooth": False } interfaces_autorisees = [] for interface, active in interfaces.items(): if active and interface not in interfaces_autorisees: print("Alerte : interface active non autorisée :", interface) |
Output :
1 | Alerte : interface active non autorisée : WiFi |
Exemple 5 : vérifier une politique de transfert de fichiers
Le programme suivant utilise une liste fictive d'extensions autorisées pour vérifier si un fichier respecte une règle de transfert.
1 2 3 4 5 6 | extensions_autorisees = [".txt", ".csv", ".pdf"] fichier = "rapport.pdf" if any(fichier.lower().endswith(ext) for ext in extensions_autorisees): print("Extension autorisée") else: print("Extension non autorisée") |
Output :
1 | Extension autorisée |
Une extension autorisée ne garantit pas qu'un fichier est sûr. Un contrôle réel doit notamment examiner le contenu et la provenance du fichier.
Exemple 6 : calculer une empreinte SHA-256
Le programme suivant utilise hashlib pour calculer l'empreinte SHA-256 d'un contenu fictif.
Les empreintes cryptographiques peuvent être utilisées pour vérifier l'intégrité de fichiers transférés vers un environnement isolé.
1 2 3 4 5 | import hashlib contenu = b"document-test" empreinte = hashlib.sha256(contenu).hexdigest() print("Empreinte SHA-256 :", empreinte) print("Longueur :", len(empreinte)) |
Output :
1 2 | Empreinte SHA-256 : valeur hexadécimale calculée Longueur : 64 |
L'empreinte réelle est une chaîne hexadécimale de 64 caractères. Pour établir la confiance dans un transfert, l'empreinte de référence doit provenir d'une source fiable et indépendante.
Exemple 7 : comparer deux empreintes
Le programme suivant calcule les empreintes de deux contenus fictifs et vérifie s'ils sont identiques.
1 2 3 4 5 6 7 8 9 | import hashlib original = b"configuration=active" copie = b"configuration=active" hash_original = hashlib.sha256(original).hexdigest() hash_copie = hashlib.sha256(copie).hexdigest() if hash_original == hash_copie: print("Intégrité vérifiée") else: print("Alerte : contenu différent") |
Output :
1 | Intégrité vérifiée |
Exemple 8 : détecter une modification de configuration réseau
Le programme suivant compare deux états fictifs d'une configuration réseau et signale les paramètres ayant changé.
1 2 3 4 5 6 7 8 9 10 11 12 13 | avant = { "wifi": False, "ethernet": False, "bluetooth": False } apres = { "wifi": True, "ethernet": False, "bluetooth": False } for parametre in avant: if avant[parametre] != apres[parametre]: print("Modification détectée :", parametre) |
Output :
1 | Modification détectée : wifi |
Exemple 9 : simuler une procédure de transfert autorisé
Le programme suivant vérifie plusieurs conditions fictives avant d'autoriser le transfert d'un fichier vers un environnement isolé.
1 2 3 4 5 6 7 8 9 10 | transfert = { "support_autorise": True, "analyse_effectuee": True, "integrite_verifiee": True, "validation_responsable": False } if all(transfert.values()): print("Transfert autorisé") else: print("Transfert refusé : conditions incomplètes") |
Output :
1 | Transfert refusé : conditions incomplètes |
Exemple 10 : journaliser un événement de sécurité
Le programme suivant utilise le module logging pour enregistrer un événement fictif concernant une interface réseau non autorisée.
1 2 3 4 5 6 7 8 | import logging logging.basicConfig( filename="air_gap.log", level=logging.WARNING, format="%(asctime)s - %(levelname)s - %(message)s" ) logging.warning("Interface réseau non autorisée détectée") print("Événement enregistré dans air_gap.log") |
Output :
1 | Événement enregistré dans air_gap.log |
Exemple 11 : créer une fonction de vérification d'isolation
Le programme suivant définit une fonction qui examine plusieurs paramètres fictifs et renvoie un résultat indiquant si la configuration respecte les critères définis.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def verifier_isolation(configuration): if configuration["internet"]: return "NON CONFORME : Internet actif" if configuration["wifi"]: return "NON CONFORME : Wi-Fi actif" if configuration["bluetooth"]: return "NON CONFORME : Bluetooth actif" if configuration["liaison_externe"]: return "NON CONFORME : liaison externe détectée" return "Configuration conforme aux critères testés" configuration = { "internet": False, "wifi": False, "bluetooth": False, "liaison_externe": False } print(verifier_isolation(configuration)) |
Output :
1 | Configuration conforme aux critères testés |
Cette fonction ne vérifie que les valeurs qui lui sont fournies. Elle ne démontre pas l'existence d'un Air Gap physique.
Exemple 12 : mini audit pédagogique d'un système isolé
Le programme suivant examine une liste fictive de contrôles de sécurité et affiche les vérifications qui nécessitent une intervention.
1 2 3 4 5 6 7 8 9 10 11 | controles = { "absence_internet": True, "wifi_desactive": True, "bluetooth_desactive": True, "usb_controle": False, "acces_physique_protege": True, "mises_a_jour_planifiees": False } for controle, conforme in controles.items(): if not conforme: print("Contrôle à corriger :", controle) |
Output :
1 2 | Contrôle à corriger : usb_controle Contrôle à corriger : mises_a_jour_planifiees |
Exemple de laboratoire avec VirtualBox
Pour un laboratoire pédagogique, il est possible de créer deux machines virtuelles dans VirtualBox et de les placer sur un même réseau interne.
Une configuration possible consiste à :
- Créer deux machines virtuelles de test.
- Arrêter les machines virtuelles.
- Ouvrir les paramètres réseau de chaque machine.
- Configurer un adaptateur en mode Internal Network.
- Utiliser le même nom de réseau interne pour les deux machines.
- Désactiver les autres adaptateurs virtuels non nécessaires.
- Démarrer les machines virtuelles.
- Configurer des adresses IP compatibles sur le réseau interne.
- Vérifier les communications entre les deux machines.
- Vérifier qu'aucune route ou interface supplémentaire ne donne accès aux réseaux externes.
Attention : cette configuration crée une isolation logique entre machines virtuelles. Elle ne constitue pas un véritable Air Gap physique, puisque les machines partagent un hôte et un hyperviseur.
7. À retenir
L'Air Gap est une mesure de cybersécurité visant à isoler un système ou un réseau sensible des réseaux extérieurs.
Dans son sens strict, il repose sur une séparation physique des chemins de communication réseau.
L'isolation logique utilise des mécanismes comme les VLAN, les pare-feu ou la virtualisation, mais elle n'est pas équivalente à un Air Gap physique.
Un Air Gap peut concerner un ordinateur unique ou un réseau local complet.
Cette méthode est utilisée dans certains systèmes industriels, infrastructures critiques, laboratoires et environnements traitant des données sensibles.
Les sauvegardes hors ligne constituent une application importante de la séparation des environnements.
L'Air Gap réduit certaines possibilités d'attaque à distance, mais ne supprime pas les risques liés aux supports amovibles, aux accès physiques et aux erreurs humaines.
Les opérations de maintenance et de transfert de données doivent être réalisées selon des procédures contrôlées.
Python permet de simuler des politiques d'isolation, de vérifier des configurations fictives et de contrôler l'intégrité des données.
Les réseaux Host-Only et Internal Network de VirtualBox peuvent être utiles pour les laboratoires pédagogiques, mais ils ne garantissent pas une séparation physique.
Enfin, l'Air Gap doit être intégré dans une stratégie de défense en profondeur associant isolation, contrôle d'accès, mises à jour, surveillance et protection physique.
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/



