■
S N M P,即S i m p l e Network Management Protocol(簡單網(wǎng)絡(luò)管理協(xié)議),其本來的作用是管理Internet上眾多廠家生產(chǎn)的軟硬件平臺。因此,大多數(shù)網(wǎng)絡(luò)中總有一些設(shè)備運(yùn)行著SNMP服務(wù),實(shí)際上很多情況下該服務(wù)是無關(guān)緊要的,但是管理員對其卻并不在意。實(shí)際上,如果主機(jī)接入到了Internet,而且其開啟了SNMP服務(wù)的話,其對主機(jī)的安全會造成很大的威脅。因?yàn)镾NMP服務(wù)通常在防火墻防護(hù)層之外的設(shè)備上運(yùn)行,它帶來的風(fēng)險更加嚴(yán)重。因?yàn)镾NMP服務(wù)一般都采用了默認(rèn)的通訊字符串(例如連接密碼等),包括“Public”和“Private”等,這雖然可以簡化配置,提高互訪的效率,但卻很容易被黑客惡意利用。
例如,對于Cisco等路由器來說,可以通過SNMP代理對其進(jìn)行遠(yuǎn)程控制。方法是先在路由器上配置好SNMP代理參數(shù),包括MIB變量訪問、MIB變量設(shè)置、SNMP中斷和SNMP團(tuán)體等功能。之后可以使用基于SNMP協(xié)議的管理軟件,對其進(jìn)行遠(yuǎn)程訪問。SNMP團(tuán)體字符串包括Public(代表對路由器資源的只讀權(quán)限)和Private(代表對其擁有可讀寫權(quán)限)。當(dāng)黑客使用專用的工具對路由器發(fā)起掃描探測時,如果發(fā)現(xiàn)其SNMP團(tuán)體字符串的權(quán)限為“private”,說明該路由器存在安全漏洞。黑客會利用該漏洞,利用特殊的下載工具獲得路由器的配置文件,對該配置文件分析后,黑客可以獲得其Console的登錄密碼,即使密碼經(jīng)過加密處理。
這樣,黑客就獲得了對該路由器的控制權(quán)。不要以為設(shè)置了足夠強(qiáng)的密碼就可以防止黑客破譯,黑客完全可以采取偷梁換柱的方法,對下載的路由器配置文件中的密碼進(jìn)行替換,即使用已知密碼的MD5編碼替換原密碼編碼,之后通過上傳工具,利用路由器自身的SNMP漏洞,將修改后的配置文件寫入路由器中。這樣,黑客就可以使用已知的密碼連接該路由器了。而且SNMP服務(wù)通常采用的是不加密的通訊機(jī)制,所有的通訊字符串和數(shù)據(jù)均已明碼傳送。雖然在高版本的SNMP服務(wù)中采用了DES算法對通訊數(shù)據(jù)進(jìn)行了加密,但是廠家通常使用標(biāo)準(zhǔn)的通訊字符串,這對于黑客來說簡直不堪一擊。
例如,使用X-Scan等掃描器,通過隨機(jī)掃描等方法,可以很容易找到很多存在SNMP弱口令的主機(jī),進(jìn)而對其SNMP中的管理信息庫進(jìn)行訪問,在該庫中保存了系統(tǒng)類型、用戶列表、運(yùn)行時間、進(jìn)程列表等重要信息。因?yàn)镾NMP服務(wù)會開啟UDP 161和162兩個端口,黑客只要掃描到這兩個端口,就可以準(zhǔn)確定位開啟了SNMP服務(wù)的主機(jī)。當(dāng)黑客掃描到目標(biāo)主機(jī)的SNMP弱口令后,即使該機(jī)安裝了防火墻,黑客也可以利用各種工具(例如Snmputil等),繞過防火墻,對目標(biāo)主機(jī)進(jìn)行信息的刺探操作。例如,查詢其系統(tǒng)信息、了解其聯(lián)系人以及開機(jī)時間、檢測安裝的軟件信息、查詢進(jìn)程列表和主機(jī)域名、獲取賬戶列表和開啟的服務(wù)信息等敏感信息。
當(dāng)然,黑客還可以使用IP Browser這款專用工具,掃描指定網(wǎng)段來尋找SNMP主機(jī),利用其圖形化界面,來更加準(zhǔn)確地獲得系統(tǒng)信息、服務(wù)列表、軟件安裝信息、賬戶列表、進(jìn)程信息、共享信息、網(wǎng)絡(luò)連接信息等內(nèi)容。即使網(wǎng)絡(luò)設(shè)備上使用了高版本的SNMP服務(wù),采取了加密通訊手段,黑客也會利用GFI LANguard Network Security Scanner等工具,對其進(jìn)行密碼破解,進(jìn)而獲得更加詳細(xì)的主機(jī)信息。
通過SNMP服務(wù)漏洞洞悉了目標(biāo)主機(jī)的虛實(shí)后,黑客就會蠢蠢欲動對其發(fā)起實(shí)際攻擊了,例如,通過查詢服務(wù)列表,黑客了解到了該機(jī)開啟了終端服務(wù)。通過查詢賬戶列表,確定了可以利用的目標(biāo)賬戶名,就可以利用Tscrack等工具,利用精心配置的密碼字典,對目標(biāo)賬戶名進(jìn)行密碼暴力破解。如果其密碼設(shè)置得比較簡單,黑客就可以很輕松地將其破譯。有了賬戶名和密碼,黑客可以輕松地運(yùn)行“mstsc.exe”程序,來連接該機(jī)并登錄到終端服務(wù)控制環(huán)境,將該機(jī)徹底控制起來。
實(shí)際上,在Windows/XP/2003/2008等系統(tǒng)中,默認(rèn)并沒有安裝SNMP服務(wù)。但是,很多網(wǎng)絡(luò)軟件會自動安裝該服務(wù),這就給系統(tǒng)造成了潛在的威脅。因此,禁用該服務(wù),尤其是在網(wǎng)管員沒有使用SNMP管理網(wǎng)絡(luò)的情況下,是最簡單徹底的解決此類威脅的方法。例如點(diǎn)擊“Win+R”鍵,執(zhí)行“service.msc”程序,在服務(wù)管理器中雙擊“SNMP Service”項,在彈出窗口中的點(diǎn)擊“停止”按鈕,終止該服務(wù),在“啟動類型”列表中選擇“已禁用”項,可以禁用該服務(wù)。
為了掌握哪些主機(jī)開啟了SNMP服務(wù),可以利用掃描器對其進(jìn)行掃描,來發(fā)現(xiàn)使用SNMP服務(wù)的所有主機(jī),并對其進(jìn)行適當(dāng)控制。當(dāng)然,在網(wǎng)絡(luò)中該存在各種網(wǎng)絡(luò)設(shè)備(例如交換機(jī)、網(wǎng)絡(luò)打印機(jī)等),這些設(shè)備同樣會運(yùn)行SNMP服務(wù),對這些設(shè)備同樣不可忽視。例如,對于Cisco設(shè)備,可以在其中運(yùn)行“no SNMP-server”之類的命令,來禁用SNMP服務(wù)。對于某些網(wǎng)絡(luò)打印機(jī)來說,可以使用Telnet工具連接到其控制臺,執(zhí)行“SNMP config:0”之類的指令,來關(guān)閉其SNMP服務(wù)。不同的網(wǎng)絡(luò)設(shè)備關(guān)閉SNMP服務(wù)的指令可能存在差異,可以參閱其幫助文檔。
另外,如果想暫時恢復(fù)SNMP服務(wù),可以采用激活SNMP Service服務(wù),或者連接到對應(yīng)的網(wǎng)絡(luò)設(shè)備上,執(zhí)行對應(yīng)的激活指令,來重新啟用SNMP服務(wù)。當(dāng)然,為SNMP服務(wù)打上補(bǔ)丁是不可缺少的,例如將SNMP服務(wù)升級到最新版本等。在不同網(wǎng)絡(luò)設(shè)備的官方網(wǎng)站上,關(guān)注與之相關(guān)的安全升級和補(bǔ)丁信息,及時下載并安裝各種補(bǔ)丁程序。
為了提高SNMP服務(wù)的安全性,應(yīng)該針對不同的網(wǎng)絡(luò)設(shè)備,有針對性地修改其默認(rèn)的通信字符串,避免其被黑客輕易獲取。任何網(wǎng)絡(luò)服務(wù)的運(yùn)作都離不開網(wǎng)絡(luò)端口,SNMP服務(wù)也不例外,其使用的是161,162端口,有些網(wǎng)絡(luò)設(shè)備還會使 用 199、391、705、1993 等端口,可以在防火墻上禁用這些端口,切斷其與外部網(wǎng)絡(luò)的連接。
在內(nèi)網(wǎng)中,還可以在交換機(jī)路由器等設(shè)備上,編寫相應(yīng)的安全規(guī)則,只允許特定設(shè)備的SNMP服務(wù)來管理網(wǎng)絡(luò)信息。例如,可以在路由器上配置訪問控制列表ACL,來防止黑客通過SNMP進(jìn)行入侵。例如在Cisco的路由配置文件中,添加“access-list 1 permit xxx.xxx.xxx.xxx”和“snmp-server community lianjiezifuchuan RO 1”等語句,來創(chuàng)建名為1的訪問控制列表項目,設(shè)置指定的IP可以對SNMP服務(wù)進(jìn)行連接訪問,其中的“xxx.xxx.xxx.xxx”代表指定的IP。并設(shè)置認(rèn)證字符串“l(fā)ianjiezifuchuan”與之配對,即將SNMP服務(wù)的認(rèn)證字符串修改為“l(fā)ianjiezifuchuan”。當(dāng)然,您可以根據(jù)需要進(jìn)行修改。這樣,就避免了使用默認(rèn)的“Public”和“Private”連接字符串帶來的安全風(fēng)險。

