发明内容
基于此,有必要针对上述技术问题,提供一种能够蜜罐***仿真程度的蜜罐***的攻击数据获取方法、装置。
一种蜜罐***的攻击数据获取方法,所述方法包括:
运行蜜罐***中真实工控设备、虚拟工控设备和上位机;其中,所述上位机用于向所述真实工控设备和所述虚拟工控设备发送控制指令和读取状态数据;
流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
在其中一个实施例中,所述蜜罐***的攻击数据获取方法,还包括:所述上位机向所述真实工控设备发送所述控制指令;所述真实工控设备根据所述控制指令运行,生成所述真实工控设备的状态数据,并将所述状态数据发送至所述上位机。。
在其中一个实施例中,所述一种蜜罐***的攻击数据获取方法还包括;所述上位机向所述虚拟工控设备发送所述控制指令;所述虚拟工控设备根据所述控制指令,通过预设的数据生成规则生成所述虚拟工控设备的状态数据,并将所述状态数据发送至上位机。
在其中一个实施例中,所述流量监听设备监听所述蜜罐***的内部通讯流量,分析并记录所述通讯流量信息中的攻击行为数据,包括:所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表中的IP地址进行比对;在所述IP地址与所述预先收集的攻击者列表的IP地址对比成功时,将所述通讯流量信息记录为攻击行为数据。
在其中一个实施例中,在所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表的IP地址进行比对之后,包括:在所述IP地址与所述预先收集的攻击者列表的IP地址对比失败时,将所述通讯流量信息与符合正常通信的白名单规则进行比对;在所述通讯流量信息与所述符合正常通信的白名单规则比对失败时,将所述通讯流量信息中的IP地址添加至所述攻击者列表,并将所述通讯流量信息记录为攻击行为数据。
在其中一个实施例中,在所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表中的IP地址进行比对之前,包括:断开所述蜜罐***的外部网络连接,并运行蜜罐***中真实工控设备、虚拟工控设备和上位机;所述流量监听设备监听预设时间内的所述蜜罐***的内部通讯流量信息;所述流量监听设备根据所述内部通讯流量信息去除重复流量,生成白名单规则。
一种蜜罐***的攻击数据获取装置,所述装置包括:
运行模块,用于运行蜜罐***中真实工控设备、虚拟工控设备和上位机;其中,所述上位机用于向所述真实工控设备和所述虚拟工控设备发送控制指令和读取状态数据;
监听模块,用于流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
在其中一个实施例中,所述蜜罐***的攻击数据获取装置,还包括:控制指令发送模块,用于所述上位机向所述真实工控设备发送所述控制指令;状态数据生成模块,用于所述真实工控设备根据所述控制指令运行,并生成所述真实工控设备的状态数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
运行蜜罐***中对真实工控设备进行模拟的虚拟工控设备和上位机;其中,所述上位机用于向所述虚拟工控设备发送控制指令和读取状态数据;
流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
运行蜜罐***中对真实工控设备进行模拟的虚拟工控设备和上位机;其中,所述上位机用于向所述虚拟工控设备发送控制指令和读取状态数据;
流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
上述蜜罐***的攻击数据获取方法、装置、计算机设备和存储介质,通过在蜜罐***中设置真实工控设备、虚拟工控设备和上位机,与上位机产生数据交互,通过这种虚实结合的蜜罐***,给攻击者造成以假乱真的效果,引诱攻击者与蜜罐***展开更为深入的交互行为,进而获取攻击方更为全面的特征信息,以提升对攻击方的识别能力,达到有效的主动防御效果。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种蜜罐***的攻击数据获取方法,可以应用于如图1所示的应用环境中。其中,上位机101、真实工控设备107、蜜罐主机102和流量监听设备104通过交换机105与外部网络106连接,所述流量监听设备104内部设置白名单规则库、攻击行为数据库,并存储了攻击者列表,蜜罐主机102内部运行多个虚拟工控设备103。运行蜜罐***中真实工控设备107、虚拟工控设备103和上位机101;其中,所述上位机101用于向所述真实工控设备107和所述虚拟工控设备103发送控制指令和读取状态数据;流量监听设备104监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。其中,上位机101可以但不限于是各种个人计算机、笔记本电脑等,蜜罐主机102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
上述实施例中,蜜罐***中的蜜罐主机基于Docker技术,为运行虚拟工控设备软件分配***资源和操作***环境,选择Conpot程序作为虚拟工控设备,对PLC进行仿真,Conpot程序为一款部署在服务器端的工控蜜罐,能够快速地部署、修改和拓展,当然Conpot程序也可替换为Snap7、CryPLH、XPOT程序。蜜罐主机及其虚拟工控设备数量可根据模拟的真实工控设备的复杂程度进行调整,且数量至少各有一个。蜜罐***中的上位机运行真实工控设备所需的监控软件和组态软件,实时读取真实工控设备运行参数,模拟工业控制***中操作员站/工程师站与控制设备之间的交互行为。
在一个实施例中,如图2所示,提供了一种蜜罐***的攻击数据获取方法,包括以下步骤:
S110,运行蜜罐***中真实工控设备、虚拟工控设备和上位机;其中,所述上位机用于向所述真实工控设备和所述虚拟工控设备发送控制指令和读取状态数据。
其中,蜜罐***是安装在蜜罐主机的***,用于诱捕攻击方对其实施攻击,蜜罐***包括真实工控设备、虚拟工控设备和上位机。所述真实工控设备可提高蜜罐***对真实工控环境模拟的真实性。多台虚拟工控设备可布置在不同的蜜罐主机,用于模拟各个虚拟工控设备之间以及虚拟工控设备之间的数据交互。
其中,控制指令与用于调整真实工控设备的运行和调整真实工控设备的控制参数的控制指令相同,状态数据可从真实工控设备获取或者通过蜜罐***运行的机制产生,例如,状态数据是温度曲线数据,蜜罐***可以模拟温度曲线数据的生成。
其中,真实工控设备可根据模拟的工业控制***,选择不同品牌型号的DCS、PLC、RTU,例如选择西门子的S7-300 PLC作为真实工控设备。真实工控设备的数量可根据模拟的工业控制***的复杂程度进行调整,但数量至少有一个。
S120,流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
其中,流量监听设备连接在交换机镜像口,因此流量监听设备对外部攻击者而言是不可见的,通过在交换机上配置端口镜像功能,能够对蜜罐***内部通讯流量进行监听,识别并记录攻击者与蜜罐***的交互行为;交换机与互联网进行连接,使得攻击者能够通过互联网对蜜罐***进行访问。
其中,流量监听设备设置于所述蜜罐主机,可通过在上位机或蜜罐主机上运行例如WireShark的抓包软件获取通讯流量信息,可以获取到蜜罐***内部流量。可选的,流量监听设备单独与交换机的一个端口连接(连接到交换机的镜像口),仅被动获取通讯流量信息,不对外发送信息,对于攻击者而言是难以察觉且无法访问的。
具体的,流量监听设备在获取通讯流量信息后,通过对流量数据的数量进行分析,比如一个小时内获取的流量数据包的数量是否符合正常的数值范围,如果不在正常范围内,说明存在攻击行为数据;或者通过对通讯流量信息的IP地址进行判断是否属于攻击者列表中的IP地址,通讯流量信息的IP地址如果属于攻击者列表中的IP地址,说明存在攻击行为数据;或者通过对通讯流量信息是否符合正常的通讯流量的白名单规则,如果不符合,说明存在攻击行为数据。
上述蜜罐***的攻击数据获取方法中,通过在蜜罐***中设置真实工控设备、虚拟工控设备和上位机,,与上位机产生数据交互,通过这种虚实结合的蜜罐***,给攻击者造成以假乱真的效果,引诱攻击者与蜜罐***展开更为深入的交互行为,进而获取攻击方更为全面的特征信息,以提升对攻击方的识别能力,达到有效的主动防御效果。
在其中一个实施例中,所述蜜罐***的攻击数据获取方法,还包括:所述上位机向所述真实工控设备发送所述控制指令;所述真实工控设备根据所述控制指令运行,生成所述真实工控设备的状态数据,并将所述状态数据发送至所述上位机。其中,在工业控制***中,上位机(即操作员站/工程师站)和真实工控设备之间通过数据通信进行交互,交互的过程包括:设备控制,上位机向真实工控设备发送控制指令,用于调整***运行和调整控制参数,对真实工控设备进行开关机操作,对真实工控设备的控制策略进行编程,对真实工控设备的***配置进行修改;状态获取,上位机读取真实工控设备的设备信息以及寄存器内的数值。
其中,上位机对虚拟工控设备进行配置,设置真实工控设备运行策略,例如,对水箱液位场景进行模拟,上位机定期会从真实工控设备的PLC获取数据并存入数据库,产生网络通讯行为,可对攻击者造成迷惑,在蜜罐主机上创建Docker,运行Conpot镜像,对蜜罐主机的44818、80、502等端口进行监听,可根据实际使用需要,对虚拟工控设备进行更为全面的配置。蜜罐***中的上位机可与工业控制***中的上位机进行共用,或者蜜罐***中的上位机为工业控制***中的上位机的模拟。
在其中一个实施例中,在运行蜜罐***中真实工控设备、虚拟工控设备和上位机之后,包括:所述上位机实时读取所述真实工控设备的运行参数,并发送至所述虚拟工控设备;其中,所述运行参数在所述蜜罐***中,用于模拟所述上位机与所述真实工控设备之间的数据通信行为。
其中,虚拟工控设备在获取真实工控设备的运行参数后,能够在接收到上位机的控制指令后,向上位机发送状态数据。本实施例中,虚拟工控设备通过真实工控设备的运行数据模拟所述上位机与所述真实工控设备之间的数据通信行为,增加了蜜罐***的仿真程度。
在其中一个实施例中,一种蜜罐***的攻击数据获取方法还包括;所述上位机向所述虚拟工控设备发送所述控制指令;所述虚拟工控设备根据所述控制指令,通过预设的数据生成规则生成所述虚拟工控设备的状态数据,并将所述状态数据发送至所述上位机。其中,所述虚拟工控设备中预设了数据生成规则,例如,所述状态数据是温度曲线数据,虚拟工控设备根据预设的数据生成规则可以模拟温度曲线数据的生成。
在其中一个实施例中,所述流量监听设备监听所述蜜罐***的内部通讯流量,分析并记录所述通讯流量信息中的攻击行为数据,包括:所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表中的IP地址进行比对;在所述IP地址与所述预先收集的攻击者列表的IP地址对比成功时,将所述通讯流量信息记录为攻击行为数据。其中,通讯流量信息包括上位机与所述虚拟工控设备、外部网络与所述上位机和外部网络与所述虚拟工控设备的通信数据。预先收集的攻击者列表中存储了历史收集的攻击者的IP地址。所述IP地址与所述预先收集的攻击者列表的IP地址对比成功,即所述IP地址在所述攻击者列表的IP地址中已经存在。本实施例中,通过攻击者列表中的IP地址来与通讯流量信息中的IP地址进行比对,保证了攻击者行为的判断效率。
在其中一个实施例中,在所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表的IP地址进行比对之后,包括:在所述IP地址与所述预先收集的攻击者列表的IP地址对比失败时,将所述通讯流量信息与符合正常通信的白名单规则进行比对;在所述通讯流量信息与所述符合正常通信的白名单规则比对失败时,将所述通讯流量信息中的IP地址添加至所述攻击者列表,并将所述通讯流量信息记录为攻击行为数据。
其中,白名单规则根据正常的通信数据来进行判断,正常的通信数据为未发生外部攻击行为的内部通信数据,不同的通信数据包括不同的源IP地址、目的IP地址、源端口、目的端口和协议类型,例如,白名单规则包括正常的通信数据A和通信数据B,通信数据A中源IP地址为M1、目的IP地址M3、源端口V1、目的端口V2和协议类型H1,通信数据B中IP地址为M2、目的IP地址M3、源端口V1、目的端口V2和协议类型H2,采集到通讯流量信息中通信数据C中IP地址为M2、目的IP地址M3、源端口V1、目的端口V2和协议类型H2,通信数据C与通信数据B相同,符合白名单规则;如果采集到通讯流量信息中通信数据D中IP地址为M4、目的IP地址M3、源端口V1、目的端口V2和协议类型H3,通信数据D与通信数据A和通信数据B均不相同,则通信数据D不符合白名单规则。
本实施例中,通过将通讯流量信息与白名单规则比对,能够避免正常的蜜罐***内部的通信被误判为攻击行为数据,保证了蜜罐***对攻击行为判断的准确性,并且在通讯流量信息不符合白名单规则时,将通讯流量信息中的IP地址添加至所述攻击者列表,能够不断丰富攻击者列表。
在其中一个实施例中,在所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表中的IP地址进行比对之前,包括:断开所述蜜罐***的外部网络连接,并运行蜜罐***中真实工控设备、虚拟工控设备和上位机;所述流量监听设备监听预设时间内的所述蜜罐***的内部通讯流量信息;所述流量监听设备根据所述内部通讯流量信息去除重复流量,生成白名单规则。
具体的,蜜罐***断开与外部网络连接后,运行指定时间T,记录内部通讯流量信息,根据<源IP地址、目的IP地址、源端口、目的端口、协议类型>去除重复流量,生成白名单规则,保存至白名单规则库中。
本实施例中,通过对内部通讯流量信息去除重复的流量,生成白名单规则,能够减少白名单规则库中的数据量,为后续白名单规则比对提高了效率。
在一个实施例中,如图3所示,所述步骤120包括:S121,流量监听设备监听所述蜜罐***的通讯流量信息;S122,判断所述通讯流量信息中的IP地址是否存在于预先收集的攻击者列表的IP地址中,如果存在进入步骤S123,如果不存在进入步骤S124;S123,将所述通讯流量信息记录为攻击者行为数据;S124,判断所述通讯流量信息是否符合白名单规则,如果符合进入步骤S121,如果不符合进入步骤S123。
上述实施例中,工业控制***由DCS、PLC等控制设备和温度、压力等传感器以及上位主机构成,对工业生产过程进行监视控制。蜜罐***通过布置作为诱饵的设备,对攻击方进行欺骗,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁。Docker是一款开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的Docker应用中,可以实现快速部署。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种蜜罐***的攻击数据获取装置,包括:运行模块210和监听模块220,其中:
运行模块210,用于运行蜜罐***中真实工控设备、虚拟工控设备和上位机;其中,所述上位机用于向所述真实工控设备和所述虚拟工控设备发送控制指令和读取状态数据。
监听模块220,用于流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
在其中一个实施例中,所述蜜罐***的攻击数据获取装置,还包括:控制指令发送模块,用于所述上位机向所述真实工控设备发送所述控制指令;控制结果获取模块,用于所述真实工控设备根据所述控制指令运行,生成所述真实工控设备的状态数据,并将所述状态数据发送至所述上位机。
在其中一个实施例中,所述蜜罐***的攻击数据获取装置,还包括:控制指令发送模块,用于所述上位机向所述虚拟工控设备发送所述控制指令;状态数据生成模块,用于所述虚拟工控设备根据所述控制指令,通过预设的数据生成规则生成所述虚拟工控设备的状态数据,并将所述状态数据发送至所述上位机。
在其中一个实施例中,所述监听模块220包括:IP地址比对单元,用于所述流量监听设备监听所述蜜罐***的通讯流量信息,并将所述通讯流量信息中的IP地址与预先收集的攻击者列表中的IP地址进行比对;攻击行为数据记录单元,用于在所述IP地址与所述预先收集的攻击者列表的IP地址对比成功时,将所述通讯流量信息记录为攻击行为数据。
在其中一个实施例中,所述监听模块220还包括:规则比对单元,用于在所述IP地址与所述预先收集的攻击者列表的IP地址对比失败时,将所述通讯流量信息与符合正常通信的白名单规则进行比对;所述攻击行为数据记录单元,还用于在所述通讯流量信息与所述符合正常通信的白名单规则比对失败时,将所述通讯流量信息中的IP地址添加至所述攻击者列表,并将所述通讯流量信息记录为攻击行为数据。
在其中一个实施例中,所述监听模块220还包括:运行单元,用于断开所述蜜罐***的外部网络连接,并运行蜜罐***中真实工控设备、虚拟工控设备和上位机;监听单元,用于所述流量监听设备监听预设时间内的所述蜜罐***的内部通讯流量信息;白名单规则生成单元,用于所述流量监听设备根据所述内部通讯流量信息去除重复流量,生成白名单规则。
关于蜜罐***的攻击数据获取装置的具体限定可以参见上文中对于蜜罐***的攻击数据获取方法的限定,在此不再赘述。上述蜜罐***的攻击数据获取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于攻击者列表和白名单规则数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种蜜罐***的攻击数据获取方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
运行蜜罐***中真实工控设备、虚拟工控设备和上位机;其中,所述上位机用于向所述真实工控设备和所述虚拟工控设备发送控制指令和读取状态数据;
流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述上位机向所述真实工控设备发送所述控制指令;所述真实工控设备根据所述控制指令运行,生成所述真实工控设备的状态数据,并将所述状态数据发送至所述上位机。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述上位机向所述虚拟工控设备发送所述控制指令;所述虚拟工控设备根据所述控制指令,通过预设的数据生成规则生成所述虚拟工控设备的状态数据,并将所述状态数据发送至所述上位机。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
运行蜜罐***中真实工控设备、虚拟工控设备和上位机;其中,所述上位机用于向所述真实工控设备和所述虚拟工控设备发送控制指令和读取状态数据;
流量监听设备监听所述蜜罐***的通讯流量信息,分析并记录所述通讯流量信息中的攻击行为数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述上位机向所述真实工控设备发送所述控制指令;所述真实工控设备根据所述控制指令运行,生成所述真实工控设备的状态数据,并将所述状态数据发送至所述上位机。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述上位机向所述虚拟工控设备发送所述控制指令;所述虚拟工控设备根据所述控制指令,通过预设的数据生成规则生成所述虚拟工控设备的状态数据,并将所述状态数据发送至所述上位机。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。