■ 河南 許紅軍
隨著IoT技術(shù)的發(fā)展,大量IoT設(shè)備接入網(wǎng)絡(luò),會產(chǎn)生很多安全問題。MUD技術(shù)可以幫助管理員了解接入的什么類型設(shè)備,產(chǎn)生什么流量,觸發(fā)什么行為,并據(jù)此創(chuàng)建適當?shù)目刂撇呗赃M行管控。
IoT設(shè)備一般只擁有單一或較少用途,因此可以允許其擁有該單一的用途而禁止其他功能,并攔截無關(guān)的流量和行為。
例如,對于溫度檢測設(shè)備來說,就僅僅讓其可以檢測溫度信息,禁止執(zhí)行別的操作。
IoT設(shè)備功能較為單一,不會產(chǎn)生較多的流量,所以其性能是被嚴格約束的,例如只允許其擁有較低的CPU和內(nèi)存使用率,消耗的電量很低等。所以該設(shè)備的任意行為都應該被明確標識。例如IoT廠商應明確告知用戶設(shè)備的具體用途等。網(wǎng)絡(luò)管理員需要擁有對網(wǎng)絡(luò)的使用擁有最終管理權(quán),便于放行或禁止哪些流量。
IoT設(shè)備廠商應擺正問題,主動給網(wǎng)絡(luò)管理員提供指導服務(wù),明確設(shè)備具體功能,便于管理員放行相關(guān)的流量。
很多IoT設(shè)備雖然具有一些自我保護功能,但不可避免的會存在一些漏洞,這很容易被黑客發(fā)現(xiàn)和利用,因此需要一個完整的機制來保護脆弱的IoT設(shè)備。不同IoT設(shè)備可以通過LLDP/DHCP/802.1X等協(xié)議的特定字段來發(fā)送設(shè)備宣告(Device Advertisement)的URL,例如“https://mud.mfg.xxx.com/lightbulb1001/version2.12”等。該URL鏈接包括設(shè)備產(chǎn)生的域名、具體的設(shè)備型號和版本,會發(fā)送給網(wǎng)絡(luò)控制設(shè)備。實際上,和IoT設(shè)備描述緊密相關(guān)的是一個基于YANG模型的JSON文件,其中包含了上述URL地址和描述信息、與該設(shè)備相關(guān)的訪問控制列表、設(shè)備網(wǎng)關(guān)地址、訪問的源和目的端口,以及采取的處理動作等信息。IoT設(shè)備網(wǎng)關(guān)可以是一個由IoT廠商提供的具體設(shè)備,也可以是一個互聯(lián)網(wǎng)地址。
IoT設(shè)備廠商可在其中明確定義設(shè)備的流量行為,例如,在“access→list 10 permit host controller.mfg.xxx.com”之類的ACL中,就明確了可以方向的流量。在“access→list 11 deny deny”之類的ACL中明確了哪些流量需要禁止。根據(jù)該JSON文件,網(wǎng)絡(luò)管理員可以了解該設(shè)備會執(zhí)行哪些訪問行為,并產(chǎn)生哪些網(wǎng)絡(luò)流量等信息。在該JSON文件中,會定義一些控制器類型。
例 如,“My Controller”參數(shù)會定義在企業(yè)內(nèi)部存在控制器,用來放行對應的流量?!癈ontroller”參數(shù)會定義在互聯(lián)網(wǎng)上的通用控制器?!癕anufacturer”參數(shù)中會定義用于在物聯(lián)網(wǎng)設(shè)備之間通訊的控制器等。
對于Cisco設(shè)備來說,當IoT設(shè)備上線后,會為其授權(quán)TrustSec的標簽。例如,“l(fā)ight”標簽用來定義照明設(shè)備,“Camera”用來定義拍攝設(shè)備,“Controller”用來定義控制設(shè)備等。這樣,可以在上述設(shè)備間靈活的控制流量。
MUD是一個IETF標準,用來解決IoT設(shè)備的可視化和隔離挑戰(zhàn)。通過MUD可以讓人了解目標設(shè)備是由哪個廠商生產(chǎn)的,具體用途,會產(chǎn)生什么流量,如何對其進行控制和隔離等。MUD的架構(gòu)包括IoT Asset(物聯(lián)網(wǎng)設(shè)備),Network Device(交換機或WLC),MUD Controller(MUD控制器)和MUD File Server(云端的MUD文件服務(wù)器)等組成。
當一個IoT設(shè)備首次連接到網(wǎng)絡(luò)中時,會發(fā)送內(nèi)嵌在LLDP/DHCP/802.1X請求中的MUD URL,當交換機等網(wǎng)絡(luò)設(shè)備接收到該URL后,會將其封裝到RADIUS的包中,并傳遞給ISE等3A服務(wù)器。
3A服務(wù)器會對其進行解包,并提取該MUD URL,并提交給MUD控制器。
注意,MUD控制器實際上是ISE等3A服務(wù)器的一個組成部分。
之后ISE就會通過HTTPS協(xié)議聯(lián)系云端的目標廠商的文件服務(wù)器,該文件服務(wù)器會返回給ISE一個JSON格式的文件,在其中包含了一些控制策略。ISE會對其進行轉(zhuǎn)換,使其變成ISE支持的控制規(guī)則。接著ISE就會推送這些策略(ACL或TrustSec標簽等)給交換機等網(wǎng)絡(luò)設(shè)備。
交換機據(jù)此可以對IoT設(shè)備進行授權(quán),只放行該設(shè)備廠商定義好的允許放行的訪問流量。這樣,該IoT設(shè)備就可以安全穩(wěn)定地工作了。
但是目前的MUD1.0實際上是存在一些限制的,例如其可以支持ISE 2.6版本,IOS的版本為16.9.1或者15.2.6、Catalyst 9k,以 及3850 and CDB、IE4000等交換設(shè)備。MUD 1.0還需要手工指定控制策略,無法實現(xiàn)更加高級的自動化控制。隨著MUD版本的演進,其逐漸會擁有更加自動化的功能。
在本例中,當某個IoT設(shè)備第一次上線后,會向與其連接的交換機發(fā)送MUD URL信息,交換機接收后會將其封裝到Radius包中,通過HTTPS協(xié)議發(fā)送給ISE設(shè)備。
首先登錄到ISE管理界面,點擊工具欄中的“Administration→Settings”項,在左側(cè) 選擇“Profiling”項,在右側(cè)的“Enable profile for MUD”欄中選 擇“Enabled”項,激活MUD設(shè)備識別功能。點擊工具欄中的“Administration→Network Devices”選項,然后點擊“Add”按鈕,創(chuàng)建名為“MudDev”的網(wǎng)絡(luò)設(shè)備,在“IP Address”欄中輸入該IoT設(shè)備的IP(例如“192.168.1.200”)。
在“Device Type”欄中選擇“IoT”項,當然,事先需要在ISE中創(chuàng)建名為“IoT”的設(shè)備類型,其實就是交換機設(shè)備。該選擇“RADIUS Authentication Settings”項,在“*Shared Secret”欄中輸入密鑰,點擊“Save”按鈕提交修改。這樣,ISE才可以接收指定IoT設(shè)備的信息。點擊工具欄中的“Policy→Policy Sets”項,在名為“Default”的策略右側(cè)點擊“>”按鈕,在打開窗口中選擇“Authentication Policy”項,創(chuàng)建名為“IoT Policy”的規(guī)則,凡是屬于“IOT”設(shè)備類型的都需要到終端進行檢查。這樣,ISE才可以接收MUD URL 信息。
點擊工具欄中的“Operations→Live Logs”項,查看實時日志信息,在其中按照特定的排序規(guī)則(例如只顯示最近60秒日志等),可以看到交換機發(fā)送來的MUD URL信息。點擊工具欄中的“Context Visibility→Endpoints”項,在列表中選擇對應終端的MAC地址項目,在其屬性窗口中打開“Attrinutes”面板,在“Endpoint Policy”欄中顯示ISE已經(jīng)為其指派的策略,在“Identity Group Assignment”欄中顯示設(shè)備識別自動產(chǎn)生的組信息。
這說明ISE已經(jīng)可以動態(tài)識別與該IoT設(shè)備關(guān)聯(lián)的JSON文件,例如“https://www.genisyslighting.com/files/MUD/xxxxxx.json”等,并自動為其匹配策略并將創(chuàng)建設(shè)備識別組,其中的“xxxxxx”表示具體的文件名稱。點擊工具欄中的“Adminitration→Identity→Groups”項,在左側(cè) 選擇“Endpoint Identiry Groups→Profile”項,在列表中選擇ISE為其自動創(chuàng)建的組,在右側(cè)可以看到該IoT設(shè)備的MAC地址已經(jīng)保存在該組中了。點擊工具欄中的“Policy→Profiling”項,在其中可以看到ISE針對該IoT設(shè)備自動產(chǎn)生的識別策略。
在本例中可以可以看到,ISE針對該IoT設(shè) 備創(chuàng)建的組和策略的名稱是相同的,例 如“IOT-MUDgenisyslighting_files_MUD_xxxxxx_json”。
即ISE可以自動執(zhí)行設(shè)備識別,創(chuàng)建對應的策略和組,并將該設(shè)備放到該組中。點擊工具欄中的“Policy→Policy Sets”項,在名為“Default”的策略右側(cè)點擊“>”按鈕,在打開窗口中打開“Authentication Policy”項,在打開窗口中選擇“Authoration Policy”項,在其中創(chuàng)建所需的授權(quán)策略(例如名稱為“IoT_Ahthor”),凡是上述組中的設(shè)備,都賦予其一個標簽(例如名稱為“IoT_device”),便于基于該標簽執(zhí)行訪問控制操作。
中值和均值相結(jié)合的方法,在圖像中先假設(shè)某點灰度值實際分布滿足正態(tài)分布,如果像點灰度值處在一定范圍內(nèi),則可進行均值濾波處理;如果像點灰度值沒有處在這個范圍內(nèi),則要進行中值濾波。
對于目前的MUD 1.0來說,還無法根據(jù)相應的JSON文件來自動產(chǎn)生所需的訪問控制策略,這里需要手工進行操作。
打開“https://www.genisyslighting.com/files/MUD/xxxxxx.json”地址,顯示該JSON文件的具體內(nèi)容。打開“https://www.json.cn/”地址,可以在線檢測其完整性。查看該JSON文件內(nèi)容,可以看到其中包含的諸如“from-devicepolicy”,“to-devicepolicy”等控制策略信息。進行分析后,對于內(nèi)部控制器去往設(shè)備的流量來說,其源端口為UDP 9760,目的端口為UDP 30303。從設(shè)備之間的流量來說,其源和目的端口都是TCP 9760,這些流量是需要放行的。
在ISE界面工具欄點擊“Work Centers→ TrustSec→Components”項,在左側(cè)選擇“Security Groups”,在右側(cè)點擊“Add”,分別創(chuàng)建“IoT_Controller”和“IoT_device”兩個標簽。在左側(cè)選擇“Security Group ACLS”,在右側(cè)點擊“Add”,創(chuàng)建“Controller_to_IoT”的ACL,在“IP Version”欄 中選擇“IPv4”,在“*Security Group ACL content”輸入:
permit udp dst eq 9760
permit udp src eq 30303
deny ip
按照同樣方法創(chuàng)建名為“IoT_to_Controller”的項目,在“IP Version”欄中選 擇“IPv4”,在“*Security Group ACL content”中輸入:
permit udp src eq 9760
permit udp dst eq 30303
deny ip
點擊“Save”,放行從設(shè)備到內(nèi)部控制器間的流量。
同樣,創(chuàng)建名為“IoT_to_IoT”的項目,在“IP Version”欄中選擇“IPv4”,在“*Security Group ACL content”欄中輸入:
permit TCP src eq 9760 dst eq 9760
deny ip
點擊“Save”,放行設(shè)備間的流量,其他流量禁止放行。
在工具欄上點擊“Work Centers→TrustSec→TrustSec Policy”項,在左側(cè)選擇“Egress Policy→Matrix”項,在右側(cè)顯示所有標簽信息。為便于顯示,在窗口右上角的“Show”列表中選擇“Create custom view”項,創(chuàng)建名為“IoT”的過濾器,在“Source Security Groups”欄中選擇上述“IoT_Controller”和“IoT_device”標簽,點擊“>”按鈕,添加到“Show”列表。
同理,在“Destination Security Groups”列表分別選擇“IoT_Controller”和“IoT_device”標簽,點擊“>”按鈕,添加到“Show”列表中。點“Save”創(chuàng)建該過濾器。
這樣,在上述“Show”列表中選擇該過濾器,就僅僅顯示這兩個標簽的流量。在窗口中橫向為“Destination”設(shè)備,縱向為“Source”設(shè)備,在橫向的“IoT_device”和縱向的“IoT_device”坐標上點擊,在打開窗口中的“Assign Security Group ACLs”中分別選擇“Select an SGACL”和“IoT_to_IoT”,允許放行設(shè)備之間流量,點擊“Save”保存配置信息。
在橫向“IoT_controller”和縱向的“IoT_device”坐標上點擊,在打開窗口中的“Assign Security Group ACLs”中分別選擇“Select an SGACL”和“IoT_to_Controller”項,允許設(shè)備到內(nèi)部控制器之間的流量,點擊“Save”保存。在橫向的“IoT_device”和縱向的“IoT_Controller”坐標上點擊,在打開窗口中的“Assign Security Group ACLs”中分別選擇“Select an SGACL”和“Controller_to_IoT”項,放行內(nèi)部控制器到設(shè)備之間的流量,點擊“Save”保存。
在橫向“IoT_Controller”和縱向的“IoT_Controller”坐標上點擊,在打開窗口中的的“Status”列表中選擇“Disabled”項,禁止在控制器之間放行流量。在工具欄上點擊“Policy→Policy Sets”項,在授權(quán)策略窗口中打開“Authorization Policy”列表,在其中添加一條授權(quán)策略(例如名為“IoT_Author”),針對上述ISE自動創(chuàng)建的名為“IOT→MUD→genisyslighting_files_MUD_79590001A4_json”的組,賦予其名為“IoT_device”的標簽。
這樣當IoT設(shè)備上線后,交換機會得到其發(fā)送的MUD URL信息,然后封裝到Radius包中,通過HTTPS協(xié)議發(fā)送給ISE設(shè)備。之后ISE的TrustSEC機制就會發(fā)揮作用,從而實現(xiàn)標簽間的訪問控制功能,并向交換機推送授權(quán)信息。在ISE管理界面中選擇“Operations→RADIUS→Live Logs”項,在日志中即可查看到相關(guān)的授權(quán)信息。