Quantcast

Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Hack in Paris c’est pour bientôt, histoire de vous remettre à jours avec certaines des conf présentées, je vous fait de nouveau profiter des articles ecrits par mes amis de Sysdream

Par Jean-Christophe Baptiste

Cet article a pour auteur Jean-Christophe Baptiste, consultant et formateur en sécurité informatique chez Sysdream. Sysdream est un centre de formation ainsi qu’un cabinet d’audit et de conseil en sécurité informatique. Jean-Christophe a aussi été responsable de la sécurité informatique d’une infrastructure industrielle, mais c’est avant tout un passionné que vous pouvez retrouver sur son blog.

Introduction

Scada, Stuxnet… Des mots qui ont largement fait le « buzz » depuis 2010, et continuent à faire froid dans le dos puisqu’ils font écho aux menaces sur les environnements informatiques industriels.

Mais au-delà du bruit médiatique, de quoi s’agit-il exactement ?

Au-delà du buzz

Tout d’abord, SCADA, pour Supervisory Control and Data Acquisition, est un terme utilisé abusivement pour désigner les équipements industriels.

Il ne s’agit que d’une brique fonctionnelle parmi d’autres, qui constituent une infrastructure industrielle. Bien d’autres acronymes pourraient être cités : PLC, DCS, RTU, DACQ, etc. Décrire chaque équipement dépasse le cadre de cet article, mais en gros à chaque équipement sa fonction : sonde de mesure, programmation et pilotage de robots, stockage et traitement des données, supervision, etc.

Nous retiendrons à ce stade le terme le plus approprié pour les désigner tous : ICS, pour Industrial Control Systems.

Les environnements industriels utilisent également des protocoles spécifiques, aux côtés d’autres, tout à fait standards : Modbus, OPC, Profibus, PI, etc.

Bref historique

Bon, cette petite mise au point faite, on n’est pas plus avancé. À quoi tout cela sert-il ? L’histoire est ici semblable à celle de bien d’autres activités humaines ayant connu l’avènement de l’informatique.

Autrefois, les usines étaient pilotées manuellement. On ouvrait des vannes par ici, on activait des interrupteurs par là, à la seule force des bras. Les mesures et les contrôles se faisaient à l’œil et reposaient sur le savoir-faire et l’expérience des opérateurs. L’avènement de l’électricité, puis de l’électronique, a amené un peu plus de confort et de précision : électrovannes, sondes de mesures, systèmes d’alerte, etc.

Ensuite, le développement de la micro-informatique a amené sa petite révolution. On a pu commencer à automatiser les chaînes de production tout en centralisant leur pilotage au sein de l’usine. Les différents équipements sont alors inter-connectés grâce à des réseaux primitifs, de type Bus ou série.

Enfin, le monde merveilleux du TCP/IP est passé par là. D’abord sous l’impulsion des intranets dans les entreprises, ensuite avec Internet et son ouverture sur le monde. Les opportunités sont énormes : rendre autonomes et intelligentes les chaînes de production, les optimiser à l’extrême, gérer les approvisionnements, remonter les informations commerciales, etc. Toutes ces données issues de la production alimentent les logiciels métiers et autres plateformes de gestion intégrée.

Les avantages surpassant les risques, de nos jours, la plupart des chaînes industrielles sont automatisées par des outils informatiques connectés au réseau. Cette évolution est certainement irrémédiable.

Technologies et vulnérabilités

Évoquons un peu les technologies sous-jacentes : vous croyez que ces systèmes sont complexes, spécialisés et complètement ésotériques ? Détrompez-vous ! En fait, vous allez probablement être un peu déçus. De nombreux systèmes sont de vulgaires ordinateurs d’architecture x86, fonctionnant avec un système d’exploitation de la famille Windows (XP, ou plus récent, ou plus ancien comme NT4 !). D’autres utilisent des systèmes Unix, comme Solaris par exemple. Pour les équipements plus limités en ressources, on retrouve même des systèmes tels que Windows XP Embedded ou autres versions mobiles.

pi

En fait, tout dépend généralement du constructeur. Dans ce milieu, les contrats de support lient étroitement la partie matérielle et la partie logicielle.

