Sécurité des systèmes d’information clé des infrastructures : point de confiance

Boîte de Pandore

Le ver Stuxnet est le premier exemple de cyber-arme dont l’utilisation a été connue du grand public. Les auteurs de Stuxnet ont ouvert une boîte de Pandore en montrant au monde entier à quel point des attaques contre des infrastructures clés pouvaient être efficaces. Désormais, même un écolier peut aisément imaginer les conséquences d’une attaque destructrice contre des infrastructures dans les secteurs énergétiques, industriels et financiers.

La découverte de Stuxnet a été suivie par la découverte de quelques-uns de ses congénères : Duqu, Flame et Gauss. Ces programmes partagent certains traits, mais ils se distinguent au niveau de leur cible, de leur fonction et de la période où ils ont été créés. Malheureusement, il ne s’agit pas là des seuls exemplaires de cyber-espion ou de cyber-saboteur connus. Le cyber-armement est une notion bien réelle qui figure dans l’arsenal de certains pays. Jusqu’à présent, les Etats qui devaient protéger leurs intérêts en politique étrangère recouraient aux pressions diplomatiques, économiques ou militaires. De nos jours, pour atteindre ces mêmes objectifs, de nombreux Etats ont troqué avions, missiles ou bateaux contre des programmes malveillants. En cas de réussite, ce genre d’attaque permet d’obtenir l’effet désiré, mais à un coût bien inférieur, de manière plus discrète et préférablement anonyme. L’incident récent qui a impliqué Wiper a confirmé une nouvelle fois l’efficacité de la méthode.

Les grandes puissances débattent déjà ouvertement non seulement de la nécessité d’une défense contre les actions hostiles dans le cyberespace, mais aussi des plans de développement de leur cyber-armement. Ces propos déclenchent une réaction en chaîne et poussent les autres pays à recruter des équipes de programmeurs et de pirates hautement qualifiés afin de mettre en place un cyber-arsenal, tant au niveau offensif que défensif. La course aux cyber-armes s’accélère.

Aujourd’hui, l’Etat qui souhaite préserver sa souveraineté doit non seulement protéger ses intérêts socio-économiques et politiques, mais il doit également veiller scrupuleusement sur son espace d’information. Désormais, la priorité revient à la tâche du contrôle des systèmes d’information qui remplissent un rôle critique pour l’Etat.

Anatomie d’une attaque

Les cibles les plus exposées à une cyber-attaque sont avant tout les systèmes d’information clés qui interviennent dans l’administration d’infrastructures critiques. La mise hors service de telles infrastructures peut entraîner le chaos et des catastrophes. Notre vie quotidienne dépend d’une manière ou d’une autre de ces systèmes. Ils permettent de chauffer nos maisons, ils gèrent les circuits de distribution d’eau et d’électricité, ils assurent la diffusion des ondes radio, ils gèrent les flux de circulation et contrôlent l’extraction des matières premières et les processus industriels dans les usines.

Outre les sites industriels, il existe de nombreuses organisations pour lesquelles l’accès non autorisé aux données pourrait poser de sérieux problèmes : les banques, les institutions médicales et militaires, les centres d’étude et les entreprises. Ces organisations peuvent également être la cible de cyber-attaques, mais dans le cadre de cet article, nous allons nous consacrer uniquement à la protection des infrastructures industrielles.

L’administration des divers éléments qui composent un système d’information clé s’opère à l’aide d’une application ou l’autre qui ne sont malheureusement pas dépourvues d’erreurs et de vulnérabilités. Selon une étude réalisée par l’université Carnegy-Mellon, il existerait en moyenne 5 à 10 erreurs sur 1 000 lignes de code dans les applications à usage industriel ou militaire. On parle ici d’applications utilisées dans la pratique et qui ont déjà franchi les étapes des essais et du déploiement. Quand on sait que le noyau du système d’exploitation Windows contient plus de 5 millions de lignes de code et que Linux en compte 3,5 millions, il n’est guère compliqué de calculer le nombre théorique de vulnérabilités qui pourraient être exploitées dans le cadre d’une cyber-attaques.

