◆梁杰 陸星宇
基于ICMP的網(wǎng)絡(luò)滲透與空管網(wǎng)絡(luò)安全的防護(hù)措施
◆梁杰 陸星宇
(民航云南空管分局 云南 650200)
隨著互聯(lián)網(wǎng)科技社會(huì)的發(fā)展,空管系統(tǒng)相關(guān)設(shè)備的信息化、集成化運(yùn)行程度越來(lái)越高,在重要數(shù)據(jù)和設(shè)備保障中,確??展芫W(wǎng)絡(luò)安全運(yùn)行就顯得尤為重要,為有效的預(yù)防網(wǎng)絡(luò)安全事件的發(fā)生,提升網(wǎng)絡(luò)安全防護(hù)水平,本文通過(guò)使用ICMP協(xié)議進(jìn)行網(wǎng)絡(luò)滲透,進(jìn)而獲取到內(nèi)網(wǎng)關(guān)鍵信息的實(shí)驗(yàn)來(lái)演示網(wǎng)絡(luò)防護(hù)中對(duì)于內(nèi)部用戶數(shù)據(jù)監(jiān)測(cè)重要性,從而有效提升網(wǎng)絡(luò)管理員和員工對(duì)于內(nèi)網(wǎng)中網(wǎng)絡(luò)防護(hù)的安全意識(shí),有效提升空管網(wǎng)絡(luò)安全的網(wǎng)絡(luò)防護(hù)水平。
ICMP;網(wǎng)絡(luò)滲透;icmptunnel;網(wǎng)絡(luò)安全防護(hù)
隨著互聯(lián)網(wǎng)科技飛速發(fā)展,空管信息安全保障部門(mén)相關(guān)系統(tǒng)運(yùn)行在集成化和信息化的程度越來(lái)越高,在方便員工辦公的同時(shí),極大地提升了效率。而設(shè)備信息化的程度的提升,對(duì)于網(wǎng)絡(luò)安全防護(hù)的要求隨之提升。對(duì)于網(wǎng)絡(luò)管理員來(lái)說(shuō),提升對(duì)自己的系統(tǒng)掌控力,明確系統(tǒng)安全狀態(tài),并且有針對(duì)性地對(duì)缺陷做加固、修補(bǔ)和防護(hù)可以有效提升系統(tǒng)的安全防護(hù)能力。但是對(duì)于龐大的網(wǎng)絡(luò)來(lái)說(shuō),當(dāng)攻擊方發(fā)現(xiàn)系統(tǒng)側(cè)防護(hù)措施嚴(yán)密且無(wú)法短時(shí)間找到漏洞攻擊時(shí),通常會(huì)轉(zhuǎn)移為對(duì)個(gè)人的入侵,一旦某個(gè)終端被攻擊者控制,攻擊方將直接以該終端為跳板,進(jìn)入到單位內(nèi)網(wǎng),從而導(dǎo)致內(nèi)網(wǎng)數(shù)據(jù)泄密等網(wǎng)絡(luò)安全事件的發(fā)生。本文將以基于ICMP協(xié)議的內(nèi)網(wǎng)穿透完成信息的收集,從而淺析網(wǎng)絡(luò)滲透中對(duì)于隧道技術(shù)的網(wǎng)絡(luò)防護(hù)思考。
ICMP協(xié)議,全稱Internet ControllerMessages Protocol,為互聯(lián)網(wǎng)控制信息協(xié)議,是一種在網(wǎng)絡(luò)傳輸中面向無(wú)連接的協(xié)議,屬于TCP/IP協(xié)議。主要用于終端設(shè)備和網(wǎng)絡(luò)中繼設(shè)備之間傳遞網(wǎng)絡(luò)控制協(xié)議。ping協(xié)議就是基于該協(xié)議來(lái)檢測(cè)網(wǎng)絡(luò)是否連通,主機(jī)是否可達(dá)到等信息[1]。該控制協(xié)議不傳遞用戶數(shù)據(jù),但是對(duì)于信息傳遞起著重要的作用。
隧道技術(shù)是通過(guò)使用網(wǎng)絡(luò)間設(shè)備進(jìn)行數(shù)據(jù)傳遞的方式。使用隧道技術(shù)傳遞的數(shù)據(jù)報(bào)文可以是網(wǎng)絡(luò)中不同協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包。隧道傳輸協(xié)議可以將其他協(xié)議的數(shù)據(jù)包重新封裝后發(fā)送。重新封裝的數(shù)據(jù)包提供路由信息,從而使數(shù)據(jù)包所承載數(shù)據(jù)能夠通過(guò)網(wǎng)絡(luò)傳遞。被封裝的數(shù)據(jù)包在隧道的兩個(gè)端點(diǎn)之間通過(guò)公共網(wǎng)絡(luò)完成路由轉(zhuǎn)發(fā)。被封裝的數(shù)據(jù)包在公共網(wǎng)絡(luò)上轉(zhuǎn)發(fā)時(shí)所經(jīng)過(guò)的邏輯傳遞路徑稱為隧道。一旦相關(guān)數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)傳輸終點(diǎn),數(shù)據(jù)將解封并轉(zhuǎn)發(fā)到最終傳輸終端[2]。
由于ICMP協(xié)議不需要端口的開(kāi)放,因?yàn)槠浠贗P工作,所以其作為網(wǎng)絡(luò)層協(xié)議,ICMP消息最為常見(jiàn)的就是ping命令的回復(fù),通常由于服務(wù)器用于網(wǎng)絡(luò)防護(hù)的防火墻基于網(wǎng)絡(luò)之間聯(lián)通測(cè)試的需要,不會(huì)進(jìn)行ping數(shù)據(jù)包的禁止通過(guò),所以將相關(guān)數(shù)據(jù)包封裝到ICMP的ping數(shù)據(jù)負(fù)載內(nèi)容中時(shí),該數(shù)據(jù)將順利穿過(guò)防火墻。
首先由于協(xié)議請(qǐng)求端工具會(huì)在ICMP數(shù)據(jù)負(fù)載內(nèi)容中附加一段隨機(jī)的數(shù)據(jù)作為Payload內(nèi)容,而協(xié)議響應(yīng)端則會(huì)拷貝ping傳遞數(shù)據(jù)包中的Payload內(nèi)容到響應(yīng)數(shù)據(jù)包中并返回?cái)?shù)據(jù)包到請(qǐng)求端,用于識(shí)別和匹配命令數(shù)據(jù)請(qǐng)求。由于Windows和Linux系統(tǒng)下的Ping命令默認(rèn)的負(fù)載數(shù)據(jù)包長(zhǎng)度為64比特,而實(shí)該協(xié)議實(shí)際應(yīng)用中只要附加小于64K的Payload內(nèi)容即可。攻擊實(shí)驗(yàn)則通過(guò)payload負(fù)載數(shù)據(jù)包來(lái)傳遞需要隱秘發(fā)送的數(shù)據(jù)內(nèi)容。對(duì)于隧道傳輸工具,本實(shí)驗(yàn)使用的icmptunnel會(huì)根據(jù)用戶配置指定客戶端和服務(wù)器端。然后在客戶端將IP數(shù)據(jù)包封裝在ICMP請(qǐng)求命令數(shù)據(jù)負(fù)載內(nèi)容中發(fā)送給指定服務(wù)器,服務(wù)器端則會(huì)根據(jù)響應(yīng)數(shù)據(jù)包進(jìn)行回包。這樣在網(wǎng)絡(luò)安全設(shè)備分析數(shù)據(jù)包時(shí),網(wǎng)絡(luò)中傳播的就是正常用于測(cè)試網(wǎng)絡(luò)聯(lián)通的ping命令的ICMP數(shù)據(jù)包。
由于網(wǎng)絡(luò)信息控制報(bào)文自身負(fù)載傳輸數(shù)據(jù),而且協(xié)議報(bào)文是由系統(tǒng)內(nèi)核處理的,不占用設(shè)備端口,因此很難被察覺(jué)數(shù)據(jù)包的異常。通常ICMP隧道技術(shù)采用ICMP負(fù)載內(nèi)容中ECHO和ECHOREPLY兩種數(shù)據(jù)報(bào)文,把相關(guān)數(shù)據(jù)通過(guò)隱藏封裝進(jìn)行傳輸,從而通過(guò)ping命令建立隧道。
使用工具icmptunnel。ping數(shù)據(jù)包在所建立的隧道中進(jìn)行穿透設(shè)備時(shí),設(shè)備對(duì)沒(méi)有匹配響應(yīng)的數(shù)據(jù)包進(jìn)行過(guò)濾丟棄。而在非對(duì)稱連接中,來(lái)自服務(wù)器端的流量通常會(huì)大于客戶端數(shù)據(jù),從而導(dǎo)致響應(yīng)數(shù)據(jù)包會(huì)比請(qǐng)求發(fā)送數(shù)據(jù)包多。
Linux(64位)模擬主機(jī),Linux(64位)模擬服務(wù)器,由于icmptunnel運(yùn)行在linux系統(tǒng),所以實(shí)驗(yàn)環(huán)境選擇linux(kali)操作系統(tǒng)。
假設(shè)某個(gè)網(wǎng)絡(luò)中,有一臺(tái)個(gè)人終端被植入了黑客后門(mén)軟件,成為肉雞或者攻擊者可以接觸并控制到該網(wǎng)絡(luò)中某個(gè)終端,同時(shí)該網(wǎng)絡(luò)中存在一臺(tái)服務(wù)器,終端和服務(wù)器之間可以通過(guò)ping命令進(jìn)行網(wǎng)絡(luò)聯(lián)通性測(cè)試,但是終端主機(jī)不能直接訪問(wèn)被攻擊服務(wù)器。
首先,我們定義攻擊者(主機(jī))IP:192.168.64.129,被攻擊者(數(shù)據(jù)庫(kù)服務(wù)器)IP:192.168.64.226,服務(wù)器位于內(nèi)網(wǎng)上,同時(shí)服務(wù)上有防火墻,配置拒絕敏感端口SSH(TCP 22),telnet(TCP 23),TFTP(TCP/CDP 69)等常用協(xié)議端口的連接請(qǐng)求。使用icmptunnel的目的就是使用ping命令的數(shù)據(jù)重新封裝加載,從而繞過(guò)對(duì)常用攻擊端口的限制,成功使用ICMP建立隧道,完成數(shù)據(jù)傳遞。
(1)然后輸入git https://github.com/jamsbarlow/icmptunnel.git在宿主機(jī)上下載并安裝icmptunnel。
(2)首先在主機(jī)端將icmptunnel以服務(wù)器模式啟動(dòng),指定其中一張網(wǎng)卡,配置隧道服務(wù)器端IP地址為10.0.0.1。
(3)在服務(wù)器端(被攻擊者)安裝icmptunnel,然后運(yùn)行客戶端icmptunnel工具:./icmptunnel被攻擊服務(wù)器IP地址成功連接上攻擊者服務(wù)端,執(zhí)行遠(yuǎn)程滲透命令/sbin/ifconfig指定IP地址網(wǎng)卡名10.0.0.2netmask 255.255.255.0(指定IP地址為10.0.0.2)。此時(shí)將會(huì)在雙方主機(jī)之間建立icmp隧道。然后攻擊者可以通過(guò)SSH連接被攻擊服務(wù)器端對(duì)象。
圖1 SSH成功連接圖
(4)當(dāng)攻擊者和被攻擊者建立隧道連接后,此時(shí)通過(guò)抓包軟件抓取tun0網(wǎng)口的流量數(shù)據(jù)包,可以觀察到數(shù)據(jù)包流量交互,說(shuō)明隧道建立成功,數(shù)據(jù)可以通過(guò)該隧道穿透防火墻出入。
通過(guò)簡(jiǎn)單ICMPTUNNEL演示當(dāng)內(nèi)網(wǎng)主機(jī)被惡意攻擊者控制后,攻擊者有可能通過(guò)該主機(jī)建立隧道穿透防火墻的設(shè)置,從而將攻擊者需要植入的攻擊數(shù)據(jù)或者試圖獲取到的敏感數(shù)據(jù)進(jìn)行傳輸,可以看出ICMP協(xié)議的數(shù)據(jù)包可以自由定義,而且ICMP協(xié)議發(fā)送數(shù)據(jù)是以廣播的特點(diǎn)實(shí)現(xiàn)的,不需要知道目的端口,例如ping程序,隨意ping某個(gè)IP,該IP主機(jī)只要有ICMP的接收程序就會(huì)自動(dòng)接收。所以攻擊者可以在目的IP的ICMP接收程序里面注入一個(gè)可以自動(dòng)連接并返回shell到我們?cè)O(shè)定的ip和port里面的程序,只要自定義一個(gè)ICMP協(xié)議數(shù)據(jù)包,該數(shù)據(jù)包帶有連接密鑰,需要返回的IP和端口,然后利用ICMP協(xié)議將ICMP數(shù)據(jù)包發(fā)送到目的主機(jī),目的主機(jī)的程序只要運(yùn)行著,那么就會(huì)接收到攻擊者的ICMP數(shù)據(jù)包,可以接收到目的主機(jī)回應(yīng)的shell(而且是root權(quán)限的),擁有shell攻擊者就可以操控目的主機(jī)從而完成網(wǎng)絡(luò)滲透造成網(wǎng)絡(luò)內(nèi)部信息的泄露。
同時(shí)由于隧道技術(shù)隱蔽性,容易導(dǎo)致發(fā)現(xiàn)延后,對(duì)信息的保密性造成了巨大威脅,所以對(duì)于此類(lèi)安全隱患應(yīng)該引起網(wǎng)絡(luò)安全管理員的重視。
啟用網(wǎng)絡(luò)安全態(tài)勢(shì)感知和網(wǎng)絡(luò)行為管理系統(tǒng)自動(dòng)檢測(cè)網(wǎng)絡(luò)狀態(tài),同時(shí)對(duì)防火墻數(shù)據(jù)異常流量進(jìn)行分析或者使用wirshark軟件進(jìn)行抓包人工分析。
(1)檢測(cè)icmp包是否會(huì)在某個(gè)時(shí)間點(diǎn)產(chǎn)生大量的數(shù)據(jù)包(正常情況系,ping包每秒2個(gè)左右,ICMP隧道則會(huì)產(chǎn)生大量的數(shù)據(jù)包)。
(2)監(jiān)測(cè)ping包中payload是否會(huì)大于默認(rèn)的64bit,一旦大于該值,說(shuō)明payload有被修改的可能。
(3)監(jiān)測(cè)ping包響應(yīng)和請(qǐng)求數(shù)據(jù)包不一致ICMP包,Windows系統(tǒng)下,系統(tǒng)默認(rèn)傳輸32個(gè)bytes,同時(shí)該數(shù)據(jù)包是固定的一組數(shù)據(jù),linux系統(tǒng)默認(rèn)傳輸48bytes,其數(shù)據(jù)包規(guī)則為前8bytes隨時(shí)間變化,后面數(shù)據(jù)內(nèi)容固定不變,一旦數(shù)據(jù)包請(qǐng)求和響應(yīng)不一致則可以有效提高發(fā)現(xiàn)被滲透攻擊可能性。
本文通過(guò)ICMP隧道技術(shù)的實(shí)驗(yàn)來(lái)說(shuō)明,隨著技術(shù)的發(fā)展,網(wǎng)絡(luò)防護(hù)的要求越來(lái)越高,同時(shí)攻擊者的手段也變得越來(lái)越隱蔽,對(duì)于空管網(wǎng)絡(luò)安全管理員來(lái)說(shuō),應(yīng)該隨時(shí)在安全事件監(jiān)測(cè)、預(yù)警、分析和處置應(yīng)急中提高警覺(jué)性,對(duì)任何一個(gè)威脅網(wǎng)絡(luò)安全的蛛絲馬跡都不放過(guò)。同時(shí)提升員工的自身網(wǎng)絡(luò)安全意識(shí),自覺(jué)維護(hù)內(nèi)部網(wǎng)絡(luò)的安全,杜絕個(gè)人使用設(shè)備被攻擊成功的可能。而對(duì)于本文中ICMP協(xié)議等有時(shí)無(wú)法直接禁止的協(xié)議,在存在風(fēng)險(xiǎn)的關(guān)鍵點(diǎn)進(jìn)行監(jiān)控監(jiān)測(cè),加強(qiáng)網(wǎng)絡(luò)安全的可防可控,可有效杜絕空管網(wǎng)絡(luò)信息泄露等網(wǎng)絡(luò)不安全事件發(fā)生。
[1]薛東,胡建偉,趙國(guó)慶.ICMP攻擊及其相應(yīng)對(duì)策[J].無(wú)線電通信技術(shù),2002(4).
[2]葉清.網(wǎng)絡(luò)安全原理[M].武漢大學(xué)出版社,2014.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2022年2期