一种识别蜜罐的方法、系统及终端设备与流程

文档序号:15232952发布日期:2018-08-21 19:53阅读:355来源:国知局

本发明属于通信技术领域,尤其涉及一种识别蜜罐的方法、系统及终端设备。



背景技术:

蜜罐是一种主动防御的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,并通过技术和管理手段来增强实际系统的安全防护能力。

现有技术中,具备仿真模拟工业控制软硬件特征的蜜罐被广泛部署于互联网上,当需要与工业控制系统进行交互时,无法识别工业控制系统是真实的工业控制系统还是蜜罐。



技术实现要素:

有鉴于此,本发明实施例提供了一种识别蜜罐的方法、系统及终端设备,以解决现有技术中无法识别需要进行交互的工业控制系统是真实的工业控制系统还是蜜罐的问题。

本发明实施例的第一方面提供了一种识别蜜罐的方法,应用于终端设备,所述识别蜜罐的方法包括:

生成第一数据包,所述第一数据包包括目标终端地址、第一功能码和第一协议标识符。

发送所述第一数据包至目标终端。

若在第一预设时间内未接收到所述目标终端反馈的第一响应数据包,则确定所述目标终端为蜜罐。

本发明实施例的第二方面提供了一种识别蜜罐的系统,应用于终端设备,所述识别蜜罐的系统包括:

第一数据包生成模块,用于生成第一数据包,所述第一数据包包括目标终端地址、第一功能码和第一协议标识符。

数据包发送模块,用于发送所述第一数据包至目标终端。

蜜罐确认模块,用于若在第一预设时间内未接收到所述目标终端反馈的第一响应数据包,则确定所述目标终端为蜜罐。

本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。

本发明实施例与现有技术相比存在的有益效果是:本实施例通过生成第一数据包,第一数据包包括目标终端地址、第一功能码和第一协议标识符,发送第一数据包至目标终端,若在第一预设时间内未接收到目标终端反馈的第一响应数据包,则确定目标终端为蜜罐。本实施例通过根据是否在第一预设时间内接收到目标终端反馈的第一响应数据包,确定出目标终端是否为蜜罐,从而有效识别出目标终端是真实的工业控制系统还是蜜罐。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的识别蜜罐的方法的实现流程示意图;

图2是本发明一个实施例提供的识别蜜罐的方法的实现流程示意图;

图3是本发明一个实施例提供的识别蜜罐的系统的结构示意图;

图4是本发明一个实施例提供的识别蜜罐的系统的结构示意图;

图5是本发明一个实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例1:

图1示出了本发明的一个实施例提供的识别蜜罐的方法的实现流程,本发明实施例的流程执行主体可以是终端设备,其过程详述如下:

在步骤s101中,生成第一数据包,第一数据包包括目标终端地址、第一功能码和第一协议标识符。

在本实施例中,根据工业控制通信协议定义的数据格式生成第一数据包,工业控制通信协议包括modbus协议(modbusprotocol)、dnp3协议(distributednetworkprotocol,分布式网络规约)、mms协议(microsoftmediaserverprotocol,mms)、bacent协议和ethernet/ip协议。

在本实施例中,第一数据包还包括源地址,源地址为终端设备的ip地址(internetprotocoladdress,互联网协议地址),目标终端可以根据源地址将数据发送至终端设备。

在本实施例中,第一功能码用于告知目标终端需要执行的操作以及需要反馈的信息,第一协议标识符用于告知目标终端当前第一数据包采用的协议名称,目标终端地址为目标终端的ip地址。

在步骤s102中,发送第一数据包至目标终端。

在本实施例中,根据目标终端地址将第一数据包发送至目标终端,从而使目标终端能够接收到第一数据包,避免出现数据包丢失的情况。

在步骤s103中,若在第一预设时间内未接收到目标终端反馈的第一响应数据包,则确定目标终端为蜜罐。

在一个实施例中,若在第一预设时间内接收到的第一响应数据包,判断第一响应数据包是否符合第一预设响应结果,若第一响应数据包不符合第一预设响应结果,则确定目标终端为蜜罐,若第一响应数据包符合第一预设响应结果,则确定目标终端为真实的工业控制系统。

在一个实施例中,第一数据包用于验证目标终端是否为高交互型蜜罐,第一数据包为涉及到业务逻辑层的查询请求,包括请求读取目标终端当前运行状态和读取目标终端运行日志,高交互型蜜罐并不能响应一些涉及到业务逻辑层的查询请求,因此可以根据目标终端是否能正确响应第一数据包而判断出目标终端是否为高交互型蜜罐。