D’autre part, il est rarement envisageable d’interrompre, ou risquer de perturber, une chaîne de production pour appliquer des correctifs de sécurité. Ainsi, au fil des mois puis des années, certains équipements sensibles se retrouvent complètement vulnérables, voire obsolètes.

Il y a aussi une part de vulnérabilités intrinsèques. Rappelez-vous, le monde de l’informatique industrielle appartient à une autre culture que la micro-informatique telle que nous la connaissons au quotidien, ouverte sur le monde et rompue aux problèmes de sécurité. Le milieu industriel est historiquement fermé et, avant tout, empreint d’une forte culture électrotechnique. Des problèmes, des priorités et des manières de penser différentes. Dès lors que les deux mondes se rencontrent et fusionnent, les mauvaises pratiques de sécurité et les failles applicatives jusque là tolérables prennent une autre dimension.

La défense

Ce qu’il faut retenir, c’est que l’axe offensif contre ces infrastructures n’a rien de « high tech ». Exploitant des vulnérabilités bien connues, les techniques d’attaque classique et les outils de hacking disponibles publiquement vont généralement fonctionner à merveille.

Que reste-t-il donc à la défense ? Il faut reconnaître que la tâche est ingrate face à des systèmes fragiles et quasiment intouchables. Là encore, les remèdes classiques ayant fait leurs preuves sont préconisés : sécurité périmétrique et filtrage, isolation maximum, sensibilisation du personnel, etc.

Le cas d’école : Stuxnet

Stuxnet est le premier logiciel malveillant connu du grand public, dont la cible était spécifiquement des installations industrielles. Une littérature abondante et très détaillée existe sur le sujet, mais essayons de résumer ce véritable fait de cyberguerre en quelques lignes. Dans un contexte géopolitique tendu, certains états occidentaux, États-Unis et Israël en tête, veulent à tout prix éviter que l’Iran développe ses capacités nucléaires dans le domaine militaire.

natanz_1

Une guerre conventionnelle n’étant pas envisageable, une attaque numérique va être lancée. Dans ce but, les États-Unis commencent probablement le développement de Stuxnet bien avant sa détection en 2010 (Symantec a retrouvé des versions primitives remontant à 2005). Le logiciel, après s’être installé sur des systèmes industriels à vocation de contrôle et de supervision, s’attache à perturber le fonctionnement des centrifugeuses chargées d’enrichir l’uranium (éventuellement pour un usage militaire).

En schématisant, Stuxnet provoque un emballement aléatoire des centrifugeuses, sans que rien n’y paraisse sur les écrans de supervision. Alors que les opérateurs ne soupçonnent rien, les tensions mécaniques ainsi provoquées induisent un taux de panne bien plus élevé que la normale. L’impact est important, mais contrôlé : la production d’uranium enrichi est ralentie. Le coût de production explose aussi : il faut remplacer les centrifugeuses, les démultiplier pour avoir un taux de production acceptable, et des heures de recherche ont probablement été dépensées en perte pour tenter d’améliorer leur fiabilité. Ainsi, Stuxnet est semble-t-il resté inaperçu pendant longtemps.

natanz_2

On imagine cependant que les installations de ces centres d’enrichissement étaient un minimum sécurisé et isolé des réseaux externes. Comment donc les services secrets ont-ils réussi à insérer la charge malveillante ?

Concernant le vecteur d’infection , rien de plus banal : une clé USB et un agent infiltré pour l’insérer dans un poste. Ensuite, tout est automatique. Le ver exploite certaines vulnérabilités alors inconnues de Windows (vulnérabilité dite « 0-day ») et d’équipements de contrôle Siemens.

Ce point amène des conclusions essentielles. Ainsi, les attaquants, très bien préparés, ont probablement passé de nombreux mois à construire et peaufiner leur attaque, en adéquation parfaite avec le matériel employé par leur cible. D’autre part, il est intéressant d’évaluer le coût global de l’opération. Les attaquants, une équipe de plusieurs personnes mobilisées pendant des mois, disposaient de moyens importants. Ils connaissaient les vulnérabilités des systèmes SCADA de Siemens et possédaient probablement du matériel de test. Ils ont été en mesure de réaliser des pilotes signés, se faisant passer pour leurs éditeurs légitimes (pilotes Realtek).

