• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一項緩沖區(qū)溢出漏洞安全性隱患分析

    2021-01-10 17:26:09王顥翔厲洪瑞盧立浩
    科學與生活 2021年28期
    關鍵詞:安全分析

    王顥翔 厲洪瑞 盧立浩

    中文摘要:緩沖區(qū)溢出漏洞對計算機系統(tǒng)固件、設備及應用程序會產生嚴重的安全影響。其危害程度很大,能夠操作系統(tǒng)造成嚴重影響。本文開展了一項針對二進制程序安全漏洞的隱患分析,復現了一種惡意代碼劫持程序控制流程漏洞及利用的復現實驗,本文給出了實驗結果表明,惡意的漏洞利用將造成難以估計的安全隱患。

    關鍵詞:緩沖區(qū)溢出漏洞;安全分析;二進制漏洞;

    1.引言

    伴隨5G網絡誕生及其衍生產品的高速發(fā)展,網絡為人類社會帶來了極大的改變,但與此同時網絡設備的安全性卻不斷受到威脅和挑戰(zhàn)。事實上,層出不窮的安全漏洞時刻對互聯網用戶造成影響甚至產生危害。其中偏向操作系統(tǒng)底層的二進制漏洞與其他類別漏洞相比往往具備更為嚴重的威脅。常見的二進制漏洞有緩沖區(qū)堆棧溢出漏洞、條件競爭漏洞、驅動內核漏洞等。其造成的危害具體有:用戶數據泄露、服務宕機、甚至被攻擊者通過遠程代碼執(zhí)行獲取系統(tǒng)的最高控制權等。

    為此,本文針對一個緩沖區(qū)棧溢出漏洞[1],開展了一項漏洞惡意劫持控制程序流程攻擊的安全分析實驗,目的是提供一種直觀的網絡安全攻擊隱患,給予普通網絡用戶一種安全意識普及。

    2.緩沖區(qū)溢出漏洞原理

    便于開展有效且特征明顯的緩沖區(qū)溢出漏洞實驗,并給出有效漏洞原理分析過程,本文選用ret2shellcode棧溢出漏洞為測試對象論述緩沖區(qū)溢出原理。

    基于計算機底層角度,應用程序在運行過程最終都轉化為二進制機器碼通過CPU運算處理。過程中操作系統(tǒng)為程序分配一塊連續(xù)的內存空間儲存數據,這片內存區(qū)域稱為緩沖區(qū)[2]。當寫入或讀入的數據超過緩沖區(qū)分配的內存大小,則會觸發(fā)緩沖區(qū)溢出形成漏洞。

    程序運行過程中,系統(tǒng)會根據不同的功能模塊自動分配多段有限大小的棧空間。并依據內存分段具體分配存放程序.text代碼段內容、已初始化.data段內容以及未初始化的.bss段內容等。數據主要通過寄存器進行傳參,在x86架構下寄存器的EIP指向程序的下一次返回地址,ESP與EBP分別指向一個功能模塊所在??臻g的棧頂與棧底。當輸入的數據超出這段棧空間的大小,則超出的數據會覆蓋棧段相鄰內存中的數據。從而造成緩沖區(qū)溢出使程序異常或崩潰。

    對此攻擊者通常會利用棧溢出覆蓋EIP地址惡意跳轉預先設定的一段內存地址,從而劫持程序控制流程完成漏洞利用。因此棧溢出大多發(fā)生在具備輸入函數的功能模塊中,常見的漏洞函數如gets、read以及scanf等,如果輸入函數未對輸入長度做適當限制,則容易產生棧溢出漏洞。

    3.緩沖區(qū)溢出棧漏洞的利用

    3.1實驗環(huán)境

    實驗環(huán)境為兩臺Linux虛擬機,系統(tǒng)分別為攻擊系統(tǒng)kali Linux和靶機系統(tǒng)ubuntu16.04。攻擊系統(tǒng)中配置python環(huán)境并安裝建立端口傳輸庫,這里選用pwntools庫,優(yōu)點是便于將漏洞利用程序與目標靶機建立連接傳輸。靶機系統(tǒng)中安裝部署socat作用是將名稱為test的漏洞程序通過socat映射運行在實驗環(huán)境中的10001端口上,便于攻擊系統(tǒng)訪問。操作命令如下:socat tcp-listen:10001,fork exec:./test,reuseaddr。

    3.2漏洞分析

    基于常用程序逆向調試[3]方法,本實驗分析過程分為靜態(tài)分析和動態(tài)調試兩個部分。以下為漏洞程序的漏洞函數部分源碼:

    {char s; /* [esp+1Ch] [ebp-64h]*/ puts("test"); gets(&s); strncpy(buf2, &s, 0x64u); printf("Attack"); return 0;}

    該代碼段的主要功能是通過gets函數接收輸入變量s中的內容,將其拷貝到buf2地址后執(zhí)行輸出函數,靜態(tài)分析可得buf2所在內存分段為bss段,采用動態(tài)調試工具Gdb對這段程序結構進行分析并判斷漏洞利用方式,載入被測程序后在main函數下斷點,單步至輸入功能函數后開始分析測試。思路為構造測試輸入,判斷程序是否產生崩潰異常等情況。實驗中輸入了一段長度為0x200的字符串。通過Gdb斷下的程序崩潰信息,發(fā)現在輸入112字符長度時程序發(fā)生棧溢出并覆蓋返回地址。由此判斷在輸入函數部分存在棧溢出漏洞,動態(tài)調試查看程序內各段的權限,其中buf2所在的bss段具備讀寫執(zhí)行權限。因此利用思路為將棧空間填滿造成溢出后劫持EIP跳轉到寫入shellcode的buf2的地址從而取得系統(tǒng)權限。

    3.3 shellcode原理及利用方法

    總結本文3.2所述思路確定的shellcode利用方法主要原理為:將程序下一條返回地址覆蓋為已寫入一段惡意代碼的內存地址,從而劫持程序執(zhí)行流程。對照通用寄存器及匯編指令闡述利用原理,給出一段shellcode主要匯編代碼:

    asm {xor eax,eax /*eax置0*/xor edx,edx /*edx置0*/push edx push "http://sh" push "/bin" /*將/bin/sh入棧*/ mov ebx,esp /*ebx指向/bin/sh字符串*/ xor ecx,ecx mov al,0Bh /*eax置為execve函數的中斷號*/ int 80h } /*調用軟中斷*/

    這段匯編指令對應寄存器參數為:EAX = 0xb,EBX = &("/bin//sh"), ECX = EDX = 0,調用int 0x80軟中斷后 ,即執(zhí)行了sys_execve("/bin//sh", 0, 0, 0)從而完成系統(tǒng)調用。在攻擊利用過程傳輸的shellcode為十六進制字符串opcode。其中opcode由最多6個域組成,是與匯編指令對應的機器碼。

    利用腳本主要部分及結果如圖1所示:

    顯然,將攻擊腳本通過socat映射端口傳輸到靶機中,觸發(fā)棧溢出后實現劫持控制程序流程,進而讀取shellcode地址后取得了靶機控制權,圖1中示出的的id命令觀察到獲取到了靶機最高控制權并能執(zhí)行bash命令,即獲得目標操作系統(tǒng)的最高控制權,危害極大。

    4.小結

    本文開展了一項緩沖區(qū)漏洞利用實例,實驗的測試結果表明,復現漏洞劫持程序控制流程的二進制攻擊所產生的威脅很嚴重,當前互聯網不僅僅只是網絡用戶用來工作、娛樂等活動的載體,更是物聯網設備、智能應用產品普及的快速發(fā)展期。本文給出的測試實例結果充分說明安全隱患是件重要的事,普通網絡用戶應當時刻留意軟件補丁更新,提高網絡安全的基本意識,切實做到共同維護健康的網絡環(huán)境。

    參考文獻

    [1]邵思豪,高慶,馬森,段富堯,馬驍,張世琨,胡津華.緩沖區(qū)溢出漏洞分析技術研究進展[J].軟件學報,2018,v.29(05):7-26.

    [2]袁連海,李湘文,徐晶.緩沖區(qū)溢出攻擊研究[J].艦船電子工程2019,39(04):93-98.

    [3]羅文華.基于逆向技術的惡意程序檢測方法研究[J].警察技術,2012 (06):28-30.

    猜你喜歡
    安全分析
    校園網絡安全分析與設計
    HAZOP分析方法及其在發(fā)電廠電氣系統(tǒng)安全分析中的應用
    關于高層建筑電氣設計中低壓供配電系統(tǒng)安全分析
    基于虛擬現實條件下的山區(qū)雙車道公路危險路段線形研究
    電梯制動器的結構型式與檢驗方法探討
    行為安全管理在施工中的應用分析
    運營商大數據安全管理策略研究
    移動通信(2016年21期)2017-03-07 21:45:23
    對分布式數據庫系統(tǒng)的安全分析
    信息化消防技術及其應用策略探討
    東方教育(2016年3期)2016-12-14 20:25:54
    海洋石油鉆井平臺電氣設備安全
    大连市| 龙州县| 贡山| 峨眉山市| 肥西县| 承德市| 丹巴县| 平顺县| 临清市| 湟源县| 澳门| 崇明县| 沙田区| 林周县| 泽普县| 平乡县| 米林县| 广水市| 泗水县| 霍邱县| 庄河市| 上蔡县| 呼玛县| 科尔| 若尔盖县| 临汾市| 遵义市| 财经| 自贡市| 杭州市| 阜平县| 莱西市| 水富县| 德惠市| 巩义市| 南皮县| 西乌| 汕尾市| 洞口县| 中江县| 吉林省|