一. OPC概述
背景概述
OPC Object Linking and Embedding(OLE) for Process Control(用於過程控制的OLE)。它是基於Windows的應用程式與現場過程控制應用之間的橋樑。在過去,為了存取現場裝置的資料資訊,每一個應用軟體開發商都需要編寫專用的介面函式。由於現場裝置的種類繁多,且產品的不斷升級,往往給使用者和軟體開發商帶來了巨大的工作負擔。然而,這樣也不能滿足實際的工作需要,系統整合商和開發商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的裝置驅動程式。在這種情況下,OPC標準應運而生。
OPC標準以微軟公司的OLE技術為基礎,它的制定是透過提供一套標準的OLE/COM介面完成的,在OPC技術中使用的是OLE 2技術,OLE標準允許多臺微機之間交換文件、圖形等物件。
發展歷程
OPC UA 將逐步代替傳統的OPC。在這個過渡期中,基於DCOM的OPC產品會與UA 產品將共存。OPC基金會的遷移戰略能讓傳統的OPC 和OPC UA產品很好的結合。目前,已經安裝使用的幾百萬套、上千種傳統的OPC產品可以與新的OPC UA產品共同使用。這為使用者提供了更多的選擇範圍,他們能從不同的製造商-傳統的OPC 和 OPC UA 廠家,選用任何需要的產品。
OPC&OPCUA協議結構區別
二. OPC UA 安全研究
相較於第一代的OPC,OPC UA加入了強健的資訊保安特性。
OPC UA安全機制:
認證:支援X.509證照認證或使用者名稱密碼或Kerberos
授權:基於使用者的細粒度的許可權管理(讀、寫點值)
完整性:訊息簽名,阻止通訊訊息被篡改、中間人攻擊
機密性:透過訊息加密,防止通訊內容被第三方看到
應用例項認證:OPC Server認證,確保OPC Server的真實性
在發展過程中OPC Foundation產品中總共發現了17個漏洞,且使用這些產品的商業應用中也存在缺陷。大多數缺陷是透過模糊測試發現的,理論上這些漏洞被利用後會對工業環境帶來物理損害。
卡巴斯基實驗室的研究人員對 OPC UA 進行詳細的分析後表示,某些漏洞可被利用發起遠端程式碼執行和 DoS 攻擊。OPC 基金會已釋出公告,將這些漏洞歸在兩個漏洞編號下:CVE-2017-17433和CVE-2017-12069,後者還影響了西門子自動化和配電產品。
三. 攻擊模擬
研究環境
3臺PC分別模擬攻擊機、客戶機、服務端:
服務端:192.168.2.34
客戶機:192.168.2.29
攻擊機:192.168.2.39
系統分別是:ParrotOS,Windows 10 專業版,Ubuntu 18.04
工具軟體:openPen,python-opcua,Wireshark
漏洞簡介
在工業系統中,拒絕服務漏洞構成的威脅比任何惡意軟體都嚴重。遙測和遙控系統中的拒絕服務可能導致企業蒙受財務損失,在某些情況下甚至導致工業流程的中斷和關閉。從理論上講,這可能會對昂貴的工業裝置造成傷害,並造成其他物理損壞。
攻擊者透過Port 4840/TCP埠向OPC伺服器傳送特製資料包,利用該漏洞訪問各種資源或僅不停地傳送建鏈資料包,即可造成DOS攻擊。
攻擊圖,如下所示:
攻擊步驟
OPC正常會話的建立流程,如下圖:
1:搭建模擬環境,在以上3臺機器上準備相應的工具。
客戶機連線正常:
2:攻擊機利用nmap掃描主機的4840埠,檢視是否對外開放。
3:透過4840/tcp埠向OPC Discovery Server傳送建鏈資料包,佔用通訊通道,造成DOS攻擊,導致伺服器無法訪問。
四. 防禦建議
Ø 安裝廠商安全補丁,及時更新軟體。
Ø 建議使用者使用工業防火牆,網路分割槽和VPN等適當的機制來保護網路訪問。
Ø 西門子還建議使用者根據西門子工業安全性操作指南配置操作環境。
參考連結:
https://www.securityfocus.com/bid/100559/info
https://www.securityweek.com/many-vulnerabilities-found-opc-ua-industrial-protocol
https://ics-cert.kaspersky.com/reports/2018/05/10/opc-ua-security-analysis/