Nuit du Hack 2K16 - Scénarios d'attaques sur un système industriel
1. Nuit du Hack 2K16
Scénarios d’attaque sur
un système industriel
2. Mettre en place une maquette
proche des systèmes industriels en
production
Démontrer via des sensibilisations
les vulnérabilités et les impacts
en cas d’attaques
Comprendre le fonctionnement
de la logique et l’organisation d’un
environnement industriel
Objectifs
Un niveau de protection faible
3. Découverte des vulnérabilités
Les chercheurs et hackers se concentrent depuis 2009 sur la
cyber sécurité des composants industriels
9
0
6
1
7
7
17
31
28
43
172
240
180
222
0
50
100
150
200
250
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
Stuxnet
Projet Aurora
(INL)
Vulnérabilités ICS dévoilées/an (source scadahacker.com)
4. Présentation de la maquette
Automate
Siemens
Attaquant
Switch
Client lourd
sous Linux
Client Web sous
Windows
Topologie du réseau industriel
Interface de
supervision Serveur d’acquisition
5. Boite mystère
Accès illégitime au réseau industriel
Ressemble à un
boitier industriel sur
rail DIN
Connecté sur le
réseau industriel
Légitime ?
Et pourtant…
6. Altération de la logique programmée
Envoi de nouveaux blocs de fonction
PLC
SiemensServeur SCADA / client
lourd sous Linux
Client léger SCADA
(Windows)
Presse
+-24VS7commHTTP
Connexion SSH
7. Comment ça fonctionne ?
Exemple d’exécution cyclique d’un programme
Démarrage de
l'automate (mode RUN)
Lecture des états des
cartes d'entrées
Exécution du bloc OB1 :
CALL FC1
CALL FB2, DB2
Mise à jour des cartes
de sorties
A I5.0
R Q9.3
R DB1.DBX2.1
A I5.0
R #out
R #stat
FC1
FB2
0.0 in BOOL
2.0 out BOOL
DB2
0.0 STAT0 BOOL
0.1 STAT1 BOOL
DB1
8. Comment ça fonctionne ?
Blocs mémoires - Les différents rôles
Organization Block (OB)
Appelé suite au déclenchement d’évènements particuliers
Premier bloc (OB1) lancé au démarrage de l’automate
Function (FC) / Function Block (FB)
Variables locales temporaires et paramètres en entrée/sortie
Variables statiques possibles avec les FB grâce aux IDB
System Function (SFC) / System Function Block (SFB)
Semblables aux blocs précédents
Ensemble de fonctions systèmes non modifiables
Data Block (DB) / Instance Data Block (IDB) / System Data Block (SDB)
Variables globales accessibles depuis différentes instances
IDB lié à un bloc fonctionnel (FB)
SDB contient des informations systèmes comme la configuration hardware
9. Comment ça fonctionne ?
Adressage et types de données
7 6 5 4 3 2 1 0
M3.0M3.4M3.7
MB0
MB1
MB2
MB3
MW0
MW2
MD0
Type Format Taille en bits
BOOL Bit 1
BYTE Octet 8
WORD Mot 16
DWORD Mot double 32
INT Entier 16
DINT Entier double 32
REAL Réel 32
CHAR Caractère ASCII 8
10. Langages de programmation
Définis par le standard IEC 61131-3
Simplicité d’utilisation
Instructions composées
de fonctions logiques
Langages plus proches
de l’électronique que
de la programmation
Ladder diagram
Function block diagram
Instruction List
11. Protocole S7
Structure d’un paquet
Partie variablePartie fixe
En-tête IP En-tête TCP En-tête TPKT En-tête COTP S7 (en-tête + PDU)
Version Réservé Longueur Longueur Type ParamètresChamps
Mode connecté (TCP) sur le port 102
Communications maitre/esclave
Ni chiffrement, ni authentification
Protocole basé sur le modèle OSI
COTP : protocole de transport OSI
En-tête TPKT : traducteur OSI <-> TCP/IP
12. Autres attaques
Man in the middle - Usurpation et contrôle des flux
PLC
SiemensServeur SCADA / client
lourd sous Linux
Client léger SCADA
(Windows)
Presse
+-24VHTTP
Connexion SSH
S7comm
13. Autres attaques
Branchement d’une clé USB directement depuis l’IHM
PLC
SiemensServeur SCADA / client
lourd sous Linux
Client léger SCADA
(Windows)
Presse
+-24VHTTP S7comm
S7comm :
STOP ou RESET
14. 14
Risques liés à ce type d’attaques
Une fois que l’attaquant a accès au
SI industriel, il est en mesure de
réaliser tout type d’attaque :
Sabotage / Déni de service fatal
pour les chaines de production
Impact humain et/ou
environnemental
Espionnage industriel
Guerre économique : légers
défauts dans la production
Ouverture à de nombreuses possibilités
16. Pour en savoir plus
Continuez à suivre les activités de Lexsi
Site officiel
https://lexsi.com
Blog
https://lexsi.com/securityhub
https://linkedin.com/company/lexsi
LinkedIn
https://twitter.com/lexsi
Twitter
Lexsi recrute... :-)
Editor's Notes
Installation physique du boitier de l’attaquant sur le système industriel
Contrôle parfois non rigoureux Passage de prestataires par exemple
Temps d’apprentissage et d’étude du SI indus à prendre en compte !