首页> 中国专利> 主动发现分布式自建系统与扫描安全漏洞的方法

主动发现分布式自建系统与扫描安全漏洞的方法

摘要

本发明公开了一种主动发现分布式自建系统与扫描安全漏洞的方法,涉及信息安全技术领域。本发明可适用于大型企业内部对各下属单元部署的分布式自建系统的管理。本发明利用端口扫描技术、HTTP/HTTPS指纹识别技术、分布式消息队列技术、浏览器引擎渲染技术和多进程并发漏洞扫描技术实现对全网自建信息系统进行主动发现,并且进行高危漏洞扫描,有效地遏制住自建信息系统与高危漏洞的“井喷式”增长;用户可以分别从自建系统主动发现数据库和高危漏洞数据库导出自建应用系统扫描结果报告与高危漏洞报告,为公司信息化管理层对各级组织架构单位信息化建设情况与信息安全情况提供实时可靠的数据支撑。

著录项

说明书

技术领域

本发明涉及信息安全技术领域,更具体地说,涉及一种主动发现分布式自建系统与扫描安全漏洞的方法,尤其适用于公司组织架构较为复杂的大型机构。

背景技术

大型企业机构普遍存在多级组织架构单位,这些下属单位普遍存在采用各种经费渠道搭建的各类自建信息系统,以支撑本单位的生产、经营与办公等业务。而这类自建信息系统往往并未向总部部门申报,存在信息孤岛,数据难以打通,且信息安全漏洞较多,为企业信息安全埋下严重的隐患,为公司信息化和谐统一发展制造了障碍。

发明内容

为了克服上述现有技术中存在的缺陷和不足,本申请提供了一种主动发现分布式自建系统与扫描安全漏洞的方法,本发明的发明目的在于,解决大型企业内部各下属单元部署的分布式自建系统存在信息孤岛,与总部数据难以打通,且信息安全漏洞较多的问题。本发明提供的主动发现分布式自建系统与扫描安全漏洞的方法,可适用于大型企业内部对各下属单元部署的分布式自建系统的管理,可主动发现与扫描各下属单元部署的分布式自建系统的安全漏洞。本发明利用端口扫描技术、HTTP/HTTPS指纹识别技术、分布式消息队列技术、浏览器引擎渲染技术和多进程并发漏洞扫描技术实现对全网自建信息系统进行主动发现,并且进行高危漏洞扫描,有效地遏制住自建信息系统与高危漏洞的“井喷式”增长;用户可以分别从自建系统主动发现数据库和高危漏洞数据库导出自建应用系统扫描结果报告与高危漏洞报告,为公司信息化管理层对各级组织架构单位信息化建设情况与信息安全情况提供实时可靠的数据支撑。

为了解决上述现有技术中存在的问题,本发明是通过下述技术方案实现的:

主动发现分布式自建系统与扫描安全漏洞的方法,其特征在于,包括以下步骤:

步骤一,用户在定时任务模块中自定义时间周期,定时任务模块根据用户定义的时间周期,定时触发端口扫描模块进行扫描任务;

步骤二,端口扫描模块解析用户预定义的目标地址段,并将目标地址段解析成一个个目标地址,并向各目标地址的目标主机的一个端口发生请求连接的SYN包;端口扫描模块的扫描器扫描目标主机返回的数据包,并根据数据包类型确定该目标主机的端口是否开放,若开放则定义为存活主机,端口扫描模块将存活主机的信息发送给HTTP/HTTPS指纹识别模块;

步骤三,HTTP/HTTPS指纹识别模块从上游端口扫描模块接收到存活主机的信息后,针对存活主机进行指纹识别,并将识别结果插入到分布式缓存消息队列,以供后续模块调用;

步骤四,浏览器渲染引擎从分布式缓存消息队列取出已经识别到的具有HTTP/HTTPS协议的主机,并尝试访问主机并进行渲染,将渲染的结果保存至自建系统主动发现数据库;

