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