Pour que la cyber-attaque soit efficace, il est primordial que ses auteurs maîtrisent l’organisation interne de l’infrastructure attaquée. C’est la raison pour laquelle ces attaques se déroulent généralement en plusieurs étapes.

La première étape correspond à la reconnaissance. Elle porte sur la collecte d’informations relatives à la composition interne du réseau, aux matériels et logiciels utilisés. Les individus malintentionnés veulent tout connaître de leurs particularités et de leurs caractéristiques. Lors de cette étape, ce n’est pas la cible finale qui est attaquée, mais bien les sous-traitants chargés de l’automatisation (intégrateurs de système) car ils sont moins pointilleux au niveau de la sécurité des informations, même s’ils détiennent des informations de valeur. De plus ces sociétés sont autorisées à accéder au réseau technologique cible, ce que les individus malintentionnés peuvent exploiter lors des étapes ultérieures de l’attaque. Les attaques dans le cadre de la collecte d’informations peuvent également toucher des sociétés de service, des partenaires ou des fournisseurs d’équipement.

Lors de la deuxième étape, les données récoltées font l’objet d’une analyse minutieuse et le vecteur d’attaque le plus efficace est choisi. C’est ce qui détermine d’un côté les vulnérabilités dans le code qui vont être exploitées pour s’introduire dans le système et de l’autre, les fonctions que doit posséder le code malveillant pour atteindre la cible requise. Vient ensuite la création du programme malveillant avec la « charge utile ».

Ensuite, dans la mesure du possible, des logiciels et du matériel semblables à ceux qui vont être attaqués sont achetés dans le but de créer un environnement d’essai pour le programme malveillant.

Enfin, il faut choisir le mode d’insertion du code malveillant dans l’infrastructure. Ici, la gamme va des méthodes relativement simples d’ingénierie sociale jusqu’aux méthodes technologiquement plus complexe d’insertion via des canaux de communication protégés. Comme l’a démontré l’attaque par collision sur MD5, la volonté, la persévérance et les ressources suffisantes permettent d’obtenir beaucoup de choses.

Spécificité de l’automatisation industrielle

Il existe deux problèmes graves dans le domaine de la sécurité des systèmes d’information clés des infrastructures. Il s’agit d’une part des lacunes des modèles de sécurité développés pour les systèmes industriels et d’autre part, du nombre réduit d’environnements dans lesquels ces modèles sont appliqués.

Jusqu’il y a peu, l’idée généralement admise dans le cadre de la création d’un modèle de sécurité des informations d’infrastructures industrielles critiques était que l’isolation physique de l’élément suffisait pour le protéger. En général, le modèle de sécurité de ces objets repose sur les principes de la « Sécurité par l’obscurité » et de l’« isolement physique ». Toutefois, l’épisode Stuxnet a démontré que ces principes ne fonctionnent plus et que cette tactique de sécurité est vraiment obsolète.

Sur les sites industriels, les systèmes d’information clés englobent les systèmes d’automatisation industrielle et les systèmes anti-erreurs. La sécurité de l’ensemble du site dépend du fonctionnement correct et stable de ces systèmes.

L’automatisation industrielle se caractérise par une hétérogénéité très marquée au niveau du matériel et des logiciels. Ainsi, dans le réseau technologique typique d’une entreprise, on retrouvera des serveurs SCADA tournant sous Windows ou Linux, des serveurs SGBD (SQL Server ou Oracle), de nombreux contrôleurs à logique programmable (PLC) de différents fabricants, des interfaces homme-machine, des capteurs intelligents et des canaux de liaisons avec le système ERP. Qui plus est, d’après les résultats des dernières études DHS, un réseau technologique compte en moyenne 11 (!) points de connexion directe au réseau de l’entreprise.

Les caractéristiques d’un système d’automatisation industrielle sont définies par de nombreux facteurs tels que l’expérience des experts de l’intégrateur système qui réalisent le déploiement, leur représentation de la viabilité économique des méthodes de protection et les tendances actuelles dans le domaine de l’automatisation, etc.

