国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于模擬攻擊的軟件漏洞檢測方法

      文檔序號:8457511閱讀:283來源:國知局
      一種基于模擬攻擊的軟件漏洞檢測方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及軟件漏洞的檢測,特別涉及一種結(jié)合程序靜態(tài)分析、對待檢測軟件進(jìn)行模擬攻擊實(shí)施軟件漏洞動態(tài)監(jiān)控和檢測的方法。
      【背景技術(shù)】
      [0002]隨著信息技術(shù)的不斷發(fā)展,軟件漏洞作為軟件系統(tǒng)安全性的主要威脅之一,其危害程度越來越嚴(yán)重。攻擊者利用軟件漏洞可在未授權(quán)的情況下訪問或破壞系統(tǒng),甚至是取得系統(tǒng)的最高權(quán)限。針對軟件漏洞的檢測工作,大多集中在程序分析上,通過靜態(tài)或動態(tài)分析提取漏洞特征,從而完成漏洞識別過程。然而,利用程序分析進(jìn)行漏洞檢測缺乏對攻擊因素的考慮,使得檢測出的漏洞可能是無法被利用的,因而會產(chǎn)生誤報(bào)。因此,為實(shí)現(xiàn)軟件漏洞的準(zhǔn)確檢測,需要將攻擊因素融入到程序分析中,充分考慮漏洞利用條件以減少誤報(bào)的產(chǎn)生。
      [0003]本發(fā)明提出一種基于模擬攻擊的軟件漏洞檢測方法。利用預(yù)先收集的程序信息,結(jié)合程序和系統(tǒng)級的監(jiān)控方法,對程序的敏感操作和攻擊的實(shí)施條件進(jìn)行檢測,在滿足條件的情況下對程序?qū)嵤┠M攻擊,將攻擊影響作為漏洞識別的主要依據(jù),從而完成漏洞的準(zhǔn)確識別。本方法的實(shí)施可有效檢測軟件漏洞,并減少現(xiàn)有檢測方法所存在的誤報(bào),對提高軟件系統(tǒng)安全性具有重要意義。同時(shí),檢測中涉及程序分析、攻擊利用等方面的信息可作為漏洞定位修復(fù)、級別判定的準(zhǔn)確依據(jù),降低人工分析的工作量。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明的目的是,為實(shí)現(xiàn)準(zhǔn)確檢測軟件漏洞,提供一種基于模擬攻擊的檢測方法。通過預(yù)先獲取的程序信息,結(jié)合程序和系統(tǒng)級的監(jiān)控實(shí)現(xiàn)敏感操作檢測,利用敏感操作觸發(fā)檢測機(jī)制,并在符合攻擊實(shí)施條件時(shí)對程序進(jìn)行模擬攻擊,進(jìn)行漏洞判定。
      [0005]本發(fā)明的技術(shù)方案是:基于模擬攻擊的軟件漏洞檢測方法,通過靜態(tài)反匯編工具獲取敏感操作所涉及的函數(shù)信息,利用動態(tài)插粧平臺實(shí)現(xiàn)監(jiān)控、模擬攻擊和攻擊影響分析等過程;主要操作如下:
      [0006]I)執(zhí)行靜態(tài)分析獲取程序信息;
      [0007]2)動態(tài)執(zhí)行程序,檢測敏感函數(shù)調(diào)用;
      [0008]3)分析攻擊實(shí)施條件;
      [0009]4)執(zhí)行模擬攻擊;
      [0010]5)分析攻擊影響,依據(jù)攻擊影響結(jié)果進(jìn)行漏洞判定;
      [0011]在具體實(shí)施時(shí),采用符號鏈接攻擊對程序進(jìn)行模擬攻擊,對應(yīng)的漏洞類型為一類文件訪問漏洞,通過利用這類漏洞,本地攻擊者通過符號鏈接更改程序預(yù)期訪問文件,從而實(shí)現(xiàn)訪問攻擊者權(quán)限之外的文件資源;
      [0012]操作I):在靜態(tài)分析階段,利用靜態(tài)反匯編工具IDA Pro對待檢測elf文件進(jìn)行反匯編獲得反匯編代碼,通過對反匯編代碼的分析獲取程序信息,包括函數(shù)信息和常量信息;靜態(tài)分析階段的輸入為待檢測的elf文件,輸出為程序信息,靜態(tài)分析所提取的程序信息存儲在elf_data文件中,以供動態(tài)檢測階段使用;
      [0013]程序信息包括函數(shù)信息和常量信息;其中函數(shù)信息包括敏感函數(shù)、影響函數(shù)和信息流傳播函數(shù)的信息;常量信息為常量地址;靜態(tài)分析過程利用反匯編工具對待檢測程序進(jìn)行反匯編得到反匯編代碼,并分析反匯編代碼獲取函數(shù)信息和常量信息。
      [0014]函數(shù)信息具體體現(xiàn)為函數(shù)名、函數(shù)調(diào)用地址,敏感函數(shù)信息還需要獲取含有敏感函數(shù)的函數(shù)體的開始和結(jié)束地址;函數(shù)名來自動態(tài)符號表中的函數(shù)名與敏感函數(shù)集的匹配結(jié)果;函數(shù)調(diào)用地址為敏感函數(shù)被調(diào)用的地址;含有敏感函數(shù)的函數(shù)體為敏感函數(shù)調(diào)用地址所在的函數(shù)體;函數(shù)名來自動態(tài)符號表中的函數(shù)名與敏感函數(shù)集的匹配結(jié)果;函數(shù)調(diào)用地址為敏感函數(shù)被調(diào)用的地址;含有敏感函數(shù)的函數(shù)體為敏感函數(shù)調(diào)用地址所在的函數(shù)體;靜態(tài)提取程序信息流程,利用靜態(tài)反匯編工具實(shí)現(xiàn)程序信息的提?。煌ㄟ^預(yù)先定義的函數(shù)集匹配完成函數(shù)信息的獲?。怀A啃畔槌A康刂?;靜態(tài)分析過程利用反匯編工具對待檢測程序進(jìn)行反匯編得到反匯編代碼,并分析反匯編代碼獲取函數(shù)信息和常量信息;
      [0015]步驟20是初始動作;步驟21獲取待檢測elf文件,等待分析;步驟22利用IDAPro對待檢測程序進(jìn)行反匯編;步驟23獲取程序匯編代碼;步驟24根據(jù)反匯編代碼獲取rodata節(jié)數(shù)據(jù);步驟25分析1data節(jié)數(shù)據(jù),提取只讀數(shù)據(jù)的地址作為常量信息;步驟26獲取程序的動態(tài)符號表,用于獲取程序所調(diào)用的庫函數(shù)信息;步驟27提取一個(gè)符號表項(xiàng);步驟28判斷是否提取到,是則轉(zhuǎn)步驟29,否則轉(zhuǎn)步驟2b ;步驟29判斷符號表項(xiàng)中的函數(shù)名與函數(shù)集中的函數(shù)名是否匹配,是則轉(zhuǎn)步驟2a,否則轉(zhuǎn)步驟27 ;步驟2a借助動態(tài)符號表、全局偏移表和過程鏈接表獲取函數(shù)的跳轉(zhuǎn)地址;步驟2b利用IDA中的get_func_qty函數(shù)獲取反匯編代碼中的函數(shù)體;步驟2c判斷是否獲取到,是則轉(zhuǎn)步驟2d,否則轉(zhuǎn)步驟2i ;步驟2d提取函數(shù)體中的一條指令;步驟2e對判斷指令地址是否是函數(shù)體結(jié)束地址,是則轉(zhuǎn)步驟2b,否則轉(zhuǎn)步驟2f ;步驟2f判斷指令操作碼是否為call或jmp,是則轉(zhuǎn)步驟2g,否則轉(zhuǎn)步驟2d ;步驟2g判斷目標(biāo)地址與敏感函數(shù)跳轉(zhuǎn)地址是否匹配,是則轉(zhuǎn)步驟2h,否則轉(zhuǎn)步驟2d ;步驟2h記錄敏感函數(shù)調(diào)用地址,并利用IDA中的curFunc_>startEA和curFunc_>endEA獲取函數(shù)體開始結(jié)束地址;步驟2i將步驟25、2a、2h中提取到的函數(shù)信息輸出至文件elf_data中;步驟2j是結(jié)束狀態(tài);
      [0016]操作2):在動態(tài)檢測階段,利用動態(tài)插粧平臺PIN運(yùn)行待檢測程序,讀取elf_data文件中的程序信息用于敏感函數(shù)調(diào)用及實(shí)施條件的檢測;程序信息中的敏感函數(shù)信息包含敏感函數(shù)調(diào)用地址,敏感函數(shù)調(diào)用檢測主要檢測指令地址與敏感函數(shù)調(diào)用地址的匹配情況;當(dāng)檢測到敏感函數(shù)調(diào)用時(shí),進(jìn)入實(shí)施條件分析;獲取程序所訪問的路徑名和路徑名可猜測分析結(jié)果,并進(jìn)一步檢測目錄寫權(quán)限,當(dāng)滿足實(shí)施條件時(shí)則實(shí)施攻擊;通過攻擊影響分析,給出漏洞檢測結(jié)果;最后通過恢復(fù)操作消除攻擊對文件造成的影響,并重新返回程序運(yùn)行狀態(tài)以供執(zhí)行下一次漏洞檢測;
      [0017]敏感函數(shù)調(diào)用檢測流程;通過PIN動態(tài)執(zhí)行待分析程序,完成敏感函數(shù)調(diào)用的動態(tài)檢測;步驟30為初始動作;步驟31獲取待檢測elf文件;步驟32讀取elf_data文件,獲取靜態(tài)分析得到的程序信息;步驟33利用PIN平臺動態(tài)執(zhí)行程序;步驟34利用PIN平臺獲取指令執(zhí)行序列;步驟35提取執(zhí)行序列中一條指令;步驟36判斷是否提取到,是則轉(zhuǎn)步驟37,否則轉(zhuǎn)步驟3a ;步驟37判斷指令地址是否為敏感函數(shù)調(diào)用地址,是則轉(zhuǎn)步驟38,否則轉(zhuǎn)步驟35 ;步驟38獲取敏感函數(shù)調(diào)用中參數(shù)的路徑名,利用PIN中的PIN_AddSyscalIEntryFunct1n函數(shù)對敏感函數(shù)調(diào)用中涉及的系統(tǒng)調(diào)用進(jìn)行插粧,并利用PIN_GetSyscallArgument函數(shù)獲取系統(tǒng)調(diào)用參數(shù)中的路徑名參數(shù);步驟39觸發(fā)實(shí)施條件分析;步驟3a是結(jié)束狀態(tài);
      [0018]操作3):在檢測到敏感函數(shù)調(diào)用后,執(zhí)行分析攻擊實(shí)施條件,判斷對于攻擊者而言是否具備實(shí)施條件;實(shí)施條件包括路徑名可猜測和目錄寫權(quán)限兩個(gè)部分,其中路徑名可猜測表示攻擊者是否能夠猜測到訪問的文件路徑名,可通過路徑名的來源判定;將來源分為可猜測和不可猜測兩類;通過取路徑名來源到路徑名的信息流分析,可以得出路徑名是否可以猜測;目錄寫權(quán)限體現(xiàn)為攻擊者對于文件所在目錄是否具備寫權(quán)限,通過系統(tǒng)中的訪問策略進(jìn)行判定;
      [0019]步驟40為起始動作;步驟41獲取文件訪問涉及的路徑名,來自于敏感函數(shù)調(diào)用檢測中的步驟35 ;步驟42獲取路徑名可猜測分析結(jié)果,圖5給出了獲取的主要流程;步驟43判斷路徑名是否為可猜測的,是則轉(zhuǎn)步驟44,否則轉(zhuǎn)步驟46 ;步驟44判斷當(dāng)前的訪問操作對于攻擊者而言是否具備實(shí)施條件;分析的主要流程,是則轉(zhuǎn)步驟45,否則轉(zhuǎn)步驟46 ;步驟45為等待攻擊實(shí)施的狀態(tài);步驟46是結(jié)束狀態(tài);
      [0020]操作4):執(zhí)行模擬攻擊;在確定攻擊者具備實(shí)施條件后,對當(dāng)前訪問的文件實(shí)施符號鏈接攻擊;步驟70為起始動作;步驟71獲取路徑名,由步驟41獲??;步驟72獲取目錄寫權(quán)限信息,由圖6的步驟65獲得;步驟73利用系統(tǒng)調(diào)用access檢測當(dāng)前文件是否存在,是轉(zhuǎn)步驟74,否則轉(zhuǎn)步驟75 ;步驟74將文件重命名,確保文件在檢測結(jié)束后可恢復(fù);步驟75實(shí)施符號鏈接攻擊,利用系統(tǒng)調(diào)用link創(chuàng)建一個(gè)符號鏈接指向預(yù)先設(shè)定的目標(biāo)文件,攻擊者對目標(biāo)文件不具備任何權(quán)限,這里將目標(biāo)文件設(shè)定為/etc/root文件該文件對于同組和其他用戶不具備任何權(quán)限;步驟76依據(jù)link返回值判斷攻擊是否成功,是則轉(zhuǎn)步驟77,否則轉(zhuǎn)步驟78 ;步驟77等待程序執(zhí)行攻擊影響分析,圖8為其主要流程;步驟78為結(jié)束狀態(tài);
      [0021]操作5):分析攻擊影響,依據(jù)攻擊影響結(jié)果進(jìn)行漏洞判定;攻擊影響分析流程用于判斷攻擊是否對程序或系統(tǒng)產(chǎn)生影響;通過影響函數(shù)對攻擊影響進(jìn)行判定;影響函數(shù)與敏感函數(shù)相對應(yīng),打開類敏感函數(shù)(包括open、open64、fopen、fopen64、freopen和freopen64)對應(yīng)影響函數(shù)為相應(yīng)的讀寫函數(shù),其他敏感函數(shù)的影響函數(shù)為其本身;影響函數(shù)根據(jù)功能分為read、wri
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1