圖1 為篩選器設(shè)置協(xié)議參數(shù)
某些網(wǎng)絡(luò)設(shè)備處于穩(wěn)定運(yùn)行的需要,必須使用SNMP服務(wù),這樣就無法采用禁用的方法,來屏蔽SNMP安全隱患了。為此,可以強(qiáng)化SNMP服務(wù)的安全性,讓這些設(shè)備安全運(yùn)行。前面談到,SNMP默認(rèn)使用的密碼非常簡單和脆弱,因此為其更改安全性高的密碼就極為重要了。例如,在Windows中打開SNMP Service屬性窗口,在“安全”面板中顯示其接受團(tuán)體名稱為“Public”,這樣的密碼過于簡單。選擇該密碼,點(diǎn)擊編輯按鈕,在彈出窗口中的“團(tuán)體名稱”欄中輸入復(fù)雜的密碼。為了避免無關(guān)的IP向其發(fā)送SNMP包,可以選擇“接受來自這些主機(jī)的SNMP包”項,在彈出窗口中輸入對應(yīng)的IP,可以大大減少遭到黑客攻擊的可能性。
在默認(rèn)情況下,SNMP服務(wù)的通訊數(shù)據(jù)是明碼傳輸?shù)模褂肧niffer Pro等嗅探器可以毫不費(fèi)力地攔截這些通訊數(shù)據(jù),這樣,黑客通過對其進(jìn)行簡單的解密,就可以從中捕捉到對應(yīng)的社區(qū)名稱信息,進(jìn)而獲取更多的網(wǎng)絡(luò)資源信息。利用Windows的IP安全策略,可以對SNMP傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,讓黑客只能嗅探到雜亂無章的數(shù)據(jù)。運(yùn)行“secpol.msc”程序,在本地安全策略窗口中選擇“安全設(shè)置”→“IP安全策略”項,在其右鍵菜單上點(diǎn)擊“管理IP篩選器表和篩選器操作”項,在彈出窗口中的“管理IP篩選器列表”面板中點(diǎn)擊“添加”按鈕,在“IP篩選器列表”窗口中輸入其名稱(例如“加密SNMP通訊”),在“描述”欄中輸入具體的說明信息。
選擇“使用添加向?qū)А表棧c(diǎn)擊“添加”按鈕,在篩選器屬性窗口中的“尋址”面板中的“源地址”列表中選擇“任何IP地址”項,在“目標(biāo)地址”列表中選擇“我的IP地址”項。在“協(xié)議”面板(如圖1所示)中的“選擇協(xié)議類型”列表中選擇“UDP”協(xié)議,選擇“從此端口”項,輸入端口號161。選擇“到此端口”項,輸入端口為161。點(diǎn)擊確定按鈕,保存該篩選器。按照同樣的方法,在IP篩選器列表窗口中分別點(diǎn)擊“添加”按鈕,分別針對TCP協(xié)議161端口、UDP協(xié)議162端口、TCP協(xié)議162端口添加篩選器,設(shè)置方法與上述完全相同。
之后返回本地安全設(shè)置窗口,選擇“安全設(shè)置”-“IP安全策略”項在,在其右鍵菜單上點(diǎn)擊“創(chuàng)建IP安全策略”項,在向?qū)Ы缑嬷休斎氚踩摬呗缘拿Q(例如“保護(hù)SNMP安全”)和描述信息,在下一步窗口中選擇“激活默認(rèn)響應(yīng)規(guī)則”項。之后點(diǎn)擊完成按鈕,在彈出的該安全策略的屬性窗口中取消“使用添加向?qū)А表椀倪x擇狀態(tài),點(diǎn)擊“添加”按鈕,在新規(guī)則屬性中的“IP篩選器”面板中選擇上述SNMP篩選器名稱,例如“加密SNMP通訊”。在“篩選器操作”面板(如圖2所示)中選擇“需要安全”項,在“身份驗(yàn)證方法”面板中默認(rèn)選擇“Kerberos”方法。
您也可以點(diǎn)擊“添加”按鈕,選擇其他的身份驗(yàn)證方法。在彈出窗口中選擇“使用由此證書頒發(fā)機(jī)構(gòu)(CA)頒發(fā)的證書”項,點(diǎn)擊瀏覽按鈕,選擇所需的安全證書,或者選擇“使用此字符串(預(yù)共享密碼)”項,輸入所需的密碼,點(diǎn)擊確定按鈕保存配置信息,在本地安全設(shè)置窗口,選擇“安全設(shè)置”→“IP安全策略”項,在右側(cè)窗口中選擇上述安全策略(例如“保護(hù)SNMP安全”)項,在其右鍵菜單中選擇“指派”項,激活該安全策略。按照同樣的方法,在所有使用SNMP服務(wù)的主機(jī)上都配置該安全策略,就可以有效保護(hù)其通訊的安全。

