一种分布式的互联网重要地址空间检索系统的制作方法

文档序号:11479676阅读:274来源:国知局
一种分布式的互联网重要地址空间检索系统的制造方法与工艺

本发明属于互联网搜索技术领域,更具体地,涉及一种可以对在线主机设备和web组件进行综合检索的互联网重要地址空间检索系统。



背景技术:

随着互联网的快速发展,各种网络设备、服务器、操作系统、编程语言、开源组件、开发技术等构成了丰富多彩的网络世界。然而缤纷之下却暗藏着危机,漏洞的存在让互联网时刻处于不安全的状态。

许多互联网公司针对网络安全问题推出了一系列的安全产品,例如360的可信网站认证开放平台通过认证联盟、凭安信用、沃通等信用来源来对网站进行安全身份认证,有效打击危险网站,为用户打造安全的上网环境。国舜科技公司推出的一款网页防篡改防护系统unisguard,采用动静结合的防护方式同时对网页文件以及web访问交互数据进行监控,有效防止恶意篡改和攻击。安全宝曾是创新工场中唯一一个在安全领域投资的项目,如今已被百度收购,也是一款网站安全防护软件。这些产品都是针对单一的网站或网页出现的安全问题来实施安全防护措施,然而目前的大多数漏洞攻击都是基于网络设备本身的缺陷或者网站组件(操作系统、开放服务、web容器、开源web组件、web应用等)的缺陷进行的。一旦不法分子开发出针对某个组件或者主机设备的漏洞利用代码,就可以使一批网站或者设备沦陷。

为了防范针对网站组件和主机设备的漏洞攻击,维护互联网的安全,需要对一批相关网站所使用的组件和在线主机设备的指纹信息进行详细的识别和记录,以便在它们暴露出安全漏洞时,及时得到它们的详细信息,评估漏洞对它们的影响,进而分析出漏洞影响的网站列表和主机设备列表,并通知仍在使用这些组件或主机设备的网站管理员进行组件更新或主机设备升级等安全加固措施,因此网络空间搜索引擎应运而生。

目前已有的网络空间搜索引擎,包括国外的shodan,在全球查询ip地址,在若干常见端口查找和保存系统旗标信息(banner)。用户可以在这些banner中查询关键词,通过元数据(端口、ip、域名等)进行过滤。其工作原理是对各类设备的端口产生的banner进行审计而产生搜索结果,侧重于网络设备。国内的zoomeye由互联网安全厂商知道创宇公司创建,名字译为“钟馗之眼”,是一个针对网络空间中web服务组件而制作的搜索引擎,它侧重于发现网络或网站的组成部分,即web服务组件。

针对主机设备的指纹采集,主要目的是获取全网ip以及网络设备信息,比较常用的是一款模块化的扫描全网ipv4地址的工具——zmap,由美国密歇根大学研究者开发。在第22届usenix安全研讨会上,以超过nmap1300倍的扫描速度声名鹊起。它能够通过一台机器在45分钟内扫描互联网上所有的ipv4地址空间,其扫描的结果达到了98%的覆盖率。

现有的网络空间搜索引擎系统大多存在以下几点问题:

(1)有的系统偏重于主机层面的资产发现,而有些则偏重于web层面的资产发现,它们均没有综合考虑主机设备和web组件,并且对标识web组件的海量数据没有进行合理的整合和优化。

(2)在对关键字进行检索的时候,现有搜索引擎系统返回数据的本质就是其内部积累的数据以及使用web指纹识别程序识别出来的数据,但一个识别程序只能针对一个组件,缺乏针对指纹库内组件的合理分类标准。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明的目的在于提供了一种分布式的互联网重要地址空间检索系统,由此解决现有的网络空间搜索引擎系统没有综合考虑主机设备和web组件,没有对标识web组件的海量数据进行合理的整合和优化以及缺乏针对指纹库内组件的合理分类标准的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种分布式的互联网重要地址空间检索系统,包括:系统管理模块、网站信息收集模块、数据库模块、检索和统计模块、webui模块;

所述系统管理模块,用于导入待扫描网站列表,管理网站组件指纹,提交即时扫描任务并查看任务进度,收集系统中各部分的运行状态并分别对各部分的运行状态进行管理和控制,其中,所述待扫描网站列表中包括需要周期性扫描的网站信息;

所述网站信息收集模块,用于针对所述待扫描网站列表中的域名或ip地址进行web页面爬取、web组件识别、网站服务器主机扫描、端口探测;

所述数据库模块,用于保存所述待扫描网站列表、所述网站组件指纹、扫描策略以及扫描结果;

