OPC DA協議是工控領域常用協議之一,OPC DA采用微軟的COM技術,在不同工控機上采用OPC DA通訊則采用DCOM技術,而DCOM則采用微軟的RPC動態端口,所以在普通商用防火墻上是無法支持OPC DA這個協議。這也是為什么工業防火墻的具備防護OPC DA專業技能,工業防火墻會根據DCOM中RPC來跟蹤動態端口的變化,記錄協商出來的動態端口,并在策略上動態開放。但實際上工業防火墻在企業內網采購比較少,更多是商業防火墻,而隨著IT和OT融合,在企業網絡中獲取控制網絡的數據的場景越來越多,但很多的DCS和SCADA系統僅僅具備OPC DA對外通訊能力,所以多數企業需要在IT和OT邊界部署工業防火墻。此篇文章就是指導IT和OT邊界采用商業防火墻的情況下如何采用修改注冊表的方式,把RPC中DCOM端口限制在一個小范圍內從而保證網絡的通訊暢通切安全。

Windows 中的RPC服務是允許在自定義配置項(例如注冊表項)中指定服務器端口。當指定專用服務端口時,就知道哪些流量在穿越防火墻的主機之間流動。可以以更直接的方式定義允許哪些流量。
使用注冊表編輯器,可以修改 RPC 的以下參數。下面討論的 RPC Port 鍵值均位于注冊表中的以下鍵中:
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\Entry name Data Type
Port REG_MULTI_SZ
指定一組 IP 端口范圍,其中包含網絡上可用的所有端口或不可用的所有端口。每個字符串代表一個端口或一組包含的端口。
例如,單個端口可以用5984表示,一組端口可以用5000-5100表示。如果任何條目超出 0 到 65535 的范圍,或者任何字符串無法解釋,則 RPC 運行時會將整個配置視為無效。
PortsInternetAvailable REG_SZ Y 或 N(不區分大小寫)
如果是,則端口項中列出的端口是該計算機上的所有網絡可用端口。如果為 N,則“端口”項中列出的端口是所有不可通過網絡訪問的端口。
UseInternetPorts REG_SZ Y 或 N(不區分大小寫)
指定系統默認策略。
如果是,則使用默認值的進程將從網絡可用端口集中分配端口,如先前所定義。如果為 N,則使用默認值的進程將從僅限網絡的端口集中分配端口。
例子
在此示例中,任意選擇了端口 5000 到 6000(包括端口 5000 和 6000),以幫助說明如何配置新的注冊表項。它并不是任何特定系統所需的最小端口數的建議。
在下面添加Internet密鑰HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
在Internet項下,添加值Ports (MULTI_SZ)、PortsInternetAvailable (REG_SZ) 和UseInternetPorts (REG_SZ)。
例如,新的注冊表項如下所示:
Ports: REG_MULTI_SZ: 5000-6000
PortsInternetAvailable: REG_SZ: Y
UseInternetPorts: REG_SZ: Y
重新啟動服務器。所有使用 RPC 動態端口分配的應用程序都使用端口 5000 到 6000(含)。
應該打開端口 5000 以上的一系列端口。低于 5000 的端口號可能已被其他應用程序使用,并可能導致與 DCOM 應用程序發生沖突。此外,根據以往的經驗,至少應打開 100 個端口,因為工控服務依賴這些 RPC 端口進行相互通信。
中國信通院CAICT
關鍵基礎設施安全應急響應中心
安全牛
威努特工控安全
虹科網絡安全
商密君
CNCERT國家工程研究中心
安全內參
關鍵基礎設施安全應急響應中心
安全內參
RacentYY
虹科網絡安全