一、概述

本文章結合作者在資產探測、入侵檢測、網絡攻防、蜜罐研究相關工作中大量實踐,在此對工控蜜罐識別與反識別的技術進行研究與應用實踐與大家進行分享與探討。

工控蜜罐通常指非真實工控設備,通常指應用服務、仿真程序等,比如服務蜜罐包括conpot、openplc、CryPLH2、仿真程序包括modbus tester、Mod Rssim、snap7、opendnp3、qtester104、DNP3_testhaness、EtherNetIP Virtual等。

二、蜜罐介紹

蜜罐是一種軟件應用系統,用來稱當入侵誘餌,誘導黑客前來攻擊。攻擊者入侵系統後,通過監測與預計分析,就可以知道他是如何入侵的,隨時瞭解針對系統發動的最新的攻擊和漏洞。還可以通過竊聽黑客之間的聯繫,收集黑客所用的種種工具,並且掌握他們的社交網絡。

蜜罐系統以僞裝技術爲基礎,在用戶內部網絡中部署與真實資產相似的“陷阱”(蜜罐節點),當攻擊者通過外部安全防禦系統的缺陷滲透進入到內部網絡時,通常需要搜索網絡內部的資產,以此找到對攻擊者而言有價值的目標。 蜜罐節點自身的僞裝性能夠欺騙攻擊者,當攻擊者將蜜罐節點作爲攻擊目標時, 蜜罐節點能夠第一時間感知並彙報安全事件,具體包括:蜜罐節點會記錄攻擊者的所有行爲,系統也會產生告警,通知安全運營管理人員。蜜罐節點會誘騙攻擊者將其他蜜罐節點作爲後續的攻擊目標, 所有蜜罐節點將組成“陷阱”網絡,延緩了攻擊時間,使得蜜罐系統能夠記錄更多的攻擊信息,分析潛在威脅。

(1)蜜罐種類

蜜罐可以分爲數據庫蜜罐、web蜜罐、服務蜜罐、工控蜜罐及端點蜜罐,各種蜜罐對應的相關產品如下圖所示:

(2)常見蜜罐及地址

T-pot蜜罐是一種融合了多種開源蜜罐服務的彙總,其中包括工控蜜罐conpot,所有蜜罐採用docker容器化方式部署與管理,關於T-pot的安裝和使用可以參考freebuf相關文章,下圖是T-pot蜜罐使用的系統架構圖。

(3)現有工控蜜罐缺陷

目前互聯網上部署了大量的工控蜜罐,大多都是基於conpot蜜罐和仿真服務程序。這些蜜罐基本屬於中低交互形式,蜜罐指紋特徵通用、部署在雲服務器上或者企業直接通過端口映射方式接入到互聯網。

三、蜜罐識別方法

首先在192.168.10.100(windows安裝仿真器)及192.168.10.122(linux安裝部署openplc、conpot、tpot蜜罐仿真服務),安裝方法可以參考freebuf相關文章。

(1)IP地址識別

一般工控設備如plc、dcs、rtu等很少直接暴露到互聯網,在業務需要情況下可能會將工控設備直接暴露在互聯網,比如設備遠程維護等。

通過查詢IP地址對應的ISP,既服務提供運營商,來判斷所述IP是否屬於雲服務器提供商的IP地址。當所述IP屬於雲服務器,並且開放了PLC的工控協議服務如modbus、s7、ethernetip等,則可判定IP爲工控蜜罐。

針對IP地址對應的ISP和Organization的信息查詢,能夠通過如IPIP、純真、Rtbasia、ipplus360、iplookup、GeoIp2、IP2Region的IP地址信息庫,通過獲取的信息來綜合判定IP地址是否屬於雲服務器提供商。

(2)操作系統及MAC廠商指紋識別

一般工控設備均爲嵌入式設備,如plc、dcs、rtu大多使用實時操作系統如vxworks、QNX,HMI設備一般使用wincc操作系統等;通過TCP/IP操作系統指紋識別,獲取目標IP的TCP/IP協議棧指紋,當目標IP的操作系統被識別爲Linux的非嵌入式操作系統。並且該設備未經過路由轉發與映射,通常可認爲是蜜罐系統。

操作系統識別可以使用Nmap和Xprobe2的掃描工具,Nmap是一種開源的工業級掃描工具,Xprobe2是一種操作系統掃描工具。

設備MAC地址會根據不同的設備廠商分配不同的段, 工控設備廠商大多也可以從MAC地址來區分。

下圖MAC爲西門子廠商 S7300 PLC真實設備

下圖MAC爲施耐德廠商 M580 PLC真實設備

下圖MAC爲GE廠商 GESRTP協議 PLC 真實設備

一般工控蜜罐,如服務蜜罐大多部署在linux vmware及docker容器裏面,而仿真服務部署在windows系統上面。

下圖爲modbus協議PLC使用vmware,可判斷爲蜜罐服務

下圖爲該設備爲modbus協議plc設備,但是通過tplink路由器進行報文路由,所以該 設備 mac地址變成tplink路由器mac地址。

