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

文档序号:9547089阅读:来源:国知局
成功则确定当前执行命令的扫描特征就是一个监控特征。从而进一 步执行验证主机的执行命令对应的父子进程关系来确定是否存在漏洞,达到了提高检测速 度的目的。
[0081] 第二种工作模式:被动触发模式。
[0082] 通过被动触发模式实现的监控执行命令是否包含监控特征的步骤S22,可以包括 如下实施方案:
[0083] 步骤S221b,采集网络漏洞扫描器扫描应用程序的扫描结果,扫描结果包括扫描应 用程序运行执行命令过程中的扫描特征。
[0084] 上述步骤S221b可选实现方式如下:采集命令记录系统记录所有命令集合,采集 的命令集合包括外部黑客使用私有的网络漏洞扫描器扫描应用程序的扫描结果。
[0085] 步骤S223b,读取黑名单命令集合,黑名单命令集合为预先保存的包含有监控特征 的命令。
[0086] 步骤S225b,将采集到的命令集合与黑名单命令集合中的监控特征进行匹配处理, 其中,如果采集到的命令集合与黑名单命令集合中的监控特征匹配成功,则确定执行命令 包含监控特征。
[0087] 本申请上述步骤S221b至步骤S225b实现了一种被动监控应用程序运行过程中的 执行命令进行监控的方案。同样在应用程序为网站web应用程序的情况下,被动监控过程 主要采集目前主流的扫描器扫描命令加入黑名单监控,即采集目前外部扫描器扫描本地计 算机终端10上的主机应用程度的结果,如果外部的扫描器的扫描到漏洞,则可以第一时间 监控发现并采集到扫描结果,进而将扫描结果中的扫描特征与黑名单命令集合中的监控特 征进行匹配,如果匹配成功则确定当前执行命令的扫描特征就是一个监控特征。
[0088] 下面就结合图3,以PHP执行web应用程序为例对上述图1和2所示的实施例进行 详细描述:
[0089] 步骤A,部署安装命令记录系统。该步骤将图1所示的计算机终端10作为主机,在 主机上安装可以记录php执行命令的命令记录系统,命令记录系统用户记录PHP执行web 应用程序过程中的所有执行命令或部分执行命令。
[0090] 步骤B,扫描器扫描web应用程序对应的执行命令。一种可选的方案中,可以使用 漏洞扫描器扫描网站上运行的web应用程序的执行命令,此时漏洞扫描器只需要发送扫描 请求数据包,无需等待漏洞扫描器返回匹配结果,该扫描请求数据包用于扫描web应用程 序获取扫描特征;另外一种可选方案中,可以监控外部漏洞扫描器扫描网站上运行的web 应用程序的扫描结果,从而监控扫描结果中是否包含扫描特征。
[0091] 步骤C,黑名单命令监控模块。此时通过将扫描器扫描到的扫描特征与黑名单命令 集合中的监控特征进行匹配,来确定当前web应用程序运行过程中的执行命令是否包含监 控特征,从而实现了监控PHP执行web应用程序的过程中有无黑名单命令执行,如果有则进 入步骤D,否则流程则结束。
[0092] 步骤D,父进程数据分析模块。该步骤实现的模块通过回溯步骤C中与黑名单命令 集合匹配的执行命令的父进程是否有命令分隔符和黑名单命令特征,并且回溯父父进程是 否为WEB服务器软件或php进程管理器等进程,来确定当前PHP执行web应用程序时的执 行命令为命令注入漏洞。其中,在上述执行命令的父进程包含有命令分隔符和黑名单命令 特征,并且回溯父父进程为WEB服务器软件或php进程管理器等进程,则进入步骤E,否则流 程结束。
[0093] 步骤E,命令注入漏洞报警模块。该步骤实现模块可以对步骤D发现的命令注入漏 洞发送给安全应急人员,并发出报警提示信息,提示需要修补漏洞。
[0094] 下面以一个PHP命令注入程序举例对本申请上述图3所示的示例进行详细说明, 假设一个漏洞php命令注入代码:system( "cd$_GET[ 'para' ] ");http访问传入get参 数值 para = /tmp ;cat/etc/passwd
[0095] 在系统还不知道上述命令为命令注入时,php执行WEB应用程序的过程中会执行 如下3条执行命令,分别包括:
[0096] 【1】系统执行sh命令,并传入字符串参数cd/tmp ;cat/etc/passwd。实际环境命 令格式为:sh-c cd/tmp ;cat/etc/passwd〇
[0097] 注:php提供的命令执行函数(system, exec等)都是以sh-c的形式解析命令。
[0098] 【2】系统执行目录跳转命令到/tmp目录。实际环境命令格式为:cd/tmp。
[0099] 【3】系统执行查看主机密码的命令。实际环境命令格式为:cat/etc/passwd。
[0100] 上述三条执行进程互为父子进程,因此,当扫描器扫描到cat/etc/passwd时,将 cat/etc/passwd作为扫描特征与黑名单命令集合中的监控特征进行匹配,如果匹配成功, 则回溯其父进程sh-c cd/tmp ;cat/etc/passwd,此时父进程以sh - c开头,包含了分隔符 ";"和监控特征cat/etc/passwd,由此可以确定当前执行的上述命令为命令注入的漏洞。 [0101] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明 所必须的。
[0102] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施 例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多 情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有 技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储 介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计 算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0103] 实施例2
[0104] 根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申 请上述实施例所提供的装置可以在计算机终端上运行。
[0105] 图4是根据本法实施例二的应用程序的漏洞检测装置的结构示意图。如图4所示, 该应用程序的漏洞检测装置可以包括:记录模块40、监控模块42、回溯模块44和确定模块 46。
[0106] 记录模块40,用于记录应用程序运行过程中的执行命令。
[0107] 监控模块42,用于监控执行命令是否包含监控特征。
[0108] 回溯模块44,用于在执行命令包含监控特征的情况下,回溯执行命令的父进程是 否具有命令注入漏洞的属性。
[0109] 确定模块46,用于如果执行命令的父进程具有命令注入漏洞的属性,则确定执行 命令存在命令注入的漏洞。
[0110] 本申请上述实施例二提供的方案,通过检测当前运行的应用程序的执行命令是否 包括监控特征来确定该执行命令是否具有注入命令漏洞的潜在风险,由于在确定该执行命 令具有注入命令漏洞的潜在风险之后,进一步通过回溯该执行命令的父进程是否具有命令 注入漏洞的属性,从而确认当前执行命令存在命令注入的漏洞,因此,本申请提供了一种对 具有命令注入漏洞风险的执行命令进行进一步的命令注入验证的功能,即对该执行命令已 经具有的属性特征进行验证,从而确定该执行命令的最终性质。由于上述过程可以应用于 应用程序运行过程中的每个执行命令,因此,整个操作遍历到了应用程序中的所有执行命 令,而且每个执行命令所要验证的属性特征都是静态的,从而达到了大幅降低了监测命令 注入攻击的漏报和误报的情况的目的,进而解决了现有技术用于监测命令注入攻击的方法 存在漏报率高、误报率高的技术问题。本方案还可以改善现有的漏洞检测系统开发周期长, 难度大,开发后的运营成本也较高的问题。
[0111] 此处需要说明的是,上述记录模块40、监控模块42、回溯模块44和确定模块46。 对应于实施例一中的步骤S20至步骤S26,四个模块与对应的步骤所实现的示例和应用场 景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分 可以运行在实施例一提供的计算机终端10中。
[0112] 优选地,如图5所示,在本申请提供的一种可选实施例中,回溯模块44和确定模块 46构成的处理模块包括:扫描模块441、第一判断模块443和子确定模块461。
[0113] 其中,扫描模块441,用于扫描包含有监控特征的执行命令的父进程;第一判断模 块443,用于判断执行命令的父进程是否具有多命令集合且包含监控特征的属性;子确定 模块461,用于如果父进程为多命令集合且包含监控特征,则确定执行命令存在命令注入的 漏洞。
[0114] 此处需要说明的是,上述扫描模块441、第一判断模块443和子确定模块461对应 于实施例一中的步骤S241至步骤S245,三个模块与对应的步骤所实现的示例和应用场景 相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可 以运行在实施例一提供的计算机终端10中。
[0115] 优选地,如图6所示,在本申请提供的另外一种可选实施例中,在通过子确定模块 461实现如果父进程为多命令集合且包含监控特征的功能之后,装置还可以包括:子处理 模块463。
[0116] 子处理模块463,用于判断执行命令的父进程的父进程是否为网站应用程序中运 行的进程,如果是,则确定执行命令存在命令注入的漏洞。
[0117] 此处需要说明的是,上述子处理模块463对应于实施例一中的进一步执行的步骤 S246,这个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公 开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机 终端10中。
[0118] 优选地,如图7所示,在本申请提供的优选实施例中,在通过第一判断模块443实 现判断执行命令的父进程是否具有多命令集合且包含监控特征的属性的功能之前,装置还 可以包括:检测模块442。
[0119] 检测模块442,用于在应用程序为网站应用软件程序的情况下,检测执行命令的父 进程是否包含网站解析命令所固有的头字段,其中,如果父进程包含网站解析命令所固有 的头字段,则执行第一判断模块443的功能。
[0120] 此处需要说明的是,上述子检测模块442对应于实施例一中的进一步执行的步骤 S2411,这个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公 开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机 终端10中。
[0121] 基于上述各个装置实施例,如图8所示,本申请可以提供一种可选的实施例,上述 监控模块42可以包括:触发模块42
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1