01.概述
本文章結合作者在資產探測、入侵檢測、網絡攻防、蜜罐研究相關工作中大量實踐,并結合之前發布的幾篇工控相關文章,在此對工控蜜罐識別與反識別的技術進行研究與應用實踐與大家進行分享與探討。
工控蜜罐通常指非真實工控設備,通常指應用服務、仿真程序等,比如服務蜜罐包括conpot、openplc、CryPLH2、仿真程序包括modbus tester、Mod Rssim、snap7、opendnp3、qtester104、DNP3_testhaness、EtherNetIP Virtual等。
02.蜜罐介紹
(1)蜜罐種類
蜜罐可以分為數據庫蜜罐、web蜜罐、服務蜜罐、工控蜜罐及端點蜜罐,各種蜜罐對應的相關產品如下圖所示:
T-pot開源蜜罐是一種融合了多種開源蜜罐服務的匯總,其中包括知名的工控蜜罐conpot,所有蜜罐采用docker容器化方式與管理,關于 T-pot的安裝和使用可以參考freebuf相關文章,下圖是T-pot蜜罐使用的系統架構圖。
(3)現有工控蜜罐缺陷
目前互聯網上部署了大量的工控蜜罐,大多都是基于conpot蜜罐和仿真服務程序的。這些蜜罐基本屬于中低交互形式,蜜罐指紋特征通用、部署在云服務器上或者企業直接通過端口映射方式接入到互聯網。
03.蜜罐識別方法
首選在192.168.10.100(windows安裝仿真器)及192.168.10.112/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真實設備。
一般工控蜜罐,如服務蜜罐大多部署在linux? vmware及docker容器里面,
?下圖為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,獲取設備信息,均會返回非法功能碼指紋,如下圖所示:
Plc ?http協議指紋識別:
利用nmap 掃描工具對目標設備開放的端口和服務進行掃描識別,可以發現openplc默認開放了http 8080端口,瀏覽器訪問http://ip:8080查看plc管理頁面與真實工控plc設備不一樣,并提取http指紋特征。
Conpot S7 協議 蜜罐服務指紋特征識別
可以通過nmap -p 102 –scripts7-enumerate.nse 116.85.10.173 進行s7 plc資產探測,并獲取以下數據報文。
通過閱讀conpots7comm源碼,找到S7服務蜜罐通用特征如下所示
特征1:
如下圖所示:
特征2:
通過閱讀conpot s7蜜罐服務代碼,發現S7返回的獲取設備信息應用數據最后6個字節始終為 “x00x00x00x00x00x00”
但是特征1可以通過conpot 模板進行蜜罐特征快速簡單修改,而特征2如果要修改,則需參照s7協議規約對源代碼進行修改,我們采用指紋特征識別conpot s7蜜罐時候,則可以采用以上兩種方式進行識別。
?Conpot ENIP蜜罐服務指紋特征識別
通過閱讀conpot ENIP蜜罐服務代碼,發現向設備發送63功能碼獲取設備信息,返回的數據device_status== x60x31 和 device_state == xff
其它工控蜜罐
Conpot 其它工控蜜罐包括及仿真程序,均可以結合工控協議規約及通過抓包分析,并與真實設備抓取的數據包進行比對分析,找出蜜罐特征。
其它蜜罐及仿真服務程序包括,conpot、openplc、CryPLH2、仿真程序包括modbus tester、Mod Rssim、snap7、opendnp3、qtester104、DNP3_testhaness、EtherNetIP Virtual等。
04.蜜罐反識別方法
通過對蜜罐部署方式及特征分析,如果我們部署蜜罐服務時候,可以考慮采用以下方法進行規避。
1.如果蜜罐服務要部署在外網,盡量避免使用云服務廠商提供的服務。
2.如果蜜罐服務部署在企業內網,盡量在蜜罐服務或者仿真程序前面部署一個vxworks系統的設備,并在上面開啟端口轉發服務,或者利用Qmenu模擬運行vxworks操作系統,使攻擊者誤以為掃描到的工控設備使用的是vxworks實時操作系統。
3.定期修改蜜罐內部特征,如conpot蜜罐模板信息,conpot源碼中返回報文的協議特征。同一個ip蜜罐節點,盡量只開放如真實plc設備的端口和服務,如502、80、161等端口,避免開放過多及無效的應用端口,被攻擊者快速識別蜜罐。
4.修改宿主機mac地址,盡可能修改成西門子、GE等工控設備的MAC地址,增加攻擊者識別蜜罐的難度。
5.服務蜜罐盡可能實現協議規約必須的功能碼,如施耐德plc的17、42、90信息獲取功能碼任何一個。
05.蜜罐架構及部署
工控蜜罐系統架構如下圖所示:
下一篇:工控資產嗅探與分析實踐