所述检索和统计模块,用于对保存在所述数据库模块中的扫描结果进行关键字检索,并对检索结果进行统计分析;

所述webui模块,用于提供web界面,采用b/s模式完成用户和系统的交互,提供系统管理、网站组件指纹更新、即时扫描任务提交、扫描结果查询与统计、信息导入导出功能。

优选地,所述数据库模块包括:元信息数据库模块、组件指纹数据库模块、扫描结果数据库模块;

所述元信息数据库模块,用于管理所述待扫描网站列表,其中,所述待扫描网站列表包括需要周期性扫描的网站的信息;

所述组件指纹数据库模块,用于存储所述网站组件指纹,其中,所述网站组件指纹包含组件名称、组件特征集合和组件识别规则;

所述扫描结果数据库模块,用于存储所述网站信息收集模块收集到的扫描结果,其中,所述扫描结果包括周期性扫描作业的执行结果和即时扫描任务的执行结果。

优选地,所述系统管理模块包括:网站元信息导入模块、系统运行状态管理模块、即时任务管理模块、指纹库管理模块;

所述网站元信息导入模块,用于导入所述待扫描网站列表,其中,所述待扫描网站列表中包括需要周期性扫描的网站的信息;

所述系统运行状态管理模块,用于解析系统的配置,启动或停止系统中其它模块的运行,获取其它各模块的运行状态信息,并对其它各模块的运行状态进行调整和控制;

所述即时任务管理模块,用于管理和调度即时扫描任务的执行,并跟踪即时扫描任务执行的状态进度;

所述指纹库管理模块,用于管理所述组件指纹数据库模块中的网站组件指纹。

优选地,所述网站信息收集模块包括:任务调度模块、消息队列模块、数据爬取模块、分析识别模块;

所述任务调度模块,用于解析所述待扫描网站列表中的周期性扫描任务以及用户提交的即时扫描任务,利用所述组件指纹数据库解析出网站组件指纹识别过程中需要从服务器下载的信息,并调度所述数据爬取模块从网站下载所述信息;

所述消息队列模块,用于供所述任务调度模块向所述数据爬取模块以消息队列的方式传递下载任务;

所述数据爬取模块,用于将爬取的信息通过消息队列传递给所述分析识别模块;

所述分析识别模块,用于根据所述组件指纹数据库模块中的组件特征集合以及组件识别规则,对所述数据爬取模块爬取的信息进行分析整理,将得到的网站内容信息、网站组件信息以及用以识别出网站组件的特征数据存入所述扫描结果数据库模块。

优选地,所述检索和统计模块包括:关键字检索模块和统计报表生成模块;

所述关键字检索模块,用于提供针对保存在所述扫描结果数据库模块中的扫描结果的关键字检索功能;

所述统计报表生成模块,用于为检索得到的结果生成预设格式的统计报表,所述统计报表用于扫描结果信息导出。

优选地,所述webui模块包括:webui查询模块和webui管理模块;

所述webui查询模块,用于输出结果查询分析界面,并将用户输入的查询请求发送给所述检索和统计模块;

所述webui管理模块,用于提供站点元信息管理、系统状态管理、指纹库管理、即时任务管理,其中,所述站点元信息管理用于提供待扫描网站列表以及网站附加信息的输入、查询和导出功能,所述系统状态管理用于展示系统中其它模块的运行状态信息,并输出控制界面,以便于用户控制系统中其它模块的运行,所述指纹库管理用于提供网站组件指纹的管理界面,所述即时任务管理用于提供提交和管理即时任务的功能。

优选地,所述数据爬取模块,具体用于通过定制爬虫从用户提交的url列表下载对应的web内容,其中,所述下载过程为:开始抓取特定站点内容时,种子url为该特定站点的首页地址,将指向该特定站点的url加入下载队列中,使内容抓取只针对特定站点进行,有效限制爬取范围。

优选地,所述分析识别模块中的分析识别过程包含被动检测和主动分析两个阶段,所述分析识别模块,具体用于首先从所述组件指纹数据库模块中读取组件特征集合,然后确定从目标站点下载内容的目标url和发送的探测ip报文,接着向目标url发送get请求或向网站主机发送探测ip报文,获得从网站主机返回的数据,通过分析http响应或者回送ip报文判断是否检测出组件的各个特征,最后根据检测出的特征集合和匹配规则判断目标站点是否使用了该网站指纹组件。

