《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于污點分析的二進制程序漏洞檢測系統設計與實現*
基于污點分析的二進制程序漏洞檢測系統設計與實現*
網絡安全與數據治理 11期
羅治祥1,向棲2,李樂言1,3
(1工業和信息化部電子第五研究所,廣東廣州511370;2東北大學軟件學院,遼寧沈陽110819;3智能產品質量評價與可靠性保障技術工業和信息化部重點實驗室,廣東廣州511370)
摘要: 針對現階段二進制程序的靜態分析多依賴于人工經驗規則導致的低效率問題,以及大多數二進制程序漏洞掃描檢測系統性能和可擴展性較低的問題,設計并且實現了一個簡易版的基于污點分析的二進制程序漏洞檢測系統。與現有的二進制程序漏洞檢測系統相比,本文設計的系統改進了Java指針分析中提出的算法,使得分析過程的數據抽象部分和指針分析部分得到了分離,進一步簡化了污點分析,提高了分析的性能和可擴展性。此外,將漏洞模式單獨抽離出來,能夠更加方便地進行漏洞模式的自定義。
中圖分類號:TP311文獻標識碼:ADOI:10.19358/j.issn.2097-1788.2023.11.001
引用格式:羅治祥,向棲,李樂言.基于污點分析的二進制程序漏洞檢測系統設計與實現[J].網絡安全與數據治理,2023,42(11):1-7.
Design and implementation of binary program vulnerability detection
Luo Zhixiang1,Xiang Qi2,Li Leyan1,3
(1Fifth Research Institute of Ministry of Industry and Information Technology, Guangzhou 511370, China;2Software College,Northeastern University,Shenyang 110819,China;3Key Laboratory of Intelligent Product Quality Evaluation and Reliability Assurance Technology, Ministry of Industry and Information Technology, Guangzhou 511370, China)
Abstract: Given the inefficiencies associated with the heavy reliance on manual heuristic rules for static analysis of binary programs at the current stage, and the low performance and scalability of existing binary program vulnerability scanning systems, this paper has designed and implemented a vulnerability detection system for binary programs based on taint analysis. Compared to the existing binary program vulnerability detection systems, the system designed in this paper improves the algorithm proposed in the Java pointer analysis, allowing the data abstraction and pointer analysis portions of the process to be separated. This further simplifies the taint analysis, enhancing its performance and scalability. Additionally, this paper extracts vulnerability patterns separately, making it much easier to customize vulnerability patterns.
Key words : static analysis of binary programs; pointer analysis; taint analysis; vulnerability patterns

0引言

近年來,隨著計算機技術的不斷發展,軟件行業迅速發展,軟件的體量、種類不斷增大。同時,由于程序代碼編寫不規范,編寫過程存在疏忽,或者缺乏軟件安全方面的意識等,導致軟件的安全性承受巨大威脅。針對這一現狀,構建漏洞檢測系統對軟件進行安全檢測是最行之有效的辦法之一,可在一定程度上發現并且及時消除潛在的漏洞。

軟件的安全檢測方法通常可以分為動態測試[1]和靜態分析[2]兩大類,靜態分析這一方法相較于動態測試具有更高的覆蓋率以及性能效率。現有的靜態分析方案大多都基于源碼級別[3]進行分析,雖然可以在比較高的程度上滿足軟件安全需要,但是在許多真實的安全測試場景中,需要分析對象大多屬于常見的二進制文件,比如商業軟件、車機固件、嵌入式系統固件等。此時安全研究人員難以獲得相應的源代碼,源碼級靜態分析方案不再適用。現今商業化的二進制程序漏洞分析系統基本不具備可二次開發的擴展性,而開源的二進制程序漏洞分析系統,比如 angr[4] 、 BAP[5] 、 BinAbsInspector等優秀的靜態分析工具存在一些適用性問題。其中,angr 和 BAP 正逐步發展為通用分析框架,而不僅僅專注于二進制漏洞掃描,這使得內部分析算法變得復雜,不便于后續的擴展和優化。BinAbsInspector是基于Ghidra的插件,使用Java編寫開發,提供的API比較有限,在可擴展性上有所欠缺,普通的二進制安全研究員無法有效地基于該工具進行自定義開發。因此,構建一款在性能和可擴展性上較為突出,同時也滿足于真實場景需要的二進制程序漏洞檢測系統刻不容緩。

針對上述問題,Tan[6]等基于Java提出了一種較為簡易的指針分析[7]算法,該算法在使用Datalog[8]引擎支撐之后,在構建好的程序抽象數據上進行分析,使得性能得到較大的提升。對于獲取二進制程序抽象數據而言,普遍的做法是反編譯[9]二進制程序生成IR中間表示,進一步對其進行優化和轉換得到其AST語法樹,最后依據AST語法樹得到程序抽象數據,比較好的工具有IDA Pro、Ghidra、Binary Ninja等。本文設計系統選取了IDA Pro進行程序抽象數據獲取,使用IDA Pro特有的IDAPython,從原生角度適配了IDA Pro提供各項API接口,從可擴展性上兼具了Python腳本跨平臺、易擴展等優點;從性能方面,Python庫中的pyDatalog可以替代常見的Datalog引擎,且性能方面相差無幾。


文章詳細內容下載請點擊:基于污點分析的二進制程序漏洞檢測系統設計與實現AET-電子技術應用-最豐富的電子設計資源平臺 (chinaaet.com)


作者信息:

羅治祥1,向棲2,李樂言1,3

(1工業和信息化部電子第五研究所,廣東廣州511370;2東北大學軟件學院,遼寧沈陽110819;3智能產品質量評價與可靠性保障技術工業和信息化部重點實驗室,廣東廣州511370)



此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 动漫乱人伦视频在线观看| 一二三四视频在线观看韩国电视剧| 最近高清中文在线字幕在线观看 | 在线a亚洲视频播放在线观看| 国产精品亚洲综合天堂夜夜| 国产日韩欧美高清| 国产成人精品久久一区二区小说| 午夜视频在线观看一区二区| 亚洲欧美日韩一区在线观看| 亚洲人成色77777在线观看| 亚洲欧美日韩国产精品专区| 亚洲AV第一成肉网| 一个人看www免费高清字幕| 色之综合天天综合色天天棕色| 精品国产午夜福利在线观看| 欧美一级黄色片在线观看| 欧美任你躁免费精品一区| 女人战争免费观看韩国| 国产成人青青热久免费精品| 免费看无码自慰一区二区| 午夜老司机永久免费看片| 国产精品免费精品自在线观看| 国内精品久久久人妻中文字幕| 国产亚洲精品拍拍拍拍拍| 免费看男女做好爽好硬视频| 久久精品女人天堂AV麻| 99在线视频精品费观看视| 色综合久久一本首久久| 青娱乐在线视频观看| 欧美人与牲动交xxxx| 女人双腿搬开让男人桶| 国产欧美一区二区精品久久久| 亚洲精品国产精品国自产观看 | a毛片成人免费全部播放| 色综合久久一区二区三区| 最近中文字幕电影在线看| 国产色视频免费| 免费黄色录像片| 中文字幕无码毛片免费看| 香艳69xxxxx有声小说| 最近中文字幕mv2018免费看|