Dans la grande majorité des cas, la protection du système d’automatisation industrielle ne figure pas en tête des priorités de l’intégrateur de systèmes. Bien sûr, de tels ensembles matériel et logiciel sont soumis à une homologation, mais en général cette homologation n’est qu’une pure formalité administrative.

Problématique des vulnérabilités

Au moment d’évaluer la vulnérabilité d’un système d’automatisation industrielle, il est impossible d’ignorer la longue durée de vie de tels systèmes, en général des dizaines d’années. Pourtant, à la mi-2000, l’expression « vulnérabilité dans l’application » n’existait pas encore et ces problèmes de sécurité n’étaient tout simplement pas pris en compte pendant le développement. La majorité des systèmes automatisés de gestion des processus technologiques employés à l’heure actuelle dans l’industrie ont été créés sans tenir compte du risque de cyber-attaque. Ainsi, la plupart des protocoles d’échange de données utilisés par SCADA et les contrôleurs à logique programmable ne prévoient aucun type d’authentification ou d’autorisation. Autrement dit, le moindre périphérique qui apparaît sur le réseau technologique peut envoyer des commandes de gestion à n’importe quel autre périphérique ou en recevoir.

L’autre problème sérieux est lié à la durée du cycle de vie tellement d’un système d’automatisation industrielle : la mise à jour ou l’installation d’une nouvelle application dans le système est soit interdite par la documentation, soit elles sont accompagnées de difficultés d’administration et technologiques considérables. Pendant de nombreuses années, l’actualisation des applications des systèmes d’automatisation industrielle n’a pas été à l’ordre du jour. Malheureusement, le volume d’informations en accès libre relatives aux vulnérabilités des contrôleurs et des systèmes SCADA, aux vulnérabilités du système d’exploitation, du SGBD, voire des capteurs intelligents est assez important.

Les sociétés qui développent SCADA et les contrôleurs à logique programmable ne contribuent pas à l’amélioration de la situation. Les archives d’ICS-CERT illustrent clairement le fait que les éditeurs n’accordent pas l’attention requise à la sécurité de leurs solutions, qu’elles soient matérielles ou logicielles. Nom d’utilisateur et mot de passe ou clés SSH et SSL intégrés au contrôleur logique programmable, possibilité d’attaquer le système par débordement de tampon, possibilité de remplacer les composants du système par des composants malveillants et réalisation d’attaques DoS et XSS, voilà les vulnérabilités les plus souvent détectées chez eux.

De plus, la majorité des éditeurs intègre à leur ensemble logiciel et matériel des outils pour l’administration à distance, mais la configuration de ces outils revient aux intégrateurs. Bien souvent, les intégrateurs ne font pas attention à ces paramètres, ce qui signifie que les systèmes d’automatisation industrielle sont accessibles via Internet à l’aide des noms d’utilisateur et des mots de passe par défaut. Il existe des moteurs de recherche spécialisés dans la détection de périphériques accessibles à l’aide des données d’identification par défaut ou dépourvus d’une telle procédure d’identification. Une fois doté de ces informations, le premier venu peut administrer le système à distance.

Sur la base de ce qui précède, nous pouvons affirmer que les composants des systèmes d’automatisation industrielle modernes peuvent être endommagés ou infectés, avoir des dysfonctionnements et entraîner la mise hors service de l’équipement, fournir de mauvaises informations à l’opérateur et l’amener à prendre de mauvaises décisions, ce qui pourrait entraîner une défaillance.
Bien entendu, chaque objet est doté de systèmes anti-erreurs. Toutefois, ces systèmes sont prévus pour éviter des pannes provoquées par des facteurs accidentels. Ils sont totalement inutiles contre une attaque ciblée et coordonnée.

