Le Paysage des Menaces IoT
Vecteurs d’attaque principaux
1. Compromission des dispositifs : Les attaquants exploitent les mots de passe par défaut, les firmwares non patchés, et les interfaces de débogage laissées actives. Le botnet Mirai a démontré en 2016 qu’un simple scan des dispositifs avec identifiants par défaut peut compromettre des millions d’appareils.
2. Attaques Man-in-the-Middle (MITM) : Sans chiffrement approprié, les communications entre dispositifs et serveurs peuvent être interceptées. Les protocoles non sécurisés comme MQTT sans TLS ou HTTP exposent les données en clair.
3. Attaques par déni de service (DDoS) : Les dispositifs IoT compromis sont utilisés pour lancer des attaques DDoS massives. Leur nombre et leur bande passante cumulée peuvent saturer même les infrastructures les plus robustes.
4. Extraction de données sensibles : Les capteurs collectent des informations personnelles (localisation, habitudes, données de santé). Une fuite peut avoir des conséquences graves sur la vie privée.
Framework de Sécurité IoT
1. Sécurité par conception (Security by Design)
La sécurité doit être intégrée dès la conception du dispositif, pas ajoutée après coup. Ce principe fondamental implique plusieurs pratiques :
Principes de sécurité by design :
- Minimisation de la surface d’attaque : Désactiver tous les services non essentiels, fermer les ports inutilisés
- Défense en profondeur : Implémenter plusieurs couches de sécurité (authentification, chiffrement, segmentation)
- Principe du moindre privilège : Chaque composant n’accède qu’aux ressources strictement nécessaires
- Fail securely : En cas d’erreur, le système doit basculer vers un état sécurisé
- Ne jamais faire confiance, toujours vérifier : Architecture Zero Trust appliquée à l’IoT
2. Identité et Authentification des Dispositifs
Chaque dispositif IoT doit posséder une identité unique et cryptographiquement vérifiable. Les certificats X.509 constituent la méthode la plus robuste.
openssl genrsa -out device_key.pem 2048openssl req -new -key device_key.pem \
-out device_csr.pem \
-subj « /C=FR/ST=IDF/L=Paris/O=WikiIoT/CN=device-12345 »
# Signature par l’autorité de certification
openssl x509 -req -in device_csr.pem \
-CA ca_cert.pem -CAkey ca_key.pem \
-CAcreateserial -out device_cert.pem \
-days 365 -sha256
3. Chiffrement des Communications
Tous les échanges de données doivent être chiffrés end-to-end. Pour l’IoT, deux protocoles dominent :
| Aspect | TLS 1.3 (TCP) | DTLS 1.3 (UDP) |
|---|---|---|
| Transport | TCP – connexion fiable | UDP – sans connexion |
| Overhead | Plus élevé (handshake) | Plus léger |
| Latence | Établissement plus long | Plus rapide |
| Usage IoT | MQTT, HTTPS | CoAP |
| Ressources | RAM: 30-50KB | RAM: 20-35KB |
import ssl
import paho.mqtt.client as mqttclient = mqtt.Client()
# Configuration SSL/TLS
context = ssl.create_default_context()
context.load_cert_chain(
certfile= »device_cert.pem »,
keyfile= »device_key.pem »
)
context.load_verify_locations(cafile= »ca_cert.pem »)
context.check_hostname = True
context.verify_mode = ssl.CERT_REQUIRED
client.tls_set_context(context)
client.connect(« secure-broker.example.com », 8883, 60)
Sécurisation du Firmware et OTA
Secure Boot
Le secure boot garantit que seul du code authentifié peut s’exécuter sur le dispositif. Le processus de démarrage vérifie cryptographiquement chaque étape :
- ROM Boot : Code immuable dans la ROM qui vérifie le bootloader
- Bootloader vérifié : Vérifie la signature du kernel/OS
- OS vérifié : Vérifie les applications avant exécution
Mises à jour OTA sécurisées
Les mises à jour Over-The-Air doivent suivre un processus rigoureux pour éviter l’installation de firmware malveillant :
Processus de mise à jour sécurisée :
- Signature du firmware : Le fabricant signe cryptographiquement chaque mise à jour
- Téléchargement sécurisé : Via HTTPS/TLS uniquement
- Vérification de signature : Le dispositif vérifie la signature avant installation
- Vérification d’intégrité : Hash SHA-256 du firmware
- Installation atomique : Rollback automatique en cas d’échec
- Dual bank : Conservation de la version précédente fonctionnelle
import hashlib
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import paddingdef verify_firmware(firmware_data, signature, public_key):
# Vérification de la signature RSA
try:
public_key.verify(
signature,
firmware_data,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
hashes.SHA256()
)
except:
return False
# Vérification du hash
expected_hash = get_hash_from_manifest()
actual_hash = hashlib.sha256(firmware_data).hexdigest()
return expected_hash == actual_hash
Segmentation Réseau et Isolation
Une architecture réseau IoT sécurisée doit isoler les dispositifs du reste de l’infrastructure. La segmentation par VLAN est essentielle :
Architecture de segmentation recommandée :
- VLAN IoT : Réseau dédié pour tous les dispositifs IoT
- VLAN Gestion : Accès administration séparé
- VLAN Utilisateurs : Isolation des postes de travail
- DMZ : Pour les services exposés sur Internet
Les règles de pare-feu doivent suivre le principe du deny-all par défaut, en n’autorisant que les flux strictement nécessaires :
# Bloquer tout par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP# Autoriser seulement MQTT vers le broker
iptables -A OUTPUT -p tcp –dport 8883 \
-d broker.example.com -j ACCEPT
iptables -A INPUT -p tcp –sport 8883 \
-s broker.example.com -m state \
–state ESTABLISHED -j ACCEPT
# Bloquer l’accès Internet direct
iptables -A OUTPUT -o eth0 -j DROP
Détection et Réponse aux Incidents
Monitoring et Logging
Une visibilité complète sur l’activité des dispositifs IoT est cruciale pour détecter les comportements anormaux. Les métriques clés à surveiller incluent :
- Trafic réseau : Volume, destinations, protocoles utilisés
- Authentifications : Tentatives échouées, connexions inhabituelles
- Activité des dispositifs : Utilisation CPU/mémoire anormale
- Modifications système : Changements de configuration, mises à jour
- Comportement applicatif : Fréquence d’envoi de données, valeurs aberrantes
SIEM pour IoT
Un système SIEM (Security Information and Event Management) adapté à l’IoT agrège et corrèle les événements de sécurité provenant de milliers de dispositifs. Il permet de détecter :
- Scans de ports et tentatives d’intrusion
- Trafic vers des serveurs C&C (Command & Control) connus
- Augmentation soudaine du trafic (signe de DDoS ou d’exfiltration)
- Déviations des patterns comportementaux normaux
- Propagation latérale dans le réseau IoT
Conformité et Régulations
Les dispositifs IoT doivent se conformer à diverses régulations selon leur domaine d’application :
| Régulation | Domaine | Exigences clés |
|---|---|---|
| RGPD | Protection des données UE | Consentement, droit à l’oubli, privacy by design |
| ETSI EN 303 645 | Sécurité IoT Europe | Mots de passe uniques, mises à jour, protection des données |
| NIST IoT Framework | Cybersécurité USA | Identification, protection, détection, réponse |
| IEC 62443 | Sécurité industrielle | Segmentation, authentification, intégrité |