Enfin, considérez qu’une vulnérabilité « 0-day », surtout sur Windows, est un atout très précieux. Rare et difficile à découvrir ou obtenir, elle offre un gain important en l’absence de mesures correctives. Ainsi, certaines de ces vulnérabilités ont une très grande valeur, qui peut se monnayer en dizaines, voire centaines de milliers d’euros sur le marché noir.

Il ne fait aucun doute qu’une équipe disposant de trois de ces vulnérabilités sur Windows a non seulement des moyens très importants, mais des objectifs élevés pour les utiliser dans le cadre d’une seule opération – tout en les perdant à terme, car elles ne peuvent être utilisées qu’une seule fois.

natanz_3

En 2010 tout s’accélère. Stuxnet, dans sa forme actuelle, échappant à tout contrôle, se répand en plusieurs points du globe. Il est rapidement détecté puis analysé, et devient alors connu du grand public. Que s’est-il passé ?

Rien d’officiel, ni de complètement sûr, mais plusieurs analystes ont déduit de l’analyse du code de Stuxnet que les services secrets israéliens se sont probablement impliqués dans l’affaire. En ajoutant, un peu à la va-vite, des fonctionnalités offensives, certaines disparités sont apparues dans le code de Stuxnet : niveau de qualité, organisation, méthodes de programmation, présence de certains mots en hébreu, etc. Il est probable qu’à cette époque Israël ait souhaité des effets plus rapides et radicaux. La fréquence de stress des centrifugeuses est augmentée, provoquant des effets plus visibles en terme de panne. Mais cela signe aussi l’arrêt de mort de Stuxnet : analysé, décortiqué, il peut finalement être contenu puis éradiqué. Il est estimé que Stuxnet aura provoqué la destruction de 1000 centrifugeuses sur les 9000 que compte le site nucléaire de Natanz en Iran.

Un peu de mise en pratique

Il n’est pas facile de se procurer du matériel de test, surtout à moindre coût. À ce titre, un projet libre plutôt amusant a été publié récemment : Virtuaplant. Il s’agit d’un petit framework Python de simulation d’ICS (Industrial Control System). Développé en Python et dans une architecture modulaire, il ne demande qu’à être utilisé et complété. Pour l’instant, l’auteur fournit le modèle d’une chaîne de remplissage de bouteilles, avec une petite interface de supervision et de contrôle.

L’outil peut se télécharger à cette adresse : https://github.com/jseidl/virtuaplant.

Je vous conseille de le récupérer avec git :

git clone https://github.com/jseidl/virtuaplant.git

Avant de lancer l’outil, assurez-vous d’avoir bien installé les pré-requis tels que détaillés sur le site. Ensuite, à partir du répertoire d’installation, déplacez-vous dans le répertoire bottle-filling et exécutez le script permettant de lancer la chaîne de production :

cd ./virtuaplant/plants/bottle-filling

./start.sh

Si tout va bien, vous devriez obtenir quelque chose qui ressemble à cela :

virtuaplant

Voilà, vous pouvez vous amuser à piloter votre usine. Observez les indicateurs de production, ils seront intéressants pour la suite.

Plaçons-nous du point de vue de l’attaquant. Ouvrez un analyseur de trafic comme Wireshark, qui intègre des dissecteurs adaptés à de nombreux protocoles. Ces dissecteurs permettent de décoder les trames brutes du réseau afin de présenter les informations des protocoles dans un format humainement lisible.

Rendez-vous dans le menu Edit > Preferences > Protocols > Modbus/TCP pour modifier la valeur du port TCP par défaut. Nous allons changer la valeur 502 par 5020, qui correspond au port utilisé par Virtuaplant (vous pouvez aussi éditer les scripts pour changer la valeur).

À présent, vous pouvez démarrer la capture du trafic sur l’interface lo0 (loopback) et observer le trafic Modbus correctement décodé :

