应用程序的漏洞检测方法和装置的制造方法

文档序号:9547089阅读:536来源:国知局
应用程序的漏洞检测方法和装置的制造方法
【技术领域】
[0001] 本发明涉及计算机互联网领域,具体而言,涉及一种应用程序的漏洞检测方法和 装置。
【背景技术】
[0002] 现有技术中用于实现Web网站动态内容的技术可以包括:通用网关接口(Common Gateway Interface,简称CGI)技术、超文本预处理器(Hypertext Preprocessor的缩写,简 称PHP)等。
[0003] CGI可以根据用户输入的请求动态地传送HTML数据,使用CGI技术可实现电子商 务网站、搜索引擎处理和在线登记等功能。现有的自定义的CGI脚本是由Perl,Java,C和 C++等语言编写的,网站Web页面的设计者都需要控制网站web服务器,包括所需要的后台 程序(如数据库)。
[0004] PHP是一种比CGI更快速的执行动态网页的通用的开源脚本语言,由于PHP是将程 序嵌入到HTML文档中去执行,因此执行效率比完全生成htmL标记的CGI要高许多,而且所 有的CGI的功能PHP都能实现。语法吸收了 C语言、Java和Perl的特点,入门门槛较低, 易于学习,使用广泛,主要适用于Web开发领域。
[0005] PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一,命令注入攻击 Command Injection,是指由于Web应用程序对用户提交的数据过滤不严格,导致黑客可以 通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部 程序或系统命令实施攻击,非法获取数据或者网络资源等。下面我们结合PHP语言的特性, 对PHP命令注入攻击进行简要的分析和描述。
[0006] PHP命令注入的漏洞攻击存在的主要原因是Web应用程序员在应用PHP语言中一 些具有命令执行功能的函数时,对用户提交的数据内容没有进行严格的过滤就带入函数中 执行而造成的。例如,当黑客提交的数据内容为向网站目录写入PHP文件时,就可以通过该 命令注入攻击漏洞写入一个PHP后门文件,进而实施进一步的渗透攻击。
[0007] 针对现有的命令注入攻击,可以提供命令注入检测方案进行检测,主要包括黑盒 检测和白盒检测。
[0008] 黑盒检测:主要通过构造命令注入特征来全量扫描CGI,从匹配返回的结果的特 征来判断是否存在漏洞,目前黑盒检测的效果主要依赖于扫描器的扫描深度、参数遍历深 度和扫描速度。
[0009] 白盒检测:主要通过分析代码的逻辑来发现代码是否存在漏洞,目前白合检测的 效果主要依赖于代码审计软件的匹配模式和检测深度。
[0010] 由于黑盒扫描器无法遍历所有的输入点,而白盒检测的审计系统也无法遍历所有 的代码逻辑,因此,现有的用于监测命令注入攻击的方法存在漏报率高、误报率高的问题。 而且开发一款黑盒扫描器或白盒审计系统周期长,难度大,开发后的运营成本也较高。
[0011] 针对上述现有技术用于监测命令注入攻击的方法存在漏报率高、误报率高的问 题,目前尚未提出有效的解决方案。

【发明内容】

