思科路由器在國(guó)內(nèi)使用量不小,而且時(shí)常作為核心部件連接企業(yè)網(wǎng)絡(luò)。但最近出現(xiàn)的一個(gè)新型思科路由器后門(mén),已經(jīng)嚴(yán)峻 威脅到了企業(yè)安全。這次思科路由器"SYNful Knock"后門(mén)事件引發(fā)業(yè)界恐慌,紛紛開(kāi)始著手應(yīng)急預(yù)案。
影響范圍涉及4個(gè)國(guó)家及常見(jiàn)型號(hào)
通常來(lái)說(shuō),思科路由器的植入后門(mén)以前經(jīng)常被認(rèn)為是理論可行或較難實(shí)現(xiàn),但近日有國(guó)外安全公司FireEye發(fā)現(xiàn)這種針對(duì)路由器的植入式后門(mén)正悄然流行,涉及Cisco 1841/Cisco 2811/Cisco 3825路由器及其他常見(jiàn)型號(hào)。目前發(fā)現(xiàn)在烏克蘭、菲律賓、墨西哥和印度這4個(gè)國(guó)家中正有至少14個(gè)類(lèi)似的植入后門(mén)在傳播。
要知道,大部分公司的核心網(wǎng)絡(luò)設(shè)備使用的都是思科路由器。如果一個(gè)企業(yè)的核心網(wǎng)關(guān)設(shè)備被黑,不僅可以操縱 企業(yè)網(wǎng)絡(luò)出入口,更可以對(duì)過(guò)往的信息進(jìn)行修改及欺騙,這危害就驗(yàn)證了。
通過(guò)弱口令登錄替換思科路由器固件
這個(gè)后門(mén)是通過(guò)修改思科路由器的固件植入惡意代碼實(shí)現(xiàn)的,類(lèi)似病毒感染正常文件。攻擊者需要通過(guò)其他途徑將這個(gè)后門(mén)固件上傳或者加載到目標(biāo)路由器上。目前看攻擊者并沒(méi)有利用任何的0day漏洞來(lái)上傳固件,而是利用路由器的缺省口令或者弱口令來(lái)登錄路由器,然后上傳后門(mén)固件,替換原有正常固件。只要路由器治理 員不升級(jí)固件,攻擊者就可以持久獲得對(duì)路由器的長(zhǎng)期操縱 。
放進(jìn)去的后門(mén)類(lèi)似病毒感染正常文件,攻擊者需要通過(guò)各種途徑,將這個(gè)后門(mén)上傳或者加載到目標(biāo)路由器上,而且它還采納了先進(jìn)的技術(shù),可以非常方便的隨時(shí)加入新的后門(mén)功能。這種做法與大家電腦上的僵尸木馬非常相似,但用在路由器后門(mén)中還是比較少見(jiàn)。這個(gè)后門(mén)被命名為" SYNful Knock",可能是因?yàn)槠浜箝T(mén)的網(wǎng)絡(luò)操縱 功能中有個(gè)特別 的標(biāo)記。
將僵尸木馬的手法移植到路由器上
這個(gè)后門(mén)植入了一個(gè)萬(wàn)能后門(mén)口令,攻擊者可以利用這個(gè)后門(mén)口令通過(guò)telnet或者操縱 臺(tái)登錄路由器。它還采納了動(dòng)態(tài)加載模塊的技術(shù),可以非常方便的隨時(shí)加載新的惡意功能模塊,在Windows/Unix系統(tǒng)下的僵尸木馬網(wǎng)絡(luò)中這已是很常見(jiàn)的技術(shù)了,但用在路由器后門(mén)中還是比較少見(jiàn)。每個(gè)模塊都可以通過(guò)HTTP協(xié)議來(lái)更新、加載和刪除。
這個(gè)后門(mén)被命名為“ SYNful Knock”,可能是因?yàn)楹箝T(mén)的網(wǎng)絡(luò)操縱 功能(CnC)會(huì)通過(guò)一個(gè)特別 的TCP SYN包來(lái)觸發(fā)。
思科路由器植入后門(mén)的技術(shù)細(xì)節(jié)
(由于尚未獲得真實(shí)樣本,本章節(jié)技術(shù)細(xì)節(jié)均來(lái)自FireEye公司的相關(guān)技術(shù)報(bào)告,僅供參考)
這個(gè)后門(mén)通過(guò)篡改一個(gè)正常的Cisco IOS映像文件來(lái)植入惡意功能,主要的修改操作包括:
修改所有translation lookaside buffer (TLB)的屬性為可讀可寫(xiě)(RW)
正常IOS映像文件中,有些TLB的屬性是只讀的(RO),而此后門(mén)會(huì)將所有TLB的屬性都設(shè)置為可讀可寫(xiě)(RW),這可能是為了實(shí)現(xiàn)通過(guò)Hook IOS函數(shù)來(lái)加載模塊。如果TLB屬性不是可讀可寫(xiě)(RW),那對(duì)緩存內(nèi)存頁(yè)的修改就不能被同步到內(nèi)存中原始內(nèi)存頁(yè)中。可以通過(guò)“ show platform”命令來(lái)檢查T(mén)LB的屬性情況,如果發(fā)現(xiàn)全部TLB屬性都被設(shè)置為RW,那可能意味著系統(tǒng)被植入了惡意后門(mén)。
據(jù)信是修改了一個(gè)與進(jìn)程調(diào)度相關(guān)的函數(shù)入口,將其指向一段惡意代碼,這段代碼完成惡意軟件的初始化后,再執(zhí)行原有正常函數(shù)功能。選擇該函數(shù)是因?yàn)槠湓诿看蜗到y(tǒng)重啟時(shí)都會(huì)被調(diào)用,這樣攻擊者就可以持續(xù)獲得操縱 權(quán)。
用惡意代碼重寫(xiě)一些正常的協(xié)議處理函數(shù)
為了防止映像文件大小發(fā)生變化,此后門(mén)會(huì)直接用惡意代碼替換原有的一些正常函數(shù)的代碼。
用惡意代碼需要使用的字符串重寫(xiě)正常函數(shù)用到的字符串
同樣為了防止大小變化,攻擊者還會(huì)將CnC通信時(shí)用到的一些字符串直接替換正常函數(shù)使用的字符串。這樣導(dǎo)致在執(zhí)行一些正常IOS命令時(shí),就可能返回一些如下的異常結(jié)果。
后門(mén)口令
攻擊者在后門(mén)映像中植入了一個(gè)萬(wàn)能口令,保證攻擊者可以繞過(guò)正??诹钕拗齐S時(shí)登錄系統(tǒng)。這個(gè)后門(mén)口令可以通過(guò)操縱 臺(tái)、Telnet、enable(提升到治理 員時(shí))時(shí)輸入,一旦匹配則給予攻擊者治理 權(quán)限,否則就會(huì)繼續(xù)正常的口令檢查過(guò)程。目前看SSH和HTTPS登錄時(shí)沒(méi)有設(shè)置后門(mén)口令。
網(wǎng)絡(luò)命令和操縱 (CnC)
此后門(mén)還使用了模塊化方式來(lái)完成命令操縱 ,可以隨時(shí)將惡意功能加載到路由器中執(zhí)行,這在路由器后門(mén)中還是比較少見(jiàn)的。這大大增強(qiáng)了惡意軟件的可擴(kuò)展性。一旦路由器重啟,所有加載的惡意模塊都會(huì)消逝,攻擊者需要重新上傳惡意模塊。
攻擊者通過(guò)發(fā)送一些特別 的TCP報(bào)文來(lái)開(kāi)啟CnC操縱 ,即使路由器治理 員設(shè)置了一些過(guò)濾策略,后門(mén)仍然會(huì)接收并處理這些報(bào)文。
CnC命令格式
后門(mén)支持5種操縱 命令,包括顯示模塊狀態(tài)、為模塊加載分配內(nèi)存、加載模塊、激活模塊、卸載模塊,最多可加載100個(gè)模塊。
防護(hù)方式
常見(jiàn)的國(guó)外廠商防護(hù)方式
既然有漏洞,那就打補(bǔ)丁,升級(jí)!但在實(shí)際的操作環(huán)境中,執(zhí)行會(huì)遇到挑戰(zhàn):
1. 安全需求弱的小客戶(hù),難度特別大
2. 安全需求強(qiáng)的小客戶(hù),可執(zhí)行,但是整改周期特別長(zhǎng)
3. 安全需求弱的大客戶(hù),難度特別大,因?yàn)橐婕暗秸w業(yè)務(wù)鏈路停機(jī)
4. 安全需求強(qiáng)的大客戶(hù),可執(zhí)行,但是整改周期特別長(zhǎng),牽涉面廣
綠盟科技推舉 的防護(hù)方式
綠盟科技推舉 用1個(gè)基準(zhǔn)3個(gè)階段來(lái)進(jìn)行落地防護(hù)。1個(gè)基準(zhǔn),把風(fēng)險(xiǎn)面轉(zhuǎn)化為風(fēng)險(xiǎn)點(diǎn);3個(gè)階段,分為設(shè)計(jì)及實(shí)施、試運(yùn)行及驗(yàn)收、長(zhǎng)期運(yùn)維。各部分內(nèi)容在項(xiàng)目實(shí)施過(guò)程中細(xì)節(jié)較多,下面僅提要說(shuō)明。
設(shè)計(jì)、實(shí)施
1. 統(tǒng)計(jì)系統(tǒng)范圍內(nèi)cisco設(shè)備的數(shù)量以及需要納入統(tǒng)一策略治理 的其他廠商的設(shè)備集合,實(shí)現(xiàn)風(fēng)險(xiǎn)的識(shí)別
2. 設(shè)計(jì)時(shí)采納區(qū)域隔離:治理 域與生產(chǎn)域嚴(yán)格隔離(VLAN技術(shù)和防火墻),實(shí)現(xiàn)風(fēng)險(xiǎn)的操縱
3. 治理 域?qū)崿F(xiàn)堡壘機(jī)統(tǒng)一納管,并且在堡壘機(jī)中設(shè)定相關(guān)口令策略,實(shí)現(xiàn)風(fēng)險(xiǎn)的轉(zhuǎn)移
4. 設(shè)計(jì)選型時(shí),在穩(wěn)定的基礎(chǔ)上使用較為新的IOS固件并做MD5校驗(yàn),實(shí)現(xiàn)風(fēng)險(xiǎn)的削弱
5. 設(shè)計(jì)網(wǎng)絡(luò)入侵檢測(cè)及防護(hù)設(shè)備(NIDS/NIPS)對(duì)此事進(jìn)行檢測(cè),并且把對(duì)應(yīng)異常網(wǎng)絡(luò)事件進(jìn)行每日監(jiān)控,實(shí)現(xiàn)風(fēng)險(xiǎn)的監(jiān)控
a) 從整個(gè)SYNful Knock事件過(guò)程中,有三個(gè)重要階段事件:弱口令推測(cè),后門(mén)外鏈,后門(mén)命令操縱 。NIPS不僅僅能夠針對(duì)每一個(gè)階段單獨(dú)防護(hù),同時(shí)能夠建立起逐層防護(hù)的機(jī)制;
b) 首先是弱口令,NIPS中弱口令規(guī)則能夠進(jìn)行Telnet弱口令事件告警,提示治理 員關(guān)注賬號(hào)弱口令問(wèn)題,同時(shí)也能夠阻斷暴力推測(cè)行為;
c) 其次后門(mén)外鏈,通過(guò)檢測(cè)TCP會(huì)話建立過(guò)程中特征,阻斷后門(mén)的通信連接;
d) 最后后門(mén)命令操縱 ,需要使用CnC或者TCP方式進(jìn)行命令操縱 ,NIPS在檢測(cè)流量時(shí),對(duì)操縱 命令進(jìn)行檢測(cè),達(dá)到阻斷操縱 的效果。即便是植入了后門(mén),阻斷命令發(fā)送無(wú)法對(duì)其命令操縱
6. 選型考慮國(guó)產(chǎn)設(shè)備,實(shí)現(xiàn)風(fēng)險(xiǎn)的規(guī)避
試運(yùn)行、驗(yàn)收
1. 做基礎(chǔ)安全評(píng)估(漏洞掃描、基線核查、內(nèi)網(wǎng)滲透測(cè)試)
2. 重新規(guī)整所有用戶(hù)口令;
3. 測(cè)試入侵檢測(cè)日?qǐng)?bào)的可用性;
等等……
長(zhǎng)期運(yùn)維
1. 新交維的系統(tǒng):按設(shè)計(jì)、實(shí)施規(guī)范定期作為維護(hù);
2. 老系統(tǒng):
2.1 快速處理: 搭建TFTP服務(wù)器 強(qiáng)制備份所有線上IOS鏡像,并且對(duì)已經(jīng)備份的IOS進(jìn)行與官方下載IOS鏡像進(jìn)行md5校驗(yàn);
md5校驗(yàn)成功的處理方式:參照 2.2
md5校驗(yàn)失敗的處理方式:
本著安全原則,清除IOS已經(jīng)不保險(xiǎn)了,建議采納替換的方式把有問(wèn)題設(shè)備替換下來(lái);
有問(wèn)題的設(shè)備返廠檢測(cè)吧,當(dāng)然也可以考慮將其做成蜜罐;
建議做一次網(wǎng)絡(luò)區(qū)域內(nèi)的大排查,不然很危險(xiǎn)哦;
2.2 按新系統(tǒng)設(shè)計(jì)標(biāo)準(zhǔn),對(duì)治理 域進(jìn)行整改。
3. 分析 每日入侵檢測(cè)報(bào)告(木馬)
小結(jié)
本文主要技術(shù)細(xì)節(jié)部分來(lái)自于FireEye公司的一篇技術(shù)報(bào)告,其大致的過(guò)程就是這樣的
1. 尋找能登錄的cisco 設(shè)備(通過(guò)暴力破解、社工、弱口令等方式),能進(jìn)去是前提;
2. 傳一個(gè)帶馬的IOS上去;找機(jī)會(huì)重新加載新的IOS,同時(shí)痕跡清理;
3. 然后加固路由器,防止被其他人拿走這個(gè)“成果”;
4. 開(kāi)始植入木馬等惡意程序,然后實(shí)施攻擊動(dòng)作,比如JS劫持等
從報(bào)告披露的信息來(lái)看,針對(duì)Cisco路由器的后門(mén)映像植入技術(shù)已經(jīng)逐漸從理論走向有用 化,后門(mén)功能從簡(jiǎn)單的萬(wàn)能口令已經(jīng)擴(kuò)展到模塊化遠(yuǎn)程加載任意惡意代碼。由于路由器位于網(wǎng)絡(luò)的核心出入口位置,一旦攻擊者可以在路由器中執(zhí)行代碼,意味著攻擊者可以對(duì)經(jīng)過(guò)路由器的網(wǎng)絡(luò)流量進(jìn)行各種操作,而不僅限于路由器原有提供的功能,從而導(dǎo)致更大的危害。