步骤五,漏洞扫描器引擎从自建系统主动发现数据库取出已经识别到的自建系统,对该自建系统进行多进程扫描,并将扫描结果插入至高危漏洞数据库。

更进一步的,所述步骤二中,端口扫描模块向目标主机的一个端口发送请求连接的SYN包,扫描器在收到目标主机端口返回的SYN/ACK包后,向目标主机端口发送SRT包请求断开连接;

若端口扫描模块向目标主机的一个端口发送请求连接的SYN包,目标主机端口返回SRT包,则表示该目标主机端口关闭;若端口扫描模块向目标主机的一个端口发送请求连接的SYN包,目标主机端口返回SYN/ACK包,则表示该目标主机开放。

更进一步的,所述步骤三中,针对存活主机进行指纹识别中,识别的指纹包括头部域顺序指纹和/或状态码定义指纹。

更进一步的,所述步骤四中浏览器渲染引擎对具有HTTP/HTTPS协议的主机进行渲染的流程如下:

1)渲染引擎从分布式缓存消息队列中取出URL地址发送到渲染进程,渲染进程再进行处理,然后把网络连接地址变成一个资源的消息,通过IPC机制把消息发送到资源下载进程;这样就完成了把URL连接请求发送到下载进程的程过;

2)当消息分发到资源下载进程后,资源下载进程中的函数BeginRequest()把消息变成一个网络下载请求,创建一个下载的工作任务,完成设置定时器、启动下载任务等一系列操作;

3)当资源下载进程对资源下载请求进行处理后,调用网络库相关接口开始建立TCP连接,以及HTTP数据的上传和下载操作;

4)服务器响应Http请求后,返回给本地HTML/XHTML源数据,当获得相关数据后通过DOM把HTML文本解析成DOM树;当用户请求的网页里面包含JavaScript脚本,并随HTML文件一起传送到客户端浏览器上时,其中HTML文本中的JavaScript将由JavaScript核心引擎解析执行;

5)通过布局管理器Layout对DOM树中的可视元素排版,分配位置、高度、宽度,并由CSS规定输出的特性(比如颜色字体等),再由渲染器进行视觉化表达,最后存入自建系统主动发现数据库。

更进一步的,所述步骤五中,漏洞扫描器引擎的对自建系统进行多程扫描的具体流程如下:

首先通过根页面开始,分析其HTML源码,获取其中的URL及动态交互点等相关信息,再通过探索新发现的URL获取整个目标站点的目录结构及动态交互点,漏洞扫描器引擎再根据获取到的动态交互点,以漏洞特征库为参照,调取模拟攻击模块构造攻击测试请求(http或https),再通过客户端,发送给目标站点,扫描器再根据目标站点的回应信息体,将其与漏洞特征库中的特征码进行匹配,从而判断目标站点是否存在特定的漏洞。

更进一步的,模拟攻击模块负责向web站点发送HTTP或者HTTPS的URI请求,得到响应状态码和响应内容,再将其和攻击载荷记录对应的参数信息进行对比,若响应状态码和Status字段相等或者响应内容包含Keyword中所罗列的关键字,则可判定为攻击成功,存在漏洞,否则,攻击失败,不存在该漏洞。

最后用户可以分别从自建系统主动发现数据库和高危漏洞数据库导出自建应用系统扫描结果报告与高危漏洞报告,为公司信息化管理层对各级组织架构单位信息化建设情况与信息安全情况提供实时可靠的数据支撑。

与现有技术相比,本发明所带来的有益的技术效果表现在:

本发明提供的主动发现分布式自建系统与扫描安全漏洞的方法,可适用于大型企业内部对各下属单元部署的分布式自建系统的管理,可主动发现与扫描各下属单元部署的分布式自建系统的安全漏洞。本发明利用端口扫描技术、HTTP/HTTPS指纹识别技术、分布式消息队列技术、浏览器引擎渲染技术和多进程并发漏洞扫描技术实现对全网自建信息系统进行主动发现,并且进行高危漏洞扫描,有效地遏制住自建信息系统与高危漏洞的“井喷式”增长;用户可以分别从自建系统主动发现数据库和高危漏洞数据库导出自建应用系统扫描结果报告与高危漏洞报告,为公司信息化管理层对各级组织架构单位信息化建设情况与信息安全情况提供实时可靠的数据支撑。