[0012] 本发明实施例提供了一种应用程序的漏洞检测方法和装置,以至少解决现有技术 用于监测命令注入攻击的方法存在漏报率高、误报率高的技术问题。
[0013] 根据本发明实施例的一个方面,提供了一种应用程序的漏洞检测方法,该方法包 括:记录应用程序运行过程中的执行命令;监控执行命令是否包含监控特征,其中,在执行 命令包含监控特征的情况下,回溯执行命令的父进程是否具有命令注入漏洞的属性;如果 执行命令的父进程具有命令注入漏洞的属性,则确定执行命令存在命令注入的漏洞。
[0014] 根据本发明实施例的另一方面,还提供了一种应用程序的漏洞检测装置,该装置 包括:记录模块,用于记录应用程序运行过程中的执行命令;监控模块,用于监控执行命令 是否包含监控特征;回溯模块,用于在执行命令包含监控特征的情况下,回溯执行命令的父 进程是否具有命令注入漏洞的属性;确定模块,用于如果执行命令的父进程具有命令注入 漏洞的属性,则确定执行命令存在命令注入的漏洞。
[0015] 在本发明实施例中,采用记录应用程序运行过程中的执行命令;监控执行命令是 否包含监控特征,其中,在执行命令包含监控特征的情况下,回溯执行命令的父进程是否具 有命令注入漏洞的属性;如果执行命令的父进程具有命令注入漏洞的属性,则确定执行命 令存在命令注入的漏洞的方式,通过检测当前运行的应用程序的执行命令是否包括监控特 征来确定该执行命令是否具有注入命令漏洞的潜在风险,由于在确定该执行命令具有注入 命令漏洞的潜在风险之后,进一步通过回溯该执行命令的父进程是否具有命令注入漏洞的 属性,从而确认当前执行命令存在命令注入的漏洞,因此,本申请提供了一种对具有命令注 入漏洞风险的执行命令进行进一步的命令注入验证的功能,即对该执行命令已经具有的属 性特征进行验证,从而确定该执行命令的最终性质。由于上述过程可以应用于应用程序运 行过程中的每个执行命令,因此,整个操作遍历到了应用程序中的所有执行命令,而且每个 执行命令所要验证的属性特征都是静态的,从而达到了大幅降低了监测命令注入攻击的漏 报和误报的情况的目的,进而解决了现有技术用于监测命令注入攻击的方法存在漏报率 高、误报率高的技术问题。本方案还可以改善现有的漏洞检测系统开发周期长,难度大,开 发后的运营成本也较高的问题。
【附图说明】
[0016] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0017] 图1是本发明实施例的一种运行应用程序的漏洞检测方法的计算机终端的硬件 结构框图;
[0018] 图2是根据本发明实施例一的应用程序的漏洞检测方法的流程图;
[0019] 图3是根据本发明实施例一的基于PHP执行web应用程序的漏洞检测方法的详细 流程图;
[0020] 图4是根据本法实施例二的应用程序的漏洞检测装置的结构示意图;
[0021] 图5是根据本法实施例二的一种可选的应用程序的漏洞检测装置的结构示意图;
[0022] 图6是根据本法实施例二的一种可选的应用程序的漏洞检测装置的结构示意图;
[0023] 图7是根据本法实施例二的一种可选的应用程序的漏洞检测装置的结构示意图;
[0024] 图8是根据本法实施例二的一种可选的应用程序的漏洞检测装置的结构示意图;
[0025] 图9是根据本法实施例二的一种可选的应用程序的漏洞检测装置的结构示意图; 以及
[0026] 图10是根据本发明实施例的一种计算机终端的结构框图。
【具体实施方式】
[0027] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0028] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产 品或设备固有的其它步骤或单元。
[0029] 实施例1
[0030] 根据本发明实施例,还提供了一种应用程序的漏洞检测方法的方法实施例,需要 说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中 执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺 序执行所示出或描述的步骤。
[0031] 本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运 算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种运行应用程序的 漏洞检测方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或 多个(图中仅示出一个)处理器102 (处理器102可以包括但不限于微处理器MCU或可编 程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模 块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置 的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者 具有与图1所示不同的配置。
[0032] 存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的应用 程序的漏洞检测方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的 软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的升级应用软件的 处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个 磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步 包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终 端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0033] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括 计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络 适配器(Network Interface Controller, NIC),其可通过基站与其他网络设备相连从而可 与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency, RF)模块, 其用于通过无线方式与互联网进行通讯。
[0034] 在上述运行环境下,本申请提供了如图2所示的应用程序的漏洞检测方法。图2 是根据本发明实施例一的应用程序的漏洞检测方法的流程图。
[0035] 如图2所示,该应用程序的漏洞检测方法可以如下实施步骤:
[0036] 步骤S20,记录应用程序运行过程中的执行命令。
[0037] 本申请上述步骤S20中的应用程序可以是通过网站web访问的web应用程序,例 如聊天室、留言板、论坛等用户只需要通过浏览器可以输入并操作数据的应用程序,不需要 开发独立的软件或插件。
[0038] 以PHP执行web应用程序为例,在PHP中,可以包含用于执行外部程序或函数的 命令执行函数,命令执行函数的主要作用是可以通过命令执行函数与Web应用程序进行交 互,即可以通过Web应用程序执行外部程序或
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1