Ce livre sur la cyberdéfense s'adresse à toute personne sensibilisée au concept de la sécurité dans le domaine industriel. Il a pour objectif d'initier le lecteur aux techniques les plus courantes des attaquants pour lui apprendre comment se défendre. En effet, si la sécurité de l'informatique de gestion (applications, sites, bases de données...) nous est maintenant familière, la sécurité de l'informatique...
Ce livre sur la cyberdéfense s'adresse à toute personne sensibilisée au concept de la sécurité dans le domaine industriel. Il a pour objectif d'initier le lecteur aux techniques les plus courantes des attaquants pour lui apprendre comment se défendre. En effet, si la sécurité de l'informatique de gestion (applications, sites, bases de données...) nous est maintenant familière, la sécurité de l'informatique industrielle est un domaine beaucoup moins traditionnel avec des périphériques tels que des robots, des capteurs divers, des actionneurs, des panneaux d'affichage, de la supervision, etc. Elle commence à la maison avec la domotique et ses concepts s'étendent bien sûr à l'industrie et aux transports.
Dans un premier temps, les auteurs décrivent les protocoles de communication particuliers qui régissent les échanges dans ce domaine et détaillent quelques techniques basiques de hacking appliquées aux systèmes industriels et les contre-mesures à mettre en place. Les méthodes de recherches sont expliquées ainsi que certaines attaques possibles avec une bibliothèque particulière nommée scapy du langage Python (pour les novices, un chapitre rapide sur la prise en main de Python est présent). Enfin, un chapitre montrera les protocoles et failles des moyens de transport ferroviaires.
Dans la lignée du livre Ethical Hacking dans la même collection, les auteurs de ce livre sur la Cyberdéfense ont à cœur d'alerter chacun sur la sécurité de l'informatique industrielle : "apprendre l'attaque pour mieux se défendre" est toujours leur adage. Hackers blancs dans l'âme, ils ouvrent au lecteur les portes de la connaissance underground.
Les chapitres du livre : Introduction – Les systèmes industriels – Les techniques de prise d'empreintes – Les différentes menaces possibles – Les protocoles utilisés et leurs faiblesses – Création d'outils avec Python – Prise en main de Scapy - D'autres outils utiles – Les systèmes domotiques – Les réseaux et protocoles ferroviaires
1. État actuel de la sécurité des systèmes industriels
2. Profilage
3. Fréquence des attaques
4. Qui attaque ?
5. La cible
6. Les attaques
6.1 Attaques via le réseau
6.2 Attaques via les applications
6.3 Attaques via les panneaux de surveillance et de configuration
6.4 Attaques via les malwares, virus et APT
7. Conclusion
Les systèmes industriels
1. Les vulnérabilités des systèmes industriels
1.1 Les correctifs de sécurité
1.2 Les mots de passe
1.3 La gestion des comptes
1.4 Les ports USB et les cartes Ethernet
1.5 La cartographie
1.6 Les sauvegardes
1.7 Les protocoles
1.8 L'accès physique
1.9 Le cloisonnement entre système informatique industrielet système informatique de gestion
1.10 L'accès distant
2. Les mesures de sécurité
2.1 L'authentification des intervenants
2.2 La gestion de l'authentification
2.3 La sécurisation de l'architecture
2.4 L'interconnexion avec le système de gestion
2.5 Les accès Internet et aux sites distants
2.6 Les communications sans fil
2.7 Les protocoles
2.8 La sécurisation des équipements
2.9 L'intégrité et l'authenticité
2.10 La gestion des vulnérabilités
2.11 La gestion des médias amovibles et des équipements mobiles
2.12 Le réseau
2.13 La surveillance du système industriel
3. La chaîne de production
4. Les points sensibles
5. La différence entre l'informatique de gestionet l'informatique industrielle
5.1 Les solutions utiles mais non suffisantesdes systèmes d’information
5.2 Des similitudes, mais des différences avec la sécurité fonctionnelle
5.3 L'analyse des risques : l'identification des menaces et des vulnérabilités
5.4 La défense en profondeur : la décomposition en zones et conduits
Les techniques de prise d’empreintes
1. Introduction
2. Google dorks
2.1 Qu'est-ce qu'un Google dork ?
2.2 Fonctionnement du moteur de recherche de Google
2.3 Identification du contenu d'une page web
2.4 Les Google dorks
2.5 Exemples d'exploitation de dorks
2.5.1 Exploitation d'une URL connue
2.5.2 Exploitation du titre de la page
2.5.3 Exploitation du titre et du contenu d’une page
2.5.4 Exploitation des répertoires
3. Shodan
3.1 Fonctionnement de Shodan
3.2 Informations prélevées par Shodan
3.3 Les Shodan dorks
3.4 Exemples d'exploitation de dorks
3.4.1 Exploitation du nom du serveur
3.4.2 Exploitation du pays et de la bannière
3.4.3 Exploitation du port, de la date et de l'empreinte FTP
4. Contrôler la visibilité des équipements
4.1 Limiter l’accessibilité
4.2 Désactiver les bannières
Les différentes menaces possibles
1. Les failles réseau
1.1 Man in the Middle
1.2 La sécurité des réseaux Wi-Fi
1.3 Le déni de service
1.4 Le VLAN hoping
2. Les failles applicatives
3. Les failles physiques
3.1 Gestion des accès physiques
3.2 Porte blindée et mur en plâtre
3.3 Règles de protection des postes sensibles
Les protocoles utilisés et leurs faiblesses
1. Introduction
2. L’évolution des communications entre les matériels dans l'industrie
2.1 Problématique de l'évolution des matériels et de la sécurité
2.2 Évolution des communications et des interfaces de programmation
3. La couche physique
3.1 Introduction
3.2 Les liaisons RS-232, RS-422 et RS-485
3.3 Le codage Manchester
3.4 Le bus CAN
3.5 Le bus Ethernet industriel
3.6 Le bus AS-i
3.7 Le bus MPB
4. Les protocoles des niveaux supérieurs des réseaux de terrain
4.1 Présentation
4.2 PROFIBUS
4.3 PROFINET
4.4 MODBUS
5. Les attaques de bus industriels
5.1 Constatations
5.2 Attaque sur une RS-232
5.3 Attaque d'un réseau MODBUS sur une RS-485
5.4 Attaque d'un système automatisé sur PROFINET
Création d'outils avec Python
1. Introduction
2. Pourquoi Python ?
3. Mise en place de l'environnement de test
3.1 Installation de Python et PyCharm sous Windows 7
3.2 Installation de Python et PyCharm sous Ubuntu 14.04
4. Débuter avec Python
4.1 Hello World
4.2 Créer un premier programme
5. Les variables et listes
5.1 Les variables
5.1.1 Déclarer une variable
5.1.2 Utiliser une variable
5.1.3 Opérations sur les variables
5.2 Les listes
5.2.1 Déclarer une liste
5.2.2 Utiliser une liste
5.2.3 Modifier un élément d'une liste
5.2.4 Manipuler des listes
6. Les fonctions
6.1 Qu'est-ce qu’une fonction ?
6.2 Fonction sans argument ni retour
6.3 Fonction avec arguments mais sans retour
6.4 Fonction renvoyant une valeur de retour
7. Les structures conditionnelles
7.1 Principe des structures conditionnelles
7.2 Qu'est-ce qu’une condition ?
7.3 Les opérateurs de comparaison
7.4 if, elif et else
7.4.1 Exemple de if
7.4.2 Exemple de if ... else
7.4.3 Exemple de if ... elif ... else
7.5 Un if à plusieurs conditions
7.6 Savoir si un élément fait partie d'une liste
8. Les boucles
8.1 Boucles bornées
8.2 Boucles conditionnelles
9. Récupération d'une saisie clavier
10. Opérations sur les fichiers
10.1 Lire un fichier
10.2 Écrire dans un fichier
11. Les objets et classes
11.1 Création d'un objet
11.2 Utilisation d’un objet
12. Exercice
13. Exécuter un script sans PyCharm
13.1 Sous Windows
13.2 Sous Ubuntu
14. Pour approfondir
Prise en main de Scapy
1. Les fonctionnalités de Scapy
2. Installation de Scapy
2.1 Sous Windows 7
2.2 Sous Ubuntu 14.04
2.3 Vérifier le bon fonctionnement de l'installation
3. Sniffing de paquets
3.1 Qu'est-ce que le sniffing ?
3.2 Mise en place d'un sniffing
3.2.1 La fonction sniff()
3.2.2 D'autres fonctions utiles
3.3 Filtrer
3.3.1 Que peut-on filtrer ?
3.3.2 filter et lfilter, quelles différences ?
3.4 Accéder au contenu des paquets sniffés
3.4.1 Les couches du modèle OSI
3.4.2 Accéder au contenu d'une couche
4. Injection de paquets
4.1 Qu'est-ce que l'injection de paquets ?
4.2 Pourquoi injecter des paquets ?
4.3 Création d'un paquet couche par couche
4.3.1 send() et sendp(), quelles différences ?
4.3.2 Attendre une réponse après l'envoi d'un paquet
4.4 Création d'un paquet manuellement
4.5 Exercice
D'autres outils utiles
1. Introduction
2. Wireshark
2.1 Installation
2.1.1 Sous Windows 7 (32 bits)
2.1.2 Sous Ubuntu 14.04
2.2 Fonctionnalités
2.3 Les filtres
3. Nmap
3.1 Installation
3.1.1 Sous Windows 7 (32 bits)
3.1.2 Sous Ubuntu 14.04
3.2 Fonctionnalités
3.2.1 Scanner les ports d'une machine
3.2.2 Réaliser un scan discret
3.2.3 Obtenir plus d'informations
3.3 Interface graphique
4. Hping
4.1 Installation
4.1.1 Sous Windows 7 (32 bits)
4.1.2 Sous Ubuntu 14.04
4.2 Fonctionnalités
4.2.1 Envoyer un seul paquet
4.2.2 Envoyer plusieurs paquets et régler le délai d'attente
4.2.3 Spécifier le flag TCP
4.2.4 Falsifier l'adresse source
4.2.5 Spécifier le port
4.2.6 SYN flood
5. Metasploit
5.1 Installation
5.1.1 Sous Windows 7 (32 bits)
5.1.2 Sous Ubuntu 14.04
5.2 Qu'est-ce qu'un exploit ?
5.3 Trouver un exploit
5.4 Les payloads
5.5 Fonctionnalités
Les systèmes domotiques
1. Introduction
1.1 La maison intelligente
1.2 Les technologies mises en œuvre
2. Les domaines de la domotique
2.1 Le domaine de la sécurité
2.2 Le domaine du confort
2.3 Le domaine de l'automatisation
3. Les systèmes disponibles sur le marché
3.1 La configuration de base
3.2 Les systèmes proposés
4. Les vulnérabilités des systèmes domotiques
4.1 Les failles classiques
4.1.1 Les failles web
4.1.2 Les failles Wi-Fi
4.1.3 Les failles réseau
4.2 Les failles spécifiques aux transmissions radio
4.2.1 L'écoute des transmissions
4.2.2 Rejouer des commandes radio
4.2.3 L'introduction dans le système
5. Les risques liés aux failles domotiques
5.1 La prise de contrôle des installations
5.2 Les modifications du comportement
5.3 L'espionnage du domicile
6. Les niveaux de sécurité des systèmes domotiques
6.1 Les technologies retenues par les fabricants
6.2 Choisir le bon niveau de sécurité
6.3 Choisir le système domotique adapté
7. Les périphériques radiocommandés
7.1 La transmission sans fil
7.2 Les problèmes de sécurité engendrés
8. Rappels sur les transmissions radio
8.1 Fonctionnement d'un émetteur-récepteur
8.2 Fonctionnement d'un récepteur pirate
8.3 Fonctionnement d'un émetteur pirate
8.4 La protection de la transmission par codage
8.5 Notions de fréquence porteuse et de modulation
9. Les informations nécessaires aux pirates
9.1 Détermination de la fréquence porteuse
9.2 Détermination du type de modulation
9.3 Détermination du codage
9.3.1 Format standard des trames numériques
9.3.2 Protection par code à décalage
9.3.3 Protection par code tournant
10. Le matériel disponible pour les pirates
10.1 Les clés de réception RTL-SDR
10.2 L'émetteur-récepteur HackRF One
10.3 Les cartes numériques programmables
10.4 Les modules radiofréquence
10.5 Les copieurs commerciaux
11. Mise en œuvre des émetteurs-récepteurs numériques
11.1 Utilisation de GNU Radio
11.2 Réalisation de récepteurs ASK et FSK
11.2.1 Le récepteur ASK
11.2.2 Le récepteur FSK
11.3 Rejouer des commandes
11.4 Application sur des prises électriques radiocommandées
12. Décodage et codage des informations
12.1 Utilité d'analyser le code
12.2 Le code HomeEasy
12.3 Le code des prises radiocommandées
12.4 Le code d’une station météo
13. Conclusion
13.1 Bien choisir le système domotique
13.2 Adopter les bons réflexes
Les réseaux et protocoles ferroviaires
1. Introduction
2. Les deux catégories d'équipements d'un système de transport
3. Les réseaux de communication
3.1 Les réseaux de communication filaires
3.1.1 Le réseau TCN
3.1.2 Le MVB et le WTB
3.2 Les réseaux de communication sans fil
3.2.1 Le KVB
3.2.2 La TVM
3.2.3 Le GSM-R
3.2.4 L'ERTMS et l'ETCS
4. Les vulnérabilités des réseaux de communication
4.1 Les types d'accès
4.2 Les balises
4.3 Le système GSM-R et le protocole Euroradio
4.4 Exemples d'attaques dans le domaine ferroviaire
4.4.1 Le déni de service de signalisation via un accès distant
4.4.2 Le déraillement d'un tramway via un accès sans fil
5. Bibliographie
Index
Franck EBEL
Enseignant à l'université de Valenciennes. Lieutenant-colonel de gendarmerie réserviste et spécialiste de la lutte anticybercriminalité. Expert en failles applicatives, il a créé la licence professionnelle CDAISI, la seule en France en sécurité dite offensive. Certifié CEH, OSCP et Wifu, il forme les Ntech de la gendarmerie de la région Nord-Pas de Calais et le CICERT de Côte d'Ivoire. Président de l'association ACISSI, il organise chaque année les RSSIL et le challenge de Hacking « Hacknowledge ». Membre de l'AFPY, association francophone pour Python, il donne des conférences en Europe et en Afrique sur Python, les logiciels libres et la sécurité informatique.
Enseignant en électronique, informatique et numérique. Responsable du module Gestion et administration Linux de la licence CDAISI, il est également concepteur hardware et software de circuits numériques 32 bits et spécialiste en radio-transmission numérique.
Enseignant dans plusieurs formations liées à la cyberdéfense (Licence CDAISI, Master CDSI, MBA Management de la Cybersécurité). Spécialiste en sécurité des applications web et en analyse des risques par la méthode EBIOS RM. Conférencier en Cybersécurité à l'international (Afrique du Nord, Afrique subsaharienne, Russie…) et conseiller en Cybersécurité pour la société Serval-Concept. Lieutenant-Colonel de la réserve citoyenne de la Gendarmerie Nationale - Groupe Cyberdéfense.
Enseignant chercheur à l'université Polytechnique des Hauts de France. Commandant de gendarmerie dans la réserve numérique - cyberdéfense. Intervenant dans la licence CDAISI sur les failles physiques dans les systèmes automobiles.
NicolasDUPOTY : Diplômé de la licence professionnelle CDAISI, Étudiant en master CDSI, Formateur en sécurité informatique et Co-organisateur du Hacknowledge Contest.