附图说明

图1为本发明方法的流程示意图;

图2为本发明方法中TCP连接示意图。

具体实施方式

下面结合说明书附图,对本发明的技术方案作出进一步详细地阐述。

主动发现分布式自建系统与扫描安全漏洞的方法,其特征在于,包括以下步骤:

步骤一,用户在定时任务模块中自定义时间周期,定时任务模块根据用户定义的时间周期,定时触发端口扫描模块进行扫描任务;

步骤二,端口扫描模块解析用户预定义的目标地址段,并将目标地址段解析成一个个目标地址,并向各目标地址的目标主机的一个端口发生请求连接的SYN包;端口扫描模块的扫描器扫描目标主机返回的数据包,并根据数据包类型确定该目标主机的端口是否开放,若开放则定义为存活主机,端口扫描模块将存活主机的信息发送给HTTP/HTTPS指纹识别模块;

步骤三,HTTP/HTTPS指纹识别模块从上游端口扫描模块接收到存活主机的信息后,针对存活主机进行指纹识别,并将识别结果插入到分布式缓存消息队列,以供后续模块调用;

步骤四,浏览器渲染引擎从分布式缓存消息队列取出已经识别到的具有HTTP/HTTPS协议的主机,并尝试访问主机并进行渲染,将渲染的结果保存至自建系统主动发现数据库;

步骤五,漏洞扫描器引擎从自建系统主动发现数据库取出已经识别到的自建系统,对该自建系统进行多进程扫描,并将扫描结果插入至高危漏洞数据库。用户可以分别从自建系统主动发现数据库和高危漏洞数据库导出自建应用系统扫描结果报告与高危漏洞报告,为公司信息化管理层对各级组织架构单位信息化建设情况与信息安全情况提供实时可靠的数据支撑。

更进一步的,所述步骤二中,端口扫描模块会解析用户预定义的目标地址段,并将目标地址段解析成一个个目标地址,并向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,TCP协议三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包。

如图2为所示,端口开放:1、Client发送SYN 2、Server端发送SYN/ACK 3、Client发送RST断开(只需要前两步就可以判断端口开放);端口关闭:1、Client发送SYN 2、Server端回复RST(表示端口关闭)。即若端口扫描模块向目标主机的一个端口发送请求连接的SYN包,目标主机端口返回SRT包,则表示该目标主机端口关闭;若端口扫描模块向目标主机的一个端口发送请求连接的SYN包,目标主机端口返回SYN/ACK包,则表示该目标主机开放。

更进一步的,所述步骤三中,针对存活主机进行指纹识别中,识别的指纹包括头部域顺序指纹和/或状态码定义指纹。具体的,企业级信息系统大多是B/S架构系统,而B/S架构主要通过HTTP/HTTPS这两种Web应用协议承载,目前针对HTTP/HTTPS这两种Web应用协议指纹识别的研究主要通过发送大量精心构造的HTTP请求实现对Web服务器的准确识别, 但其识别速度较慢并且可能被网络安全设备当作恶意流量拦截;而主流工具主要利用Banner快速获取Web服务器信息, 然而由于Banner易被修改而导致识别结果不可靠。

为了保持各个 Web服务器软件之间的兼容性,Web服务器软件提供商必须遵守HTTP RFCs,但是 由于在 HTTP RFCs中 描 述 HTTP特 性 的 实 现 要 求 有 “must(必须)”,“should(应当)”和“may(可以)”,因而各个服务器软件提供商在实现各自系统的时候就会在符合协议说明文档的程度上有所不同,在具体功能和实现方法上有所差异,这就为Web服务器识别提供了可能。

