[发明专利]用于通过拦截函数调用识别应用程序的漏洞的系统和方法有效
申请号: | 201811359062.6 | 申请日: | 2018-11-15 |
公开(公告)号: | CN110390200B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 亚历山大·V·卡里宁;谢尔盖·A·鲁姆耶特塞夫;伊戈尔·Y·库马金 | 申请(专利权)人: | 卡巴斯基实验室股份制公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华;何月华 |
地址: | 俄罗斯*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 通过 拦截 函数 调用 识别 应用程序 漏洞 系统 方法 | ||
1.一种识别应用程序的漏洞的方法,所述方法包括:
由硬件处理器根据用于修改函数的至少一个规则来识别所述应用程序的可执行代码中的至少一个函数,所述至少一个规则至少包含所述函数的原型和对于所述函数的调用约定;
在启动所述应用程序时,将拦截代码添加到所述应用程序的所述可执行代码,其中,所述拦截代码被配置成拦截由所述应用程序进行的对函数的调用以及建立对与所述应用程序相关联的进程的控制,以及其中,所述拦截代码通过利用与被拦截的函数匹配的应用程序二进制接口调用所述拦截代码中的函数来修改所述应用程序的功能;
由所述硬件处理器执行具有添加的所述拦截代码的所述应用程序;
通过所述拦截代码收集与由所述应用程序在执行期间执行的函数调用有关的数据;
基于用于安全执行所述应用程序的标准,分析收集的所述数据,其中,所述标准包括被拦截的函数调用的自变量的允许值的范围;以及
识别被分析的所述数据与用于安全执行应用程序的所述标准之间的不一致性,其中,所述不一致性指示所述应用程序中的漏洞。
2.如权利要求1所述的方法,其中,所述被拦截的函数包括如下项中的至少一者:操作系统的函数或编程语言的标准库的函数。
3.如权利要求1所述的方法,其中,用于修改的所述规则指定所述拦截代码在执行期间执行的动作的集合。
4.如权利要求3所述的方法,其中,所述动作包括如下项中的一者或多者:将所述函数的自变量保存在日志文件中、生成系统事件、不执行被拦截的函数、以及改变自变量的值。
5.如权利要求4所述的方法,其中,用于修改的所述规则还指定针对改变被拦截的函数的自变量的值的有效性的条件。
6.如权利要求1所述的方法,还包括:
使用自动测试执行所述应用程序。
7.如权利要求1所述的方法,其中,所述数据包括所述被拦截的函数的自变量的值。
8.如权利要求1所述的方法,还包括:
识别在所述标准中包含的临界度;以及
当所述临界度超过预定阈值时,中断所述应用程序的执行。
9.如权利要求1所述的方法,还包括:
识别在所述标准中包含的临界度;以及
当所述临界度超过预定阈值时,创建关于至少一个漏洞的日志条目。
10.一种识别应用程序的漏洞的系统,所述系统包括:
硬件处理器,所述硬件处理器被配置成:
根据用于修改函数的至少一个规则来识别所述应用程序的可执行代码中的至少一个函数,所述至少一个规则至少包含所述函数的原型和对于所述函数的调用约定;
在启动所述应用程序时,将拦截代码添加到所述应用程序的所述可执行代码,其中,所述拦截代码被配置成拦截由所述应用程序进行的对函数的调用以及建立对与所述应用程序相关联的进程的控制,以及其中,所述拦截代码通过利用与被拦截的函数匹配的应用程序二进制接口调用所述拦截代码中的函数来修改所述应用程序的功能;
执行具有添加的所述拦截代码的所述应用程序;
通过所述拦截代码收集与由所述应用程序在执行期间执行的函数调用有关的数据;
基于用于安全执行应用程序的标准,分析收集的所述数据,其中,所述标准包括被拦截的函数调用的自变量的允许值的范围;以及
识别被分析的所述数据与用于安全执行应用程序的所述标准之间的不一致性,其中,所述不一致性指示所述应用程序中的漏洞。
11.如权利要求10所述的系统,其中,所述被拦截的函数包括如下项中的至少一者:操作系统的函数或编程语言的标准库的函数。
12.如权利要求10所述的系统,其中,用于修改的所述规则指定所述拦截代码在执行期间执行的动作的集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卡巴斯基实验室股份制公司,未经卡巴斯基实验室股份制公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811359062.6/1.html,转载请声明来源钻瓜专利网。