(12)发明专利申请
(10)申请公布号 CN 112261046 A(43)申请公布日 2021.01.22
(21)申请号 202011136925.0(22)申请日 2020.10.22
(71)申请人 胡付博
地址 274100 山东省菏泽市定陶县黄店镇
黄南行政村黄南村156号(72)发明人 胡付博
(74)专利代理机构 北京智行阳光知识产权代理
事务所(普通合伙) 11738
代理人 黄锦阳(51)Int.Cl.
H04L 29/06(2006.01)H04L 29/08(2006.01)G06N 20/00(2019.01)
权利要求书1页 说明书5页 附图2页
(54)发明名称
一种基于机器学习的工控蜜罐识别方法(57)摘要
本发明涉及蜜罐识别技术领域,且公开了一种基于机器学习的工控蜜罐识别方法,包括特征数据获取模块,特征数据获取模块输出端电连接有获取数据判断模块,获取数据判断模块输出端短连接有数据包生成模块,数据包生成模块输出端电连接有机器记忆模块,特征数据获取模块S1中获取IP地址信息的方法为通过查询IP地址对应的互联网服务提供商和组织机构信息,该基于机器学习的工控蜜罐识别方法,也能够准确识别中等交互工控蜜罐如Snap7、CryPLH2,还能够识别高交互工控蜜罐如XPOT,针对未知类型的工控蜜罐也能够有效的识别,本发明方法包括对IP地址基础位置信息识别、TCP/IP操作系统指纹识别、工控协议深度交互识别和组态程序调试运行识别。
CN 112261046 ACN 112261046 A
权 利 要 求 书
1/1页
1.一种基于机器学习的工控蜜罐识别方法,包括特征数据获取模块,其特征在于:所述特征数据获取模块输出端电连接有获取数据判断模块,获取数据判断模块输出端短连接有数据包生成模块,数据包生成模块输出端电连接有机器记忆模块,特征数据获取模块工作步骤为:
S1:IP地址信息识别获取;S2:工控协议深度交互识别;S3:TCP/IP操作系统指纹识别。
2.根据权利要求1所述的一种基于机器学习的工控蜜罐识别方法,其特征在于:所述特征数据获取模块S1中获取IP地址信息的方法为通过查询IP地址对应的互联网服务提供商和组织机构信息,来判断所述IP是否属于云服务器提供商的IP地址,获取数据判断模块则会对获取到的IP地址信息进行判断,当所述IP属于云服务器,并且开放了PLC的工控协议服务,则所述IP为工控蜜罐。
3.根据权利要求2所述的一种基于机器学习的工控蜜罐识别方法,其特征在于:所述特征数据获取模块S2中工控协议深度交互识别的方法为模拟PLC编程软件与被扫描IP交互,读取完整的配置和状态,获取数据判断模块则会对获取到的IP进行判断,当被扫描IP返回的信息与真实的PLC返回的信息有差异,则被扫描IP为低交互工控蜜罐。
4.根据权利要求1所述的一种基于机器学习的工控蜜罐识别方法,其特征在于:所述特征数据获取模块S3中TCP/IP操作系统指纹识别的方法为获取目标IP的TCP/IP协议指纹,获取数据判断模块则会对获取到的指纹进行判断,当目标IP的操作系统被识别为Linux非嵌入式工控系统,则所述IP为工控蜜罐。
5.根据权利要求1所述的一种基于机器学习的工控蜜罐识别方法,其特征在于:所述数据包生成模块能够将获取数据判断模块判断完成后的结果进行数据包生成,从而将数据包发送至系统终端,机器记忆模块则会将数据包生成模块生成的数据包进行接收,然后对其进行记忆,从而让计算机后续能够对碰到的蜜罐进行识别。
6.根据权利要求1所述的一种基于机器学习的工控蜜罐识别方法,其特征在于:所述获取数据判断模块能够将特征数据获取模块中获取的数据进行同步运算判断,从而对多组数据进行同步分析,从而判断其是否为高交互工控蜜罐。
2
CN 112261046 A
说 明 书
一种基于机器学习的工控蜜罐识别方法
1/5页
技术领域
[0001]本发明涉及蜜罐识别技术领域,具体为一种基于机器学习的工控蜜罐识别方法。背景技术
[0002]目前,随着工控网与互联网的连接也逐渐暴露了工业控制网的安全隐患,传统的工控网络采用物理隔离的方式来保护其安全性,一旦接入互联网,将面临无法避免的安全威胁,而且工控网由于其大多控制着与人民息息相关的工业、交通、电力、能源的基础设施,与现实世界的联系更加紧密,因此系统的失效有可能会带来灾难性的后果,在进行网络空间探测的过程中,经常会碰到工控蜜罐系统,蜜罐系统是一种设置入侵警报和研究对计算机系统攻击的常用工具,将蜜罐技术应用到工控领域所产生的工控蜜罐系统,对于研究对工控系统的攻击和探测行为具有重要意义,工控蜜罐系统能够收集分析扫描探测引擎的指纹,锁定扫描探测引擎的源IP地址,然后进行封堵,为了发现工控蜜罐,提高扫描探测引擎对抗工控蜜罐的能力,急需一种智能蜜罐识别技术。发明内容[0003](一)解决的技术问题[0004]针对现有技术的不足,本发明提供了一种基于机器学习的工控蜜罐识别方法,具备能够使计算机通过学习的方式来识别蜜罐等优点,解决了上述的问题。[0005](二)技术方案
[0006]为实现上述所述目的,本发明提供如下技术方案:一种基于机器学习的工控蜜罐识别方法,包括特征数据获取模块,特征数据获取模块输出端电连接有获取数据判断模块,获取数据判断模块输出端短连接有数据包生成模块,数据包生成模块输出端电连接有机器记忆模块,特征数据获取模块工作步骤为:[0007]S1:IP地址信息识别获取;[0008]S2:工控协议深度交互识别;[0009]S3:TCP/IP操作系统指纹识别。[0010]优选的,所述特征数据获取模块S1中获取IP地址信息的方法为通过查询IP地址对应的互联网服务提供商和组织机构信息,来判断所述IP是否属于云服务器提供商的IP地址,获取数据判断模块则会对获取到的IP地址信息进行判断,当所述IP属于云服务器,并且开放了PLC的工控协议服务,则所述IP为工控蜜罐。[0011]优选的,所述特征数据获取模块S2中工控协议深度交互识别的方法为模拟PLC编程软件与被扫描IP交互,读取完整的配置和状态,获取数据判断模块则会对获取到的IP进行判断,当被扫描IP返回的信息与真实的PLC返回的信息有差异,则被扫描IP为低交互工控蜜罐。
[0012]优选的,所述特征数据获取模块S3中TCP/IP操作系统指纹识别的方法为获取目标IP的TCP/IP协议指纹,获取数据判断模块则会对获取到的指纹进行判断,当目标IP的操作
3
CN 112261046 A
说 明 书
2/5页
系统被识别为Linux非嵌入式工控系统,则所述IP为工控蜜罐。[0013]优选的,所述数据包生成模块能够将获取数据判断模块判断完成后的结果进行数据包生成,从而将数据包发送至系统终端,机器记忆模块则会将数据包生成模块生成的数据包进行接收,然后对其进行记忆,从而让计算机后续能够对碰到的蜜罐进行识别。[0014](三)有益效果
[0015]与现有技术相比,本发明提供了一种基于机器学习的工控蜜罐识别方法,具备以下有益效果:[0016]1、该基于机器学习的工控蜜罐识别方法,能够准确识别低交互工控蜜罐如Conpot,也能够准确识别中等交互工控蜜罐如Snap7、CryPLH2,还能够识别高交互工控蜜罐如XPOT,针对未知类型的工控蜜罐也能够有效的识别,本发明所述方法包括对IP地址基础位置信息识别、TCP/IP操作系统指纹识别、工控协议深度交互识别和组态程序调试运行识别。
[0017]2、该基于机器学习的工控蜜罐识别方法,获取数据判断模块能够对特征数据获取模块获取到的数据信息进行逐一判断与合并判断,获取数据判断模块对获取到的数据逐一判断能够对数据进行初步判断,从而识别其是否为低交互蜜罐或中等交互蜜罐,而获取数据判断模块对获取到的数据进行整体判断,则能够通过数据直接的联系来判断其是否为高级蜜罐或未知类型的蜜罐,深度识别其类型,从而方便机器进行方法学习。[0018]3、该基于机器学习的工控蜜罐识别方法,数据包生成模块能够将获取数据判断模块判断完成后的结果进行数据包生成,从而将数据包发送至系统终端,同时在发送完成后使计算机对数据包进行自动拆包,通过机器记忆模块来进行数据记忆和学习,让机器能够在进行每次识别后都能够对数据进行记录,在扩大数据库的同时来进行记忆学习。附图说明
[0019]图1为本发明工作步骤示意图;[0020]图2为本发明系统框架示意图;
[0021]图3为本发明特征数据获取模块框架示意图。
具体实施方式
[0022]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0023]请参阅图1-3,一种基于机器学习的工控蜜罐识别方法,包括特征数据获取模块,特征数据获取模块输出端电连接有获取数据判断模块,获取数据判断模块输出端短连接有数据包生成模块,数据包生成模块输出端电连接有机器记忆模块,特征数据获取模块工作步骤为:[0024]S1:IP地址信息识别获取;[0025]S2:工控协议深度交互识别;[0026]S3:TCP/IP操作系统指纹识别。
4
CN 112261046 A[0027]
说 明 书
3/5页
所述特征数据获取模块S1中获取IP地址信息的方法为通过查询IP地址对应的互
联网服务提供商和组织机构信息,来判断所述IP是否属于云服务器提供商的IP地址,获取数据判断模块则会对获取到的IP地址信息进行判断,当所述IP属于云服务器,并且开放了PLC的工控协议服务,则所述IP为工控蜜罐,所述特征数据获取模块S2中工控协议深度交互识别的方法为模拟PLC编程软件与被扫描IP交互,读取完整的配置和状态,获取数据判断模块则会对获取到的IP进行判断,当被扫描IP返回的信息与真实的PLC返回的信息有差异,则被扫描IP为低交互工控蜜罐,所述特征数据获取模块S3中TCP/IP操作系统指纹识别的方法为获取目标IP的TCP/IP协议指纹,获取数据判断模块则会对获取到的指纹进行判断,当目标IP的操作系统被识别为Linux非嵌入式工控系统,则所述IP为工控蜜罐,所述数据包生成模块能够将获取数据判断模块判断完成后的结果进行数据包生成,从而将数据包发送至系统终端,机器记忆模块则会将数据包生成模块生成的数据包进行接收,然后对其进行记忆,从而让计算机后续能够对碰到的蜜罐进行识别。
[0028]与低交互蜜罐检测最主要的方式是通过网络,这样就意味着低交互蜜罐运行在一个具有正常操作系统的,只要是在操作系统中,不可能把所有的资源都分配给蜜罐,所以如果在蜜罐中执行一个很繁琐很耗资源的操作,这样蜜罐就会和其他服务进程去争抢资源,最直观的感受就是蜜罐的反应速度会慢下来。但是我们通常不具备这个权限来访问这种类型的服务或者是进程,所以我们必须得考虑从网络通信入手,增加蜜罐的操作负载,如果换一个角度想,可不可以让其他的服务去和蜜罐争抢资源,来拖慢蜜罐的反应速度,举个例子比如说如果蜜罐系统和一个web服务器同时运行在一台机器上,我们可以从web服务器入手,去给web服务器发送大量http请求,导致web服务器抢占大量计算机资源用来处理请求。这样就会让蜜罐的反应慢下来。[0029]设计实验,假设我们有两台机器,一台机器是蜜罐服务器(192.168.1.100),另一台机器是入侵者(192.168.1.200),首先我们需要使用nmap去探测蜜罐服务器开了那些服务,使用如下命令:[0030]sudo nmap-sV-p T:1-65535-Pn 192.168.1.100[0031]等待一段时间之后会扫描到结果,假设其开启了Apache2 Server、SSH两个服务,我们可以编写一个简单的程序用来给Apache2 Server发HTTP数据包让其大量处理:[0032]#coding=utf-8[0033]from scapy.all import*[0034]from threading import Thread,activeCount[0035]from random import randint[0036]class Loop(Thread):
[0037]def__init__(self,remoteAddr):[0038]Thread.__init__(self)
[0039]self.remoteAddr=remoteAddr[0040]def run(self):
[0041]ip=str(randint(0,255))+'.'\\[0042]+str(randint(0,255))+'.'\\[0043]+str(randint(0,255))+'.'\\
5
CN 112261046 A[0044]
说 明 书
4/5页
+str(randint(0,255))
[0045]sr1(IP(src=ip,dst=self.remoteAddr)/TCP(dport=80),retry=0,verbose=0,timeout=3)[0046]class Main(Thread):
[0047]def__init__(self,remoteAddr):[0048]Thread.__init__(self)
[0049]self.remoteAddr=remoteAddr[0050]def run(self):[0051]limit=140[0052]total=0[0053]while True:[0054]if activeCount() [0060]Main(remoteAddr=remoteAddr).start()[0061]我们利用scapy实现了一个简单的http flood的工具,然后对蜜罐服务器的http服务发动攻击。[0062]python http_flood.py [0063]我们同时再去观察蜜罐的响应速度,如果假设正确,此时蜜罐的响应速度应该会大幅度减慢,如果你使用HoneyD或者是LaBrea创建多个蜜罐来组建蜜网的话,只要增加其中一个蜜罐的负载,就可以影响其他蜜罐的运行速度。 [0064]如果我们仅通过查看网络数据包能很容易的推断出一个机器的物理属性,我们就很有可能辨别物理服务器和虚拟蜜罐。事实证明,TCP提供了一些直接反映底层服务器状态的信息。TCP时间戳选项被网络堆栈用于确定重传超时时间。机器中的无历史中安特定频率更新时间戳,我们也知道,所有的物理时钟都有一定时钟偏差,他们或多或少于实际运行时间。 [0065]通过打开一个到主机的TCP链接,并记录为每个连接所提供的时间戳,就可以去观察时间偏差。我们的希望是每个物理系统或者是操作系统显示出来不同的偏差。如果说一个服务器上运行了多个蜜罐的话,就容易出现每一个蜜罐出现相同的时间偏差,这样的话蜜罐就完全暴露了。这种基于对硬件检测的思想也可以在一定程度上去实现检测是不是蜜罐。 [0066]步骤1、IP地址基础位置信息识别:通过查询IP地址对应的ISP(InternetServiceProvider,互联网服务提供商)和Organization(组织机构)信息,来判断所述IP是否属于云服务器提供商的IP地址。当IP属于云服务器,并且开放了PLC的工控协议服务,则所述IP为工控蜜罐的概率大于90%。用P1表示通过IP地址基础位置信息识别判定所述IP为工控蜜罐的概率,0.9 CN 112261046 A 说 明 书 5/5页 IP为工控蜜罐的权重。 [0067]针对IP地址对应的ISP和Organization的信息查询,能够选择如下的IP定位库,[0068]如:百度地图、Google、Rtbasia、ipplus360、GeoIp2、IP2Region的IP地址信息库,通过获取的信息来综合判定IP地址是否属于云服务器提供商。[0069]步骤2、TCP/IP操作系统指纹识别:[0070]通过TCP/IP操作系统指纹识别,获取目标IP的TCP/IP协议栈指纹,当所述目标IP的操作系统被识别为Linux的非嵌入式操作系统,则所述目标IP为工控蜜罐的概率大于70%,用P2表示通过TCP/IP操作系统指纹识别判定所述目标IP为工控蜜罐的概率,0.7 7 CN 112261046 A 说 明 书 附 图 1/2页 图1 8 CN 112261046 A 说 明 书 附 图 2/2页 图2 图3 9 因篇幅问题不能全部显示,请点此查看更多更全内容