Qui plus est, au nom de la rentabilité économique, la production des systèmes anti-erreurs est répartie entre plusieurs intervenants. Et chacun de ceux-ci a la possibilité d’introduire une fonctionnalité cachée à plusieurs niveaux, depuis l’application administrée jusqu’à la puce du processeur.

Il fut un temps où les fabricants d’équipements industriels et d’applications se concentraient sur la stabilité et la résistance de leurs solutions. Jusqu’il y a peu, cette démarche était tout à fait justifiée mais il est temps désormais de se pencher sérieusement sur la sécurité des informations et d’impliquer des sociétés spécialisées.

Le monde se trouve donc dans une situation où certains pays disposent déjà d’un cyber-armement tandis que les systèmes d’information clés d’autres Etats sont exposés aux attaques. En fonction du niveau de développement des technologies de l’information dans un pays et du degré d’automatisation d’un site industriel en particulier, l’attaque sera plus ou moins facile à organiser, mais elle sera possible.

Point de confiance

Aujourd’hui, il est temps de développer des solutions capables de protéger efficacement les sites industriels critiques et autres infrastructures ainsi que les organisations pour lesquelles la fuite d’informations est une question sensible. Quelle que soit l’efficacité de telles solutions, si les systèmes d’automatisation industrielle intègrent des systèmes d’exploitation et des applications vulnérables, les éditeurs de solutions de protection ne pourront pas garantir la sécurité du système. Et de telles garanties sont indispensables lorsqu’il s’agit d’infrastructures critiques.

Il ne faut pas compter sur le fait que tous les développeurs de systèmes d’automatisation industrielle vont se consacrer en urgence à la vérification et à la mise à jour du logiciel qu’ils utilisent et que les chefs d’entreprises vont actualiser toutes les solutions qu’ils utilisent déjà. Et quand on sait que le cycle de vie de tels systèmes se mesure en dizaines d’années, il est clair que l’introduction de systèmes d’automatisation industrielle protégés au fur et à mesure que les anciens systèmes arrivent en fin de vie prendrait trop de temps.
Ceci étant dit, la résolution globale de la problématique des vulnérabilités n’est pas la seule solution possible pour garantir la sécurité du fonctionnement des sites industriels.

Pourquoi l’existence d’une application vulnérable est-elle dangereuse ? Une vulnérabilité est une faille qui peut être exploitée pour introduire des programmes malveillants. N’importe quel composant du système d’automatisation industrielle peut être infecté. Et le composant infecté peut exécuter des actions malveillantes dans le réseau technologique qui entraîneront une catastrophe tandis que l’opérateur recevra des informations incorrectes.

Dans la situation actuelle, l’opérateur d’un système critique est amené à gérer des processus techniques sans avoir aucune garantie sur l’exactitude des informations qui interviennent dans ses prises de décision. Il s’agit d’un des problèmes clé de la sécurité des systèmes car le prix d’une erreur dans de telles infrastructures est incalculable.

Pour garantir le fonctionnement sûr d’un site industriel, il est primordial que l’opérateur reçoive des informations fiables pour pouvoir gérer la production. Cela permet d’éviter les erreurs de gestion et d’arrêter, le cas échéant, la production avant que la panne ne se produise.

Pour l’instant, il n’existe aucun système d’exploitation ou application qui pourraient être utilisé dans un milieu industriel et dont les informations pourraient être utilisées en toute confiance. Et cela ne nous laisse guère d’autres choix que de développer de tels outils de manière indépendante.

Le système d’exploitation est l’élément de base pour garantir la sécurité. Nous estimons que c’est précisément le système d’exploitation qu’il faut utiliser pour contrôler les informations qui circulent sur le réseau industriel. Cela garantirait l’exactitude et la fiabilité des données et éliminerait le risque de la présence d’une composante malveillante.

Système d’exploitation sûr