为解决Web服务器指纹识别的研究与实际应用之间存在的上述问题, 并进一步提高Web服务器指纹识别的准确率和效率, 本发明以主流Web服务器, 即Apache、MicrosoftIIS和Nginx的所有版本为对象, 以其对HTTP协议实现为研究内容, 以黑盒测试为方法,通过向Web服务器发送以下6种HTTP请求, 并根据其响应报文的特征来选取Web服务器指纹。

·HEAD/HTTP/1.0

·PUT/HTTP/1.0

·DELETE/HTTP/1.0

·CONNECT/HTTP/1.0

·HEAD/JUNK/1.0 (异常协议类型)

·HEAD/HTTP/3.0 (异常协议版本)

通过对所有响应报文的研究分析, 选取以下2个能快速有效识别的Web服务器指纹。

1) 头部域顺序指纹,主流Web服务器类型可由下表中的4个头部域的相对顺序准确识别。例如, Apache和Nginx对HEAD/HTTP/1.0请求的响应报文如下:

2) 状态码定义指纹, 见下表。对于已知Web服务器类型,其版本可由特定HTTP请求的响应状态码定义准确识别。

最后将相关的识别结果插入到分布式缓存消息队列,以供后续模块调用。

在渲染引擎中,主要通过Web核心引擎和JavaScript核心引擎处理接收到的内容并且创建版面样式,显示文本、图片、表格单元和其他类型的内容。在渲染引擎中不同的目录里面定义了许多不同的数据结构实现URL请求的独立管理,一个Http请求在渲染引擎中的主要流程如下:

1) 渲染引擎从分布式缓存队列取出URL地址发送到渲染进程,渲染进程再进行处理,然后把网络连接地址变成一个资源的消息,通过IPC机制把消息发送到资源下载进程,这样就完成了把URL连接请求发送到下载进程的过程。

2)当消息分发到资源下载进程后,资源下载进程中的函数BeginRequest()把消息变成一个网络下载请求,创建一个下载的工作任务,完成设置定时器、启动下载任务等一系列操作。

3)当资源下载进程对资源下载请求进行处理后,调用网络库相关接口开始建立TCP连接,以及HTTP数据的上传和下载操作。

4)服务器响应Http请求后,返回给本地HTML/XHTML源数据,当获得相关数据后通过DOM把HTML文本解析成DOM树。当用户请求的网页里面包含JavaScript脚本,并随HTML文件一起传送到客户端浏览器上时,其中HTML文本中的JavaScript将由JavaScript核心引擎解析执行。

5)通过布局管理器Layout对DOM树中的可视元素排版,分配位置、高度、宽度,并由CSS规定输出的特性比如颜色字体等。再由渲染器进行视觉化表达,最后存入自建系统主动发现数据库。

漏洞扫描器引擎其工作原理如下:首先通过根页面开始,分析其HTML源码,获取其中的URL及动态交互点等相关信息,再通过探索新发现的URL获取整个目标站点的目录结构及动态交互点,漏洞扫描器引擎再根据获取到的动态交互点,以漏洞特征库为参照,调去模拟攻击模块构造攻击测试请求(http或https),再通过客户端,发送给目标站点,扫描器再根据目标站点的回应信息体,将其与漏洞特征库中的特征码进行匹配,从而判断目标站点是否存在特定的漏洞。

其中模拟攻击模块负责向web站点发送HTTP或者HTTPS的URI请求,得到响应状态码和响应内容,再将其和攻击载荷记录对应的参数信息进行对比,若响应状态码和Status字段相等或者响应内容包含Keyword中所罗列的关键字,则可判定为攻击成功,存在漏洞,否则,攻击失败,不存在该漏洞。

最后用户可以分别从自建系统主动发现数据库和高危漏洞数据库导出自建应用系统扫描结果报告与高危漏洞报告,为公司信息化管理层对各级组织架构单位信息化建设情况与信息安全情况提供实时可靠的数据支撑。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号