Introduction Virtual Network Computing (VNC)

Transcription

Introduction Virtual Network Computing (VNC)
 PUBLICATION CPA-2011-102-R1 - Mai 2011
SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE
Par : François Tremblay, chargé de projet au Centre de production automatisée
Introduction
À l’instar des secteurs corporatif, commercial et financier, les entreprises manufacturières
utilisent de plus en plus les mécanismes de contrôle décentralisé leur donnant accès aux
systèmes de gestion et de contrôle de leurs lignes de production. Cela permet entre autres la
paramétrisation des procédés à partir des bureaux corporatifs, l’assistance et le dépannage
technique des lignes de production, la mise à niveau des systèmes de contrôle, la
transmission des signaux d’alarme, la commande de terminaux à distance (RTUs) et le suivi
en temps réel des opérations.
En l’absence de mesures de sécurité adéquates, établir une connection avec un système de
contrôle industriel c’est ouvrir une brèche qui pourra être rapidement détectée et exploitée par
un individu ou une organisation malveillante. Des logiciels automatiques surveillent de façon
continue le réseau Internet à la recherche de cibles faciles. Une entreprise n’a donc pas à être
directement visée pour devenir victime d’une intrusion frauduleuse. Pour s’en convaincre, il
suffit d’ouvrir un pare-feu en autorisant les ports permettant le contrôle à distance d’un
ordinateur pour que celui-ci commence à recevoir des tentatives de connexions de façon
régulière. Une fois la brèche détectée, une attaque ciblée pourra rapidement venir à bout des
barrières de protection si celles-ci sont insuffisantes. Parallèlement aux attaques volontaires,
une installation mal protégée sera plus sensible aux problèmes inhérents des réseaux
informatiques, comme la diminution de la bande passante et les conflits d’adressage.
Une porte d’entrée non sécurisée, donnant accès à un système de contrôle industriel, pose
non seulement une menace pour ce dernier, mais aussi pour l’ensemble du parc informatique
de l’entreprise. En effet, les échanges d’information entre le niveau corporatif et le plancher
d’opération sont de plus en plus fréquents. Alors que le réseau corporatif est généralement
bien sécurisé, son lien avec un réseau de contrôle faiblement protégé le rend vunérable. Pour
faire une analogie, c’est un peu comme un voleur qui s’introduit dans les bureaux corporatifs
en passant par la porte de service, alors que l’entrée principale est sous haute surveillance.
La présence de gardiens de sécurité et de dispositifs de contrôle d’identité est chose courante
aujourd’hui. La réglementation en matière de sécurité des travailleurs, la responsabilité légale,
la confiance des investisseurs et les exigences de rendement élevées nécessitent de plus en
plus que l’accès physique aux installations industrielles soit contrôlé. L’individu qui doit
accéder à un site doit confirmer son identité et disposer d’une autorisation d’accès en bonne et
due forme. Il est possible de procéder de la même manière pour authentifier les requêtes
d’accès aux réseaux industriels en utilisant des solutions logicielles adéquates.
Virtual Network Computing (VNC)
Le Virtual Network Computing est l’une des méthodes les plus utilisées pour établir des
échanges d’informations et des prises de contrôle sur des réseaux industriels. Plusieurs
logiciels sont disponibles sur le marché, souvent à des coûts minimes. La prise de contrôle
s’effectue par la transmission graphique de l’écran de l’ordinateur hôte vers l’ordinateur client,
et par la transmission des commandes du clavier et de la souris du client vers l’hôte.
Viewer
Serveur
Windows
Java
Windows
Mac
Dos
Mac
Connexion VNC
Unix
iOS
Unix
Linux
Android
Linux
C’est une méthode extrêmement simple qui est relativement indépendante de la plate-forme
utilisée. Par exemple, un client Windows pourra prendre le contrôle d’un serveur Unix, une
tablette électronique iPad fera de même avec un serveur Windows et un client OSX
communiquera aisément avec un serveur Linux. Le VNC permet aussi à plusieurs utilisateurs
de se brancher simultanément sur un même hôte, un avantage non négligeable lors d’une
opération de support assisté. De plus, la compatibilité entre les logiciels VNC de différentes
marques est excellente, ce qui permet de choisir l’outil qui offre les caractéristiques les mieux
adaptées à l’utilisation prévue. Cette solution s’avère très intéressante pour un manufacturier
devant supporter plusieurs clients qui utilisent des logiciels différents.
Cependant, la simplicité et la compatibilité des logiciels deviennent en quelque sorte une
faiblesse. Utilisés dans leur configuration par défaut, les serveurs VNC sont vulnérables aux
attaques. La plupart de ces outils proposent des méthodes de cryptage et d’authentification
évoluées. Mais cela ne les met pas totalement à l’abri des attaques. De plus, il arrive souvent
que les mécanismes de sécurité soient incompatibles lorsque des logiciels différents sont
utilisés par le client et l’hôte. Dans un tel cas, la connexion pourra s’effectuer sans problème
mais les données transmises ne bénéficieront d’aucune protection. L’utilisation courante des
ports standards par les logiciels VNC les rend également faciles à détecter sur les réseaux.
Heureusement, il est facile et efficace de combiner la performance des solutions VNC à des
mécanismes de protection de très haut niveau, les rendant pratiquement invulnérables aux
attaques. L’une des solutions les plus courantes consiste à encapsuler les échanges
d’information entre le client et l’hôte à l’intérieur d’un tunnel sécurisé.
L’encapsulation des communications (Tunneling)
En temps de guerre, lors de bombardements aériens, les populations ont souvent trouvé
refuge dans des galeries souterraines et des tunnels. Ceux-ci peuvent offrir une protection à
toute épreuve à des gens qui n’ont aucun moyen d’assurer leur protection autrement. Dans le
monde des communications, il est également possible de protéger des données vulnérables
contre les attaques externes en les dissimulant dans des tunnels informatiques. Ces tunnels
sont en fait des couches de cryptage rendant les données totalement inexploitables à toute
personne n’ayant pas les autorisations requises ou les clés pour les décoder.
Tunnel
Client VNC
Données encryptées
Serveur VNC
L’avantage de cette méthode est qu’elle offre une protection de haut niveau à des applications
variées ne possédant pas les ressources de sécurité suffisantes. Par exemple, une liaison
VNC non sécurisée peut être totalement protégée en la faisant circuler à l’intérieur d’un de ces
tunnels. En réalité, toute communication peut être transmise à l’intérieur d’un tunnel, peu
importe les logiciels utilisés pour établir cette communication. Le déploiement de cette sécurité
est donc simplifié, car il n’exige pas de choisir et de configurer une variété d’applications et de
services de communication. Il suffit de construire un tunnel sécuritaire et d’y faire circuler
l’information désirée.
Le tunnel Secure Socket Layer (SSL)
Le tunnel SSL est largement employé pour encrypter les échanges de données sur Internet.
Ce protocole est utilisé entre autres pour l’envoi de courriers électroniques, les transactions
bancaires, les achats en ligne et la communication VoIP. Le tunnel SSL utilise un mécanisme
d’authentification du serveur par le biais de certificats approuvés par une autorité compétente
et reconnue. C’est le même processus que de présenter une pièce d’identité émise par un
organisme gouvernemental, un passeport ou un permis de conduire par exemple, à un agent
qui en fait la demande. De plus, cette authentification peut se faire dans les deux sens. Par
exemple, après avoir remis notre pièce d’indentification à l’agent, nous pourrions, à notre tour,
vérifier son identité. Dans la pratique, cela se fait de manière intuitive, l’agent étant lui-même
identifié par son insigne, son habit ou son véhicule. Dans les communications informatiques, la
double identification permet de protéger à la fois le client et le serveur. Une fois le processus
d’identification complété, des clés de cryptage sont échangées et la communication sécurisée
débute.
Le tunnel Secure Shell (SSH)
Alors que, par définition, le tunnel SSL est utilisé pour protéger des données transportées sur
un réseau public, le tunnel SSH est particulièrement adapté à la prise de contrôle d’un
ordinateur hôte distant. En plus de la prise de contrôle simple, ce mode de sécurisation offre
une variété d’outils permettant la gestion complète de l’hôte. Par exemple, il sera possible de
monter, sur l’ordinateur client, un lecteur physique appartenant à l’ordinateur hôte. De la même
manière, tout port de communication appartenant à l’hôte pourra être redirigé vers l’ordinateur
client, rendant le premier invisible sur le réseau public. En d’autres mots, aucun port public ne
sera ouvert sur l’hôte et celui-ci ne pourra accepter aucune demande de connexion autre que
celle faite par le client autorisé. Comme pour le tunnel SSL, le tunnel SSH utilise des clés de
cryptage. Par contre, le dispositif d’authentification est simplifié, ne nécessitant pas l’utilisation
de certificats approuvés.
Un exemple de connexion sécurisée SSH
Le schéma de la page suivante propose un exemple de connexion sécurisée pour la prise de
contrôle d’un ordinateur hôte distant à travers un tunnel SSH. L’ordinateur hôte, aussi appelé
serveur, utilise un logiciel VNC autorisant sa prise de contrôle par l’ordinateur client. Avant
d’établir la connexion entre le client et le serveur, un tunnel sécurisé SSH a été mis en place.
Ce tunnel est établi sur le port 22. C’est le port par défaut pour les connexions SSH mais tout
autre port non utilisé pourrait convenir. En fait, l’utilisation d’un port différent augmente encore
le niveau de sécurité, car la plupart des demandes de connexions frauduleuses se font sur les
ports par défaut. Notons que, dans cet exemple, le port utilisé pour le tunnel SSH est le seul
qui est ouvert au domaine public.
La protection est assurée en redirigeant le port standard de communication VNC du serveur, le
port 5900, vers le client à travers le tunnel sécurisé, par l’entremise du serveur virtuel local,
localisé à l’adresse 127.0.0.1. Le serveur VNC est configuré pour n’écouter que les demandes
de connexion internes et aucune connexion venant de l’extérieur ne pourra être acceptée. En
termes plus simples, c’est comme si les deux ordinateurs n’étaient en fait qu’un seul et même
système, le tunnel les reliant virtuellement de façon sécuritaire.
Client VNC
Serveur VNC
Port 5900
Port 5900
Port 22
Port 22
Tunnel sécurisé HSS
Serveur local
127.0.0.1
Carte réseau
192.168.0.5
Données encryptées
Carte réseau
192.168.0.10
Serveur local
127.0.0.1
La passerelle sécurisée
Il arrive souvent qu’il soit nécessaire pour un client à distance de se brancher à plusieurs
ordinateurs raccordés à un réseau industriel. Cela pose un problème dans la mesure où
chacun des ordinateurs hôtes, une interface opérateur ou une console de programmation par
exemple, devra être configuré en fonction du niveau de sécurité requis. La tâche peut
rapidement devenir gigantesque, sans compter que cela entraîne beaucoup de problèmes
lorsque les systèmes de contrôle sont mis à jour ou modifiés. Souvent, les interfaces
d’opération et les stations de programmation d’une même ligne de production peuvent provenir
de manufacturiers ou d’intégrateurs différents. Dans un tel scénario, coordonner les mesures
de sécurisation du système entier devient rapidement un casse-tête.
Une solution valable sera de prendre le contrôle d’un ordinateur principal, lui-même sécurisé
par un tunnel SSH. Cet ordinateur sera configuré à la fois en tant que client pour le réseau
local (LAN) et serveur pour le réseau externe (WAN). Une fois la prise de contrôle effectuée,
l’utilisateur distant pourra prendre le contrôle d’un autre ordinateur situé sur le réseau interne
par l’entremise d’une seconde connexion VNC. Bien que simple et efficace, cette solution pose
un problème, car elle n’autorise qu’un seul client externe à la fois. De plus, l’ordinateur
principal devient inutilisable durant la prise de contrôle.
Une solution mieux adaptée, et aussi plus sécuritaire, consiste à utiliser une passerelle dédiée
qui servira de porte d’entrée au réseau industriel. Cette passerelle sera responsable de vérifier
l’identité des clients demandant un accès, de même que d’établir les tunnels sécurisés SSH.
Elle redirigera ensuite les communications vers le client approprié se trouvant sur le réseau
industriel interne. La passerelle peut être mise en place par l’entremise d’un ordinateur ou d’un
routeur spécialisé. Lorsqu’elle est déployée à partir d’un ordinateur, la passerelle offre des
outils supplémentaires permettant une meilleure gestion des accès. Par exemple, un script
peut être utilisé pour demander à un administrateur d’autoriser chaque requête. Un autre script
peut limiter le temps d’accès et fermer automatiquement les ports après un temps fixe ou une
période d’inactivité. Enfin, cette passerelle offre des outils d’archivage et d’analyse des accès.
Web
Production
Client 1
Client 2
Support
technique
Corporatif
Passerelle
Redirection des connexions
Support SSH
Client 3
Tunnel sécurisé
Station à
distance
Client 4
Client 5
Ingénierie
Gestion des
commandes
Hôte 1
Hôte 2
Contrôleurs
PLC
Interface
HMI
Les avantages d’utiliser une passerelle sécurisée sont énormes. La configuration s’effectue en
un seul point. La passerelle peut être localisée dans une pièce à accès contrôlé. Elle n’est pas
influencée par les mises à jour sur les systèmes de contrôle et est beaucoup moins soumises
aux aléas des failles des systèmes d’exploitation.
Conclusion
Beaucoup d’industries refusent d’autoriser l’accès à leurs systèmes de contrôle depuis
l’extérieur, par crainte d’intrusion frauduleuse sur les réseaux, se privant ainsi des avantages
énormes qu’offrent le contrôle et le dépannage à distance. À l’opposé, un grand nombre
d’entreprises ouvrent leurs portes toutes grandes aux intrus, leur donnant plein accès à leurs
systèmes de production. La solution idéale, différente pour chaque entreprise, se situe quelque
part entre ces deux extrêmes. Chaque jour, des milliards et des milliards de dollars sont
échangés de façon sécuritaire à travers un réseau mondial incroyablement complexe. En
utilisant les mêmes méthodes de protection que celles utilisées lors de ces échanges, il est
tout à fait possible de profiter des avantages que procure l’accès à distance des systèmes de
contrôle industriel, sans pour autant compromettre la sécurité et l’intégrité du parc
informatique.
François Tremblay, Chargé de projets
Centre de production automatisée - Bureau de Québec
215 rue Caron, Québec, G1K 5V6
Téléphone: (418) 525-8737 Poste 236
Télécopieur: (418) 525-4007
Courriel: [email protected]
Site Web: www.SolutionCPA.com