优选地,所述系统采用分布式部署,所述系统的各模块部署在同一个局域网的多台服务器上,部署在不同服务器上的模块之间通过远程过程调用相互通信,且在集群中至少负责所述网站信息收集模块的服务器能够访问互联网。

总体而言,本发明方法与现有技术方案相比,能够取得下列有益效果:

(1)本发明是一种集web组件扫描、链接分析、主机扫描、地址空间搜索等功能于一体的分布式的互联网重要地址空间检索系统。

(2)能够准确及时地发现互联网上的安全漏洞,推动监管部门在漏洞出来的第一时间尽快解决,促进安全领域的进展。

(3)本发明的整个系统分布式架构于一个集群之上,集群计算节点能够根据扫描任务的多少进行动态增减,系统提供完善的web界面对所有的功能部件进行动态管理和使用。

(4)可以支持检测多种国内网站常用组件,并且具有检测准确率高的严格分类式插件—web组件检测功能。

(5)支持快速扫描网站所有web服务器的操作系统、开放端口、端口协议、服务软件等信息,并根据网站ip地址准确定位服务器地理位置的主机扫描功能。

(6)支持根据用户输入的检索条件,列出所有满足条件的网站的详细信息,并按照网站所属机构的等级进行排序的地址空间搜索功能。

(7)同时具备web组件检测和主机扫描功能,并采用分布式部署和前后端分离的架构,还增加了集群管理模块,方便用户对整个系统进行实时监控和管理。

(8)对web组件进行了严格分类,并且能够达到自动化更新。同时根据用户需求对需要检测的网站,以及指纹库中的每个web组件检测差距划定了等级,并根据网站等级和插件等级确定了系统在检测网站时需要使用的插件集合,达到了重要网站详细检测,不重要网站粗略检测的目的,合理配置了系统的计算资源。

(9)本发明是一个采用主从架构模式的分布式系统,能够并行地执行内容爬取、web组件被动检测、web组件主动探测和主机扫描等任务,具有稳定高效、可定制性高的优点。

附图说明

图1为本发明实施例公开的一种分布式的互联网重要地址空间检索系统的结构示意图;

图2是本发明实施例公开的一种系统管理模块的结构示意图;

图3是本发明实施例公开的一种网站信息收集模块的结构示意图;

图4是本发明实施例公开的一种组件指纹数据库模块的结构示意图;

图5是本发明实施例公开的一种检索和统计模块的结构示意图;

图6是本发明实施例公开的一种系统整体部署结构图;

图7是本发明实施例公开的一种分布式扫描子系统整体结构图;

图8是本发明实施例公开的一种针对特定相关站点的内容抓取结构示意图;

图9是本发明实施例公开的一种web组件层次结构;

图10是本发明实施例公开的一种web组件指纹组织形式;

图11是本发明实施例公开的一种web组件检测流程图;

图12是本发明实施例公开的一种webui模块与其他模块交互示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明包括系统管理模块100、网站信息收集模块200、元信息数据库模块300、组件指纹数据库模块400、扫描结果数据库模块500、检索和统计模块600、webui查询模块700和webui管理模块800。

系统管理模块100用于导入需要索引的网站信息,管理组件识别指纹库,提交即时扫描任务并查看任务进度,收集系统中各个部分的运行状态并分别对其进行管理和控制。

其中,系统管理模块100又分为网站元信息导入模块110、系统运行状态管理模块120、即时任务管理模块130、指纹库管理模块140四个子模块;其中网站元信息导入模块110用于导入需要定期扫描的网站的域名或ip地址、服务器所在位置、网站类型、所属机构等信息,系统后续的周期性扫描将针对该模块导入的网站列表进行。系统运行状态管理模块120用于解析系统的配置,启动和停止系统中的其他模块的运行,获取其他各个模块的运行状态信息,并对其他模块的运行状态进行调整和控制。即时任务管理模块130用于管理和调度及时扫描任务的执行,并跟踪任务执行的状态进度。指纹库管理模块140用于管理指纹数据库中的网站组件指纹。系统管理模块100的内部结构图如图2所示。

网站信息收集模块200是系统的后端,用于处理来自系统管理模块提交的扫描任务,存储来自元信息数据库模块300的域名或ip地址,并负责将扫描结果发送给扫描数据库模块500。