(3)指紋特徵識別

Openplc modbus蜜罐服務指紋特徵識別:

Modbus plc真實工控設備一般會開放modbus 502端口, http 80/8080端口,snmp 161端口:

安裝部署Openplc,並且閱讀源碼如下,分析蜜罐特徵,可以看出openplc只實現了1-16功能碼,而重要的設備信息功能碼如報告從設備信息17功能碼、獲取設備信息43功能、施耐德獲取cpu、工程等信息90私有功能碼均未實現。

Plc Modbus協議指紋識別,所以我們可以構造17、43、90功能碼去請求openplc,獲取設備信息,均會返回非法功能碼指紋,如下圖所示:

openplc http協議指紋識別:

利用nmap 掃描工具對目標設備開放的端口和服務進行掃描識別,可以發現openplc默認開放了http 8080端口,瀏覽器訪問 http://ip:8080 查看plc管理頁面與真實工控plc設備不一樣,並提取http指紋特徵。

Conpot S7 協議 蜜罐服務指紋特徵識別:

在shodan尋找工控蜜罐如下圖所示,可通過nmap -p 102 –script s7-enumerate.nse 116.85.10.173 進行s7 plc資產探測驗證,並獲取以下數據報文。

通過閱讀conpot s7comm源碼,找到S7服務蜜罐通用特徵如下所示

特徵1:

如下圖所示:

特徵2:

通過閱讀conpot s7蜜罐服務代碼,發現S7返回的獲取設備信息應用數據最後6個字節始終爲 “\x00\x00\x00\x00\x00\x00”

但是特徵1可以通過conpot 模板進行蜜罐特徵快速簡單修改,而特徵2如果要修改,則需參照s7協議規約對源代碼進行修改,我們採用指紋特徵識別conpot s7蜜罐時候,則可以採用以上兩種方式進行識別。

Conpot ENIP蜜罐服務指紋特徵識別:

通過閱讀conpot enip蜜罐服務代碼,發現向設備發送63功能碼獲取設備信息,返回的數據device_status== \x60\x31 和device_state == \xff

其它工控蜜罐:

Conpot 中還包括其它工控服務程序,均可以結合工控協議規約及通過抓包分析,並與真實設備抓取的數據包進行比對分析,找出蜜罐特徵。

其它蜜罐及仿真服務程序包括,conpot、openplc、CryPLH2、仿真程序包括modbus tester、Mod Rssim、snap7、opendnp3、qtester104、DNP3_testhaness、EtherNetIP Virtual等。

四、蜜罐反識別方法

通過對蜜罐部署方式及特徵分析,如果我們部署蜜罐服務時候,可以考慮採用以下方法進行規避。

1.如果蜜罐服務要部署在外網,儘量避免使用雲服務廠商提供的服務。
2.如果蜜罐服務部署在企業內網,儘量在蜜罐服務或者仿真程序前面部署一個vxworks系統的設備,並在上面開啓端口轉發服務,或者利用Qmenu模擬運行vxworks操作系統,使攻擊者誤以爲掃描到的工控設備使用的是vxworks實時操作系統。
3.定期修改蜜罐內部特徵,如conpot蜜罐模板信息,conpot源碼中返回報文的協議特徵。同一個ip蜜罐節點,儘量只開放如真實plc設備的端口和服務,如502、80、161等端口,避免開放過多及無效的應用端口,被攻擊者快速識別蜜罐。
4.修改宿主機mac地址,儘可能修改成西門子、GE等工控設備的MAC地址,增加攻擊者識別蜜罐的難度。
5.服務蜜罐儘可能實現協議規約必須的功能碼,如施耐德plc的17、42、90信息獲取功能碼任何一個。
6.儘可能實現高交付服務蜜罐,也可以採用虛實結合部署方式進行部署,增加蜜罐識別難度。

五、蜜罐架構及系統業務

工控蜜罐系統架構如下圖所示:

工控蜜罐系統業務如下圖所示:

六、總結

蜜罐服務及系統使用場景較多,主要包括部署在互聯網、企業內網、網絡攻防競賽平臺中等。當部署在互聯網上,可以收集資產探測系統的資產識別指紋,以及攻擊者的針對漏洞的攻擊行爲,便於安全研究與分析;當部署在企業內網,可以做爲威脅感知系統,捕獲攻擊者行爲,觸發告警系統,延緩真實設備被攻擊的時間和風險;當部署在網絡攻防競賽系統裏面,可以混淆真實設備,誘導攻擊者入侵,增加比武競賽難度。

七、參考鏈接

openplc部署於分析 https://www.freebuf.com/articles/ics-articles/213018.html

工控資產嗅探與分析 https://www.freebuf.com/ics-articles/209786.html

tpot安裝與使用 http://www.freebuf.com/news/193347.html

mac地址與對應廠商 https://gitlab.com/wireshark/wireshark/raw/master/manuf

*本文原創作者:yy0308,本文屬於FreeBuf原創獎勵計劃,未經許可禁止轉載

相關文章