[发明专利]一种漏洞PoC实现方法和装置在审
| 申请号: | 201910278405.4 | 申请日: | 2019-04-09 |
| 公开(公告)号: | CN109948346A | 公开(公告)日: | 2019-06-28 |
| 发明(设计)人: | 王鹏 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 王康;解婷婷 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 内核 漏洞 方法和装置 可行路径 质量和安全 漏洞利用 软件产品 数据到达 系统调用 触发 演示 | ||
本发明实施例公开了一种漏洞PoC实现方法和装置,所述方法包括:确定用户输入的数据进入内核的系统调用入口;确定所述内核中用户输入的数据到达内核漏洞所在函数的所有可行路径及每条可行路径涉及所述用户输入的数据的具体部分;修改用户输入来实际触发漏洞。本发明实施例提供了一个内核漏洞利用的演示手段,提高了软件产品的质量和安全保障。
技术领域
本发明涉及漏洞利用技术,尤指一种漏洞PoC实现方法和装置。
背景技术
网络攻击的形式多种多样,如利用电子邮件附件、钓鱼网站、访问控制缺陷、软件漏洞等,其中漏洞利用方式所占比例较大危害较严重,尤其是零日0day漏洞,就是一些大规模、致命性、高威胁性、能够造成巨大破坏的漏洞。
PoC(Proof of Concept),中文意思是观点验证,运行PoC程序,能够通过它确认一个漏洞是真实存在的。
研发测试人员在开发过程中发现的漏洞多是不经意间触发的,触发漏洞时输入的指令、数据等直接成为漏洞的PoC,模糊测试等专业的漏洞挖掘工程方法一般是通过制造程序崩溃来发现漏洞的,造成程序崩溃的输入也成为PoC。上述两种方法的漏洞PoC较易编写,然而还有许多发现的漏洞没有给出PoC。如软件开发过程中的源代码缺陷扫描阶段通常会由漏洞扫描工具报出大量的疑似漏洞,一般是不会给出PoC的。还有部分无PoC的漏洞来自程序的控制流、数据流、自动机等理论分析。
对于无PoC的漏洞,比如某些理论分析发现的0day漏洞,需要在漏洞分析的基础上给出PoC。辅助PoC编写的工具很多如pwntools、zio、peda等,然而PoC编写上的成系统的方法却几乎没有,因而使得软件产品的质量和安全无法得到保障。
发明内容
为了解决上述技术问题,本发明实施例提供了一种漏洞PoC实现方法和装置,提供了一个内核漏洞利用的演示手段,提高了软件产品的质量和安全保障。
为了达到本发明目的,一方面,本发明实施例提供了一种漏洞PoC实现方法,包括:
确定用户输入的数据进入内核的系统调用入口;
确定所述内核中用户输入的数据到达内核漏洞所在函数的所有可行路径及每条可行路径涉及所述用户输入的数据的具体部分;
修改用户输入来实际触发漏洞。
进一步地,所述确定用户输入的数据进入内核的系统调用入口包括:
根据用户输入启动一个用户态程序;
利用跟踪系统调用的工具strace获取所述用户态程序在处理所述用户输入时的系统调用,将与输入输出相关的系统调用以第一列表记录下来;
对所述第一列表中的每个系统调用获取用户态的调用堆栈,以了解用户输入数据的用户态处理方式。
进一步地,所述确定所述内核中用户输入的数据到达漏洞所在函数的所有可行路径包括:
将所述内核漏洞所在函数及它所在内核组件的其它代表性的函数记录为第二列表;
通过内核探测工具systemtap获取每个函数在所述用户态程序运行过程中的内核调用堆栈,内核分析以任何一个输出了调用堆栈的第二列表中的函数为依据;依据内核函数调用关系图和实际代码分析修改用户输入的数据值以使内核漏洞所在函数被调用。
进一步地,所述修改用户输入来实际触发漏洞包括:
在内核调试环境上修改用户输入的数据值,选择性地修改系统配置值,使漏洞所在的那行代码被运行,试出导致漏洞触发的用户输入。
进一步地,所述方法还包括:内核例程为内核态空间的函数。
另一方面,本发明实施例还提供了一种漏洞PoC实现装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910278405.4/2.html,转载请声明来源钻瓜专利网。





