[發(fā)明專利]一種基于插樁的基本塊粒度下工控協(xié)議語法逆向分析方法在審
| 申請?zhí)枺?/td> | 202110024995.5 | 申請日: | 2021-01-08 |
| 公開(公告)號: | CN112905184A | 公開(公告)日: | 2021-06-04 |
| 發(fā)明(設(shè)計(jì))人: | 程鵬;謝一松;汪慕峰;劉可;周劼英;郭志民;張偉劍;呂卓 | 申請(專利權(quán))人: | 浙江大學(xué);國網(wǎng)河南省電力公司電力科學(xué)研究院;國家電網(wǎng)有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司 33200 | 代理人: | 劉靜 |
| 地址: | 310058 浙江*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 基本 粒度 下工 協(xié)議 語法 逆向 分析 方法 | ||
本發(fā)明公開了一種基于插樁的基本塊粒度下工控協(xié)議語法逆向分析方法,具體包括:對工控協(xié)議二進(jìn)制可執(zhí)行程序?qū)崿F(xiàn)指令、基本塊和函數(shù)粒度的動態(tài)插樁,在動態(tài)污點(diǎn)分析過程中記錄指令粒度的污點(diǎn)傳播信息以及基本塊粒度、函數(shù)粒度、邏輯判斷和跳轉(zhuǎn)信息,生成程序運(yùn)行時(shí)日志文件。日志文件通過重排序和相關(guān)分析算法,實(shí)現(xiàn)基本塊粒度下的工控協(xié)議字段邊界識別。本方法相較于函數(shù)粒度下的字段邊界識別方法,可以獲取更多基本塊粒度下的程序上下文信息,從而識別出在同一函數(shù)下處理的不同字段,提升了字段邊界識別精度。
技術(shù)領(lǐng)域
本發(fā)明涉及工業(yè)通信網(wǎng)絡(luò)協(xié)議與協(xié)議逆向工程技術(shù)領(lǐng)域,特別涉及一種基于插樁的基本塊粒度下工控協(xié)議語法逆向分析方法。
背景技術(shù)
工控協(xié)議作為現(xiàn)代工業(yè)控制系統(tǒng)網(wǎng)絡(luò)拓?fù)涞闹匾M成部分,在工控系統(tǒng)安全研究中有著重要的意義。對于工控協(xié)議的安全研究可以大體分為兩部分:協(xié)議本體安全性研究以及協(xié)議安全應(yīng)用。其中,協(xié)議本體安全性研究的一個(gè)熱門領(lǐng)域是對于協(xié)議實(shí)現(xiàn)程序的模糊測試:通過預(yù)先設(shè)定一定的協(xié)議輸入格式作為種子,模糊測試工具可以產(chǎn)生不同的輸入以測試協(xié)議實(shí)現(xiàn)程序中存在的緩沖區(qū)溢出等脆弱性。在協(xié)議安全應(yīng)用中,通過報(bào)文解析可以構(gòu)建入侵檢測系統(tǒng),這也是輕量級工控系統(tǒng)網(wǎng)絡(luò)安全加固的研究熱點(diǎn)。上述兩個(gè)領(lǐng)域的發(fā)展都離不開工控協(xié)議標(biāo)準(zhǔn)的獲取。
協(xié)議標(biāo)準(zhǔn)可以分為協(xié)議語法、協(xié)議語義和協(xié)議狀態(tài)機(jī)三部分。協(xié)議語法刻畫了協(xié)議的字段邊界;協(xié)議語法描述了協(xié)議各個(gè)字段的具體功能和含義;而協(xié)議狀態(tài)機(jī)則是協(xié)議報(bào)文時(shí)序關(guān)系的體現(xiàn)。出于市場占有、安全等多方面因素考慮,工控廠商通常選擇開發(fā)獨(dú)有的協(xié)議用于其生產(chǎn)的設(shè)備通信,并保留其協(xié)議標(biāo)準(zhǔn)不進(jìn)行公開。對于安全領(lǐng)域的研究者而言,這意味著其需要通過各種方式——軟件逆向、數(shù)據(jù)比對等手段進(jìn)行協(xié)議的格式信息獲取,而這一過程無疑需要耗費(fèi)大量的時(shí)間。此外,工控協(xié)議通常采用二進(jìn)制協(xié)議,其格式有著嚴(yán)格的規(guī)定,并且隱去了語義信息,使得人工進(jìn)行協(xié)議逆向難度倍增。
目前針對工控二進(jìn)制協(xié)議的自動化逆向方法采用動態(tài)污點(diǎn)分析技術(shù),從函數(shù)粒度上進(jìn)行字段邊界的劃分,這種逆向方法在分析通過條件分支語句而非函數(shù)封裝實(shí)現(xiàn)的協(xié)議功能時(shí)會出現(xiàn)無法準(zhǔn)確劃分字段邊界的情況。本發(fā)明基于基本塊粒度的細(xì)粒度協(xié)議逆向分析方法可以有效解決上述問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提出一種基于插樁的基本塊粒度下工控協(xié)議語法逆向分析方法。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:一種基于插樁的基本塊粒度下工控協(xié)議語法逆向分析方法,該方法包括以下步驟:
S1:對工控協(xié)議的二進(jìn)制可執(zhí)行程序進(jìn)行插樁,獲取指令及函數(shù)粒度的運(yùn)行時(shí)信息,將網(wǎng)絡(luò)接收函數(shù)接收的協(xié)議報(bào)文數(shù)據(jù)標(biāo)記為污點(diǎn)源數(shù)據(jù);記錄污點(diǎn)源數(shù)據(jù)及后續(xù)污點(diǎn)數(shù)據(jù)的污點(diǎn)狀態(tài)信息,在程序運(yùn)行過程中,依據(jù)污點(diǎn)傳播規(guī)則,追蹤污點(diǎn)數(shù)據(jù)在內(nèi)存和寄存器中的傳播情況,獲取協(xié)議報(bào)文數(shù)據(jù)和程序上下文的關(guān)系。
S2:對函數(shù)粒度進(jìn)行插樁,獲取函數(shù)名稱、函數(shù)進(jìn)入和退出信息;對基本塊粒度進(jìn)行插樁,獲取基本塊入口地址和長度信息;對指令粒度的邏輯判斷和條件跳轉(zhuǎn)相關(guān)匯編指令進(jìn)行插樁,用于標(biāo)記邏輯邊界。
S3:依據(jù)S1和S2設(shè)計(jì)的插樁方法,記錄程序運(yùn)行時(shí)上下文信息,形成格式化日志文件。
S4:對日志文件進(jìn)行預(yù)處理,剔除網(wǎng)絡(luò)接收函數(shù)不相關(guān)線程日志,并依據(jù)地址數(shù)據(jù)進(jìn)行函數(shù)日志、基本塊日志、指令日志的重排序。
S5:對預(yù)處理后日志文件進(jìn)行分析,以邏輯判斷和條件跳轉(zhuǎn)指令為邏輯邊界劃分依據(jù),將日志中記錄的基本塊序列劃分為多個(gè)邏輯塊,構(gòu)建邏輯塊和協(xié)議報(bào)文數(shù)據(jù)的關(guān)聯(lián)關(guān)系,依據(jù)關(guān)聯(lián)關(guān)系進(jìn)行協(xié)議報(bào)文字段邊界的劃分,從而完成語法判別。
進(jìn)一步地,所述步驟S1具體包括:
S11:對工控協(xié)議的二進(jìn)制可執(zhí)行程序進(jìn)行插樁,具體使用程序插樁框架Pin進(jìn)行指令粒度和函數(shù)粒度的插樁。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙江大學(xué);國網(wǎng)河南省電力公司電力科學(xué)研究院;國家電網(wǎng)有限公司,未經(jīng)浙江大學(xué);國網(wǎng)河南省電力公司電力科學(xué)研究院;國家電網(wǎng)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110024995.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