在本实施例中,当发送第一数据包至目标终端后,若目标终端是真实的工业控制系统,则目标终端可以解析第一数据包,获得查询请求,根据查询请求以及第一数据包中的源地址生成第一响应数据包,将第一响应数据包发送至源地址对应的终端设备,由于第一响应数据包中包含源地址,因此终端设备能够接收到第一响应数据包。

在本实施例中,若目标终端是蜜罐,当蜜罐根据第一数据包获得查询请求后,并不能正确解析查询请求,从而无法生成第一响应数据包,即使生成第一响应数据包,也并不符合第一预设响应结果,从而使终端设备可以确定出目标终端是蜜罐。

在本实施例中,根据是否在第一预设时间内接收到目标终端反馈的第一响应数据包,确定出目标终端是否为蜜罐,从而有效识别出目标终端是真实的工业控制系统还是蜜罐。

如图2所示,在本发明的一个实施例中,图2所对应的实施例中的识别蜜罐的方法的还包括:

在步骤s201中,获取端口信息,端口信息为目标终端开放的端口号。

在本实施例中,通过终端设备内置的端口扫描工具扫描目标终端开放的端口号。

在本发明一个实施例中,在步骤s201之前包括:

1)获取目标终端的网络地址。

2)根据网络地址判断目标终端的互联网服务提供商是否为预设云服务提供商。

3)若互联网服务提供商不是预设云服务提供商,则判断目标终端的用户类型是否为预设数据中心类型。

4)若用户类型不为预设数据中心类型,则获取端口信息。

在本发明一个实施例中,将网络地址发送至终端设备内置的网络地址查询工具,接收网络地址查询工具反馈的网络信息,网络信息包括目标终端的互联网服务提供商。

在本发明一个实施例中,网络信息还包括目标终端的地理位置。

在本发明一个实施例中,根据预存数据表,判断数据中心的地理位置集合是否包括目标终端的地理位置,预存数据表存储有数据中心的地理位置,若数据中心的地理位置集合包括目标终端的地理位置,则确定目标终端的用户类型是预设数据中心类型,若数据中心的地理位置集合不包括目标终端的地理位置,则确定目标终端的用户类型不是预设数据中心类型。

在本实施例中,网络地址为域名地址(domainnameserver,dns)或ip地址,当想要访问一个目标终端时,可以根据域名地址或ip直接访问目标终端。

在本实施例中,将网络地址发送给设备内置的网络地址查询工具,网络地址查询工具可以根据域名地址或ip地址直接获取域名地址或ip地址对应的网络信息,网络信息包括域名地址或ip地址对应的互联网服务提供商,例如ip地址为110.249.157.118对应的互联网服务提供商为联通。

在本实施例中,预设云服务提供商包括阿里云服务提供商、百度云服务提供商和腾讯云服务提供商。

在本实施例中,由于网络地址有对应的备案信息,通过网络查询工具可以查询到网络地址对应的备案信息,即网络信息。

在本实施例中,用户类型包括宽带用户、移动网络用户和预设数据中心用户。

在本实施例中,宽带用户包括移动宽带用户、电信宽带用户和联通宽带用户。

在本实施例中,移动网络用户包括2g网络用户、3g网络用户和4g网络用户。

在本实施例中,数据中心(internetdatacenter,idc)为入驻(hosting)企业、商户或网站服务器群托管的场所,提供了一种高端的数据传输服务和高速接入服务,预设数据中心用户为数据中心中的用户终端。

在本实施例中,由于蜜罐一般是部署在云服务器上,若目标终端的互联网服务提供商是预设云服务提供商,则确认目标终端为蜜罐,并无需进行后续步骤,例如判断目标端口的通信协议是否符合预设通信协议。若目标终端的互联网服务提供商不是预设云服务提供商,则需要进一步地通过判断目标终端的用户类型来判断目标终端是否为蜜罐。

在本实施例中,网络地址查询工具反馈的网络信息还包括精确到街道的目标终端的地理位置和目标终端在预设时间内的访问量,访问量为访问目标终端的数量。

在本实施例中,预存数据表还存储有每个数据中心的名称和数据中心经纬度。

在本实施例中,判断预存数据表中存储的数据中心的地理位置是否包括网络地址查询工具返回的目标终端的地理位置,若数据中心的地理位置集合包括目标终端的地理位置,则认为目标终端的用户类型为数据中心类型,并确定目标终端为蜜罐,当确定目标终端为蜜罐后,便无需进行后续步骤,例如获取端口信息。若数据中心的地理位置集合不包括目标终端的地理位置,则认为目标终端的用户类型不为数据中心类型,需要后续步骤确定目标终端是否为蜜罐。

优选地,根据目标终端的地理位置和目标终端在预设时间内的访问量一起判断目标终端的用户类型是否为数据中心类型,其具体为:

1)统计全部数据中心在预设时间内的访问量,计算平均访问量。

2)若目标终端在预设时间内的访问量小于平均访问量,则确定目标终端的数据类型不是预设数据中心类型。

3)若目标终端在预设时间内的访问量不小于平均访问量,则根据预存数据表,判断数据中心的地理位置集合是否包括目标终端的地理位置。

4)若数据中心的地理位置集合包括目标终端的地理位置,则确定目标终端的用户类型是预设数据中心类型。

5)若数据中心的地理位置集合不包括目标终端的地理位置,则确定目标终端的用户类型不是预设数据中心类型。

在本实施例中,由于数据中心的访问量一般是较大的,根据目标终端的访问量和目标终端的地理位置一起判断目标终端的用户类型是否为数据中心类型,从而能更准确地判断出目标终端是否为数据中心类型。

在一个实施例中,根据预存数据表,判断数据中心的经纬度集合是否包括目标终端的经纬度,若数据中心的经纬度集合包括目标终端的经纬度,则确定目标终端的用户类型是预设数据中心类型,若数据中心的经纬度集合不包括目标终端的经纬度,则确定目标终端的用户类型不是预设数据中心类型。

在步骤s202中,若端口信息包括预设端口信息,则将目标终端中预设端口信息对应的端口作为目标端口。

在本实施例中,若目标终端开放的端口号中包含预设端口号,则将目标终端对应的预设端口号对应的端口作为目标端口。

在本实施例中,预设端口号为工业控制通信协议对应的端口号,例如,modbus协议对应的端口号为502端口,dnps协议对应的端口号为20000。

在一个实施例中,若端口信息不包括预设端口信息,则确定目标终端为蜜罐,并无需进行后续步骤,例如,步骤s203。

在步骤s203中,判断目标端口的通信协议是否符合预设通信协议。

在本发明一个实施例中,步骤s203具体包括:

1)根据预设通信协议生成第二数据包,第二数据包包括目标终端地址、第二功能码、第二协议标识符和数据包长度。

2)发送第二数据包至目标端口。

3)若在第二预设时间内接收到目标端口反馈的第二响应数据包,则确定目标端口的通信协议符合预设通信协议。

4)若在第二预设时间内未接收到目标端口反馈的第二响应数据包,则确定目标端口的通信协议不符合预设通信协议。

在本实施例中,预设通信协议为工业控制协议,第二数据包还包括目标端口号和源端口号。

第二协议标识符用于告知目标终端当前第二数据包采用的协议名称,数据包长度规定了第二数据包的长度,第二功能码告知目标终端需要执行的操作以及需要反馈的信息。

在一个实施例中,由于目标终端的操作系统可以支持多进程同时运行,当目标终端接收到第二数据包后,目标终端可以根据目标端口号,将第二数据包发送到目标端口号对应的目标端口,而与目标端口对应的进程将会接收第二数据包,如果目标终端的目标端口的通信协议符合工业控制通信协议,则目标终端可以响应第二数据数据,生成第二响应数据包,将第二响应数据包发送给源地址对应的终端设备,终端设备接收第二响应数据包后,将第二响应数据包发送给源端口号对应的源端口,以使源端口对应的进程接收第二响应数据包,当源端口对应的进程接收到第二响应数据包后,确定目标端口的通信协议符合预设通信协议,则需要进一步地判断目标终端是否为蜜罐。

进一步地,根据第二响应数据包判断目标终端是否支持第二功能码,其具体为:

1)当第二响应数据包为错误报文信息时,则确定目标终端不支持第二功能码。

2)当第二响应数据包为错误报文信息为第二预设响应结果时,则确定目标终端支持第二功能码。

在本实施例中,终端设备通过判断目标终端是否支持第二功能码,可以在后续通信时,决定是否发送第二功能码对应的操作信息至目标终端。

在一个实施例中,若在第二预设时间内未接收到目标端口反馈的第二响应数据包,表示目标终端虽然开放了目标端口,但目标端口的通信协议不是预设通信协议,确定目标终端为蜜罐,则无需进行后续判断目标终端是否为蜜罐的步骤,例如,步骤101。

在步骤s204中,若目标端口的通信协议符合预设通信协议,则生成第一数据包。

在本实施例中,若目标端口的通信协议符合工业控制通信协议,需要进一步判断目标终端是否为高交互型蜜罐,则需要生成涉及高交互的第一数据包进行判断。

在本实施例中,先判断目标终端的互联网服务提供商是否为预设云服务提供商,然后判断目标终端的用户类型是否为数据中心用户,然后判断目标终端的端口信息是否为包括预设端口信息,然后判断目标端口是否符合预设通信协议,循序渐进地进行判断,提高了识别蜜罐的准确性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例2:

图3示出了本发明的一个实施例提供的识别蜜罐的系统100,用于执行图1所对应的实施例中的方法步骤,本发明实施例的系统应用于终端设备,其包括:

第一数据包生成模块110,用于生成第一数据包,第一数据包包括目标终端地址、第一功能码和第一协议标识符。

数据包发送模块120,用于发送第一数据包至目标终端。

蜜罐确认模块130,用于若在第一预设时间内未接收到目标终端反馈的第一响应数据包,则确定目标终端为蜜罐。

如图3所示,在本发明的一个实施例中,图3所对应的实施例中的识别蜜罐的系统100中的第一数据包生成模块110的还包括:

端口信息获取单元111,用于获取端口信息,端口信息为目标终端开放的端口号。

目标端口获取单元112,用于若端口信息包括预设端口信息,则将目标终端中预设端口信息对应的端口作为目标端口。

通信协议判断单元113,用于判断目标端口的通信协议是否符合预设通信协议。

第一数据包生成单元114,用于若目标端口的通信协议符合预设通信协议,则生成第一数据包。

在本发明一个实施例中,通信协议判断单元113包括:

第二数据包生成子单元,用于根据预设通信协议生成第二数据包,第二数据包包括目标终端地址、第二功能码、第二协议标识符和数据包长度。

数据包发送子单元,用于发送第二数据包至目标端口;

第一处理单元,用于若在第二预设时间内接收到目标端口反馈的第二响应数据包,则确定目标端口的通信协议符合预设通信协议;

第二处理单元,用于若在第二预设时间内未接收到目标端口反馈的第二响应数据包,则确定目标端口的通信协议不符合预设通信协议。

在本发明一个实施例中,端口信息获取单元111包括:

网络地址获取子单元,用于获取目标终端的网络地址;

服务提供商判断子单元,用于根据网络地址判断目标终端的互联网服务提供商是否为预设云服务提供商;

用户类型判断子单元,用于若互联网服务提供商不是预设云服务提供商,则判断目标终端的用户类型是否为预设数据中心类型;

端口信息获取子单元,用于若用户类型不为预设数据中心类型,则获取端口信息。

在本发明一个实施例中,服务提供商判断子单元还用于:

1)将网络地址发送至终端设备内置的网络地址查询工具。

2)接收网络地址查询工具反馈的网络信息,网络信息包括目标终端的互联网服务提供商。

在本发明一个实施例中,网络信息还包括目标终端的地理位置。

在本发明一个实施例中,用户类型判断子单元还用于。

1)根据预存数据表,判断数据中心的地理位置集合是否包括目标终端的地理位置,预存数据表存储有数据中心的地理位置。

2)若数据中心的地理位置集合包括目标终端的地理位置,则确定目标终端的用户类型是预设数据中心类型。

3)若数据中心的地理位置集合不包括目标终端的地理位置,则确定目标终端的用户类型不是预设数据中心类型。

在一个实施例中,识别蜜罐的系统100还包括其他功能模块/单元,用于实现实施例1中各实施例中的方法步骤。

实施例3:

图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现如实施例1中所述的各实施例的步骤,例如图1所示的步骤s101至步骤s103。或者,所述处理器50执行所述计算机程序52时实现如实施例2中所述的各系统实施例中的各模块/单元的功能,例如图3所示模块110至130的功能。

示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。例如,所述计算机程序52可以被分割成第一数据包生成模块,数据包发送模块和蜜罐确认模块。各模块具体功能如下:

第一数据包生成模块,用于生成第一数据包,所述第一数据包包括目标终端地址、第一功能码和第一协议标识符。

数据包发送模块,用于发送所述第一数据包至目标终端。

蜜罐确认模块,用于若在第一预设时间内未接收到所述目标终端反馈的第一响应数据包,则确定所述目标终端为蜜罐。

所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

实施例4:

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如实施例1中所述的各实施例中的步骤,例如图1所示的步骤s101至步骤s103。或者,所述计算机程序被处理器执行时实现如实施例2中所述的各系统实施例中的各模块/单元的功能,例如图3所示的模块110至130的功能。

所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例系统中的模块或单元可以根据实际需要进行合并、划分和删减。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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