modbus-wireshark

En étudiant les trames Modbus, vous constaterez qu’il n’y a aucun mécanisme de chiffrement ou d’authentification. Comme cela fonctionne-t-il concrètement ?

Tout se passe dans le script hmi.py. Par exemple, le bouton Start provoque l’appel de la méthode setProcess :

runButton.connect(« clicked », self.setProcess, 1)

Dont voici le contenu :

def setProcess(self, widget, data=None):

try:

self.modbusClient.write_register(0x10, data)

except:

pass

La construction de la trame Modbus est ici gérée par la librairie Python éponyme. En gros, notre client Modbus (interface de pilotage) demande au serveur (robot de pilotage) d’écrire la valeur 1 dans le registre n°16 (0x10 en hexadécimal).

En utilisant le filtre Wireshark suivant, vous pouvez visualiser la concrétisation de ces ordres sur le réseau :

modbus.reference_num == 16

Résultat décodé dans Wireshark :

modbus-wireshark1

L’attaque est triviale : il suffit de rejouer la trame ou l’ordre vers le serveur pour interférer avec la production en cours.Voici un petit bout de code simplifié à l’extrême :

#!/usr/bin/env python

from pymodbus.client.sync import ModbusTcpClient as ModbusClient

client = ModbusClient(‘localhost’, port=5020)
client.connect()
client.write_register(0x10, 0)

On importe les librairies nécessaires, on se connecte sur le serveur et on écrit le registre 16 avec la valeur 0. Comme vous l’aurez sans doute deviné, la valeur 0 provoque l’arrêt de la chaîne.

Virtuaplant vient avec d’autres scripts de démonstration plus complets et, surtout, amusez-vous à développer les vôtres. Si vous le pouvez, je pense que l’auteur serait content de recevoir des contributions.

Conséquence d’une attaque « remplissage perpétuel » :

virtuaplant-attack

Voici pour finir une petite vidéo de démonstration pour la route :

Concernant Modbus, la protection n’est pas évidente. Sur des environnements maîtrisés, il sera envisageable de l’encapsuler dans un tunnel TLS (avec des outils similaires à stunnel), mais la plupart du temps l’environnement n’est pas facilement modifiable. Il faudra être donc très rigoureux sur l’isolation de ces dispositifs dans différents sous-réseaux et avec un empilement d’équipements filtrants (pare-feu, routeurs).

Pour en savoir plus

Je vous recommande la formation proposée lors de la prochaine édition de l’évènement Hack In Paris du 15 au 17 juin 2015, événement organisé par Sysdream. Sur le thème des environnements industriels, au-delà des explications théoriques, l’essentiel de cette formation sera consacré à de nombreux exercices pratiques de sécurité offensive et défensive. Elle sera animée sur 3 jours par Monsieur Arnaud Souillé, consultant senior en audits de sécurité chez Solucom, une société française de conseil en informatique.

Notez bien que les formations dans ce domaine ne courent pas les rues : il faut en profiter !

Plus d’informations ici

En attendant, un peu de lecture pour les plus curieux :

 


Sur mobile aussi la sécurité est importante, encore plus celles des données personnelles.
Le VPN est un des meilleurs moyen de se protéger, connexion sécurisée, surf anonyme et surtout accès à tous les sites peu importe le lieu géographique.
Pour être tranquille vous pouvez tester Freedome pour Android ici et pour iOS ici.


MacWay fête ses 30 ans et qui dit 30 ans dit JEU CONCOURS !

Le grand jeu anniversaire est disponible sur macway.com ! Tentez de remporter un MacBook Air jusqu’au 11 Octobre 2020 !
D’autres lots sont également mis en jeu, avec notamment une trottinette Force Moov , un casque Bose QuietComfort 35.
Bonne nouvelle : il n’y a pas de perdant, puisque chaque participant recevra un bon d’achat de 10€ !
Tirage au sort le 12 Octobre 2020.

En Savoir +




130 idées pour votre Raspberry Pi

Nous sommes nombreux à nous être procuré un petit ordinateur Raspberry Pi pour nous lancer dans des projets de ouf malade… C’est très cool, mais à part le classique Media Center, qu’avez-vous fait avec votre Raspberry Pi ?

