在工業控制系統(ICS)與操作技術(OT)環境中,網路穩定性至關重要,任何中斷都可能導致嚴重後果。因此,安全評估必須採用非侵入性的監控手段。本文聚焦於兩種主流的帶外(Out-of-Band)流量監控技術:交換器埠分析(SPAN)與測試存取點(TAP)。SPAN 透過交換器軟體複製流量,設定簡便但可能影響效能。相較之下,TAP 作為硬體設備,能以物理方式完整複製流量,提供更高的數據保真度且不影響原始網路。本篇將從原理、實作到應用場景,深入剖析這兩種技術,協助資安人員根據不同情境選擇最合適的流量擷取方案,以達成精準的弱點分析。
TP-Link TL-SG108E的埠鏡像設定
玄貓認為,我們將使用TP-Link TL-SG108E 智慧型交換器來示範埠鏡像的設定。
埠設定檢視:
- 登入交換器介面:登入TP-Link TL-SG108E的管理介面。
- 檢視埠設定:在埠設定畫面中,可以看到交換器是一個標準的八埠交換器。
- 識別特殊埠:通常,如果某個埠以較慢的速度協商(例如100 MB,而其他埠是1 GHz),這可能暗示該埠連接的是工業硬體,例如PLC。在實際的滲透測試中,這是一個重要的線索。
設定埠鏡像:
- 進入監控選單:在左側選單中選擇「監控(Monitoring)」。
- 選擇埠鏡像:從下拉選單中選擇「埠鏡像(Port Mirror)」。
- 啟用埠鏡像:在埠鏡像畫面中,選擇「啟用(Enable)」埠鏡像功能。
此圖示:TP-Link TL-SG108E埠設定與鏡像流程
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
actor "滲透測試人員 (Pentester)" as pentester
participant "TP-Link TL-SG108E 管理介面" as switch_gui
participant "埠設定畫面" as port_setting_screen
participant "監控選單" as monitoring_menu
participant "埠鏡像設定畫面" as port_mirror_screen
pentester -> switch_gui : 登入管理介面
switch_gui --> port_setting_screen : 顯示埠設定
port_setting_screen --> pentester : 檢視埠速度與狀態 (例如: Port 2 @ 100MB)
pentester -> port_setting_screen : 識別 PLC 埠 (假設 Port 2)
pentester -> switch_gui : 點擊左側 "監控" 選單
switch_gui --> monitoring_menu : 顯示監控選項
pentester -> monitoring_menu : 選擇 "埠鏡像"
monitoring_menu --> port_mirror_screen : 進入埠鏡像設定畫面
pentester -> port_mirror_screen : 選擇 "啟用" 埠鏡像功能
note right of port_mirror_screen
透過埠鏡像功能,
可將 PLC 埠流量複製到
監控埠進行分析。
end note
@enduml看圖說話:
此圖示展示了滲透測試人員如何在TP-Link TL-SG108E智慧型交換器上設定埠鏡像的流程。首先,滲透測試人員登入交換器管理介面,進入埠設定畫面,檢視各埠的速度與狀態,從而識別出可能連接工業設備(如PLC)的埠(例如Port 2,因其協商速度較慢)。接著,滲透測試人員透過左側的監控選單,選擇「埠鏡像」選項,進入埠鏡像設定畫面。在此畫面中,選擇「啟用」埠鏡像功能,為後續的流量監控做好準備。這個過程是實現帶外網路流量分析的關鍵一步,使得滲透測試人員能夠在不影響生產網路的情況下,獲取寶貴的流量數據。
埠鏡像設定實作與流量擷取分析
玄貓認為,在上一節我們了解了SPAN的基本概念,現在將實際操作TP-Link TL-SG108E智慧型交換器,完成埠鏡像的設定,並使用Wireshark和Tcpdump工具擷取與分析流量。
埠鏡像設定步驟:
- 啟用埠鏡像功能:在埠鏡像設定畫面中,確認「啟用(Enable)」埠鏡像功能,並點擊「應用(Apply)」。
- 選擇監控埠:我們將選擇Port 2作為被監控的埠,因為我們判斷PLC連接在Port 2。
- 設定流量方向:勾選「流入(Ingress)」和「流出(Egress)」兩個選項,表示我們希望監控Port 2上的所有進出流量。
- 確認設定:設定完成後,表格中應顯示Port 2已啟用雙向(流入和流出)流量鏡像。
流量擷取與分析:
- 連接監控主機:將交換器的監控埠(例如Port 1)連接到您的主機(運行Wireshark或Tcpdump的機器)。
- 建立PLC通訊:在Windows 7主機上運行Koyo CLICK程式設計軟體(或Rockwell的Studio 5000/RSLogix),並連接到您的PLC。這將在交換器的Port 2上產生通訊流量。
- 使用Wireshark擷取:
- 在主機上開啟Wireshark,選擇連接到交換器監控埠的網路介面(例如en6)。
- 啟動擷取後,您將能看到程式設計軟體與PLC之間的通訊流量。
- 仔細檢查每個封包的來源和目的地MAC/IP地址,以確認流量正確鏡像。
- 使用Tcpdump擷取:
- 在終端機中,使用以下命令來擷取流量:
tcpdump -i <interface> -v -X
其中<interface>是連接到交換器監控埠的網路介面(例如en6)。
-v選項提供詳細輸出,-X選項則以十六進制和ASCII格式顯示每個封包的標頭和數據。- Tcpdump的輸出應與Wireshark的擷取結果一致,可以進行比對以確認。
此圖示:埠鏡像設定與流量擷取
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
actor "滲透測試人員 (Pentester)" as pentester
participant "TP-Link TL-SG108E 管理介面" as switch_gui
participant "埠鏡像設定畫面" as port_mirror_screen
participant "PLC 程式設計軟體" as plc_software
participant "PLC 設備" as plc_device
participant "監控主機" as monitor_host
participant "Wireshark/Tcpdump" as packet_analyzer
pentester -> switch_gui : 進入埠鏡像設定
switch_gui --> port_mirror_screen : 顯示設定介面
pentester -> port_mirror_screen : 選擇 "啟用" 埠鏡像
pentester -> port_mirror_screen : 設定監控埠 (例如 Port 2)
pentester -> port_mirror_screen : 啟用 "流入" 和 "流出" 流量
pentester -> port_mirror_screen : 點擊 "應用"
plc_software -> plc_device : 建立通訊 (透過交換器 Port 2)
plc_device <-> plc_software : 產生流量
note right of plc_device
Port 2 上的流量被鏡像到
監控埠 (例如 Port 1)。
end note
monitor_host -- packet_analyzer : 運行 Wireshark/Tcpdump
monitor_host <-- packet_analyzer : 顯示擷取到的流量
packet_analyzer <-- monitor_host : 接收鏡像流量 (透過監控埠)
@enduml看圖說話:
此圖示展示了埠鏡像設定與流量擷取的完整流程。首先,滲透測試人員在TP-Link TL-SG108E管理介面的埠鏡像設定畫面中,啟用埠鏡像功能,並將Port 2(連接PLC的埠)設定為監控目標,同時啟用流入和流出流量的鏡像。接著,PLC程式設計軟體與PLC設備建立通訊,產生了經過Port 2的流量。這些流量被交換器鏡像到一個專用的監控埠(例如Port 1),該埠連接到監控主機。監控主機上運行的Wireshark/Tcpdump等封包分析工具,便能接收並顯示這些鏡像流量,從而實現對PLC通訊的非侵入式監控與分析。
SPAN與IDS的關聯性
玄貓認為,您可能會疑惑,在滲透測試中,如果已經獲得交換器控制台的存取權限,為何還要花時間設定SPAN會話?畢竟在這種高權限下,還有許多其他更「有趣」的事情可以做。
關鍵在於IDS的運作方式:
- IDS的數據攝取:SPAN會話是入侵偵測系統(IDS)攝取數據的基本元件。
- 被動監控的普及:在過去五年左右,工業自動化領域的被動監控應用呈爆炸式增長。
- 理解IDS的運作:您將會遇到各種形式的IDS解決方案,因此理解它們如何運作至關重要。IDS通常依賴SPAN或TAP來獲取網路流量,進而分析異常行為或惡意活動。
接下來的內容:TAP的應用
玄貓認為,下一節將解釋什麼是TAP(測試存取點),以及它與SPAN流量監控有何不同。我們還將探討為什麼TAP在您擁有客戶網路的實體存取權限時,對於滲透測試來說是如此有用的工具。
參與滲透測試時使用TAP:
- TAP的定義與類型:我們將深入探討TAP的定義、不同類型及其工作原理。
- TAP與SPAN的區別:比較TAP與SPAN在功能、部署和優缺點上的差異。
- TAP在滲透測試中的優勢:分析TAP在實體存取場景下,如何提供更可靠、更完整的流量監控能力,以及它在滲透測試中的實用價值。
網路流量監控:TAP的原理與應用
玄貓認為,在上一節我們討論了SPAN的原理與設定,本節將深入探討測試存取點(Test Access Point, TAP),包括其運作方式、不同類型以及如何在滲透測試中有效利用。TAP通常是硬體設備,放置在兩條通訊線路之間,以實現完整的封包複製。
TAP的核心功能:
- 封包複製:TAP能夠將流量複製到一個或多個目的地,這個過程稱為再生(regeneration)。
- 流量聚合:TAP也能夠提供聚合流量,將多個方向的流量合併到一個輸出埠。
TAP與SPAN的區別:
- 被動性:TAP與SPAN最顯著的區別在於TAP的被動性。SPAN並非完全被動,它會增加交換器的負載,可能影響其性能。而TAP則能完整複製流量,且不會降低交換器的性能或導致其故障。
- 部署方式:TAP需要將其物理地插入到網路線路中,這可能導致服務短暫中斷。SPAN則是在交換器內部配置。
- 流量完整性:TAP通常能提供更完整的流量複製,因為它直接複製物理層的數據,而SPAN在某些情況下可能會丟棄封包(例如交換器負載過重時)。
TAP的分類:
- 被動式TAP(Passive TAPs):
- 原理:介面之間沒有物理連接,即使TAP故障,通訊也能繼續。
- 限制:通常只能支援10/100 Mbps的網路速度。在千兆(Gigabit)網路上使用被動式TAP會損害網路並導致性能問題。
- 應用:適合低速網路或在故障時需要保持通訊的場景。
- 主動式TAP(Active TAPs):
- 原理:需要電源來複製介面之間的通訊。
- 優勢:能夠在1000 Mbps(千兆)速度下運行,適用於高速網路。
- 風險:如果TAP故障或斷電,可能會中斷通訊。
玄貓提醒,在將任何設備(如TAP)植入網路之前,必須徹底了解該網路的運作狀況。過去在滲透測試中,曾因不慎而導致關鍵網路中斷,這是一個慘痛的教訓。但在實驗室環境中,我們可以放心進行測試。
Throwing Star LAN TAP的應用:
- 流行選擇:Great Scott Gadgets的Throwing Star LAN TAP是一款廣受歡迎的被動式TAP。
- 連接方式:
- J1和J2是串聯連接埠:J1連接到Koyo CLICK PLC,J2連接到交換器。
- J3和J4是監控埠:將J3連接到您的筆記型電腦,並使用Wireshark、TShark或Tcpdump記錄流量。
- 使用TShark擷取流量:
- TShark是Wireshark安裝時可選的組件,它是一個命令列工具。
- 使用命令
tshark -i <interface>來指定監聽介面並擷取流量。 - 擷取到的封包格式應與Wireshark或Tcpdump的結果一致。
此圖示:TAP流量監控架構
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
node "PLC/工業設備" as plc
node "交換器" as switch
rectangle "Throwing Star LAN TAP" as tap {
port "J1 (Inline)" as j1
port "J2 (Inline)" as j2
port "J3 (Monitor)" as j3
port "J4 (Monitor)" as j4
}
node "監控筆記型電腦" as monitor_laptop {
component "TShark" as tshark
}
plc -- j1
j2 -- switch
j3 -- monitor_laptop
note right of tap
TAP 物理插入通訊線路,
完整複製流量至監控埠,
不影響網路性能。
end note
@enduml看圖說話:
此圖示展示了TAP流量監控架構。PLC/工業設備與交換器之間的通訊線路被Throwing Star LAN TAP物理性地中斷並串聯起來。TAP的J1埠連接到PLC,J2埠連接到交換器,形成一個串聯的通訊路徑。同時,TAP的J3監控埠則連接到監控筆記型電腦。監控筆記型電腦上運行的TShark等工具,可以從J3埠接收到PLC與交換器之間的所有複製流量。這種設置確保了流量的完整複製,且不會對網路性能造成影響,對於滲透測試中獲取關鍵網路情報具有極高的價值。
縱觀工業控制系統(ICS)的資安挑戰,SPAN與TAP不僅是技術工具,更是構築「可視性」策略的基石。深入剖析後可以發現,兩者的選擇反映了管理者在監控策略上的權衡:SPAN代表便利性與快速評估,而TAP則確保數據的絕對保真度與零效能影響。真正的挑戰並非技術操作,而在於根據風險等級與營運衝擊,做出精準的方法論決策。掌握此策略思維,是從被動防禦轉向主動威脅狩獵的關鍵突破點。
展望未來,隨著OT與IT深度融合,這類非侵入式監控將從滲透測試的專業工具,演變為安全維運團隊的日常標準能力。
玄貓認為,高階管理者雖不必親手操作,但必須洞悉其戰略意涵與資源取捨,這正是將技術投資轉化為組織真正安全韌性的決策樞紐。