[发明专利]一种高效的软件程序释放后重用漏洞判定方法和装置有效
| 申请号: | 202010285957.0 | 申请日: | 2020-04-13 |
| 公开(公告)号: | CN111625833B | 公开(公告)日: | 2023-06-13 |
| 发明(设计)人: | 和亮;苏璞睿;杨轶;闫佳;黄桦烽 | 申请(专利权)人: | 中国科学院软件研究所 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
| 地址: | 100190 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 高效 软件 程序 释放 重用 漏洞 判定 方法 装置 | ||
1.一种高效的软件程序释放后重用漏洞判定方法,其步骤包括:
1)利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;
2)根据程序运行过程中对于系统函数的调用情况,实时记录所有堆管理操作行为;
3)采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析与崩溃指令相关的传播指令集;
4)根据步骤2)和步骤3)的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则判定该崩溃是由释放后重用漏洞导致;
其中,步骤2)中记录的信息包括:HeapInfo=(ThreadID,HeapBase,HeapSize),其中,ThreadID表示负责分配堆块的线程标识,HeapBase表示分配的堆起始地址,也称为堆地址指针,HeapSize表示堆块的实际分配大小;
其中,步骤4)包括:无论崩溃指令是哪种指令类型,都假设第k条指令是崩溃相关的指针寄存器reg存储到了内存mem中,然后以k为索引,从HeapInfo中查询指针寄存器reg所指向的对象,假设reg指向对象ObjA;以ObjA为索引,查找该对象的释放时刻,假设释放时刻为tfree;判断程序最后一次从内存mem中读取指针寄存器reg的时刻treuse,是否存在treusetfree,如果该不等式成立,则说明读取时对象已经释放,从而检测出了释放后重用漏洞,否则说明该崩溃不是由释放后重用漏洞导致。
2.如权利要求1所述的方法,其特征在于,步骤1)中记录的信息包括指令执行记录集合InsnTrace={(TraecID,Instruction,OperandAddress,OperandValue,ThreadID)}以及程序崩溃信息CrashInfo=(TraecID,Instruction,OperandAddress,OperandValue,ThreadID),其中,TraceID表示该指令对应的记录ID,Instruction表示该指令的具体汇编形式,OperandAddress表示指令操作数的内存地址,如果是寄存器,则需要映射到特定的内存上,
OperandValue表示指令操作数的值,ThreadID表示线程ID。
3.如权利要求1所述的方法,其特征在于,步骤3)根据崩溃时所记录的指令信息即崩溃指令,采用逆向动态污点传播技术进行逆向数据流回溯分析并提取所有相关的指令集合;如果崩溃指令涉及到内存读/写,则以指针即寄存器为目标进行逆向分析;如果崩溃指令是某个函数调用,则以存放函数的变量为起点向前回溯到变量的来源,并以该来源作为回溯起点进行逆向分析。
4.如权利要求3所述的方法,其特征在于,步骤3)包括:
从崩溃指令开始,假设其TraceID=i,向前回溯分析指令i-1,i-2,…,如果崩溃是由错误的内存读/写导致且假设该指令中的内存指针由某寄存器reg来表示,则开始从指令i-1,i-2,…中寻找该寄存器是从哪块内存读取的,假设在第j条指令是由内存mem位置读取,随后继续向前查找指令序列j-1,j-2,…,寻找reg是从何时存储到内存mem中,假设在第k条指令,对象指针reg存储到内存mem中;
如果崩溃指令是由错误的对象成员函数调用导致,则向前回溯分析寄存器reg来源于哪个对象内存,仍假设在第j条指令是由内存mem位置读取,同样的,从第j条指令开始向前继续查找指令序列j-1,j-2,…,寻找reg何时存储到内存mem中,同样假设在第k条指令,对象成员函数reg存储到内存mem中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010285957.0/1.html,转载请声明来源钻瓜专利网。





