互联网资产扫描发现与服务识别的方法和装置与流程

文档序号:16433868发布日期:2018-12-28 20:20阅读:2535来源:国知局
互联网资产扫描发现与服务识别的方法和装置与流程

本申请涉及计算机网络技术领域,特别地,涉及一种互联网资产扫描发现与服务识别的方法和装置。

背景技术

随着互联网技术的发展,部署在互联网上的业务越来越多,然而随着互联网资产的增多,企业所面临的安全风险将更多,如何加强互联网资产的风险管理将成为安全管理员的重大挑战,企业暴漏在互联网上的资产往往成为黑客攻击的首要对象。

网络资产扫描和服务识别是一种检测本地和远程计算机系统安全隐患的技术,它通过向本地或远程主机发送探测数据包,获取主机的响应,并对主机反馈的数据包进行分析,从而获得主机的端口开发情况以及主机提供的服务信息,帮助我们发现主机的弱点和漏洞,改进网络安全,防范黑客攻击。

现有网络资产扫描和服务识别技术主要利用开源的工具进行扫描,包含因特网控制消息协议(icmp,internetcontrolmessageprotocol)存活探测、端口存活探测、端口开放服务探测等,目的在于发现暴漏在互联网中的具体资产及该资产上暴漏的服务,从而及时进行加固、网络封锁等,确保资产及服务的安全性。但现有工具无法兼顾效率和准确性的提升,且开源扫描工具自身也存在安全漏洞,达不到高效、精准扫描的效果,用户体验效果差。



技术实现要素:

本申请提供一种互联网资产扫描发现与服务识别的方法和装置,用于解决现有技术不能高效、精准扫描发现互联网资产的问题。

本申请公开的一种互联网资产扫描发现与服务识别的方法,所述方法的执行主体为接入互联网的计算机,所述计算机设置有扫描池,所述扫描池中预置有待扫描资产的ip地址、ip地址段或多ip地址段,所述方法包括:确定互联网中空闲节点的ip地址;向所述扫描池中的ip地址对应的互联网资产发送经过伪装的扫描数据包,并在本地缓存该互联网资产的ip地址及其端口;所述扫描数据包的源地址为所述空闲节点的ip地址;然后向所述空闲节点发送会话确认数据包;以异步方式接收所述空闲节点返回的反馈数据包;所述扫描数据包、会话确认数据包和反馈数据包均包括所述互联网资产的端口和身份识别号;根据本地缓存确定该反馈数据包对应的互联网资产,并根据该反馈数据包包括的身份识别号判断该互联网资产的对应端口是否处于开放状态;若所述互联网资产的对应端口处于开放状态,则根据预设的端口与服务特征对照关系库识别所述互联网资产提供的服务。

优选的,还包括:重复执行上述资源扫描和服务识别步骤,直至完成对扫描池中所有ip地址对应互联网资源的扫描和服务识别。

优选的,所述向所述扫描池中的ip地址对应的互联网资产发送经过伪装的扫描数据包,具体为:以并发方式向多个互联网资产发送经过伪装的扫描数据包;和/或,所述根据预设的端口与服务特征对照关系库识别所述互联网资产提供的服务,具体为:将上述互联网资产的ip地址及其处于开放状态的端口保存到本地缓冲区中,以并发方式识别所述互联网资产提供的服务。

优选的,在以并发方式向多个互联网资产发送经过伪装的扫描数据包之前还包括:对扫描池中的ip地址段进行离散划分,避免在同一时间对相同ip地址段的资源进行扫描。

优选的,还包括:根据反馈数据包的接收情况控制扫描数据包的发送速率。

优选的,在根据预设的端口与服务特征对照关系库识别所述互联网资产提供的服务之前,还包括:建立端口黑名单,排除无需识别的互联网资源端口。

