<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simon Eudeline, Auteur</title>
	<atom:link href="https://www.riskinsight-wavestone.com/author/simon-eudeline/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com</link>
	<description>Le blog cybersécurité des consultants Wavestone</description>
	<lastBuildDate>Mon, 11 Sep 2023 15:11:38 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/Blogs-2024_RI-39x39.png</url>
	<title>Simon Eudeline, Auteur</title>
	<link>https://www.riskinsight-wavestone.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Un regard sur OPC UA, un protocole industriel moderne et émergent</title>
		<link>https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/#respond</comments>
		
		<dc:creator><![CDATA[Simon Eudeline]]></dc:creator>
		<pubDate>Mon, 11 Sep 2023 15:11:36 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21179</guid>

					<description><![CDATA[<p>Intro L’émergence de l’industrie 4.0 se caractérise par la numérisation de l’industrie et une plus grande interconnexion entre les différentes machines qui composent un SI (Système d’Information) industriel. Cependant, cette croissance des communications au sein des SI industriels engendre également...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/">Un regard sur OPC UA, un protocole industriel moderne et émergent</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1>Intro</h1>
<p>L’émergence de l’industrie 4.0 se caractérise par la numérisation de l’industrie et une plus grande interconnexion entre les différentes machines qui composent un SI (Système d’Information) industriel. Cependant, cette croissance des communications au sein des SI industriels engendre également une augmentation de leur surface d’attaque. De plus, les protocoles historiquement utilisés au sein de ces SI (comme Modbus), n’offrent que très peu, voire aucun mécanisme de sécurité. Certains de ces protocoles étaient également propriétaires ce qui pouvait poser des problèmes d’interopérabilités entre les différentes machines du SI.</p>
<p>Le standard OPC UA a été créé en 2008 par la fondation OPC pour répondre à ces problématiques, en proposant une uniformisation des communications entre les machines des SI industriels, et en intégrant de nombreux mécanismes pour garantir la sécurité de ces communications.</p>
<p> </p>
<h1>Le standard OPC UA</h1>
<p>Le standard OPC UA est un standard de communication open-source, qui a été conçu pour être multiplateforme. Il peut être implémenté sur tout type de composant, quel que ce soit son système d’exploitation.</p>
<p style="text-align: center;"><img fetchpriority="high" decoding="async" class="alignnone  wp-image-21204 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0.jpg" alt="" width="842" height="470" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0.jpg 1600w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-342x191.jpg 342w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-71x39.jpg 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-768x429.jpg 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-1536x858.jpg 1536w" sizes="(max-width: 842px) 100vw, 842px" /><em>Communications permises par OPC UA </em>(Source : <a href="https://opcconnect.opcfoundation.org/wp-content/uploads/2021/09/OPC-UA-for-Field-in-FA-and-PA.jpg">site web</a> de la OPC Foundation)</p>
<p>Le standard propose deux types d’architectures, pouvant être utilisées de manière complémentaire :</p>
<ul>
<li>L’architecture client-serveur : c’est l’architecture la plus utilisée. Elle est composée d’éléments matériels et/ou logiciels qui contiennent des données, de serveurs OPC UA qui mettent à disposition ces données ou des services, ainsi que de clients OPC UA qui peuvent interagir avec les serveurs pour utiliser leurs services ou accéder à leurs données.</li>
<li>L’architecture PubSub : elle peut être est utile lorsque le volume de données échangées commence à devenir important. Elle est composée de Publishers qui émettent des messages, et de Subscribers, qui reçoivent ces messages par le biais d’un Message Oriented Middleware (MOM).</li>
</ul>
<p> </p>
<h1>Sécurité de l’architecture client-serveur</h1>
<p>L’architecture client-serveur étant de loin la plus utilisée, nous allons à présent nous pencher plus en détail sur les mécanismes de sécurité proposés par le standard OPC UA dans ce type d’architecture.</p>
<p>Tout d’abord, trois niveaux de sécurité dont disponibles concernant le chiffrement des communications entre un client et un serveur OPC UA :</p>
<ul>
<li><em>None </em>: les messages sont envoyés en clair, sans aucune protection</li>
<li><em>Sign </em>: les messages sont signés. Cela protège l’intégrité des données transmises, mais pas leur confidentialité</li>
<li><em>SignAndEncrypt </em>: les messages sont signés et chiffrés. Dans ce cas, la confidentialité des messages est également protégée</li>
</ul>
<p>Pour mettre en place ce chiffrement, le client et le serveur disposent chacun d’un certificat X.509 et d’une clé privée associée, qu’ils utilisent pour s’échanger une clé de session de manière chiffrée. Ils peuvent ensuite utiliser cette clé de session pour chiffrer la suite des échanges avec des algorithmes de chiffrement symétriques.</p>
<p>Plusieurs niveaux de sécurité concernant l’authentification des utilisateurs sont également disponibles. Pour s’authentifier, les clients envoient aux serveurs des jetons appelés <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41"><em>UserIdentityTokens</em></a>, qui contiennent les informations nécessaires à l’authentification. Il existe plusieurs types de <em>UserIdentityToken</em>, et c’est le serveur qui choisit quels types il accepte :</p>
<ul>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.3"><em>AnonymousIdentityToken</em></a> : ce jeton ne contient aucune information particulière. Si le serveur l’accepte, il authentifie l’utilisateur en tant qu’utilisateur anonyme</li>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.4"><em>UserNameIdentityToken</em></a> : ce jeton contient un nom d’utilisateur et un mot de passe. Si ces derniers sont valides, l’utilisateur est authentifié et dispose ensuite du profil et des droits associés à son nom d’utilisateur</li>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.5"><em>X509IdentityToken</em></a> : ce jeton contient un certificat X.509. Si le serveur a enregistré ce certificat, l’utilisateur est authentifié et dispose ensuite d’un profil et des droits associés au certificat</li>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.6"><em>IssuedIdentityToken</em></a> : ce jeton encapsule un jeton d’accès fourni par un service tiers de gestion des accès, comme un serveur OAuth2 par exemple</li>
</ul>
<p>Enfin, une fois authentifié, l’utilisateur a accès aux nœuds du serveur. Ci-dessous, un exemple de nœuds qui pourraient être rencontrés sur un serveur OPC UA :</p>
<p>  <img decoding="async" class=" wp-image-21219 alignleft" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1.png" alt="" width="255" height="390" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1.png 227w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1-125x191.png 125w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1-26x39.png 26w" sizes="(max-width: 255px) 100vw, 255px" /><img decoding="async" class=" wp-image-21221 alignright" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2.png" alt="" width="451" height="390" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2.png 450w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2-221x191.png 221w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2-45x39.png 45w" sizes="(max-width: 451px) 100vw, 451px" />                    </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p style="text-align: center;"><em>Nœuds d’un serveur OPC UA</em></p>
<p>Un contrôle d’accès peut être mis en place pour restreindre l’accès à certains nœuds aux utilisateurs à haut privilège (administrateurs, …), ou bien pour exiger que le canal de communication soit chiffré pour accéder à certains nœuds sensibles. La figure ci-dessous récapitule comme la gestion de l’accès à un nœud se déroule :</p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-21224 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3.png" alt="" width="457" height="227" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3.png 457w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3-385x191.png 385w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3-71x35.png 71w" sizes="auto, (max-width: 457px) 100vw, 457px" /></p>
<p style="text-align: center;"><em>Représentation de la gestion des permissions extraite du chapitre 2 des spécifications OPC UA</em></p>
<p> </p>
<h1>Outillage d’audit OPC UA</h1>
<p>Les outils publics existants pour faciliter l’audit d’applications OPC UA sont très peu nombreux. Un des plus connus est le module Metasploit appelé « <a href="https://github.com/COMSYS/msf-opcua">msf-opcua </a>».</p>
<p>Ce module est composé de trois scripts :</p>
<ul>
<li><em>opcua_hello</em> : permet d’envoyer un « Hello Message » à une liste d’adresses IPs, pour un port donné, afin de détecter la présence de serveurs OPC UA parmi cette liste</li>
<li><em>opcua_server_config</em> : ce script s’utilise avec pour prérequis un accès authentifié à un serveur OPC UA. Si cette condition est remplie, ce script permet de récupérer des informations sur la configuration des points d’accès du serveur (chiffrement, authentification…)</li>
<li><em>opcua_login </em>: permet d’effectuer une attaque par dictionnaire sur un serveur utilisant une authentification par nom d’utilisateur et mot de passe</li>
</ul>
<p>Bien que fournissant des premiers éléments utiles pour effectuer un audit, cet outil comporte tout de même quelques limites. Par exemple, il n’est pas possible de scanner plusieurs ports à la fois avec le script opcua_hello. Autre exemple, le script opcua_server_config requiert une authentification pour récupérer certaines informations de configuration alors que ces dernières sont en réalité disponibles sans authentification.</p>
<p>C’est pourquoi Wavestone a décidé de proposer une amélioration de cet outil. Il a été décidé de ne plus utiliser le framework Metasploit, qui imposait trop de contraintes et l’outil prend à présent la forme d’un script Python indépendant, renommé « opcua_scan ». Il s’appuie sur la bibliothèque <a href="https://github.com/FreeOpcUa/opcua-asyncio">opcua-asyncio</a> contrairement au module msf-opcua qui utilise la librairie <a href="https://github.com/FreeOpcUa/python-opcua">python-opcua</a> déclarée comme dépréciée par ses auteurs.</p>
<p>L’outil est accessible via ce <a href="https://github.com/wavestone-cdt/opcua-scan">lien</a>, et met à disposition deux commandes : « hello » et « server_config », qui reprennent les fonctionnalités des scripts opcua_hello et opcua_server_config du module msf-opcua. Le script opcua_login n’a pas été repris, car il n’a pas fait l’objet d’amélioration et peut être utilisé directement.</p>
<p> </p>
<h2>La commande hello</h2>
<p>Cette commande s’utilise pour détecter les applications OPC UA dans un réseau. Elle permet d’envoyer des « Hello Message » à une liste d’adresses IP, sur une liste de ports donnée, et d’en déduire la présence ou l’absence de serveurs OPC UA sur les cibles. Ensuite, le service <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/5.4.2"><em>FindServers</em></a>, supposé être implémenté par tout serveur OPC UA, est utilisé pour récupérer l’<a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.2"><em>ApplicationDescription</em></a> du serveur (et des autres applications OPC UA connues par le serveur). Cet objet contient des informations utiles, comme le <em>productUri</em>, qui donne des renseignements sur le logiciel ou la bibliothèque utilisée pour faire fonctionner le serveur détecté, ou encore les <em>discoveryUrls</em>, qui indique les URL vers les <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/3.1.3"><em>DiscoveryEndpoints</em></a> du serveur. Ces endpoints peuvent être utilisés par la commande server_config pour récupérer davantage d’informations sur la configuration du serveur.</p>
<p>Plusieurs options ont été ajoutées à la commande, comme la configuration du timeout pour considérer une connexion à un serveur comme échouée ou la possibilité de récupérer la liste des serveurs détectés dans un fichier de sortie JSON.</p>
<p>Voilà comment la commande hello pourrait s’utiliser en pratique :</p>
<pre><span style="color: #000000;">$ python opcua_scan.py hello -i &lt;IPs&gt; -p &lt;ports&gt; -o hello_output.json</span></pre>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="alignnone  wp-image-21226" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4.png" alt="" width="639" height="340" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4.png 789w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4-359x191.png 359w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4-768x409.png 768w" sizes="auto, (max-width: 639px) 100vw, 639px" /><br />Exemple de résultats générés par la commande hello</em></p>
<p>Et la capture d’écran ci-dessous montre un extrait du fichier JSON généré :</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="wp-image-21228 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5.png" alt="" width="639" height="227" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5.png 724w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5-437x155.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5-71x25.png 71w" sizes="auto, (max-width: 639px) 100vw, 639px" /><em>Extrait d’un fichier de sortie généré par la commande hello</em></p>
<p>La documentation complète de la commande hello et de toutes ses options est disponible <a href="https://github.com/wavestone-cdt/opcua-scan/blob/main/README.md#hello-command-discovery">ici</a>.</p>
<h2>La commande server_config</h2>
<p>Grâce aux <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/3.1.3"><em>DiscoveryEndpoints</em></a> récupérés avec la commande hello, nous avons à présent accès à l’ensemble du <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/5.4"><em>Discovery Service Set</em></a> du serveur. Aucune authentification ni mécanisme de chiffrement n’est nécessaire pour utiliser ces services. Parmi ces services, celui appelé <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/5.4.4"><em>GetEndpoints</em></a> peut être utilisé pour récupérer les endpoints pour se connecter au serveur, ainsi que des informations sur la configuration de ces endpoints. Ces informations sont données par le biais d’objets <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.14"><em>EndpointDescriptions</em></a>, qui contiennent notamment :</p>
<ul>
<li>Le niveau de sécurité du chiffrement accepté sur l’endpoint (<em>None</em>, <em>Sign</em> ou <em>SignAndEncrypt</em>)</li>
<li>L’algorithme de signature ou de chiffrement utilisé</li>
<li>Les types de <em>UserIdentityToken</em> acceptés par l’endpoint (<em>AnonymousIdentityToken</em>, <em>UserNameIdentityToken</em>, <em>X509IdentityToken</em> ou <em>IssuedIdentityToken</em>)</li>
</ul>
<p>La commande server_config permet de récupérer les <em>EndpointDescriptions</em> de tous les serveurs détectés via la commande hello, et d’identifier parmi ces serveurs ceux qui acceptent les authentifications anonymes ou le niveau de sécurité <em>None</em>. L&rsquo;ensemble de ces informations sont accessibles et récupérables pour un utilisateur non authentifié.</p>
<p>De plus, si un accès authentifié à un serveur est possible, la commande permet également de parcourir les nœuds du serveur et d’énumérer les droits de l’utilisateur courant sur ces nœuds. Ainsi, il est possible d’obtenir la liste des nœuds de type <em>Variable</em> accessibles en écriture, ou bien la liste des méthodes exécutables par l’utilisateur.</p>
<p>Enfin, d’autres options utiles ont été ajoutées à la commande server_config :</p>
<ul>
<li>-o (ou &#8211;output) permet de configurer un fichier de sortie JSON pour stocker les résultats de la commande, et les parcourir plus facilement que sur un terminal. Des informations supplémentaires y sont stockées comme la valeur de l’attribut <em>UserWriteMask</em> des nœuds, qui indique quels attributs des nœuds peuvent être modifiés par l’utilisateur.</li>
<li>-r (ou &#8211;root_node) permet de parcourir uniquement un sous-ensemble des nœuds du serveur à partir d’un nœud de départ précisé en argument. En effet le parcours de l’ensemble des nœuds peut être long et cette option peut être utilisée pour cibler les nœuds d’intérêt.</li>
</ul>
<p>La documentation complète de la commande server_config et de toutes ses options est disponible <a href="https://github.com/wavestone-cdt/opcua-scan/blob/main/README.md#server_config-command">ici</a>.</p>
<p>En pratique, voilà comment la commande server_config pourrait s’utiliser :</p>
<p>Le fichier de sortie de la commande hello est donné en argument (via l&rsquo;option -t) et sera utilisé pour récupérer les informations sur les endpoints des serveurs détectés :</p>
<pre><span style="color: #000000;">$ python opcua_scan.py server_config -t hello_output.json</span></pre>
<p style="text-align: center;"><span style="background-color: #000000; color: #ffffff;"><em style="font-size: revert; background-color: #ffffff; color: initial;"><img loading="lazy" decoding="async" class="alignnone  wp-image-21230" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6.png" alt="" width="639" height="376" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6.png 869w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-325x191.png 325w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-66x39.png 66w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-768x452.png 768w" sizes="auto, (max-width: 639px) 100vw, 639px" /><br />Exemple de résultats générés par la commande server_config</em></span></p>
<p>Ici, le serveur autorise les connexions non chiffrées et anonymes ou authentifiées avec un nom d’utilisateur et un mot de passe. Si le serveur n’acceptait pas les connexions anonymes, le script opcua_login du module msf-opcua pourrait être utilisé pour essayer de trouver des identifiants valides, mais cela n’est pas nécessaire dans cet exemple</p>
<p>Il est possible d’accéder anonymement au serveur et parcourir ses nœuds à la recherche de nœuds intéressants (le début du résultat de la commande a volontairement été coupé, et le répertoire « TemperatureControl » a été ciblé avec l’option -r pour réduire le nombre de nœuds parcourus) :</p>
<pre><span style="color: #000000;">$ python opcua_scan.py server_config -t hello_output.json -o config_output.json -nw -r ‘ns=3;s=85/0:Simulation’</span></pre>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="wp-image-21232 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7.png" alt="" width="639" height="357" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7.png 896w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7-342x191.png 342w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7-768x429.png 768w" sizes="auto, (max-width: 639px) 100vw, 639px" />Exemple de résultats obtenu lors d’une recherche de nœuds accessibles en écriture</em></p>
<p>Les nœuds accessibles en écriture peuvent ensuite être analysés plus en profondeur dans le fichier de sortie qui a été configuré dans la commande précédente :</p>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="size-full wp-image-21234 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8.png" alt="" width="279" height="215" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8.png 279w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8-248x191.png 248w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8-51x39.png 51w" sizes="auto, (max-width: 279px) 100vw, 279px" />Extrait d’un fichier de sortie généré par la commande server_config</em></p>
<p>Ici, il semble possible pour un utilisateur anonyme d’allumer ou d’éteindre des climatiseurs à distance via le serveur OPC UA détecté</p>
<p> </p>
<h1>Conclusion</h1>
<p>Malgré les mécanismes de sécurité apportés par le standard OPC UA, ces derniers peuvent présenter des défauts de configuration et exposer les SI industriels de manière non-négligeable. L’outil développé par Wavestone et présenté dans cet article permet de faciliter la démarche d’audit de ces configurations et d’assurer au mieux la sécurité de ces SI industriels.</p>
<p>Enfin, les spécifications OPC UA proposent davantage de mécanismes de sécurité, comme la gestion des certificats par un Global Discovery Server ou de chiffrement des messages PubSub grâce à la mise en place d’un Security Key Server. Le standard OPC UA pourrait donc permettre d’effectuer des progrès supplémentaires en matière de sécurité, mais peu d’implémentations de ces mécanismes existent à ce jour.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><a id="_msocom_1"></a>L&rsquo;outil est disponible sur notre Github : <a href="https://github.com/wavestone-cdt/opcua-scan">https://github.com/wavestone-cdt/opcua-scan</a></p>



<p class="wp-block-paragraph">Cet outil a également été mis en avant lors d’une session Arsenal Lab à la conference BlackHat Asia 2023 à Singapour : <a href="https://github.com/wavestone-cdt/bhasia23-opcuhack">https://github.com/wavestone-cdt/bhasia23-opcuhack</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/">Un regard sur OPC UA, un protocole industriel moderne et émergent</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
