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