圖2 編輯安全策略規(guī)則屬性
使 用SNMP陷 阱(即SNMP Trap),同樣可以保護(hù)SNMP的安全。SNMP陷阱其實(shí)指的是SNMP事件轉(zhuǎn)換器,通過一個未被請求的SNMP信息觸發(fā),由一個SNMP代理發(fā)送給管理員,通知管理員發(fā)生了重要事件引起其注意。當(dāng)黑客試圖利用SNMP服務(wù)入侵時,其行蹤會被系統(tǒng)日志記錄下來,管理員可以據(jù)此展開安全調(diào)查。在服務(wù)管理窗口中雙擊“SNMP Service”服務(wù),在其屬性窗口中打開“代理”面板,在“聯(lián)系人”欄中輸入管理員名稱,在“位置”欄中輸入管理員的物理位置,實(shí)際上就是管理員主機(jī)的IP地址。
在“服務(wù)”欄中選擇該機(jī)提供的服務(wù),選擇“物理”項,用來指定該機(jī)是否管理磁盤等物理設(shè)備,選擇“應(yīng)用程序”項,指定該機(jī)是否使用相關(guān)的通訊軟件,選擇“數(shù)據(jù)鏈和子網(wǎng)”項,指定該機(jī)是否管理子網(wǎng)或者網(wǎng)橋等數(shù)據(jù)鏈接設(shè)備。選擇“Internet”項,指定該機(jī)是否充當(dāng)路由器等IP網(wǎng)關(guān)設(shè)備,選擇“端對端”項,指定該機(jī)是否充當(dāng)IP主機(jī)。點(diǎn)擊確定按鈕,保存配置信息。
在“陷阱”面板中的“團(tuán)體名稱”列表中選擇該機(jī)將向管理員發(fā)送陷阱消息的團(tuán)體名稱,點(diǎn)擊“添加到列表”按鈕。在“陷阱目標(biāo)”列表中底部點(diǎn)擊“添加”按鈕,在SNMP服務(wù)配置”窗口中輸入該主機(jī)的名稱或者IP地址,點(diǎn)擊添加按鈕,該主機(jī)或者IP地址將出現(xiàn)在“陷阱目標(biāo)”列表。按照同樣的方法,添加所有的團(tuán)體名稱以及陷阱目標(biāo)信息。這樣,就可以將這些陷阱引導(dǎo)到管理員的主機(jī)上,當(dāng)黑客觸發(fā)陷阱后,管理員就會收到警告信息。