{"id":21196,"date":"2023-09-11T16:14:54","date_gmt":"2023-09-11T15:14:54","guid":{"rendered":"https:\/\/www.riskinsight-wavestone.com\/?p=21196"},"modified":"2023-09-11T16:23:33","modified_gmt":"2023-09-11T15:23:33","slug":"a-look-at-opc-ua-an-emergin-modern-ics-protocol","status":"publish","type":"post","link":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/","title":{"rendered":"A look at OPC-UA, an emerging modern ICS protocol"},"content":{"rendered":"\n<h1>\u00a0<\/h1>\n<h1>Intro<\/h1>\n<p>The emergence of the Industry 4.0 is characterized by the digitization of industry and greater interconnection between the various machines that make up an industrial IS (Information System). However, this growth in communications within industrial Control Systems also leads to an increase in their attack surface. Moreover, the protocols used historically (such as Modbus), offer little or no security mechanism. Some of these protocols were also proprietary, which could cause interoperability problems between the different machines of the IS.<\/p>\n<p>The OPC UA standard was created in 2008 by the OPC Foundation to address these issues, by proposing a standardization of communications between ICS machines, and by integrating many mechanisms to ensure the security of these communications.<\/p>\n<p>\u00a0<\/p>\n<h1>The OPC UA standard<\/h1>\n<p>The OPC UA standard is an open-source and multiplatform communication standard. It can be implemented on any type of device, regardless of their operating system.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-21205\" 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=\"auto, (max-width: 842px) 100vw, 842px\" \/><br \/><em>Possible communications offered by OPC UA <\/em>(Source: OPC Foundation <a href=\"https:\/\/opcconnect.opcfoundation.org\/wp-content\/uploads\/2021\/09\/OPC-UA-for-Field-in-FA-and-PA.jpg\">website<\/a>)<\/p>\n<p>Two types of architecture can be set up:<\/p>\n<ul>\n<li>Client-server architecture: this is the most widely used architecture. It is composed of hardware and\/or software elements that contain data, OPC UA servers that provide this data or services, and OPC UA clients that can interact with the servers to use their services or access their data.<\/li>\n<li>PubSub architecture: it can be used to exchange a higher data volume. It is composed of Publishers who send messages, and Subscribers who receive these messages through a Message Oriented Middleware (MOM).<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<h1>Client-server architecture security<\/h1>\n<p>As the client-server architecture is by far the most widely used, we will now look in more detail at the security mechanisms offered by the OPC UA standard in this type of architecture.<\/p>\n<p>First of all, three levels of security are available regarding the encryption of communications between a client and an OPC UA server:<\/p>\n<ul>\n<li><em>None<\/em>: messages are sent in clear text, without any protection<\/li>\n<li><em>Sign<\/em>: messages are signed. This protects the integrity of the transmitted data, but not their confidentiality<\/li>\n<li><em>SignAndEncrypt<\/em>: messages are signed and encrypted. In this case, the confidentiality of the messages is also protected<\/li>\n<\/ul>\n<p>To set up an encrypted channel, the client and server each have an X.509 certificate and an associated private key, which they use to exchange a session key in a secure channel. Then, they can use this session key to encrypt the rest of the exchanges, using symmetric encryption algorithms.<\/p>\n<p>Several levels of security for user authentication are also available. To authenticate, clients send tokens to the servers called <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.41\"><em>UserIdentityTokens<\/em><\/a>, which contain the information necessary for the authentication process. There are several types of <em>UserIdentityToken<\/em>, and the server chooses which types it accepts:<\/p>\n<ul>\n<li><a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.41.3\"><em>AnonymousIdentityToken<\/em><\/a>: this token does not contain any specific information. If the server accepts it, and authenticates the user as an anonymous user<\/li>\n<li><a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.41.4\"><em>UserNameIdentityToken<\/em><\/a>: this token contains a username and a password. If these are valid, the user is authenticated and then obtains the profile and rights associated with his username<\/li>\n<li><a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.41.5\"><em>X509IdentityToken<\/em><\/a>: this token contains an X.509 certificate. If the server has registered this certificate, the user is authenticated and then obtains a profile and the rights associated with the certificate<\/li>\n<li><a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.41.6\"><em>IssuedIdentityToken<\/em><\/a>: this token encapsulates an access token provided by a third-party access management service, like an OAuth2 server for example<\/li>\n<\/ul>\n<p>Finally, once authenticated, the user has access to the server&#8217;s nodes. Below is an example of nodes that could be encountered on an OPC UA server:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-21220 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=\"auto, (max-width: 255px) 100vw, 255px\" \/>\u00a0 \u00a0 \u00a0 \u00a0 <img loading=\"lazy\" decoding=\"async\" class=\" wp-image-21222 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=\"auto, (max-width: 451px) 100vw, 451px\" \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p style=\"text-align: center;\"><em><br \/>OPC UA nodes<\/em><\/p>\n<p>Access control can be set up to restrict access to some nodes to high-privileged users (administrators, etc.), or to require that the communication channel be encrypted to access some sensitive nodes. The figure below summarizes how access management to a node works:<\/p>\n<p style=\"text-align: center;\"><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-21225 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\" \/><br \/>Role overview extracted from chapter 2 of the OPC UA specifications<\/em><\/p>\n<p>\u00a0<\/p>\n<h1>OPC UA audit tooling<\/h1>\n<p>Only few public tools are available to audit OPC UA applications. One of the most well-known is the Metasploit module called \u00ab\u00a0<a href=\"https:\/\/github.com\/COMSYS\/msf-opcua\">msf-opcua\u00a0<\/a>\u00bb.<\/p>\n<p>This module is composed of three scripts:<\/p>\n<ul>\n<li><em>opcua_hello<\/em>: sends a &#8220;Hello Message&#8221; to a list of IP addresses, for a given port, to detect the presence of OPC UA servers among this list<\/li>\n<li><em>opcua_server_config<\/em>: this script requires an authenticated access to an OPC UA server to be used. It allows to retrieve information on the configuration of the server endpoints (encryption, authentication&#8230;)<\/li>\n<li><em>opcua_login<\/em>: performs a dictionary attack on a server using username and password authentication<\/li>\n<\/ul>\n<p>Although it provides some useful functionalities, this tool has some limitations. For example, it is not possible to scan several ports at once with the opcua_hello script. Another example is that the opcua_server_config script requires authentication to retrieve configuration information, which is available without authentication.<\/p>\n<p>Therefore, Wavestone decided to improve this tool. It was decided to stop using the Metasploit framework, which imposed too many constraints, therefore the tool is now an independent Python script, renamed \u00ab\u00a0opcua_scan\u00a0\u00bb. It is based on the <a href=\"https:\/\/github.com\/FreeOpcUa\/opcua-asyncio\">opcua-asyncio<\/a> library, unlike the msf-opcua module which uses the <a href=\"https:\/\/github.com\/FreeOpcUa\/python-opcua\">python-opcua<\/a> library declared deprecated by its authors.<\/p>\n<p>The tool is accessible with this <a href=\"https:\/\/github.com\/wavestone-cdt\/opcua-scan\">link<\/a>, and provides two commands: &#8220;hello&#8221; and &#8220;server_config&#8221;, which reimplement and improve the functionality of the opcua_hello and opcua_server_config scripts of the msf-opcua module. The opcua_login script is not included, as no improvement were performed, and it can be used directly.<\/p>\n<p>\u00a0<\/p>\n<h2>The hello command<\/h2>\n<p>This command is used to detect OPC UA applications in a network. It sends &#8220;Hello Message&#8221; to a list of IP addresses, on a given list of ports, and deduces the presence or absence of OPC UA servers on the targets. Then, the <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/5.4.2\"><em>FindServers<\/em><\/a> service, which is supposed to be implemented by any OPC UA server, is used to retrieve the <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.2\"><em>ApplicationDescription<\/em><\/a> of the server (and other OPC UA applications known by the server). This object contains useful information, such as the <em>productUri<\/em>, which gives information about the software or library used to run the detected server, or the <em>discoveryUrls<\/em>, which indicates the URLs to the server&#8217;s <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/3.1.3\"><em>DiscoveryEndpoints<\/em><\/a>. These endpoints can be used by the server_config command to retrieve more information about the server configuration.<\/p>\n<p>Several options have been added to the command, such as the configuration of the timeout or the possibility to retrieve the list of detected servers in a JSON output file.<\/p>\n<p>This is how the hello command could be used in practice:<\/p>\n<pre>$ python opcua_scan.py hello -i &lt;IPs&gt; -p &lt;ports&gt; -o hello_output.json<\/pre>\n<p style=\"text-align: center;\"><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-21227\" 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 \/>Example of results generated by the hello command<\/em><\/p>\n<p>And the screenshot below shows an extract of the generated JSON file:<\/p>\n<p style=\"text-align: center;\"><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-21229\" 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\" \/><br \/>Extract of an output file generated by the hello command<\/em><\/p>\n<p>The complete documentation of the hello command and all its options is available <a href=\"https:\/\/github.com\/wavestone-cdt\/opcua-scan\/blob\/main\/README.md#hello-command-discovery\">here<\/a>.<\/p>\n<h2>\u00a0<\/h2>\n<h2>The server_config command<\/h2>\n<p>Thanks to the <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/3.1.3\"><em>DiscoveryEndpoints<\/em><\/a> retrieved with the hello command, we now have access to the entire <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/5.4\"><em>Discovery Service Set<\/em><\/a> of the server. No authentication or encryption mechanisms are required to use these services. Among these services, the one called <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/5.4.4\"><em>GetEndpoints<\/em><\/a> can be used to retrieve the endpoints to connect to the server, as well as information about the configuration of these endpoints. This information is given through <a href=\"https:\/\/reference.opcfoundation.org\/Core\/Part4\/v105\/docs\/7.14\"><em>EndpointDescriptions<\/em><\/a> objects, which contain, among others:<\/p>\n<ul>\n<li>The security level of the encryption accepted on the endpoint (<em>None<\/em>, <em>Sign<\/em> ou <em>SignAndEncrypt<\/em>)<\/li>\n<li>The signature or encryption algorithm used<\/li>\n<li>The types of <em>UserIdentityToken<\/em> accepted by the endpoint (<em>AnonymousIdentityToken<\/em>, <em>UserNameIdentityToken<\/em>, <em>X509IdentityToken<\/em> or <em>IssuedIdentityToken<\/em>)<\/li>\n<\/ul>\n<p>The server_config command allows to retrieve the <em>EndpointDescriptions<\/em> of all the servers detected via the hello command, and to identify among these servers those that accept anonymous authentication or the <em>None<\/em> security level. All this information is accessible for a non-authenticated user.<\/p>\n<p>In addition, if an authenticated access to a server is possible, the command also allows to browse the nodes of the server and identify the rights that the current user has on these nodes. For example, it is possible to obtain a list of nodes of type <em>Variable<\/em> that can be written to, or a list of methods that can be executed by the user.<\/p>\n<p>Finally, other useful options have been added to the server_config command:<\/p>\n<ul>\n<li>-o (or &#8211;output) allows to set up a JSON output file to store the results of the command and browse them more easily than on a terminal. Additional information is stored there, such as the value of the <em>UserWriteMask<\/em> attribute of the nodes, which indicates which attributes of the nodes can be modified by the user.<\/li>\n<li>-r (or &#8211;root_node) allows to browse only a subset of the server&#8217;s nodes from a starting node specified in the argument. Indeed, browsing all the nodes can be long and this option can be used to target the nodes of interest.<\/li>\n<\/ul>\n<p>The complete documentation of the server_config command and all its options is available <a href=\"https:\/\/github.com\/wavestone-cdt\/opcua-scan\/blob\/main\/README.md#server_config-command\">here<\/a>.<\/p>\n<p>In practice, this is how the server_config command could be used:<\/p>\n<p>The output file of the hello command is given as an argument (via the -t option) and will be used to retrieve information about the endpoints of the detected servers::<\/p>\n<pre>$ python opcua_scan.py server_config -t hello_output.json<\/pre>\n<p style=\"text-align: center;\"><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-21231\" 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 \/>Example of results generated by the server_config command<\/em><\/p>\n<p>Here, the server allows unencrypted and anonymous connections or authenticated with a username and password. If the server did not allow anonymous connections, the opcua_login script of msf-opcua could be used to try to find valid credentials, but this is not necessary in this example<\/p>\n<p>It is therefore possible to anonymously access the server, browse its nodes and search for interesting nodes (the beginning of the command result has been deliberately cut off, and the \u00ab\u00a0TemperatureControl\u00a0\u00bb directory has been targeted with the -r option to reduce the number of nodes browsed):<\/p>\n<pre>$ python opcua_scan.py server_config -t hello_output.json -o config_output.json -nw -r \u2018ns=3;s=85\/0:Simulation\u2019<\/pre>\n<p style=\"text-align: center;\"><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-21233\" 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\" \/><br \/>Example of results obtained during a search for writeable nodes<\/em><\/p>\n<p>Writeable nodes can then be further analysed in the output file that was configured in the previous command:<\/p>\n<p style=\"text-align: center;\"><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-21235\" 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\" \/><br \/>Extract of an output file generated by the server_config command<\/em><\/p>\n<p>Here, it seems possible for an anonymous user to remotely turn on or off an air conditioners via the detected OPC UA server<\/p>\n<p>\u00a0<\/p>\n<h1>Conclusion<\/h1>\n<p>Despite the security mechanisms provided by the OPC UA standard, misconfigurations can easily occur and can impact the availability of industrial assets. The tool developed by Wavestone and presented in this article facilitates the audit of these configurations to better assess the security of Industrial Control Systems.<\/p>\n<p>Finally, the OPC UA specifications defines more security mechanisms, such as the management of certificates by a Global Discovery Server or the encryption of PubSub messages thanks to the implementation of a Security Key Server. The OPC UA standard could therefore enable further progress in terms of security, but few implementations of these mechanisms exist to this date.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>The tool is available on Wavestone\u2019s Github account: <a href=\"https:\/\/github.com\/wavestone-cdt\/opcua-scan\">https:\/\/github.com\/wavestone-cdt\/opcua-scan<\/a><\/p>\n\n\n\n<p>This tool was also used during a Arsenal lab session at BlackHat Asia 2023 in Singapore: <a href=\"https:\/\/github.com\/wavestone-cdt\/bhasia23-opcuhack\">https:\/\/github.com\/wavestone-cdt\/bhasia23-opcuhack<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Intro The emergence of the Industry 4.0 is characterized by the digitization of industry and greater interconnection between the various machines that make up an industrial IS (Information System). However, this growth in communications within industrial Control Systems also&#8230;<\/p>\n","protected":false},"author":1411,"featured_media":21256,"comment_status":"open","ping_status":"closed","sticky":true,"template":"page-templates\/tmpl-one.php","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2777,3922,3274],"tags":[],"coauthors":[4284,4283],"class_list":["post-21196","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybersecurity-digital-trust","category-deep-dive-en","category-manufacturing-industry-4-0-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A look at OPC-UA, an emerging modern ICS protocol - RiskInsight<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A look at OPC-UA, an emerging modern ICS protocol - RiskInsight\" \/>\n<meta property=\"og:description\" content=\"\u00a0 Intro The emergence of the Industry 4.0 is characterized by the digitization of industry and greater interconnection between the various machines that make up an industrial IS (Information System). However, this growth in communications within industrial Control Systems also...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\" \/>\n<meta property=\"og:site_name\" content=\"RiskInsight\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-11T15:14:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-11T15:23:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paul Isnardon, Simon Eudeline\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Isnardon, Simon Eudeline\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\"},\"author\":{\"name\":\"Constance Francois\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/8f34ed4a34586eb58d8e05e7688fde5e\"},\"headline\":\"A look at OPC-UA, an emerging modern ICS protocol\",\"datePublished\":\"2023-09-11T15:14:54+00:00\",\"dateModified\":\"2023-09-11T15:23:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\"},\"wordCount\":1793,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg\",\"articleSection\":[\"Cybersecurity &amp; Digital Trust\",\"Deep-dive\",\"Manufacturing &amp; Industry 4.0\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\",\"name\":\"A look at OPC-UA, an emerging modern ICS protocol - RiskInsight\",\"isPartOf\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg\",\"datePublished\":\"2023-09-11T15:14:54+00:00\",\"dateModified\":\"2023-09-11T15:23:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg\",\"contentUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg\",\"width\":2560,\"height\":1372},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.riskinsight-wavestone.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A look at OPC-UA, an emerging modern ICS protocol\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#website\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/\",\"name\":\"RiskInsight\",\"description\":\"The cybersecurity &amp; digital trust blog by Wavestone&#039;s consultants\",\"publisher\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.riskinsight-wavestone.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#organization\",\"name\":\"Wavestone\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png\",\"contentUrl\":\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png\",\"width\":50,\"height\":50,\"caption\":\"Wavestone\"},\"image\":{\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/8f34ed4a34586eb58d8e05e7688fde5e\",\"name\":\"Constance Francois\",\"url\":\"https:\/\/www.riskinsight-wavestone.com\/en\/author\/constance-francois\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A look at OPC-UA, an emerging modern ICS protocol - RiskInsight","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/","og_locale":"en_US","og_type":"article","og_title":"A look at OPC-UA, an emerging modern ICS protocol - RiskInsight","og_description":"\u00a0 Intro The emergence of the Industry 4.0 is characterized by the digitization of industry and greater interconnection between the various machines that make up an industrial IS (Information System). However, this growth in communications within industrial Control Systems also...","og_url":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/","og_site_name":"RiskInsight","article_published_time":"2023-09-11T15:14:54+00:00","article_modified_time":"2023-09-11T15:23:33+00:00","og_image":[{"width":2560,"height":1372,"url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg","type":"image\/jpeg"}],"author":"Paul Isnardon, Simon Eudeline","twitter_misc":{"Written by":"Paul Isnardon, Simon Eudeline","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#article","isPartOf":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/"},"author":{"name":"Constance Francois","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/8f34ed4a34586eb58d8e05e7688fde5e"},"headline":"A look at OPC-UA, an emerging modern ICS protocol","datePublished":"2023-09-11T15:14:54+00:00","dateModified":"2023-09-11T15:23:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/"},"wordCount":1793,"commentCount":0,"publisher":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage"},"thumbnailUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg","articleSection":["Cybersecurity &amp; Digital Trust","Deep-dive","Manufacturing &amp; Industry 4.0"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/","url":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/","name":"A look at OPC-UA, an emerging modern ICS protocol - RiskInsight","isPartOf":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage"},"thumbnailUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg","datePublished":"2023-09-11T15:14:54+00:00","dateModified":"2023-09-11T15:23:33+00:00","breadcrumb":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#primaryimage","url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg","contentUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2023\/09\/pexels-pixabay-236709-scaled.jpg","width":2560,"height":1372},{"@type":"BreadcrumbList","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2023\/09\/a-look-at-opc-ua-an-emergin-modern-ics-protocol\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.riskinsight-wavestone.com\/en\/"},{"@type":"ListItem","position":2,"name":"A look at OPC-UA, an emerging modern ICS protocol"}]},{"@type":"WebSite","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#website","url":"https:\/\/www.riskinsight-wavestone.com\/en\/","name":"RiskInsight","description":"The cybersecurity &amp; digital trust blog by Wavestone&#039;s consultants","publisher":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.riskinsight-wavestone.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization","name":"Wavestone","url":"https:\/\/www.riskinsight-wavestone.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png","contentUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png","width":50,"height":50,"caption":"Wavestone"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/8f34ed4a34586eb58d8e05e7688fde5e","name":"Constance Francois","url":"https:\/\/www.riskinsight-wavestone.com\/en\/author\/constance-francois\/"}]}},"_links":{"self":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/21196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/users\/1411"}],"replies":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/comments?post=21196"}],"version-history":[{"count":4,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/21196\/revisions"}],"predecessor-version":[{"id":21307,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/21196\/revisions\/21307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/media\/21256"}],"wp:attachment":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/media?parent=21196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/categories?post=21196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/tags?post=21196"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/coauthors?post=21196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}