網(wǎng)絡(luò)安全防護(hù)之ASA防火墻攻擊代碼分析
隨著大數(shù)據(jù)時(shí)代的到來,各種網(wǎng)絡(luò)安全事件令人震驚,網(wǎng)絡(luò)安全問題逐漸引起網(wǎng)友的關(guān)注。雖然防火墻設(shè)備在計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)外網(wǎng)之間建立了防護(hù)門,但防火墻設(shè)備本身的脆弱性嚴(yán)重影響了網(wǎng)絡(luò)環(huán)境的安全。
ASA防火墻代碼分析實(shí)驗(yàn)部分主要分為兩個(gè)步驟:
1.實(shí)現(xiàn)提取的固件代碼,結(jié)合IDAPro工具進(jìn)行靜態(tài)分析;
2.利用上述構(gòu)建的實(shí)驗(yàn)環(huán)境,實(shí)現(xiàn)ASA設(shè)備固件的動(dòng)態(tài)分析。以asa842-k8.bin固件為例,分析漏洞的具體原因和原理。
一個(gè)被稱為ShadowBrokers的黑客組織發(fā)布了防火墻設(shè)備的攻擊代碼,指出漏洞基于Cisco防火墻SNMP協(xié)議模塊的緩沖區(qū)溢出。
防火墻設(shè)備應(yīng)配備SNMP協(xié)議,并了解SNMP通信碼。如果漏洞執(zhí)行成功,防火墻設(shè)備的Telnet/SSH認(rèn)證可以關(guān)閉,進(jìn)而允許攻擊者進(jìn)行未經(jīng)授權(quán)的操作。
EXTRABACON.txt,ShadowBrokers組織提供的代碼文件,從ShadowBrokers組織提供的聲明文件中得出結(jié)論,該漏洞存在于ASA的lina過程中,因此使用IDAPro對(duì)lina程序進(jìn)行靜態(tài)代碼分析。在Binwalk工具解析目錄下/asa/bin/lina加載到IDA進(jìn)行靜態(tài)分析,結(jié)合黑客組織shadowbrokers提供的POC,得出關(guān)鍵代碼函數(shù)在sub_89F4750函數(shù)中,該函數(shù)調(diào)用sub_90A32A0函數(shù)。sub_90A32A0函數(shù)的關(guān)鍵代碼,sub_89F4750函數(shù)調(diào)用sub_90A32A0函數(shù)。sub_90A32A0將第二個(gè)參數(shù)指向的源地址數(shù)據(jù)轉(zhuǎn)換到第一個(gè)參數(shù)指向的目的地址,第三個(gè)參數(shù)的大小影響轉(zhuǎn)換數(shù)據(jù)的長(zhǎng)度。用F5按鈕跟進(jìn)sub_90A32A0函數(shù),查看具體的偽代碼。
在這個(gè)代碼中,for循環(huán)實(shí)際上實(shí)現(xiàn)了內(nèi)存的copy操作,從源地址讀取四個(gè)字節(jié)的數(shù)據(jù)并寫入目的地址。每個(gè)循環(huán)將實(shí)現(xiàn)copy64字節(jié)長(zhǎng)度的數(shù)據(jù)。根據(jù)之前的分析,第三個(gè)參數(shù)是指影響copy長(zhǎng)度的變量,其中a3。for循環(huán)開始時(shí),將4并賦值給i,變量i起到控制循環(huán)次數(shù)的作用。sub_89F4750函數(shù)通過調(diào)用sub_90A32A0函數(shù)實(shí)現(xiàn)內(nèi)存的copy,將sub_90A32A0函數(shù)中地址指針a6指向的源地址的數(shù)據(jù)copy轉(zhuǎn)移到本地局部變量v32,其copy長(zhǎng)度也由sub_90A32A0函數(shù)的參數(shù)決定。這導(dǎo)致了危險(xiǎn)函數(shù)的產(chǎn)生:上層函數(shù)sub_90A32A0傳入的參數(shù)很容易超過當(dāng)?shù)鼐植孔兞縱32內(nèi)存的長(zhǎng)度,從而產(chǎn)生緩沖區(qū)溢出的漏洞風(fēng)險(xiǎn)。