其中,网站信息收集模块200又分为任务调度模块210、消息队列模块220、数据爬取模块230、分析识别模块240四个子模块。其中任务调度模块210用于解析周期性扫描任务以及用户提交的及时扫描任务,利用组件指纹数据库解析出网站组件识别过程中需要从服务器下载的信息,并调度数据爬取模块从一定的网站下载相关数据。消息队列模块220供任务调度模块210向数据爬取模块230以消息队列的方式传递下载任务,并跟踪各个扫描识别模块的运行状态。同时,数据爬取模块230爬取的信息也通过消息队列传递给分析识别模块240。分析识别模块240是整个系统的核心,该模块根据指纹库中的组件指纹特征以及组件识别规则,对数据爬取模块230获得的数据进行分析整理。最终将得出的网站内容信息和网站组件信息以及用以识别出该组件的特征数据存入扫描结果数据库模块500中,供检索统计模块600检索和统计。网站信息收集模块200的内部结构图如图3所示。

元信息数据库模块300用于管理需要周期性扫描的网站的域名、扫描优先级、网站类型、地理位置、所属机构等信息,用户可以根据这些信息对扫描结果进行查询和统计。当有扫描任务时,网站信息收集模块200会从元信息数据库模块300提取域名或ip地址。

组件指纹数据库模块400用于存储用户输入的扫描数据项、组件指纹特征、组件识别规则等信息,供指纹管理模块410和扫描识别模块420使用。当有扫描任务时,网站信息收集模块200会从组件指纹数据库模块400提取网站组件指纹。组件指纹数据库模块400的内部结构图如图4所示。

扫描结果数据库模块500用于存储网站信息收集模块200收集到的扫描结果,包括周期性扫描作业的执行结果和即时扫描任务的执行结果,供检索和统计模块600读取和使用。

检索和统计模块600用于对保存在数据库中的扫描结果进行关键字检索,并对检索结果进行统计分析。该模块包含关键字检索模块610和统计报表生成模块620两个部分。其中关键字检索模块610用于提供针对扫描结果的关键字检索功能,用于检索的关键字信息包括:ip地址、域名、协议信息、网页中特定内容、服务器、所属机构、网站组件等。统计报表生成模块620用于为检索得到的结果生成特定格式的统计报表,方便用于扫描结果信息导出。检索和统计模块600的内部结构图如图5所示

webui查询模块700主要是用于结果查询分析,提供结果查询分析界面为用户提供扫描结果展示功能,用户可以在界面上通过关键字查询扫描结果,并可以按照特定的格式生成结果报表并导出。当生成用户查询请求时,负责发送给检索和统计模块600。

webui管理模块800提供站点元信息管理、系统状态管理、指纹库管理、即时任务管理共4个功能。其中站点元信息管理用于向用户提供待扫描站点列表以及站点附加信息的输入、查询和导出功能。系统状态管理向用户展示系统中其他模块的运行状态信息,并提供控制界面,方便用户控制系统中的其他模块的运行。指纹库管理为用户提供指纹数据库的管理界面,管理诸如web组件类型,检测过程中需要获取的数据项、组件指纹信息、组件识别规则等信息。即时任务管理为用户提供提交和管理即时任务的功能。用户将任务提交后可以查看任务的运行状态,并可以控制任务的执行。

本系统拟采用分布式部署,整个系统的各个模块部署在同一个局域网的多台计算机上,部署在不同主机上的模块之间通过远程过程调用相互通信。本方案视模块之间耦合的紧密程度和系统扩展性需求来决定各个主机上模块的部署。由于系统中包含了网站信息收集模块200,所以要求整个集群中至少负责网站信息扫描的服务器能够访问互联网。

系统的整体部署结构图如图6所示。其中系统管理服务器上部署系统管理模块100的相关功能,处理系统的用户输入,并对其他各个模块的运行状态进行监控可管理。web前端服务器上部署webui查询模块700和webui管理模块800的相关功能,以web页面的方式向用户提供信息录入、扫描结果查询、作业提交和状态管理的功能。为了减少数据网络传输,检索和统计模块600、元信息数据库模块300、组件指纹数据库模块400、扫描结果数据库模500部署在存储和检索服务器组中,服务器组中的各台服务器都部署有这四个模块,组内服务器之间协作完成数据的存储和检索功能。为了提高系统的可扩展性,将网站信息收集模块200分为4个部分来部署,该模块是本发明的分布式扫描子系统,其结构如图7所示。扫描调度器上部署任务调度模块210的相关功能,该模块通过查询组件指纹数据库模块400,将扫描作业中的网站列表转化为需要从网站采集的数据列表,并将调度信息和待采集的数据一起写入消息队列服务器中。通过消息队列模块220在扫描调度服务器与数据爬取服务器组,数据爬取服务器组与分析识别服务器组中传递数据和信息。数据爬取服务器组上部署数据爬取模块230的相关功能,组内爬取服务器从消息队列服务器获得需要爬取的任务列表,并从指定网站爬取数据。其中,每台主机只负责爬取特定类型的数据,即只从消息队列中取出和自己能够爬取的内容相关的爬取任务并将爬取的数据与分析任务类型存入消息队列服务器中。此外,组内各个主机之间功能上相互独立,可根据系统数据爬取的任务负载增添和减少服务器数量。分析识别服务器组上部署分析识别模块240的相关功能,该服务器从消息队列中取出爬取模块下载的数据和分析任务信息,完成内容分析和组件识别功能,并将得出的结果存入数据库中。分析识别任务属于计算类型任务,对组内各台服务器的性能有较高的要求,并且它们之间功能上相互独立,可根据系统分析任务负载来增加和减少服务器数量。

