在工業 4.0 與物聯網趨勢下,資訊技術(IT)與營運技術(OT)的邊界日益模糊,使得過去封閉的工業控制系統(ICS)逐漸暴露於公網,成為新型態的資安威脅目標。傳統的資安思維常忽略 OT 環境的獨特性,然而,透過如 Shodan 這類公開來源情報(OSINT)工具,我們能清晰地看見這些關鍵基礎設施的數位足跡。本文將探討一套系統性的情蒐與分析方法,從設備發現、漏洞匹配到風險評估,串連 Shodan、Exploit-DB 及國家漏洞資料庫(NVD)的資訊流。此流程不僅是滲透測試的前期準備,更是企業建立主動防禦策略、評估自身 OT 環境曝險程度的關鍵理論基礎,有助於在潛在威脅發生前識別並緩解風險。
Shodan:網際網路連接設備的搜尋引擎
玄貓認為,Shodan被譽為「世界第一個網際網路連接設備的搜尋引擎」,它能幫助我們發現暴露在網際網路上的各種設備,包括工業控制系統(ICS)。這對於了解目標客戶的公開服務和潛在攻擊面至關重要。
Shodan的情報價值:
- 發現公開服務:Shodan可以幫助我們發現目標公司暴露在網際網路上的服務,例如FTP伺服器、Web伺服器,以及各種ICS設備。
- 建立客戶檔案:透過Shodan,我們可以進一步完善客戶的檔案,了解他們所處的行業、使用的技術,甚至是暴露在外的具體設備。
Shodan的使用方法:
- 進入Shodan網站:瀏覽Shodan的主頁。
- 探索ICS領域:在Shodan的介面中,通常會有一個「探索(Explore)」按鈕。點擊後,您可以選擇「工業控制系統(Industrial Control Systems)」選項,進入ICS相關設備的搜尋頁面。
- 搜尋公司名稱或IP範圍:在實際的滲透測試中,您應該直接搜尋目標公司的名稱,或者其已知的網際網路IP範圍,以查看是否有任何ICS設備暴露在外。
資安警示與倫理:
- 點擊探索按鈕的安全性:點擊Shodan上任何協議的「探索(Explore)」按鈕,以及審閱螢幕上顯示的資訊,是完全安全的。
- 連接到識別出的IP地址的風險:然而,直接連接到Shodan上識別出的IP地址,則進入了一個「灰色地帶」。因為這些公開可見的設備,本不應如此。
- 潛在的法律責任:雖然現在在Shodan上找到完整的操作員控制台已不常見,但並非不可能。如果您發現一個天然氣管道的SCADA系統,並在未經授權的情況下與之互動,導致壓縮機站關閉或主線截止閥意外關閉,您很可能會承擔法律責任。
- DNP3協議範例:我們在LinkedIn上曾提到一個名為GE-XA21的SCADA系統用戶,該系統使用DNP3(分散式網路協議3)等協議進行通訊。在Shodan的「協議(Protocols)」部分,您可以找到DNP3按鈕。點擊後,會顯示所有暴露在網際網路上的DNP3設備。
- 過濾和搜尋選項:Shodan提供了豐富的過濾和搜尋選項,您可以根據國家(country)、城市(city)、組織(organization)等條件來精準定位目標。
此圖示:Shodan ICS設備搜尋流程與資安考量
@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 "Shodan 網站" as shodan
participant "ICS 搜尋頁面" as ics_search_page
participant "協議列表" as protocol_list
participant "DNP3 搜尋結果" as dnp3_results
pentester -> shodan : 訪問 Shodan 主頁
shodan --> shodan : 顯示搜尋引擎介面
pentester -> shodan : 點擊 "探索" 按鈕
shodan --> ics_search_page : 選擇 "工業控制系統"
ics_search_page --> pentester : 顯示 ICS 相關設備搜尋介面
pentester -> ics_search_page : 輸入公司名稱或 IP 範圍進行搜尋
pentester -> ics_search_page : 瀏覽 "協議" 列表
ics_search_page --> protocol_list : 顯示各種工業協議 (例如: DNP3)
pentester -> protocol_list : 點擊 "DNP3"
protocol_list --> dnp3_results : 顯示暴露在外的 DNP3 設備
dnp3_results --> pentester : 顯示設備資訊 (IP, 國家, 城市, 組織)
note right of shodan
瀏覽 Shodan 資訊安全,
但未經授權連接 IP 地址
可能涉及法律責任。
end note
@enduml看圖說話:
此圖示展示了滲透測試人員如何利用Shodan網站來搜尋暴露在網際網路上的工業控制系統(ICS)設備。流程從訪問Shodan主頁開始,然後透過「探索」功能進入ICS搜尋頁面。滲透測試人員可以在此頁面輸入目標公司的名稱或IP範圍進行搜尋,以發現任何公開的ICS設備。圖中特別強調了透過協議列表篩選DNP3協議的步驟,這將顯示所有暴露在外的DNP3設備及其相關資訊。然而,圖中也明確指出,雖然瀏覽Shodan上的資訊是安全的,但未經授權連接到識別出的IP地址則可能涉及嚴重的法律責任,這突顯了在OSINT活動中遵守資安倫理的重要性。
Shodan探索Koyo CLICK PLC與Exploit-DB研究
玄貓認為,透過Shodan這類工具,我們不僅能發現廣泛的網際網路連接設備,更能精準定位到特定品牌的工業控制系統,例如我們實驗室中使用的Koyo CLICK PLC。而Exploit-DB則提供了這些設備潛在漏洞的詳細資訊。
Shodan探索Koyo CLICK PLC:
- 搜尋特定設備:在Shodan搜尋欄中輸入「Koyo CLICK PLC」,可以發現許多暴露在網際網路上的Koyo CLICK設備。這證明了這些設備在實際環境中確實存在被公開存取的風險。
- 情報價值:在滲透測試中,發現客戶的設備或服務公開在網際網路上是至關重要的。透過這些資訊,我們可以建立一個更全面的客戶檔案,包括其所處行業、使用的技術以及相關人員。
此圖示:Shodan搜尋Koyo CLICK PLC
@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 "Shodan 網站" as shodan
participant "搜尋結果頁面" as search_results
pentester -> shodan : 訪問 Shodan 主頁
pentester -> shodan : 在搜尋欄輸入 "Koyo CLICK PLC"
shodan --> search_results : 顯示搜尋結果 (暴露在網際網路上的 Koyo CLICK 設備)
search_results --> pentester : 提供設備 IP, 位置, 服務等資訊
note right of shodan
Shodan 可用於發現
公開暴露的工業控制設備,
例如 Koyo CLICK PLC。
end note
@enduml看圖說話:
此圖示展示了滲透測試人員如何利用Shodan網站搜尋Koyo CLICK PLC的過程。滲透測試人員訪問Shodan主頁後,在搜尋欄中輸入「Koyo CLICK PLC」進行搜尋。Shodan會返回搜尋結果頁面,顯示所有暴露在網際網路上的Koyo CLICK設備,並提供其IP地址、地理位置和開放服務等詳細資訊。這個過程突顯了Shodan在發現工業控制設備的公開暴露面方面的強大能力,這對於滲透測試的初期情報蒐集階段具有重要意義。
Exploit Database (Exploit-DB) 研究:漏洞與利用
玄貓認為,Exploit-DB是一個龐大的公開漏洞、利用程式(exploits)和資安缺陷資訊庫。它為資安研究人員和滲透測試人員提供了一個共享已知漏洞的平台,這些資訊以易於搜尋的格式呈現。
Exploit-DB的結構與內容:
- 首頁:顯示最新發現的漏洞。
- 搜尋功能:提供搜尋欄位,可以輸入關鍵字進行搜尋。
- 漏洞列表:搜尋結果會列出與關鍵字相關的漏洞,每個漏洞包含以下資訊:
- 日期(Date):漏洞被添加到Exploit-DB的日期。
- 利用程式碼(Exploit Code):用於執行漏洞的程式碼。
- 易受攻擊的應用程式(Vulnerable App):漏洞所針對的應用程式。
- 驗證狀態(Verified):表示該利用程式是否經過測試並確認有效。
- 描述(Description):漏洞的詳細描述。
- 類型(Type):利用程式的類型(例如,遠端、本地)。
- 平台(Platform):利用程式所針對的系統平台。
- 作者(Author):編寫利用程式碼的人。
搜尋SCADA漏洞範例:
在Exploit-DB的搜尋欄中輸入「SCADA」,會列出大量與各種SCADA系統相關的漏洞。例如,在某個時間點,可能會發現50個與SCADA系統相關的漏洞。
Rockwell SCADA漏洞分析範例:
- 定位特定漏洞:我們可以找到一個與Rockwell SCADA相關的漏洞,例如2018年報告的一個漏洞。
- 漏洞詳情:點擊漏洞描述,可以查看其詳細資訊。
- CVE識別碼:該漏洞的CVE(Common Vulnerabilities and Exposures)識別碼是
2016-2279。這表示該漏洞在2016年被發現或報告。 - 漏洞影響:詳細描述了該漏洞可能造成的各種影響。
- 概念驗證(PoC):通常在描述的末尾會提供一個簡單的PoC範例。例如,該漏洞可能允許透過簡單的跨站腳本(XSS)攻擊來劫持用戶會話或從圖形用戶介面(GUI)竊取敏感系統資訊。
國家漏洞資料庫 (NVD) 導覽
玄貓認為,**國家漏洞資料庫(National Vulnerability Database, NVD)**是美國政府維護的一個最全面的開源漏洞資料庫。它整合了CVE資訊,並提供了更詳細的漏洞評分、影響分析和修復建議。
NVD的情報價值:
- 詳細的漏洞資訊:NVD提供了比Exploit-DB更詳細的漏洞資訊,包括CVSS(Common Vulnerability Scoring System)評分、影響範圍、受影響的軟體版本以及修復建議。
- 官方來源:NVD是美國國家標準與技術研究院(NIST)維護的官方資料庫,其資訊具有高度的權威性。
搜尋CVE範例:
- 使用CVE識別碼搜尋:在NVD網站的搜尋欄中輸入我們在Exploit-DB中找到的CVE識別碼
2016-2279。 - 查看詳細資訊:NVD將顯示該CVE的詳細頁面,包括其CVSS評分、漏洞描述、受影響的產品和版本、以及可能的解決方案或緩解措施。
此圖示:Exploit-DB與NVD漏洞研究流程
@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 "Exploit-DB 網站" as exploit_db
participant "NVD 網站" as nvd
participant "Rockwell SCADA 漏洞資訊" as rockwell_exploit_info
participant "CVE-2016-2279 詳細頁面" as cve_detail_page
pentester -> exploit_db : 訪問 Exploit-DB 主頁
pentester -> exploit_db : 搜尋 "SCADA"
exploit_db --> exploit_db : 顯示 SCADA 相關漏洞列表
pentester -> exploit_db : 選擇 "Rockwell SCADA" 相關漏洞
exploit_db --> rockwell_exploit_info : 顯示漏洞詳細描述 (含 CVE: 2016-2279, PoC)
rockwell_exploit_info --> pentester : 獲取 CVE 識別碼
pentester -> nvd : 訪問 NVD 主頁
pentester -> nvd : 搜尋 CVE 識別碼 "2016-2279"
nvd --> cve_detail_page : 顯示 CVE-2016-2279 詳細頁面
cve_detail_page --> pentester : 提供 CVSS 評分, 影響分析, 修復建議
note right of nvd
NVD 提供更全面、官方的
漏洞資訊和評分。
end note
@enduml看圖說話:
此圖示展示了滲透測試人員如何利用Exploit-DB和NVD這兩個重要的資料庫進行漏洞研究。首先,滲透測試人員訪問Exploit-DB網站,搜尋「SCADA」以查找相關漏洞,並定位到特定的Rockwell SCADA漏洞資訊。從Exploit-DB中,可以獲取漏洞的詳細描述和其CVE識別碼(例如2016-2279)。接著,滲透測試人員轉向NVD網站,使用該CVE識別碼進行搜尋。NVD會提供該漏洞更為全面和官方的詳細頁面,包括CVSS評分、影響分析、受影響的產品版本以及修復建議。這個流程說明了如何從Exploit-DB獲取初步的漏洞概念和利用程式,再透過NVD深入了解漏洞的嚴重性與官方的處理建議,這對於評估資安風險和規劃防禦策略至關重要。
結論
縱觀現代管理者的多元挑戰,資訊安全已從技術議題演化為攸關組織存續的策略核心。深入剖析本文所揭示的OSINT工具鏈後,可以發現,從Shodan的資產盤點、Exploit-DB的漏洞探勘,到NVD的風險評級,這套流程不僅展現了攻擊者視角的思維模式,更揭示了防禦方應如何整合外部情報,建立動態的風險評估框架。此方法的最大價值在於其整合性,但其挑戰亦在於如何拿捏情報蒐集與法律倫理的界線,避免從「白帽探索」誤入「未經授權存取」的灰色地帶。
未來,隨著自動化與AI技術的導入,這類攻擊面管理(Attack Surface Management)工具鏈將更為普及,高階管理者必須將其視為建構組織數位韌性的基礎設施,而非單純的技術工具。
玄貓認為,領導者應優先建立明確的資安倫理規範與授權流程,才能在善用這些強大工具的同時,有效控管法律與營運風險,將情報優勢轉化為實質的防禦能力。