A technology used to identify potential underlying causes of memory corruption vulnerabilities after application is released, including computing devices based on program execution logs to replay program execution. The execution log includes an ordered set of executes instructions that cause the release of a program that uses memory damage after release. Use the memory address to access the computing device in response to the detected using memory address access after the release of the program will be released and released after using the memory damage vulnerability associated memory addresses are compared, and in response to detection of the matching between the related to in the program after the release of the use of memory address and access after the release of memory corruption vulnerabilities associated with memory address and the program after the release of the use of memory address to access the root cause as the release after the use of memory corruption vulnerabilities candidates to record a list of candidates.
【技术实现步骤摘要】
【国外来华专利技术】用于释放后使用存储器损坏漏洞的根本原因识别的技术相关申请的交叉引用本申请要求于2015年3月27日提交的名称为“TECHNOLOGYFORROOTCAUSEIDENTIFICATIONOFUSE-AFTER-FREEMEMORYCORRUPTIONBUGS”的序号为14/670,863的美国技术专利申请的优先权。
技术介绍
识别存储器损坏漏洞是非常有挑战性的,识别这些漏洞的根本原因则更具挑战性。例如,释放后使用存储器损坏漏洞是由于在存储器被释放(即删除)之后使用指向该存储器的指针而引起的。尽管释放后使用(use-after-free)漏洞有时可能导致计算设备崩溃,但计算设备通常会继续执行。因此,程序员使用常用软件技术(例如,单元或集成测试)来检测一些释放后使用漏洞的存在是非常困难的,甚至是不可能的。一些调试系统允许程序员捕获删除的存储器的使用,导致观测到释放后使用漏洞。然而,在这种系统中释放后使用漏洞的根本原因的确定明显受限制或完全不存在的。因此,根本原因通常仍存在,这可能对计算设备引入不一致的行为和/或安全弱点。附图说明这里描述的概念在附图中通过示例而不是限制的方式来 ...
【技术保护点】
一种用于识别程序的释放后使用存储器损坏漏洞的潜在根本原因的计算设备,所述计算设备包括:重放模块,用于基于所述程序的执行日志来对所述程序的执行进行重放,其中,所述执行日志包括导致所述释放后使用存储器损坏漏洞的所述程序的已执行指令的有序集合;损坏候选者识别模块,用于(i)响应于检测到释放后使用存储器地址访问,将对所述程序进行的释放后使用存储器地址访问和与释放后使用存储器损坏漏洞的出现相关联的存储器地址进行比较,以及(ii)响应于检测到对所述程序进行的释放后使用存储器地址访问和与所述释放后使用存储器损坏漏洞的出现相关联的存储器地址之间的匹配,将对所述程序进行的所述释放后使用存储器 ...
【技术特征摘要】
【国外来华专利技术】2015.03.27 US 14/670,8631.一种用于识别程序的释放后使用存储器损坏漏洞的潜在根本原因的计算设备,所述计算设备包括:重放模块,用于基于所述程序的执行日志来对所述程序的执行进行重放,其中,所述执行日志包括导致所述释放后使用存储器损坏漏洞的所述程序的已执行指令的有序集合;损坏候选者识别模块,用于(i)响应于检测到释放后使用存储器地址访问,将对所述程序进行的释放后使用存储器地址访问和与释放后使用存储器损坏漏洞的出现相关联的存储器地址进行比较,以及(ii)响应于检测到对所述程序进行的释放后使用存储器地址访问和与所述释放后使用存储器损坏漏洞的出现相关联的存储器地址之间的匹配,将对所述程序进行的所述释放后使用存储器地址访问作为所述释放后使用存储器损坏漏洞的根本原因的候选者记录到候选者列表中。2.根据权利要求1所述的计算设备,还包括候选者过滤模块,其用于过滤所述候选者列表以减少所述候选者列表中的候选者的数量。3.根据权利要求2所述的计算设备,其中,过滤所述候选者列表包括:从所述候选者列表中选择候选者;从所述程序的执行中移除与选定候选者相关联的一个或多个指令,以生成经修改的程序;对所述经修改的程序进行重放;以及响应于确定对所述经修改的程序进行重放导致所述释放后使用存储器损坏漏洞,从所述候选者列表中移除所述选定候选者。4.根据权利要求3所述的计算设备,其中,所述一个或多个指令是由所述程序的单个指令组成的。5.根据权利要求3所述的计算设备,其中,所述一个或多个指令是由所述程序的最近分支指令组成的。6.根据权利要求3所述的计算设备,其中,所述一个或多个指令是由与所述选定候选者的存储器访问相对应的指令组成的。7.根据权利要求3所述的计算设备,其中,所述一个或多个指令包括所述程序的指令集。8.根据权利要求7所述的计算设备,其中,所述指令集包括在最近分支指令和与所述选定候选者的存储器访问相对应的指令之间定义的指令集。9.根据权利要求1所述的计算设备,还包括存储器分配模块,其用于利用最近最少使用(LRU)存储器分配器来编译所述程序,其中,对所述程序的执行进行重放包括响应于利用所述LRU存储器分配器编译所述程序来对所述程序的执行进行重放。10.根据权利要求9所述的计算设备,其中,编译所述程序包括使所述程序的存储器分配器过载。11.根据权利要求1-10中任一项所述的计算设备,其中,对所述程序的执行进行重放包括利用二进制插桩技术对所述程序的执行进行重放。12.一种用于识别程序的释放后使用存储器损坏漏洞的潜在根本原因的方法,所述方法包括:基于所述程序的执行日志,通过计算设备对所述程序的执行进行重放,其中所述执行日志包括导致释放后使用存储器损坏漏洞的所述程序的已执行指令的有序集合;响应于检测到释放后使用存储器地址访问,通过所述计算设备将对所述程序进行的释放后使用存储器地址访问和与释放后使用存储器损坏漏洞的出现相关联的存储器地址进行比较;以及响应于检测到对所述程序进行的释放...
【专利技术属性】
技术研发人员:J·E·戈特施利希,G·A·波卡姆,C·L·佩雷拉,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。