本发明的系统后台实现分布式的web内容抓取、web组件识别和主机扫描功能,整个后台系统的流程包括:

(1)web内容抓取阶段,网站信息收集模块200中的数据爬取模块230接收来自系统管理模块100的扫描任务,根据用户提交的统一资源定位符(uniformresourcelocator,url)列表进行web内容抓取。本发明采用的是定制“爬虫”,其特点是将链接分成了3类,包括不相关站点超链接、相关站点超链接和本站链接。其中相关站点的超链接不跟踪,相关站点的超链接采用特殊方式处理,本站链接则有爬取深度的限制。同时,对链接采取多线程和用户级线程进行处理。

(1.1)单独下载某些指定url对应的web内容,供web组件识别所用,抓取指定的url下的内容无需用到调度队列,直接通过超文本传输协议(hypertexttransferprotocol,http)协议下载对应的内容即可。

(1.2)迭代抓取整个网站的超文本内容,提取其中的邮箱地址和链接。抓取一个网站的所有超文本内容的过程和传统的“爬虫”行为类似,都是以某些url开始对超文本内容进行迭代抓取。但与传统“爬虫”不同的是,在开始抓取特定站点内容时,种子url为站点的首页地址,只将指向本站点的url加入下载队列中,这样可以使内容抓取只针对一个网站进行。针对特定相关站点的内容抓取其结构图如图8所示,其中超文本分析器使用超级文本标记语言(hypertextmarkuplanguage,html)文档解析工具从页面中提取超链接和指定的文本内容。

(2)第二阶段是web组件识别,网站信息收集模块200中的分析识别模块240主要用于web组件检测。组件指纹在指纹库中按照严格的分类标准划分,由上到下依次分为web前端框架、web应用、web开发框架、web服务器端语言、web容器、数据库和操作系统等,层次结构如图9所示。组件指纹在指纹库中包含组件名称、组件特征集合和匹配规则,其组织形式如图10所示。web组件识别过程又分为被动检测和主动分析两个子阶段。

(2.1)被动检测阶段根据已下载的web内容的http响应头、响应主体(html文本、图片等)推断网站采用的web组件。

(2.2)主动分析阶段制造特定的url与web服务器交互,通过对web服务器返回的信息来推断其使用的web组件。

web组件识别阶段采用的分析识别模块240首先从组件指纹数据库模块400中读取该组件的组件特征结合。然后根据特征采集方法确定从目标站点下载内容的url和发送的探测网络之间互连的协议(internetprotocol,ip)报文。接着向特定url发送get请求或向网站主机发送探测报文,获得从主机返回的数据。通过分析http响应或者回送ip报文判断是否检测出组件的各个特征。最后根据检测出特征集合和匹配规则判断目标网站是否使用了该组件。具体的web组件检测流程如图11所示。

(3)网站信息收集模块200中的分析识别模块240还用于主机端口协议识别,属于主机扫描阶段,该阶段用于检测目标站点的存活性,收集操作系统版本、开放软件服务、服务器端口号和软件版本等信息,批量传递ip地址,将结果格式化输出到扫描结果数据库模块500。

本发明的系统前端包含webui查询模块700和webui管理模块800,这两个模块与其他模块的交互如图12所示,首先用户向webui查询模块700发送查询请求,接着webui管理模块800向系统管理模块100、网站信息收集模块200、元信息数据库模块300、组件指纹数据库模块400、扫描结果数据库模块500发起远程过程调用,待任务执行完成将结果存储在扫描结果数据库模块500中。检索和统计模块600从扫描结果数据库模块500中取扫描结果进行整理和分析,当用户通过webui查询模块700提交查询请求时,检索和统计模块600将检索和统计结果发送给webui查询模块700,最终返回给用户。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1