Quelles doivent être les caractéristiques d’un environnement le plus sûr pour le contrôle de l’infrastructure d’information ?

  • Le système d’exploitation ne peut pas reposer sur un code qui existe déjà. C’est la raison pour laquelle il doit être développé à partir de zéro.
  • Pour garantir la sécurité, ce système d’exploitation ne doit contenir aucune erreur, ni aucune vulnérabilité dans le noyau qui contrôle les autres modules du système. Par conséquent, le noyau doit être vérifié à l’aide d’outils qui n’acceptent pas l’existence de vulnérabilités et de code ambigu.
  • Pour cette raison, le noyau doit contenir un minimum de code, ce qui signifie que le volume de code maximum possible, y compris les pilotes, doit être contrôlé par le noyau et exécuté selon un niveau de privilèges faibles.
  • Enfin, cet environnement doit être doté d’un système de protection puissant et fiable comprenant différents modules de protection.

Par conséquent, nous développons notre propre système d’exploitation dont la principale caractéristique est l’impossibilité totale d’exécuter une fonctionnalité non déclarée.

Seul un système d’exploitation de ce genre peut garantir le développement d’une solution qui permet à l’opérateur non seulement de voir ce qui se passe réellement au niveau de la production, mais également de la gérer. Quel que soit l’éditeur de systèmes d’exploitation concrets, de SGBD, de SCADA ou de contrôleur à logique programmable, quel que soit leur niveau de protection ou la présence ou non de vulnérabilités. Et qui plus est, quel que soit leur niveau d’infection.

Il s’agit en réalité d’un système anti-erreurs intelligent de nouvelle génération. Un système de protection qui tient compte directement de tous les indicateurs de l’entreprise. Un système de protection qui empêche les pannes provoquées par une action incorrecte de l’opérateur, par une erreur dans l’application du système d’automatisation industrielle ou par une cyber-attaque. De plus, un tel système peut être renforcé par un système anti-erreurs traditionnel, ce qui permet de suivre des scénarios plus complexes.

Une telle solution doit être intégrée aux systèmes d’automatisation industrielle existants afin de les protéger et de garantir la fiabilité du contrôle ou de prise en compte lors de la projection de nouveaux systèmes d’automatisation, en garantissant dans les deux cas l’application de principes de sécurité modernes.

Conclusion

Le monde a changé. Les Etats développent activement leur cyber-armement, ce qui impose le développement de moyens de protection adéquats. Malgré le fait que les systèmes d’informations clés possèdent une importance exclusive, il n’existe actuellement aucun moyen capable de garantir leur protection.

Il est impossible de développer des modes de protection modernes et efficaces pour les systèmes d’informations critiques à l’aide des systèmes d’exploitation existants. La création d’un nouveau système d’exploitation pour tous les composants d’un système d’automatisation industrielle est une tâche très complexe qui va prendre du temps. Et la problématique de la sécurité des sites industriels requiert une solution immédiate.

C’est la raison pour laquelle il faut identifier les principaux problèmes au niveau de la sécurité des informations et les résoudre. Un de ces problèmes est lié au fait que les systèmes de sécurité des informations sur les sites industriels reposent sur des sources d’informations qui ne sont pas fiables. Tant que le réseau technologique ne contiendra pas un composant auquel l’opérateur ou un programme de contrôle pourra faire confiance, il sera impossible d’évoquer la création d’un système de sécurité. Il est indispensable de créer une telle « base de confiance » sur laquelle il sera possible de créer un système de sécurité de niveau supérieur. Cette base de confiance requiert au moins un système d’exploitation de confiance.

Nous développons le système d’exploitation sous lequel fonctionneront les composants du système de sécurité qui fournira des informations fiables à tous les composants du système d’automatisation industrielle. Ce système repose sur des principes fondamentaux dont le respect permet de garantir un fonctionnement à tout moment selon la volonté du développeur. Un fonctionnement en dehors de ce cadre de référence est impossible. L’architecture du système d’exploitation est telle que même si un de ses composants ou une application sont compromis, l’individu malintentionné ne pourra pas en prendre les commandes ou exécuter un code malveillant. Ainsi, ce système d’exploitation pourra être considéré comme fiable et il pourra servir de source d’informations fiables pour la construction d’un système de protection de niveau supérieur.

Posts similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *