Conpot工控蜜罐的识别方法转让专利

申请号 : CN201910435098.6

文献号 : CN110266650B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕世超张悦阳游建舟闫兆腾孙利民朱红松

申请人 : 中国科学院信息工程研究所

摘要 :

本发明实施例提供一种Conpot工控蜜罐的识别方法,包括:将预先获取的第一报文拆分为两部分;向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。本发明实施例拥有准确度高、识别性强、可操作性强等特点。

权利要求 :

1.一种Conpot工控蜜罐的识别方法,其特征在于,包括:

根据Conpot工控蜜罐系统的蜜罐特征,将预先获取的第一报文拆分为两部分,并向待识别系统发送两部分报文,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐;

其中,所述蜜罐特征包括蜜罐系统层框架特征和关系图的协议解析特征;

所述蜜罐系统层框架特征包括Conpot工控蜜罐在无通信状态下保持预设的连接时长后断开连接,相应的,将预先获取的第一报文拆分为两部分,并向待识别系统发送两部分报文,包括:将预先获取的第一报文拆分为两部分;

向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;

所述关系图的协议解析特征包括当Conpot工控蜜罐接收到小于可识别的最短字节的报文后,断开连接并结束此次会话;

相应的,所述将预先获取的第一报文拆分为两部分,并向待识别系统发送两部分报文,包括:将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节。

2.根据权利要求1所述的Conpot工控蜜罐的识别方法,其特征在于,所述继续向所述待识别系统发送第一报文的第二部分,之后还包括:若接收到所述待识别系统反馈的正常响应,则将预先获取的第二报文拆分成两部分,其中第二报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节;

依次向所述待识别系统发送所述第二报文的两部分,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。

3.根据权利要求2所述的Conpot工控蜜罐的识别方法,其特征在于,所述依次向所述待识别系统发送所述第二报文的两部分,之后还包括:若接收到所述待识别系统反馈的正常响应,根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别。

4.根据权利要求3所述的Conpot工控蜜罐的识别方法,其特征在于,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:根据待识别系统的IP位置与实际所处的工业环境之间的差异大于第一预设阈值,则获知所述待识别系统为Conpot工控蜜罐;

在公网上查询所述待识别系统的IP的提供方,若超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则获知所述待识别系统为Conpot工控蜜罐;或根据待识别系统的IP出现在预设的威胁情报库中则获知所述待识别系统为Conpot工控蜜罐。

5.根据权利要求3所述的Conpot工控蜜罐的识别方法,其特征在于,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:根据待识别系统的IP位置与实际所处的工业环境之间的差异小于第一预设阈值,则继续在公网上查询所述待识别系统的IP的提供方,若不超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则继续根据待识别系统的IP是否出现在预设的威胁情报库中进行识别。

6.根据权利要求1所述的Conpot工控蜜罐的识别方法,其特征在于,所述将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节,之后还包括:若接收到所述待识别系统反馈的正常响应,则将预先获取的第二报文拆分为两部分;

向所述待识别系统发送所述第二报文的第一部分,在预设时间后,继续向所述待识别系统发送第二报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;

若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。

7.根据权利要求6所述的Conpot工控蜜罐的识别方法,其特征在于,所述继续向所述待识别系统发送第二报文的第二部分,之后还包括:若接收到所述待识别系统反馈的正常响应,根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别。

8.根据权利要求7所述的Conpot工控蜜罐的识别方法,其特征在于,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:根据待识别系统的IP位置与实际所处的工业环境之间的差异大于第一预设阈值,则获知所述待识别系统为Conpot工控蜜罐;

在公网上查询所述待识别系统的IP的提供方,若超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则获知所述待识别系统为Conpot工控蜜罐;或根据待识别系统的IP出现在预设的威胁情报库中则获知所述待识别系统为Conpot工控蜜罐。

9.根据权利要求7所述的Conpot工控蜜罐的识别方法,其特征在于,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:根据待识别系统的IP位置与实际所处的工业环境之间的差异小于第一预设阈值,则继续在公网上查询所述待识别系统的IP的提供方,若不超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则继续根据待识别系统的IP是否出现在预设的威胁情报库中进行识别。

说明书 :

Conpot工控蜜罐的识别方法

技术领域

[0001] 本发明涉及网络安全技术领域,更具体地,涉及Conpot工控蜜罐的识别方法。

背景技术

[0002] 近年来,世界各地陆续发生了一系列针对工业控制系统的恶性安全攻击事件。这些攻击者不仅掌握了工控安全知识和熟练使用网络攻击工具,而且熟悉工控系统的业务流程。其攻击流量稀疏且具有高持续性和强隐蔽性,入侵检测、防火墙等安全检测和防护手段难以发现。因此,在学术界和产业界有人提出利用蜜罐技术来诱捕攻击者。在工控系统网络中部署的工控蜜罐,不仅可以引诱网络攻击者进行攻击,实现工控威胁渗透的延缓,而且还可以分析攻击流量,提升工控系统安全威胁发现能力,为工控企业持续生产运行提供强有力的安全保障。
[0003] 蜜罐一旦被攻击者所识别,蜜罐就会失去其原有的价值,是一种识破即失效的被动式主动防御手段。近年来,蜜罐识别技术研究日益活跃,攻击者开始系统地研究如何识别和反制蜜罐,并通过黑客社区分享知识成果,导致了许多传统蜜罐纷纷失效。在此背景下,提高蜜罐的反识别能力成为网络防御领域研究的热点。蜜罐识别技术也称为反蜜罐技术(Anti-Honeypot),是指通过各种技术手段对蜜罐软件的存在与否进行检测,进而判断被攻击目标是否处于蜜罐环境中。
[0004] 在学术界,国外针对传统蜜罐的识别研究和试验都取得了一定的成果,已经有很多蜜罐识别的方法:Neal Krawetz首先提出了基于发送垃圾邮件的方法来识别SMTP蜜罐的Anti-Honeypot技术;Thorsten Holz 先后分别从网络层和系统层两个角度对各种蜜罐识别技术进行了详细的阐述;对于低交互蜜罐,美国加州圣地亚哥分校的Tadayoshi Konho 等提出了通过协议时钟差的统计测量识别方法;2015年Gajrani等提出了通过动态系统控制来识别虚拟环境特征的方法。对于高交互蜜罐的识别,由于Sebek在蜜网搭建中是不可或缺的,因此通过识别Sebek来判断蜜罐的存在与否,是高交互蜜罐识别的主要方法。Joseph Corey提出了一种基于dd攻击法的Sebek检测,在后台运行dd并运行ping命令,如果主机上安装了Sebek的话,会使得ping命令的交互往返时间大大增加,从而检测蜜罐的存在;Phrack通过分析内存中Magic值和源目的端口号等信息,提出了一种基于内核模块检测的蜜罐识别方法。
[0005] 在工业界,国外已有商业反蜜罐软件Honeypot Hunter,同时最大的设备搜索引擎Shodan也具有一定的蜜罐识别能力。但就工控蜜罐来说,由于PLC的封闭性和协议的私有性,很多适用于传统蜜罐识别的方法,不再适用于工控蜜罐的识别,这导致工控蜜罐的识别尚停留在初级阶段。目前国外已知的这些蜜罐识别方法和产品,特别是工控系统环境下的识别方法,在应对蜜罐软件版本的更新及系统环境的更新时,其检测的可行性和有效性均不能达到工业级识别的基本要求。目前尚未有文献表明已有国内机构开始系统的研究工控蜜罐识别技术。针对系统及软件版本的不断更新,蜜罐识别技术的研究也在面临新的挑战。

发明内容

[0006] 本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的Conpot工控蜜罐的识别方法。
[0007] 第一个方面,本发明实施例提供一种Conpot工控蜜罐的识别方法,包括:
[0008] 将预先获取的第一报文拆分为两部分;
[0009] 向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为 Conpot工控蜜罐的断开连接时长;
[0010] 若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0011] 第二个方面,本发明实施例提供另一种Conpot工控蜜罐的识别方法,包括:
[0012] 将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节;
[0013] 依次向待识别系统发送所述第一报文的两部分,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0014] 第三方面,本发明实施例提供一种Conpot工控蜜罐的识别装置,包括:
[0015] 第一拆分模块,用于将预先获取的第一报文拆分为两部分;
[0016] 第一发送模块,用于向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;
[0017] 第一判断模块,用于若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0018] 第四个方面,本发明实施例提供另一种Conpot工控蜜罐的识别装置,包括:
[0019] 第二拆分模块,将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节;
[0020] 第二发送模块,用于依次向待识别系统发送所述第一报文的两部分;
[0021] 第二判断模块,用于若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0022] 第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所提供的方法的步骤。
[0023] 第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所提供的方法的步骤。
[0024] 本发明实施例提供的Conpot工控蜜罐的识别方法,通过将报文拆分为两部分,向所述待识别系统发送第一部分报文,至少5秒后,继续向所述待识别系统发送第二部分报文,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐,拥有准确度高、识别性强、可操作性强等特点。

附图说明

[0025] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1为本发明实施例提供的Conpot工控蜜罐的识别方法的流程示意图;
[0027] 图2为本发明另一个实施例的Conpot工控蜜罐的识别方法的流程示意图;
[0028] 图3为本发明实施例提供的Conpot工控蜜罐的识别装置的结构示意图;
[0029] 图4为本发明另一个实施例提供的Conpot工控蜜罐的识别装置的结构示意图[0030] 图5为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

[0031] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032] Conpot工控蜜罐是工控蜜罐的一种常见类型,图1为本发明实施例提供的Conpot工控蜜罐的识别方法的流程示意图,如图1所示,包括:
[0033] S101、将预先获取的第一报文拆分为两部分;
[0034] S102、向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;
[0035] S103、若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0036] 需要说明的是,Conpot工控蜜罐实现过程中,为了避免一个连接长时间占用带宽,其设置了sock.settimeout(timeout)参数,其timeout 数值为5,其意义是在Conpot工控蜜罐无通信状态下,保持连接的时长是5秒。5秒之后由Conpot发送fin_ack请求断开连接。而真实设备因为业务需要,并没有这个断开连接的操作,可以长时间保持连接的有效性和稳定性,这是Conpot框架和真实设备是在实现上的一个显著化差异。
[0037] 具体地,首先将一个正常报文拆分两段,先发送第一段,经过10 秒之后,再发送第二段。如果设备为Conpot工控蜜罐,则5秒时候连接会自动断开,则第二段报文再发送过去的话,会得到一个已断开连接的报错。
[0038] 在上述各实施例的基础上,作为一种可选实施例,若接收到所述待识别系统反馈的正常响应,则将预先获取的第二报文拆分成两部分,其中第二报文的第一部分的长度小于预设字节,所述预设字节为 Conpot工控蜜罐可识别的最短字节;
[0039] 依次向所述待识别系统发送所述第二报文的两部分,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0040] 本发明实施例通过对Conpot工控蜜罐中对ModBus协议解析部分的代码的深度分析,总结出识别的关键点在于其首先接收了前7个字节,如果接收字节少于7,其会认为这是一个无效的Modbus报文,然后将其抛弃,断开连接并结束此次会话。Modbus协议规范所要求的协议长度必将大于7个字节。如果将一个正常的Modbus协议报文强制截断,使得第一部分长度小于7个字节,再依次发送给真实设备,那么真实设备是可以进行正常响应的,但是,Conpot蜜罐实现过程没有考虑分片的情况,而且Conpot蜜罐的协议正确性校验操作会将本次连接中断,这就使得攻击者无法得到正确的响应,进而识别出Conpot 蜜罐运行了Modbus协议。
[0041] 需要说明的是,本发明实施例提出的两种方法中,第一种方案存在时间上的要求,并且虽然一般Conpot工控蜜罐的自动连接时间为5 秒,但不排除有设置时长更久的Conpot工控蜜罐,所以即使收到了正常响应,也仍然有可能是Conpot工控蜜罐,而第二种方案是利用 Conpot工控蜜罐对Modbus协议解析的深度分析获得的,不存在需要等待一定时长的问题,并且也更加准确。本发明实施例的上述两种识别方法,第一种是根据蜜罐系统层框架特征进行识别,而第二种是根据关系图的协议解析特征进行识别,两种方案都属于基于蜜罐系统的蜜罐特征进行识别的方法。
[0042] 在上述各实施例的基础上,作为一种可选实施例,所述继续向所述待识别系统发送第一报文的第二部分,或者依次向所述待识别系统发送所述第二报文的两部分,之后还包括:
[0043] 若接收到所述待识别系统反馈的正常响应,根据待识别系统的IP 位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP 提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别。具体地:
[0044] 根据待识别系统的IP位置与实际所处的工业环境之间的差异大于第一预设阈值,则获知所述待识别系统为Conpot工控蜜罐。
[0045] 需要说明的是,地理位置信息的判断可以有很多手段,如通过一些IP定位网站,本发明实施例可以有效的定位具体的IP位置,精度可以达到500米之内,根据真实设备所处的工业环境和实际IP所定位的地理位置之间的差异,通过ISP分析,如果IP地理位置与实际工控环境差异较大,则本发明实施例判定此设备是蜜罐的可能性就较高。
[0046] 根据待识别系统的IP由互联网服务提供商提供,则获知所述待识别系统为Conpot工控蜜罐。
[0047] ISP(Internet Service Provider),互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。ICP  (Internet Content Provider),网络内容服务商,即指提供互联网信息业务和增值业务的电信运营商。
[0048] 在互联网应用服务产业链“设备供应商——基础网络运营商——内容收集者和生产者——业务提供者——用户”中,ISP/ICP处于内容收集者、生产者以及业务提供者的位置。对于特定ISP来说,提供的服务也是相对专一和稳定的,尤其在当下全球IPv4地址稀缺的条件下,很少有情况可以使得ISP为蜜罐提供一个独立的实际IP。基于这一点的业务常识逻辑,如果蜜罐放置的IP地址多由云服务器提供商提供,本发明实施例通过判定该ISP是否为云服务器提供商,来判定拥有该IP的设备是否是蜜罐。
[0049] 根据待识别系统的IP出现在预设的威胁情报库中则获知所述待识别系统为Conpot工控蜜罐。
[0050] 通过网络上的威胁情报库获取对应IP曾经的特征或威胁情报,判定该IP所属设备的具体类型。例如,如果可以在威胁情报收集网站上查询到一个工控设备的IP曾经作为IDC服务器使用过,那么基本可以断定使用该IP的设备为蜜罐。
[0051] 需要说明的是,上述三种利用IP特征进行识别的方法,可以单独地进行使用。由于利用IP特征进行识别的方法存在量化的过程,而根据量化后的值判断是否为工控蜜罐,需要较为准确的阈值,因此本发明实施例可以通过对海量数据进行统计,获得更准确的阈值。
[0052] 在上述各实施例的基础上,作为一种可选实施例,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP 是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:
[0053] 根据待识别系统的IP位置与实际所处的工业环境之间的差异小于第一预设阈值,则继续在公网上查询所述待识别系统的IP的提供方,若不超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则继续根据待识别系统的IP是否出现在预设的威胁情报库中进行识别。
[0054] 在上述各实施例的基础上,作为一种可选实施例,若待识别系统的IP未出现在预设的威胁情报库中,则根据协议实现的完整性、系统状态信息的变化情况以及时序状态中的一种或多种进行识别。
[0055] 具体地,从协议实现的完整性角度鉴别设备是否蜜罐。通过验证协议功能码是否实现完备,来辨别该设备是否是蜜罐。这一点可以通过给设备发比较罕见的请求报文,并根据设备的response信息来判断设备协议的完备性。
[0056] 通过调研可知,目前Conpot的工控蜜罐,设备状态信息都是事先设定好或是随机生产的,但是实际工控环境中的数值会在一定范围内为正态分布且呈现一定的规律性。工控环境虽说稳定,但并不是一层不变的。尤其是线圈状态、寄存器状态、文件记录、温度、阀门状态等信息,会随着系统当前工作环境的不同而不同。通过对比不同时间段内系统状态信息是否改变,可以有效的判断当前系统是否是真实的系统。
[0057] 很多蜜罐在实现过程中,以上的状态信息都是固定不变的,这并不符合实际的业务逻辑。本发明实施例通过获取因生产需要而导致系统中容易产生变化的数据信息,来判断是否在一段时间内该数据信息发生变化来判断该设备是否是一个蜜罐。
[0058] 如果一个蜜罐仿真度足够高,需要进一步进行多操作组合,根据组合后特定特征的改变与否进行识别,拟定组合方案如下:
[0059] (1)读线圈+写线圈+读线圈
[0060] (2)读寄存器+屏蔽写寄存器+写寄存器+读寄存器
[0061] (3)随机组合操作+读文件记录
[0062] 对于低交互蜜罐来说,其不具备从外部被动地更改设备各类信息的功能,所以这个思路就是通过远程更改设备各类控制信息之后,再查询系统状态信息的相应改变,如果未发生改变,则该设备有很大概率为蜜罐设备。但是这种识别方法对于在工控场景中的真实设备可能会造成难以预知的灾害,所以在安全的前提下,并没有把该方法作为蜜罐识别的主要方法之一,而把该方法作为验证蜜罐的备选方法。
[0063] 在上述各实施例的基础上,作为一种可选实施例,所述根据协议实现的完整性、系统状态信息的变化情况以及时序状态中的一种或多种进行识别,具体为:
[0064] 若待识别系统的协议完整性低于第三预设阈值,则获知所述待识别系统为Conpot工控蜜罐;反之,则比对不同时间内系统状态信息的变化情况,若系统状态信息不变化或不规则变化,则获知所述待识别系统为Conpot工控蜜罐,若系统状态信息呈规律性变化,则主动更改待识别系统的控制信息,并根据系统状态信息是否改变识别待识别系统,若系统状态信息发生改变,则获知待识别系统不为Conpot蜜罐。
[0065] 在上述各实施例的基础上,所述根据系统状态信息是否改变识别待识别系统,若系统状态信息发生改变,之后还包括:
[0066] 若系统状态信息未发送改变,则根据待识别系统的协议栈指纹、网络负载、网络流量延迟特征、路由特征以及重定向特征中的一种或多种识别待识别系统。
[0067] 具体地,不同的操作系统在处理网络信息时存在不同的数据响应特点,这就是系统的“指纹”。系统的指纹实现上来源于TCP/IP协议栈。基于TCP/IP协议栈的操作系统指纹识别是比较成熟的技术,这方面的常用工具有Nmap、Queso等。这种识别方案在Honeyd蜜罐识别实践中获得了非常好的效果。例如,Honeyd 0.8版本由于TCP/IP 协议栈的实现与真实系统相比,在网络数据包分片处理上存在明显差别。即Honeyd在IP分片重组部分的设计存在重大漏洞。Honeyd的 Ipfrag.c文件中对协议号没有进行处理,导致了Honeyd无法识别是否重组一个源、目的IP地址和协议编号匹配而协议字段数值不同的IP 分片。此外,Honeyd模拟的操作系统和服务在三次握手过程中,和真实的操作系统有实质性的差别。真实的操作系统在第二次握手过程中,服务器端发送一个SYN/ACK包以后,如果未收到客户端的确认包 ACK,服务器端将进行首次重传。如果一段时间等待后仍未收到ACK 确认包,服务器端将进行第二次重传,直到重传次数超过系统规定的最大重传次数,系统才会终断连接。Honeyd由于实现上的缺陷不存在多次重传机制。
[0068] 通过真实设备和蜜罐能承受的最大网络负载,或者是说能允许的最大连接数之间的差别,来判定一个设备是否是蜜罐。运行在同一个物理机器的不同蜜罐系统,在系统资源充足时,他们能够和平利用资源,发挥各自作用,然而当系统资源不足时,他们将发生资源争夺,产生竞争现象。真实不同主机由于互相独立使用各种资源,则不会表现资源争夺现象。然而,蜜罐之间由于资源争夺,在交互过程中会产生和常规态不同的响应,通过这些差异化的响应使得蜜罐很容易和真实设备区分开来。因此,如果采用一种方法如大流量攻击,加重某个系统负载时,通过比较其他系统此时的响应速度与它们正常时的响应速度的偏差值,可以判断出是否检测到蜜罐系统
[0069] 基于网络流量延迟特征的检测技术,是建立在绝大部分Honeypot 对ICMP ECHO(ping)的反应时间要慢于真实的系统。实验表明基于 ICMP服务的ping命令的时延波动,可以有效识别蜜罐。
[0070] 路由以及重定向特征,通过存活时间(TTL)来判定设备是否为 Honeyd虚拟出来的蜜罐。当一个封包被赋予TTL值(以秒或跳站数目(hop)为单位),之后就会进行倒数计时。在IP协定中,TTL是以 hop为单位,每经过一个router就减一,如果封包TTL值被降为0 的时候,就会被丢弃。这样,当封包在传递过程中由于某些原因而未能抵达目的地的时候,就可以避免其一直充斥在网路上面。实验证明,由Honeyd虚拟出来的蜜罐,其TTL不会根据经过的路由减少而减少,其值是人为设定的一个固定值,这与真实情况不符合。所以本发明实施例可以通过这一点来有效识别Honeyd虚拟出来的蜜罐。
[0071] 图2为本发明另一个实施例的Conpot工控蜜罐的识别方法的流程示意图,如图2所示,包括:
[0072] S201、将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节;
[0073] S202、依次向待识别系统发送所述第一报文的两部分;
[0074] S203、若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0075] 在上述各实施例的基础上,作为一种可选实施例,所述依次向所述待识别系统发送所述第一报文的两部分,之后还包括:
[0076] 若接收到所述待识别系统反馈的正常响应,则将预先获取的第二报文拆分为两部分;
[0077] 向所述待识别系统发送所述第二报文的第一部分,在预设时间后,继续向所述待识别系统发送第二报文的第二部分,所述预设时间为 Conpot工控蜜罐的断开连接时长;
[0078] 若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0079] 在上述各实施例的基础上,作为一种可选实施例,所述依次向所述待识别系统发送所述第一报文的两部分,或者继续向所述待识别系统发送第二报文的第二部分,之后还包括:
[0080] 若接收到所述待识别系统反馈的正常响应,根据待识别系统的IP 位置与实际所处的工业环境之间的差异、待识别系统的IP是否由ISP 提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别。
[0081] 在上述各实施例的基础上,作为一种可选实施例,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP 是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:
[0082] 根据待识别系统的IP位置与实际所处的工业环境之间的差异大于第一预设阈值,则获知所述待识别系统为Conpot工控蜜罐;
[0083] 在公网上查询所述待识别系统的IP的提供方,若超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则获知所述待识别系统为Conpot工控蜜罐;或
[0084] 根据待识别系统的IP出现在预设的威胁情报库中则获知所述待识别系统为Conpot工控蜜罐。
[0085] 在上述各实施例的基础上,作为一种可选实施例,所述根据待识别系统的IP位置与实际所处的工业环境之间的差异、待识别系统的IP 是否由ISP提供以及待识别系统的IP是否出现在预设的威胁情报库中的一种或多种进行识别,具体为:
[0086] 根据待识别系统的IP位置与实际所处的工业环境之间的差异小于第一预设阈值,则继续在公网上查询所述待识别系统的IP的提供方,若不超过第二预设阈值个数的信息源显示所述待识别系统的IP由互联网服务提供商提供,则继续根据待识别系统的IP是否出现在预设的威胁情报库中进行识别。
[0087] 图3为本发明实施例提供的Conpot工控蜜罐的识别装置的结构示意图,如图3所示,该Conpot工控蜜罐的识别装置包括:第一拆分模块301、第一发送模块302和第一判断模块303,其中:
[0088] 第一拆分模块301,用于将预先获取的第一报文拆分为两部分;
[0089] 第一发送模块302,用于向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;
[0090] 第一判断模块303,用于若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0091] 本发明实施例提供的Conpot工控蜜罐的识别装置,具体执行上述各Conpot工控蜜罐的识别方法实施例流程,具体请详见上述各Conpot 工控蜜罐的识别方法实施例的内容,在此不再赘述。本发明实施例提供的Conpot工控蜜罐的识别装置拥有准确度高、识别性强、可操作性强等特点。
[0092] 图4为本发明另一个实施例提供的Conpot工控蜜罐的识别装置的结构示意图,如图4所示,该Conpot工控蜜罐的识别装置包括:
[0093] 第二拆分模块402,将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot 工控蜜罐可识别的最短字节;
[0094] 第二发送模块402,用于依次向待识别系统发送所述第一报文的两部分;
[0095] 第二判断模块403,用于若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0096] 本发明实施例提供的Conpot工控蜜罐的识别装置,具体执行上述各Conpot工控蜜罐的识别方法实施例流程,具体请详见上述各Conpot 工控蜜罐的识别方法实施例的内容,在此不再赘述。本发明实施例提供的Conpot工控蜜罐的识别装置拥有准确度高、识别性强、可操作性强等特点。
[0097] 图5为本发明实施例提供的电子设备的实体结构示意图,如图5 所示,该电子设备可以包括:处理器(processor)510、通信接口 (Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储在存储器530上并可在处理器510上运行的计算机程序,以执行上述各实施例提供的Conpot工控蜜罐的识别方法,例如包括:将预先获取的第一报文拆分为两部分;向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot 工控蜜罐的断开连接时长;若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。或者,将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节,依次向待识别系统发送所述第一报文的两部分,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0098] 此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0099] 本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的Conpot工控蜜罐的识别方法,例如包括:将预先获取的第一报文拆分为两部分;向待识别系统发送所述第一报文的第一部分,在预设时间后,继续向所述待识别系统发送第一报文的第二部分,所述预设时间为Conpot工控蜜罐的断开连接时长;若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。或者,将预先获取的第一报文拆分成两部分,其中第一报文的第一部分的长度小于预设字节,所述预设字节为Conpot工控蜜罐可识别的最短字节,依次向待识别系统发送所述第一报文的两部分,若接收到所述待识别系统反馈的异常响应,则获知所述待识别系统为Conpot工控蜜罐。
[0100] 通过在获取全网工控设备数据,本发明实施例对蜜罐识别方法进行了功能上的优化和鲁棒性的增强。识别结果的格式字段包括IP、协议和识别结果。
[0101] 其中识别结果有如下四种形式:
[0102] (1)IpNotSurvival:IP不存活,因为网络原因或ICMP服务关闭无法ping通;
[0103] (2)RejectInteraction:拒绝连接,指定IP存活,但是疑似因端口关闭或防火墙等无法建立有效的连接;
[0104] (3)HoenyPot:设备被识别为蜜罐;
[0105] (4)RealDevice:设备被识别为真实设备。
[0106] 本次试验首先获取了830966个开启过502端口的IP,1320600 个开启过102端口的IP,2670806开启过2404端口的IP。经过筛选,留下了2155个运行了S7协议的工控设备、5870个运行了Modbus协议的设备、362个运行了IEC104协议的设备:
[0107] 利用本发明实施例提出的蜜罐识别方法对以上设备进行识别,对比Shodan的识别结果,Shodan仅在全球发现345个Conpot蜜罐,而本发明实施例提出的蜜罐识别方法能识别出的蜜罐个数高达2432个,是Shodan识别结果的7倍之多。
[0108] 抽取部分结果进行Shodan覆盖性验证,选取了蜜罐结果中IP为 129.2.27.108并标志为HoneyPot的设备,在Shodan中进行了搜索,发现Shodan无法将其判定为蜜罐,但根据蜜罐的扫描信息,本发明实施例也可以明确的发现,其开启的是502端接,但Device Identification 却是Siemens SIMATIC S7-200,明显是西门子S7的设备,很明显是该Conpot蜜罐配置信息出现了错误,Shodan却无法对其进行识别,但本发明实施例提出的蜜罐识别方法却可有效识别出对该Conpot蜜罐。由此可见,本发明实施例提出的的蜜罐识别方法拥有比Conpot 更高的识别度和准确率。
[0109] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0110] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0111] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。