Si vous séchez niveau idées, voici une petite sélection que j’ai rassemblée au cours des derniers mois. J’imagine qu’il y a encore beaucoup d’autres idées et de tutos, donc n’hésitez pas à partager les liens dans les commentaires, je les rajouterai à ma liste. Merci et merci à tous ceux qui m’ont envoyé des idées !

En attendant, j’espère que ceux-ci vous donneront de l’inspiration…

On peut donc en faire :

  1. Un module pour ouvrir sa porte de garage à la voix (grâce à SIRI)
  2. Une table basse de jeux d’arcade pour se la raconter quand on invite du monde à la maison.
  3. Une Beetbox pour faire de la musique avec des betteraves.
  4. Un robot Roomba.
  5. Un scanner antivirus avec ClamAV.
  6. Un netbook.
  7. Un système de surveillance vidéo communiquant via Telegram.
  8. Une pirateBox /-)
  9. Un mediacenter avec Kodi.
  10. Un mediacenter avec Plex.
  11. Un mediacenter avec Emby.
  12. Un système de mesure de la qualité de l’air.
  13. Un serveur de streaming avec OpenMediaVault.
  14. Un serveur domotique GPIO.
  15. Un serveur SqueezeBox (Logitech Media Server)
  16. Une alarme pour votre domicile.
  17. Un lecteur d’audiobooks.
  18. Un appareil photo pour prendre le ciel étoilé.
  19. Un serveur Owncloud.
  20. Un jukebox LEGO.
  21. Un outil de surveillance réseau (network monitoring) Il y a également ce projet.
  22. Un char d’assaut.
  23. Un bot Twitter ou encore celui-ci pour poster des photos.
  24. Un connecteur OBD-II (pour la voiture)
  25. Un bloqueur de publicité pour la télévision.
  26. Un serveur BitTorrent.
  27. Un serveur FTP classique.
  28. Un serveur FTP qui fonctionne à l’énergie solaire.
  29. Une borne d’arcade MAME.
  30. Un transmetteur FM.
  31. Un NAS.
  32. Un ECG (Électrocardiogramme) portable.
  33. Un serveur Git
  34. Un serveur de mail.
  35. Un ordinateur portable.
  36. Un outil de surveillance du trafic réseau.
  37. Un cadre photos numérique.
  38. Une Time Machine.
  39. Une box domotique avec Jeedom ou avec OpenHAB.
  40. Un module pour piloter ses guirlandes de Noël.
  41. Un serveur web. (ou un « blog« … enfin, un serveur LAMP quoi)
  42. Des lunettes Raspberry Pi.
  43. Un distributeur de tickets.
  44. Une serre connectée.
  45. Un routeur pour bloquer les pubs.
  46. Un système embarqué pour lire des plaques d’immatriculation.
  47. Une console de rétro gaming.
  48. Des animations en time-lapse.
  49. De quoi streamer de la musique chez vous comme Sonos. (Y’a ça aussi)
  50. Une machine à conseils.
  51. Un ordinateur pour apprendre aux enfants à développer des jeux vidéos [PDF].
  52. Un ordinateur de bord pour la voiture.
  53. Un boite à outils pour faire du pentest (avec Pwnie Express que j’adore)
  54. Un système de contrôle à distance de votre PC Windows.
  55. Un détecteur de mouvement avec capture de photos.
  56. Un serveur Minecraft.
  57. Un système d’affichage dynamique pour diffuser de l’information ou de la publicité.
  58. De quoi streamer des jeux PC.
  59. Un super ordinateur.
  60. Un studio pour faire du Stop Motion.
  61. Du LightPainting (Allez voir, c’est magnifique)
  62. Un thermostat pour gérer vos température.
  63. Une station météo ici ou là.
  64. Un photomaton ou aussi ce projet de Photo Booth.
  65. Une PlayStation.
  66. Un jeu de Quizz avec possibilité d’ajouter des télécommandes.
  67. Une GameBoy.
  68. Un miroir connecté.
  69. Un intercom comme en 1986
  70. Un outil de suivi de votre entrainement physique quotidien.
  71. Une voiture télécommandée.
  72. Un indicateur visuel pour savoir si vous êtes toujours connecté au net.
  73. Un mineur de Bitcoins.
  74. Un serveur DLNA.
  75. Un serveur Asterisk (pour la VoIP).
  76. Un agenda Google à accrocher sur le mur.
  77. Un distributeur de croquettes.
  78. Un jeu pour chat avec un laser.
  79. Un robot.
  80. Un système pour faire de l’astro-photographie.
  81. Un robot chien.
  82. Un robot chat ou un autre robot chat.
  83. Un cluster de serveurs avec OctaPi.
  84. Un serveur VPN.
  85. Un routeur VPN de voyage.
  86. Un module DSLR qui se connecte à un appareil photo reflex et qui permet de transférer les images via le Wifi ou de contrôler le déclenchement à distance.
  87. Un module de prise de photo en haute atmosphère avec un ballon sonde.
  88. Un lecteur RFID.
  89. Un Chromecast.
  90. Une automatisation de votre chemin de fer en modèle réduit (train).
  91. Une passerelle LoRaWan.
  92. Un tracker GPS.
  93. Un serveur VPN à domicile.
  94. Un serveur de webcam.
  95. Faire de la musique en la codant.
  96. Une lampe réveil.
  97. Un ordinateur de bureau.
  98. Un quadcopter pour survoler le jardin des voisins.
  99. Une machine à café pilotable et programmable à distance.
  100. Un relai TOR.
  101. Un traceur (pen plotter) pour dessiner.
  102. Un live stream sur YouTube.
  103. Piloter un téléscope.
  104. Une machine à cocktail.
  105. Du détournement de Kindle pour l’utiliser comme un écran.
  106. Un baladeur capable de lire du MOD, S3M, IT ou encore XM.
  107. Une Super Nintendo.
  108. Des enceintes AirPlay.
  109. Un avertisseur d’emails reçus et il y a aussi ce projet.
  110. Un Raspberry Pi… overclocké.
  111. Un flipper.
  112. Une radio pour écouter la BBC avec le décalage horaire.
  113. Un spectacle pyrotechnique.
  114. Un robot pilotable à distance.
  115. Connecter une imprimante sur le réseau.
  116. Un serveur de synchro pour Firefox.
  117. Un assistant vocal Google Home.
  118. Piloter des ampoules Philips Hue en synchro avec Kodi
  119. Faire du suivi de température.
  120. Une radio pirate.
  121. Un sismographe.
  122. Un détecteur steampunk de radiations et compteur Geiger.
  123. Un routeur OpenWRT pour votre réseau.
  124. Un switch niveau 3 pour votre réseau.
  125. Un walkman lecteur de disquettes.
  126. Un répéteur wifi pour augmenter la portée de votre réseau.
  127. Un piège avec des rayons laser.
  128. Alimenter le Raspberry Pi avec l’énergie solaire.
  129. Un thérémine pour faire de la musique avec votre corps.
  130. Un wikipedia offline.

Et si vous cherchez un moyen rapide et pas cher de faire un boitier de protection pour vos Raspberry Pi, pensez aux LEGO.

Bon, je pourrai continuer comme ça toute la journée, mais va bien falloir que je m’arrête. Je pense que vous avez déjà de quoi faire pour vous lancer dans de nouveaux projets avec votre Raspberry Pi !

Amusez-vous bien !

Article mis à jour le 21 septembre 2020.
Publication d’origine le 16 janvier 2013.


MacWay fête ses 30 ans et qui dit 30 ans dit JEU CONCOURS !

Le grand jeu anniversaire est disponible sur macway.com ! Tentez de remporter un MacBook Air jusqu’au 11 Octobre 2020 !
D’autres lots sont également mis en jeu, avec notamment une trottinette Force Moov , un casque Bose QuietComfort 35.
Bonne nouvelle : il n’y a pas de perdant, puisque chaque participant recevra un bon d’achat de 10€ !
Tirage au sort le 12 Octobre 2020.

En Savoir +