优选的,在上述根据端口与服务特征对照关系识别所述互联网资产提供的服务之后,还包括:对于不能根据端口与服务特征对照关系识别的服务,基于预设的基础服务特征库,对所述互联网资产反馈的服务签名信息进行模糊识别;探针组根据模糊识别内容调度相应的探针进行服务的精准识别;所述探针包括针对服务的连接指令发起、指令回显抓取以及对回显信息的正则匹配。

优选的,还包括:根据所述探针组精准识别出的服务与接口对应关系,对预设的端口与服务特征对照关系库进行自动更新。

本申请公开的一种互联网资产扫描发现与服务识别的装置,包括:扫描池,所述扫描池预置有待扫描资产的ip地址、ip地址段或多ip地址段;空闲节点确定模块,用于确定互联网中空闲节点的ip地址;第一扫描发起模块,用于向所述扫描池中的ip地址对应的互联网资产发送经过伪装的扫描数据包,并在本地缓存该互联网资产的ip地址及其端口;所述扫描数据包的源地址为所述空闲节点的ip地址;第二扫描发起模块,用于在所述第一扫描发起模块向互联网资产发送扫描数据包之后向所述空闲节点发送会话确认数据包;反馈包接收模块,用于以异步方式接收所述空闲节点返回的反馈数据包;所述扫描数据包、会话确认数据包和反馈数据包均包括互联网资产的端口和身份识别号;端口状态判断模块,用于根据本地缓存确定该反馈数据包对应的互联网资产,并根据该反馈数据包包括的身份识别号判断该互联网资产的对应端口是否处于开放状态;第一服务识别模块,用于当所述互联网资产的对应端口处于开放状态时,根据预设的端口与服务特征对照关系库识别所述互联网资产提供的服务。

优选的,所述装置还包括:循环控制模块,用于重复调度上述第一扫描发起模块、第二扫描发起模块、反馈包接收模块、端口状态判断模块和第一服务识别模块对扫描池中的ip地址对应的互联网资源进行扫描识别,直至完成对扫描池中所有ip地址对应互联网资源的扫描和服务识别。

优选的,所述第一扫描发起模块以如下方式发送经过伪装的扫描数据包:以并发方式向多个互联网资产发送经过伪装的扫描数据包;和/或,所述第一服务识别模块采用如下方式识别所述互联网资产提供的服务:将上述互联网资产的ip地址及其处于开放状态的端口保存到本地缓冲区中,以并发方式识别所述互联网资产提供的服务。

优选的,所述扫描池还用于在所述第一扫描发起模块以并发方式向多个互联网资产发送经过伪装的扫描数据包之前,对扫描池中的ip地址段进行离散划分,避免在同一时间对相同ip地址段的资源进行扫描;和/或,所述循环控制模块还用于根据反馈数据包的接收情况控制扫描数据包的发送速率。

优选的,所述装置还包括:黑名单建立模块,用于建立端口黑名单,排除无需识别的互联网资源端口;第二服务识别模块,用于以预设的基础服务特征库为基础,对所述互联网资产反馈的服务签名信息进行模糊识别;以及,根据模糊识别内容调度探针组中相应的探针进行服务的精准识别;所述探针包括针对服务的连接指令发起、指令回显抓取以及对回显信息的正则匹配。

优选的,所述装置还包括:特征库更新模块,用于根据所述探针组精准识别出的服务与接口对应关系,对预设的端口与服务特征对照关系库进行自动更新。

与现有技术相比,本申请具有以下优点:

本申请优选实施例通过伪装空闲节点向待扫描互联网资产发送扫描数据包的无状态连接形式,不占用tcp/ip协议栈资源、无需保持请求连接(syn)、响应(ack)和关闭连接(fin)等状态,还可避免其他应用背景流量带来的网络开销,可较大程度地提高互联网资产扫描效率。通过将互联网资源的ip地址及其端口信息进行缓存,并将必要信息存放在扫描数据包中的形式支持异步扫描并对其提供的服务进行识别(以异步方式接收到反馈数据包后可以根据包中存放的必要信息识别对应的互联网资源),在满足高扫描和识别效率的基础上还能够确保验证的准确性。

附图说明

附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本申请互联网资产扫描发现与服务识别的方法第一实施例的流程图;

图2为本申请互联网资产扫描发现与服务识别的方法第二实施例的流程图;

图3为本申请互联网资产扫描发现与服务识别的装置一实施例的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。

参照图1,示出了本申请互联网资产扫描发现与服务识别的方法第一实施例的流程,执行主体为接入互联网的计算机,所述计算机设置有扫描池,所述扫描池中预置有待扫描资产的ip地址、ip地址段或多ip地址段。本优选方法实施例包括以下步骤:

s103:确定互联网中空闲节点的ip地址。

s105:向所述扫描池中的ip地址对应的互联网资产发送经过伪装的扫描数据包,并在本地缓存该互联网资产的ip地址及其端口。

所述扫描数据包的源地址为所述空闲节点的ip地址。

s107:向所述空闲节点发送会话确认数据包。

s109:以异步方式接收所述空闲节点返回的反馈数据包。

所述扫描数据包、会话确认数据包和反馈数据包均包括所述互联网资产的端口和身份识别号。

s111:根据本地缓存确定该反馈数据包对应的互联网资产。

s113:根据该反馈数据包包括的身份识别号判断该互联网资产的对应端口是否处于开放状态;若是,转步骤s115;若否,结束流程。

s115:根据预设的端口与服务特征对照关系库识别所述互联网资产提供的服务。

参照图2,示出了本申请互联网资产扫描发现与服务识别的方法第二实施例的流程,执行主体为接入互联网的计算机,本方法实施例包括:

s101:将待扫描资产ip地址、ip地址段或多ip地址段写入扫描池。

s103:确定互联网中空闲节点的ip地址。

s105:向所述扫描池中的ip地址对应的互联网资产发送经过伪装的扫描数据包,并在本地缓存该互联网资产的ip地址及其端口。

其中,所述扫描数据包的源地址为所述空闲节点的ip地址;所述扫描数据包包括所述互联网资产的端口和身份识别号。

在具体实施时,为了进一步提高扫描效率,可以并发方式向多个互联网资产发送经过伪装的扫描数据包。例如,可以用单一线程来检测扫描计算机的cpu等资源利用率,如何根据资源利用率动态控制并发的扫描线程数,保障扫描机的最大利用率。

s107:然后向所述空闲节点发送会话确认数据包。

其中的会话确认数据包包括所述互联网资产的端口和身份识别号。需要说明是的,步骤s107需要在步骤s105之后进行。

s109:以异步方式接收所述空闲节点返回的反馈数据包。

上述反馈数据包均包括所述互联网资产的端口和身份识别号。

s111:根据本地缓存确定该反馈数据包对应的互联网资产。

s113:根据该反馈数据包包括的身份识别号判断所述互联网资产的对应端口是否处于开放状态,若是,转步骤s115;否则,转步骤s117。

s115:根据预设的端口与服务特征对照关系库识别所述互联网资产提供的服务;

上述端口与服务特征对照关系库可以在具体实施过程中预先设置,例如,文件传输协议(ftp,filetransferprotocol)服务的21端口、安全外壳协议(ssh,secureshell)服务的22端口、简单邮件传输协议(smtp,simplemailtransferprotocol)服务的25端口、远程终端协议(telnet)服务的23端口、邮局协议版本3(pop3,postofficeprotocolversion3)服务的110端口等。

在具体实施时,为了进一步提高服务识别效率,可以将上述互联网资产的ip及其处于开放状态的端口保存到本地缓冲区中,以并发方式识别所述互联网资产提供的服务。例如,可以计算机的cpu等资源利用率动态控制并发的服务识别线程数,以提高计算机利用率。

s117:判断扫描池中所有ip地址及其端口是否都扫描完毕,若是,结束流程;否则,转步骤s105进行新一轮ip地址及其不同端口的扫描和服务识别。

其中,为防止连续扫描而触发互联网资产本身的防御系统,对于ip地址段或多ip地址段的情况,在以并发方式向多个互联网资产发送经过伪装的扫描数据包(即步骤s105)之前还可以包括s104:对扫描池中的ip地址段进行离散划分,避免在同一时间对相同ip地址段的资源进行扫描。

另外,还可以根据反馈数据包的接收情况控制扫描数据包的发送速率,在保障扫描效率及识别准确率的同时,还能够控制好网络流量。

本方法实施例判断互联网资产的对应端口是否开放的原理是:互联网上的每个ip数据包都有一个身份识别号(ipid),一般操作系统只是简单的把该识别号递增,因此分析最后一次的ipid就可以计算已经向该互联网资源节点发送了多少数据包。下面进行举例说明。

假设互联网节点z是空闲的,与其他节点没有进行网络通信。向节点z发送一个会话确认数据包(syn/ack),由于节点z没有向本实施例的执行主体(假设为节点t)发送过请求连接数据包(syn),所以节点z接收到syn/ack包之后就返回给节点t一个重置连接数据包(rst),rst包里会附有ipid(假设是31311)。

当节点t制作的伪装成节点z的ip地址的syn数据包发送到要扫描的真实主机a的某个端口(如21号端口)时,主机z并不知道有人假装它发送了数据包,其ipid不会受到影响。之后节点t再向节点z发送一个syn/ack包,节点z会返回一个rst包,通过该rst包里的ipid即可判断主机a的21号端口的开放状态,其中:

当主机a的21端口处于打开状态时,主机a收到节点t的syn包,由于21端口开放,主机a要返回一个syn/ack包。此时,syn包里的来源ip是节点z的ip地址,于是主机a向节点z发送一个syn/ack包。节点z收到这个syn/ack包之后,由于其没有向主机z的21端口方式连接请求(即syn),于是发送一个rst包给主机a,主机a与节点z之间通讯结束。

此时,上述节点z主动发送rst包时,ipid自动加一(这个rst包里的ipid为31312)。因此,节点t后来向节点z发送syn/ack包时,节点z返回的rst包中的ipid变为31313。

当主机a的21端口关闭或被过滤时,主机a收到节点t的syn包,由于该端口没有开放或被过滤,所以就返回一个rst包,并把这个rst包发给了节点z。由于节点z没有发送过syn包,所以对收到的rst包直接丢弃。这个过程中z没有发送任何数据包,因此节点t后来向节点z发送syn/ack包时,节点z返回的rst包中的ipid变为31312。

在另一方法实施例中,为进一步提高服务识别效率,对于一些已知且不关心的端口,如驱动类端口(包括摄像头、打印机等)以及80、443等网络端口,没有必要浪费系统资源去扫描识别。为此,在步骤s115之前,还可以包括s114:建立端口黑名单,排除无需扫描和识别的互联网资源端口。

在还一方法实施例中,对于不能根据端口与服务特征对照关系识别的服务,还可以通过建立基础服务特征库以及探针组的方式进行进一步识别。具体的,在步骤s115之后,可以包括:

s116-1:对于不能根据端口与服务特征对照关系识别的服务,基于预设的基础服务特征库,对所述互联网资产反馈的服务签名信息进行模糊识别。

s116-2:探针组根据模糊识别内容调度相应的探针进行服务的精准识别;所述探针包括针对服务的连接指令发起、指令回显抓取以及对回显信息的正则匹配。

上述探针是一系列探测动作的集合,探针组是一系列探针的集合,可针对特定的模糊识别内容来调度指定的某类探针去进行指令发起、细节回显抓取及具体信息正则匹配。每个探针的回显均有其相应的唯一标识,探针组有异步监听的能力,在并发探针探测服务时,对于某一次返回,探针组可以调度其相应的探针进行下一步的处理,直到符合预先设定好策略的精准识别。

s116-3:根据所述探针组精准识别出的服务与接口对应关系,对预设的端口与服务特征对照关系库进行自动更新。

另外,还可以在扫描结束后将扫描信息记录到指定应用程序接口(api,applicationprogramminginterface)接收保存或直接推送到缓存服务器用来数据分析和记录,同时会定期对端口存活进行扫描和标识,供服务发现所用。

对于前述的各方法实施例,为了描述简单,故将其都表述为一系列的动作组合,但是本领域的技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为根据本申请,某些步骤可以采用其他顺序或同时执行;其次,本领域技术人员也应该知悉,上述方法实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

本申请还公开了一种在其上记录有用于执行上述方法的程序的存储介质。所述存储介质包括配置为以计算机(以计算机为例)可读的形式存储或传送信息的任何机制。例如,存储介质包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等。

参照图3,示出了本申请互联网资产扫描发现与服务识别的装置一实施例的结构框图,包括:

扫描池20,所述扫描池预置有待扫描资产ip地址、ip地址段或多ip地址段。

空闲节点确定模块21,用于确定互联网中空闲节点的ip地址。

第一扫描发起模块22,用于向所述扫描池中的ip地址对应的互联网资产发送经过伪装的扫描数据包(如tcp协议中的syn),并在本地缓存该互联网资产的ip地址及其端口;所述扫描数据包的源地址为所述空闲节点的ip地址。

在具体实施时,为了进一步提高扫描效率,第一扫描发起模块22可以并发方式向多个互联网资产发送经过伪装的扫描数据包。

第二扫描发起模块23,用于在所述第一扫描发起模块22向互联网资产发送扫描数据包之后向所述空闲节点发送会话确认数据包(如tcp协议中的syn/ack);

反馈包接收模块24,用于以异步方式接收所述空闲节点返回的反馈数据包(如tcp协议中的ack);所述扫描数据包、会话确认数据包和反馈数据包均包括互联网资产的端口和身份识别号;

端口状态判断模块25,用于根据本地缓存确定该反馈数据包对应的互联网资产,并根据该反馈数据包包括的身份识别号判断该互联网资产的对应端口是否处于开放状态;

第一服务识别模块26,用于当所述互联网资产的对应端口处于开放状态时,根据预设的端口与服务特征对照关系库识别出所述互联网资产提供的服务。

在具体实施时,为了进一步提高服务识别效率,可以将上述互联网资产的ip地址及其处于开放状态的端口保存到本地缓冲区中,以并发方式识别所述互联网资产提供的服务。

循环控制模块27,用于重复调度上述第一扫描发起模块22、第二扫描发起模块23、反馈包接收模块24、端口状态判断模块25、第一服务识别模块26等功能模块对扫描池20中的ip对应的互联网资源进行扫描识别,直至完成对扫描池中所有ip地址对应互联网资源的扫描和服务识别。

其中,为防止连续扫描而触发互联网资产本身的防御系统,对于ip地址段或多ip地址段的情况,扫描池20还用于对其中ip地址段进行离散划分,避免在同一时间对相同ip地址段的资源进行扫描。循环控制模块27还用于根据反馈数据包的接收情况控制扫描数据包的发送速率,在保障扫描效率及识别准确率的同时,还能够控制好网络流量

在另一装置实施例中,为进一步提高服务识别效率,还可以包括黑名单建立模块:用于建立端口黑名单,排除无需扫描和识别的互联网资源端口。

在还一装置实施例中,还设置有能够对不能根据端口与服务特征对照关系识别的服务进行进一步识别的第二服务识别模块:用于以预设的基础服务特征库为基础,对所述互联网资产反馈的服务签名信息进行模糊识别,以及根据模糊识别内容调度探针组中相应的探针进行服务的精准识别;所述探针包括针对服务的连接指令发起、指令回显抓取以及对回显信息的正则匹配。

另外,还可以包括特征库更新模块:用于根据所述探针组精准识别出的服务与接口对应关系,对预设的端口与服务特征对照关系库进行自动更新。

需要说明的是,上述装置实施例属于优选实施例,所涉及的单元和模块并不一定是本申请所必须的。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于本申请的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。以上所描述的装置及装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上对本申请所提供的一种互联网资产扫描发现与服务识别的方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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