CN116527303A - 基于标记流量对比的工控设备信息提取方法及装置 - Google Patents

基于标记流量对比的工控设备信息提取方法及装置 Download PDF

Info

Publication number
CN116527303A
CN116527303A CN202310174766.0A CN202310174766A CN116527303A CN 116527303 A CN116527303 A CN 116527303A CN 202310174766 A CN202310174766 A CN 202310174766A CN 116527303 A CN116527303 A CN 116527303A
Authority
CN
China
Prior art keywords
field
information
flow
industrial control
session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310174766.0A
Other languages
English (en)
Other versions
CN116527303B (zh
Inventor
孟捷
邓瑞龙
朱恒晔
车欣
刘淳
程鹏
陈积明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202310174766.0A priority Critical patent/CN116527303B/zh
Publication of CN116527303A publication Critical patent/CN116527303A/zh
Application granted granted Critical
Publication of CN116527303B publication Critical patent/CN116527303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于标记流量对比的工控设备信息提取方法及装置。针对可通过流量通信获取的工控设备信息,首先根据需求和公开资料确定目标信息及所包含的信息项。获取工控设备在不同信息项下与上位机软件建立连接的通信流量,并为流量标记所对应的信息项。比较不同信息项对应的流量并定位变化字段。基于纵向对比和字段特征从变化字段中去除干扰字段,以获得反映工控设备信息的特征字段。将特征字段偏移,获取特征字段的请求,特征字段与目标信息之间的映射关系以及获取特征字段所需要的会话字段信息封装成指纹。根据指纹向目标设备发送请求,并从响应中解析信息字段含义来提取工控设备信息。

Description

基于标记流量对比的工控设备信息提取方法及装置
技术领域
本发明属于工控设备安全领域,尤其涉及基于工控协议和设备功能,针对各类工控设备的安全信息提取方法、装置。
背景技术
随着工业物联网的快速发展,原本处于封闭环境中的工业控制器、通信模块、SCADA系统等工控设备逐渐对外开放,暴露在网络空间中。操作者可以通过互联网远程监控、维护工控设备。但是网络化也使得工控设备面临诸多网络安全威胁,攻击者可以通过互联网快速找到合适的攻击目标,对工控设备发动修改状态、篡改配置、窃取机密信息等攻击,对关键基础设施造成严重威胁。设备使用者、安全研究员和设备供应商等需要实时采集工控设备的安全信息,以了解设备在网络空间中的安全状况。
传统的工控设备信息提取工具,如NMAP,PLCScan,ModScan以及各类设备搜索引擎可以通过向工控设备发送特定请求,从其响应中获取相关信息。但是他们仅能够提取明文传输或者弱加密的基本信息如设备名称,固件版本等。由于缺少对工控设备功能和协议的深入解析,现有工具无法获取和工控设备安全密切相关的运行状态、保护级别等二进制信息。这些信息以二进制的形式存在于在工控设备的响应信息中,通过同一个字段的不同值来表示设备某一项安全信息,如图7所示。
若向工控设备发送特定请求,以从响应中获取运行状态、保护级别等安全信息,则需要对工控协议进行解析,以定位代表安全信息的字段的位置。大部分工控设备使用私有二进制协议,协议字段的结构和语义不公开,解析非常困难;同时不同工控设备所使用的协议不同,传统的人工分析方法耗时长,准确率低,无法广泛应用于多种工控设备中。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于标记流量对比的工控设备信息提取方法及装置,通过比较在不同配置下获取的流量来自动定位与安全信息相关的信息字段,进而生成获取安全信息的指纹,用于工控设备信息提取。
本发明的目的是通过以下技术方案实现的:
根据本说明书的第一方面,提供一种基于标记流量对比的工控设备信息提取方法,该方法包括如下步骤:
步骤一,整理工控设备信息,依据工控设备功能特点整理目标信息所包含的所有信息项;
步骤二,采集工控设备在不同配置下的交互流量,形成流量集合并为流量集合标注对应的设备信息项;
步骤三,比较不同流量集合中的流量文件,提取每次比较中的变化字段并进行汇总;
步骤四,从变化字段中利用字段特征和纵向对比过滤干扰字段;
步骤五,合并剩余变化字段以生成特征字段,整合特征字段的各项信息,形成指纹;
步骤六,根据指纹从工控设备处获取目标信息。
进一步地,所述步骤一中,根据需求分析工控设备信息,如设备运行状态,保护级别等;进一步分析信息所包含的所有信息项,比如运行状态的信息项包括“运行”,“停止”等;随后寻找信息项所对应的设备状态及修改设备状态的操作,该操作主要在上位机软件上完成,如可通过“点击上位机软件中的‘保护’按钮修改设备保护级别”的操作将设备处在“访问控制开启”的状态中,此时设备的“保护级别”这一信息的信息项是“访问控制开启”;将信息,信息项,相关操作分别标记为I,T和C,其中T=[T1,T2,…Tn],n为目标信息的信息项个数。
进一步地,所述步骤二中,采集流量过程包括如下步骤:
2.1根据操作C,将工控设备的目标信息设定为第一信息项T1
2.2控制上位机软件与工控设备建立连接,使用Wireshark记录过程中产生的交互流量将其保存为流量文件p1,文件格式为pcap;
2.3重复步骤2.2,共采集m个流量文件(p1,p2,…pm),其中m为用户预设的流量文件个数,形成流量集合
2.4重复步骤2.1-2.3,获得所有信息项的流量集合并为所有流量集合标注其对应的信息项;
2.5对所有流量集合中的流量文件进行预处理,包括:首先去除底层流量信息,仅保留应用层的负载数据payload;随后对流量文件进行裁剪,去掉多余的流量包,保证每个文件中的流量包数量均为a,a为用户预设的流量包个数;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送send和接收recv,序号表示流量包出现的时间顺序,以上位机软件为参考对象,如send1表示上位机软件向工控设备发送的第一个包;每个流量文件都被转换成NO:payload形式的负载字典d;信息项Ti对应的负载字典集合Si为{di1,di2,…dim},其中第j个负载字典dij形式为dij:{NOij1:payloadij1,NOij2:payloadij2,...NOija:payloadija}。
进一步地,所述步骤三中,比较不同流量集合中的流量文件,提取每次比较中的变化字段并进行汇总,步骤如下:
3.1从信息项集合T中选取两个信息项Yi和Tj,并提取其对应的负载字典集合Si和Sj
3.2分别从Si和Sj中选择一对未比较过的负载字典dik和djt,组成比较对(dik,djt),其中k与t的取值范围均为[1,m],共可形成m×m个比较对;
3.3对于比较对(dik,djt),定义负载偏移字典Fk,t,其形式为{NO1:[],…NOa:[]};逐次比较dik与djt中第r个标识NOr对应的负载数据payloadikr和payloadjtr的每一个字节,r的初始值设定为1;若payloadikr和payloadjtr的第s个字节不同,则称该字节为变化字段,并将该变化字段在payloadjtr中的位置,即s放入Fk,y的NOr中;判断r是否等于每个流量文件包含的流量包个数a,若相等则去除负载偏移字典Fk,t中未被放入变化字段的NO,并转至步骤3.4,否则r+1并继续步骤3.3;
3.4判断所有比较对是否均完成比较,若是则跳转至步骤3.5,否则跳转至步骤3.2;
3.5汇总所有负载偏移字典Fk,t,整合成变化字段集合Fij并统计每个NO中所有偏移出现的次数,整理成{NOr:{offsetr1:numr1,offsetr2:numr2…},...}的形式,其中offsetr1表示NOr流量包中第一个变化字段所在的位置,numr1表示处于该位置的字段在m×m的比较中被识别为变化字段的次数;
3.6判断所有信息项组合是否均完成,若是则跳转至步骤3.7,否则选择下一组信息项组合并跳转至步骤3.1;
3.7取所有变化字段集合的交集作为最终变化字段集合。
进一步地,所述步骤四中,从变化字段中利用字段特征和纵向对比过滤干扰字段;所述干扰字段指与工控设备信息无关但仍存在于变化字段中的字段,包括动态字段和错序字段;所述动态字段是指字段值不受工控设备配置影响,自身会自动变化的字段,例如流量包的序号字段(其值比上一个流量包增加1)、会话字段(用以校验会话双方身份,每次建立新连接时重新生成)、时间戳等,这些动态字段会存在于变化字段中,干扰寻找反映目标信息的特征字段,因此需要被去除,去除方法为纵向对比,步骤如下:
4.1从信息项集合T中选取一个信息项Ti,并提取其对应的负载字典集合Si
4.2从Si中选择一对未比较过的负载字典dik和dit,组成比较对(dik,dit),共可形成C(m,2)个比较对,其中C表示组合数运算;
4.3对于比较对(dik,dit),定义负载偏移字典Fk,t,其形式为{NO1:[],…NOa:[]};逐次比较dik与dit中第r个标识NOr对应的负载数据payloadikr和payloaditr的每一个字节,r的初始值设定为1;若payloadikr和payloaditr的第s个字节不同,则称该字节为动态字段,并将该动态字段在payloaditr中的位置,即s放入Fk,t的NOr中;判断r是否等于每个流量文件包含的流量包个数a,若相等则去除负载偏移字典Fk,t中未被放入动态字段的NO,并转至步骤4.4,否则r+1并继续步骤4.3;
4.4判断所有比较对是否均完成比较,若是则跳转至步骤4.5,否则跳转至步骤4.2;
4.5汇总所有负载偏移字典Fk,t,整合成动态字段集合Fi并统计每个NO中所有偏移出现的次数,整理成{NOr:{offsetr1:numr1,offsetr2:numr2…},...}的形式,其中offsetr1表示NOr流量包中第一个动态字段所在的位置,numr1表示处于该位置的字段在C(m,2)次的比较中被识别为动态字段的次数;
4.6对步骤4.5输出的字段进行进一步过滤,保留符合过滤条件的字段值,转至步骤4.7;所述过滤条件可设置为:numi>C(m,2)×a,其中a为0-1的可控参数,可根据需求设定,用于控制动态字段的准确性;
4.7判断所有信息项是否均完成,若是则跳转至步骤4.8,否则选择下一个信息项并跳转至步骤4.1;
4.8取所有动态字段集合的并集作为最终动态字段集合。
进一步地,所述步骤四中,所述动态字段中包含会话字段(部分工控设备具有反重放机制,通过与通信方协商会话字段,并在后续部分请求和响应中携带会话字段以校验双方身份;每次建立连接后会话字段会重新生成,并于本次会话中保持不变,因此会出现在动态字段中),可用于获取目标信息时绕过工控设备的反重放机制,需要从动态字段中识别出来。本步骤依据特征从动态字段中提取会话字段,所述特征如下:
特征1:包含会话字段的流量包中,发送包和接收包的数目相同;
特征2:会话字段在不同流量文件中保持不同,在同一流量文件中的流量包中保持一致;
特征3:会话字段不会出现在流量文件的第一个流量包中;
特征4:会话字段在流量包中的位置不变;
基于上述特征,提出如下指标判断动态字段是否为会话字段:
指标1:ratio比值为1,其定义如下:
其中NO表示包含该动态字段的流量包标识,num(NO)表示所有包含该动态字段的流量包的个数;
指标2:该动态字段的值在流量文件内部中不变,不同流量文件中该字段的值不同;
指标3:该动态字段不存在于流量文件的第一个流量包中;
指标4:该动态字段在流量包中位置不变;
对所有动态字段依照上述指标进行判断,获得所有满足上述指标的动态字段识别为会话字段;记录用于获取包含该会话字段的响应流量包的请求session_request,会话字段在响应流量包中的位置response_location,以及会话字段在其他请求中的位置request_location。在采集目标信息时,将通过发送session_request向目标设备索要会话字段,根据response_location从目标设备的响应中提取会话字段。在发送特定请求时,根据request_location用会话字段替换请求中相应位置的字节,以保证特定请求通过目标设备的反重放校验机制。
进一步地,所述步骤四中,需要从变化字段中去除错序字段,包括:首先识别顺序错乱的流量包,随后将所有位于错序包中的变化字段识别为错序字段并进行去除。可采用如下方法来排除错序包:
方法1:比较流量包的长度,因为具有相同功能的流量包具有相同的长度;
方法2:少数功能不同的流量包可能长度相同并绕过方法1的过滤,但由于功能不同,其内容会有很大差异;完成字段比较后,比较原始流量包中变化字段的比例;如果超过β,则流量包被认为是具有相同长度的错序包,γ为0-1的可控参数,用于控制筛选错序包的严格程度,可根据需求改变;
部分错序字段可以通过上述方法的识别,但仍有部分错序字段长度较短,内容差异不大,因此对剩余字段进行进一步过滤:由于错序包是偶然发生的,因此步骤4.6中产生的变化次数num会很低,所有num值低于γ的字段被认为是错序字段,γ为0-1的可控参数,用于控制筛选错序包的严格程度,可根据需求改变;从变化字段中删除错序字段,将剩余字段整合,去除重复字段后生成特征字段。
进一步地,所述步骤五中,生成目标信息指纹时,将特征字段在流量包中的偏移位置"location"、获取该流量包的请求"request"、以及特征字段值value和目标信息的信息项T之间的对应关系进行整合,与会话字段的相关信息"session"共同形成用以获取目标信息的指纹;所述会话字段的相关信息"session"包括:"session_request"、"response_location"、"request_location";指纹形式为:
进一步地,所述步骤六中,从工控设备处获取目标信息,包括建立连接、获取会话字段、发送请求、映射信息项四个步骤,具体为:
6.1与工控设备建立TCP连接,转至步骤6.2;
6.2发送获取会话字段的请求"session_request",并接收目标工控设备发送的响应,根据指纹中的"response_location"截取响应信息中的相应字节作为会话字段,转至步骤6.3;
6.3根据指纹中的"request_location",将指纹中"request"的相应字节替换成会话字段,以通过工控设备的反重放校验,并将"request"发送给目标工控设备,转至步骤6.4;
6.4获取目标工控设备的响应,根据指纹中的"location"截取响应中的相应字节,并根据指纹中的"map"信息以及字节值得到当前目标信息所处的信息项。
根据本说明书的第二方面,提供一种基于标记流量对比的工控设备信息提取装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现如第一方面所述的基于标记流量对比的工控设备信息提取方法。
本发明的有益效果是:
针对现有工控设备信息提取工具难以获取深层次安全信息的问题,本发明首先根据用户手册、设备说明书等公开资料确定关键目标信息,随后分析工控二进制私有协议,确定目标信息相关字段并生成提取信息所用的指纹。通过重放请求的方式从工控设备中获取响应,从响应中提取关键目标信息。本发明拓宽了可提取的工控设备信息类别,为各类安全评估工具提供了深层次的安全信息,为大规模的工控设备深度安全评估安全提供了可能性。
针对现有工控协议解析技术无法准确识别字段语义的问题,本发明提出了基于被标记流量的字段比较方法。通过控制变量的方式获取与目标信息密切相关的流量比较对,并逐个比较两类流量的字段以定位与目标信息相关的变化字段,过滤掉干扰项后,确定能够反应目标信息的特征字段。与传统的基于流量出发推测字段语义的协议分析方法不同,该发明以语义信息为出发点,获取包含语义的流量,并在流量中逐步筛选能够反应语义信息的字段,最终将语义和字段紧密结合。本发明为私有二进制协议分析提供了新的研究思路,可进一步将该方法拓展至其他二进制协议分析中。
针对比较字段中存在大量干扰项的问题,本发明提出了纵向比较和特征过滤的方法。通过拓展比较方法和改变比较变量过滤出动态字段。随后根据工控设备特点总结错序字段和会话字段特征,并将其从变化字段和动态字段中识别出来。该方法具有良好的拓展性,不局限于某个型号或某类厂商的工控设备,适合于各类工控设备协议分析中出现的干扰项。
附图说明
图1为本申请实施例提供的工控设备信息提取方法工作流程图;
图2为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中获取工控设备目标信息流程图;
图3为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中获取流量负载字典流程图;
图4为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中获取变化字段流程图;
图5为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中去除干扰字段流程图;
图6为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中获取变化字段的示例说明图;
图7为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中传统工具可提取的基本信息、传统工具难以提取的二进制深层次信息的比较示意图;
图8为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中特征字段以及各干扰字段的示例说明图;
图9为本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法中根据指纹从工控设备提取目标信息流程图。
图10为本申请实施例提供的一种基于标记流量对比的工控设备信息提取装置结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法,运行环境为Intel-Windows架构的PC机,其硬件的主频2.5GHz及以上的Core八核CPU的PC机,内存≥8GB,硬盘2TGB,运行Windows 10操作系统,可以应用于对工控设备进行工业协议逆向分析、工控协议漏洞检测和工控设备安全测试场景中,所述工控设备覆盖主流厂商的工业互联网现场设备、无线接入设备、边缘终端设备、工业通信设备和安全防护设备等。
本申请实施例提供的一种基于标记流量对比的工控设备信息提取方法,如图1所示,包括以下步骤。
步骤一,整理工控设备信息项,依据工控设备功能特点整理目标信息所包含的所有信息项。
如图2所示,步骤一开始于步骤S101:根据工控设备用户手册、上位机帮助手册等公开研究资料,结合实际工控设备安全防护需求,确定所关注的目标设备信息。随后转至S102。
步骤S102中,根据目标设备信息,整理每个设备信息所包含的信息项。比如运行状态的信息项包括“运行”,“停止”等。随后转至S103。
步骤S103中,根据目标信息和相应信息项,结合工控设备和上位机软件,确定设定信息项所需的操作。如可通过“点击上位机软件中的‘保护’按钮修改设备保护级别”的操作将设备处在“访问控制开启”的状态中,此时设备的“保护级别”这一信息的信息项是“访问控制开启”。随后转至S104。
步骤S104中,将设备信息、信息项、相应操作进行整合,形成数据集。例如,对于某目标工控设备的数据集可表示为:
{
I1:运行状态:
C:“点击上位机软件设置按钮-点击运行状态-点击运行或停止”
T:{
T1:“run”,
T2:“stop”,
}
I2:访问控制保护:
C:“右键上位机软件中‘项目类别’按钮-点击‘安全’按钮-点击‘程序保护’-点击‘设置密码’/‘清除密码”
T:{
T1:“启用”,
T2:“未启用”,
}
步骤二,采集工控设备在不同配置下的交互流量,形成流量集合并为流量集合标注相对应的设备信息项。
如图3所示,步骤二开始于步骤S201,首先选择一项目标信息I1,比如某目标工控设备的运行状态。随后转到步骤S202。
步骤S202中,选取目标信息中的1个信息项T1,如‘run’。根据数据集中的‘操作’,通过上位机软件连接某目标工控设备并将其设置为选定信息项所对应的状态。转到步骤S203。
步骤S203中,断开上位机软件连接。转到步骤S204。
步骤S204中,用Wireshark监听上位机软件和工控设备间的通信。用上位机软件连接工控设备,将建立连接的流量保存记录下来,记作p1。转至步骤S205。
步骤S205中,判断是否采集了m个pcap文件,若不足则转至步骤S203,否则转至步骤S205。m为用户预设的流量文件个数。
步骤206中,将m个pcap文件(p1,p1,…pm)形成流量集合
步骤207中,判断目标信息的信息项的相应流量是否全部采集完。如果采集完则跳转至步骤S208,否则跳转至S202。
步骤S208中,判断所有目标信息是否处理完毕,若未处理完则转至步骤S201,否则转至步骤S209。
步骤S209中,对所有流量集合中的流量文件进行预处理,包括:首先去除底层流量信息,仅保留应用层的负载数据payload;随后对流量文件进行裁剪,保证每个文件中的流量包数量均为a,a为用户预设的流量包个数;然后根据流量包的方向和序号构建流量包标识NO;每个流量文件都被转换成NO:payload形式的负载字典d;信息项Ti对应的负载字典集合Si为{di1,di2,…dim},其中第j个负载字典dij形式为dij:{NOij1:payloadij1,NOij2:payloadij2,...NOija:payloadija}。
步骤S210中,为所有转换后的流量集合标注相应的目标项。
步骤三,比较不同流量集合中的流量文件,提取每次比较中的变化字段并进行汇总。
如图4所示,步骤三开始于步骤S301,选定两个信息项Ti和Tj,比如运行状态中的run和和stop,选择其对应的负载字典集合Srun和Sstop
步骤S302:从两个负载字典集合中分别选取1个未选择过的负载字典,drunk和dstopt,组成比较对(drunk,dstopt),其中k与t的取值范围均为[1,m],共可形成m×m个比较对。如在某目标工控设备的“run”,“stop”两组负载字典各有10个,标号分别为run1-run10和stop1-stop10。则共可形成100个比较对。转至步骤S303。
步骤S303:选取未处理的一个比较对,依次比较两个负载字典中序号相同的流量包,找到变化的字节。过程如图6所示。将变化字段的位置偏移存储在形式为{NO1:[],…NOa:[]}的负载偏移字典Frunk,stopt中。如Frun1,stop1={recv1:[3],recv2:[],recv3:[3,26],…,recva:[3]},同时去除未被放入变化字段的NO,如Frun1,stopt1中的recv2等,转至步骤S304。
步骤S304:判断所有比较对是否比较完成,若未完成则转至步骤S303,否则转至步骤S305。
步骤S305:汇总所有负载偏移字典Frunk,stopt,整合成变化字段集合Frun,stop并统计每个变化字段的出现次数num,形成{NOr:{offsetr1:numr1,offsetr2:numr2…},...}的形式。如Frun,stop={recv3:{3:100},recv3:{3:100,26:98},…,recva:[3:100]},转至步骤S306。
步骤S306:判断所有信息项组合是否比较完毕,若未完毕则转至步骤S301,否则转至步骤S307。
步骤S307:取所有信息项变化字段集合的交集作为最终变化字段集合。
步骤四,从变化字段中利用字段特征和纵向对比过滤干扰字段。
所述干扰字段指与工控设备信息无关但仍存在于变化字段中的字段,包括动态字段和错序字段;所述动态字段是指字段值不受工控设备配置影响,自身会自动变化的字段,例如流量包的序号字段(其值比上一个流量包增加1)、会话字段(用以校验会话双方身份,每次建立新连接时重新生成)、时间戳等,这些动态字段会存在于变化字段中,干扰寻找反映目标信息的特征字段,因此需要被去除,去除方法为纵向对比;错序字段是由于交互流量包顺序错乱,导致在比较时产生大量与特征字段无关的字段,其部分属性与特征字段差异明显,可通过特定指标将错序字段从变化字段中过滤掉。需注意的是,动态字段中包含会话字段(部分工控设备具有反重放机制,通过与通信方协商会话字段,并在后续部分请求和响应中携带会话字段以校验双方身份;每次建立连接后会话字段会重新生成,并于本次会话中保持不变,因此会出现在动态字段中),可用于获取目标信息时绕过工控设备的反重放机制,需要从动态字段中识别出来,以在获取设备目标信息时使用。干扰字段与特征字段在流量中的分布示例如图8所示。如图5所示,步骤四开始于步骤S401。从信息项集合T中选取一个未被选择过的信息项Ti,比如运行状态中的run,提取其对应的负载字典集合Srun。转至步骤S402。
步骤S402:从Srun中选择一对未比较过的负载字典drunk和drunt,组成比较对(drunk,drunt),共可形成C(m,2)个比较对,,其中C为组合数计算。如在某目标工控设备的“run”负载字典有10个,标号分别为run1-run10。则共可形成形式为(runi,runj)的C(10,2)共45个比较对。转至步骤S403。
步骤S403:选取一个比较对,依次比较两个负载字典中序号相同的流量包,找到变化的字节,将其称为动态字段。将动态字段的位置偏移存储在负载偏移字典{NO1:[],…NOa:[]}中。如Frun1,run2={recv1:[3],recv2:[0],recv3:[3,9],…,recva:[3]},同时去除未被放入动态字段的NO,如Frun1,run2中的recv2等,转至步骤S404。
步骤S404:判断所有比较对是否比较完成,若未完成则转至步骤S402,否则转至步骤S405。
步骤S405:汇总所有负载偏移字典fRunk,runt,整合成动态字段集合Frun并统计每个动态字段的出现次数num,形成{NOr:{offsetr1:numr1,offsetr2:numr2…},...}形式的负载偏移字典。如Frun={recv1:{3:100},recv3:{3:100,9:10},recva:{3:100}},转至步骤406。
步骤406:对步骤405输出的字段进行进一步过滤,保留符合过滤条件的字段值,转至步骤S407;所述过滤条件可设置为:numi>C(m,2)×α,其中α为0-1的可控参数,可根据需求设定,用于控制动态字段的准确性。如本例中,若α取0.3,则过滤条件为numi>13.5,过滤后动态字段为Frun={recv1:[3],recv3:[3,6]},recva:[3]。
步骤S407:判断目标信息的信息项是否均比较完毕,若没有则转至步骤S401,否则转至S408。
步骤S408:取所有信息项动态字段集合的并集作为最终动态字段集合。
步骤S409:基于特征从动态字段中筛选会话字段。并记录会话字段信息。转至步骤S410。
步骤S410:从变化字段中去除所有动态字段。转至步骤S411。
步骤S411:根据错序包特征从剩余变化字段中去除错序字段。
步骤五:生成目标信息指纹时,将特征字段在流量包中的偏移位置"location"、获取该流量包的请求"request"、以及特征字段值value和目标信息的信息项T之间的对应关系"map"进行整合,与会话字段的相关信息"session"共同形成用以获取目标信息的指纹;所述会话字段的相关信息"session"包括:获取会话字段的请求"session_request"、会话字段在响应流量包中的位置"response_location"、会话字段在其他请求中的位置"request_location"。指纹形式为:
/>
步骤六:从工控设备处获取目标信息。包括建立连接、获取会话字段、发送请求、映射信息项四个步骤,如图9所示,具体为:
步骤S601:与工控设备建立TCP连接,转至步骤S602。
步骤S602:发送获取会话字段的请求"session_request",并接收目标工控设备发送的响应,根据指纹中的"response_location"截取响应信息中的相应字节作为会话字段,转至步骤S603。
步骤S603:根据指纹中的"request_location",将指纹中"request"的相应字节替换成会话字段,以通过工控设备的反重放校验,并将"request"发送给目标工控设备,转至步骤S604。
步骤S604:获取目标工控设备的响应,根据指纹中的"location"截取响应中的相应字节,并根据指纹中的"map"信息以及字节值得到当前目标信息所处的信息项。
参见图10,本发明实施例提供一种基于标记流量对比的工控设备信息提取装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现上述实施例中的基于标记流量对比的工控设备信息提取方法。
本发明基于标记流量对比的工控设备信息提取装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图10所示,为本发明基于标记流量对比的工控设备信息提取装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图10所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于标记流量对比的工控设备信息提取方法。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (10)

1.一种基于标记流量对比的工控设备信息提取方法,其特征在于,包括如下步骤:
步骤一,整理工控设备信息,依据工控设备功能特点整理目标信息所包含的所有信息项;
步骤二,采集工控设备在不同配置下的交互流量,形成流量集合并为流量集合标注对应的设备信息项;
步骤三,比较不同流量集合中的流量文件,提取每次比较中的变化字段并进行汇总;
步骤四,从变化字段中利用字段特征和纵向对比过滤干扰字段;
步骤五,合并剩余变化字段以生成特征字段,整合特征字段的各项信息,形成指纹;
步骤六,根据指纹从目标工控设备处获取目标信息。
2.根据权利要求1所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤一中,根据需求分析工控设备信息,进一步分析信息所包含的所有信息项,寻找信息项所对应的设备状态及修改设备状态的操作;将信息,信息项,相关操作分别标记为I,T和C,其中T=[T1,T2,...Tn],n为目标信息的信息项个数。
3.根据权利要求2所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤二中,采集流量过程包括如下步骤:
2.1根据操作C,将工控设备的目标信息设定为第一信息项T1
2.2控制上位机软件与工控设备建立连接,记录过程中产生的交互流量将其保存为流量文件p1
2.3重复步骤2.2,共采集m个流量文件(p1,p2,...pm),其中m为用户预设的流量文件个数,形成流量集合
2.4重复步骤2.1-2.3,获得所有信息项的流量集合并为所有流量集合标注其对应的信息项;
2.5对所有流量集合中的流量文件进行预处理,包括:去除底层流量信息,仅保留应用层的负载数据payload;对流量文件进行裁剪,保证每个文件中的流量包数量均为a,a为用户预设的流量包个数;根据流量包的方向和序号构建流量包标识NO;每个流量文件都被转换成NO:payload形式的负载字典d;信息项Ti对应的负载字典集合Si为{di1,di2,...dim},其中第j个负载字典dij形式为dij:{NOij1:payloadij1,NOij2:payloadij2,...NOija:payloadija}。
4.根据权利要求3所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤三包括如下子步骤:
3.1从信息项集合T中选取两个信息项Ti和Tj,并提取其对应的负载字典集合Si和Sj
3.2分别从Si和Sj中选择一对未比较过的负载字典dik和djt,组成比较对(dik,djt),其中k与t的取值范围均为[1,m],共可形成m×m个比较对;
3.3对于比较对(dik,djt),定义负载偏移字典Fk,t,其形式为{NO1:[],...NOa:[]};逐次比较dik与djt中第r个标识NOr对应的负载数据payloadikr和payloadjtr的每一个字节,r的初始值设定为1;若payloadikr和payloadjtr的第s个字节不同,则称该字节为变化字段,并将该变化字段在payloadjtr中的位置,即s放入Fk,t的NOr中;判断r是否等于每个流量文件包含的流量包个数a,若相等则去除负载偏移字典Fk,t中未被放入变化字段的NO,并转至步骤3.4,否则r+1并继续步骤3.3;
3.4判断所有比较对是否均完成比较,若是则跳转至步骤3.5,否则跳转至步骤3.2;
3.5汇总所有负载偏移字典Fk,t,整合成变化字段集合Fij并统计每个NO中所有偏移出现的次数,整理成{NOr:{offsetr1:numr1,offsetr2:numr2...},...}的形式,其中offsetr1表示NOr流量包中第一个变化字段所在的位置,numr1表示处于该位置的字段在m×m的比较中被识别为变化字段的次数;
3.6判断所有信息项组合是否均完成,若是则跳转至步骤3.7,否则选择下一组信息项组合并跳转至步骤3.1;
3.7取所有变化字段集合的交集作为最终变化字段集合。
5.根据权利要求4所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤四中,去除干扰字段中动态字段的步骤如下:
4.1从信息项集合T中选取一个信息项Ti,并提取其对应的负载字典集合Si
4.2从Si中选择一对未比较过的负载字典dik和dit,组成比较对(dik,dit),共可形成C(m,2)个比较对,其中C表示组合数运算;
4.3对于比较对(dik,dit),定义负载偏移字典Fk,t,其形式为{NO1:[],...NOa:[]};逐次比较dik与dit中第r个标识NOr对应的负载数据payloadikr和payloaditr的每一个字节,r的初始值设定为1;若payloadikr和payloaditr的第s个字节不同,则称该字节为动态字段,并将该动态字段在payloaditr中的位置,即s放入Fk,t的NOr中;判断r是否等于每个流量文件包含的流量包个数a,若相等则去除负载偏移字典Fk,t中未被放入动态字段的NO,并转至步骤4.4,否则r+1并继续步骤4.3;
4.4判断所有比较对是否均完成比较,若是则跳转至步骤4.5,否则跳转至步骤4.2;
4.5汇总所有负载偏移字典Fk,t,整合成动态字段集合Fi并统计每个NO中所有偏移出现的次数,整理成{NOr:{offsetr1:numr1,offsetr2:numr2...},...}的形式,其中offsetr1表示NOr流量包中第一个动态字段所在的位置,numr1表示处于该位置的字段在C(m,2)次的比较中被识别为动态字段的次数;
4.6对步骤4.5输出的字段进行进一步过滤,保留符合过滤条件的字段值,转至步骤4.7;所述过滤条件可设置为:numi>C(m,2)×α,其中α为0-1的可控参数,可根据需求设定,用于控制动态字段的准确性;
4.7判断所有信息项是否均完成,若是则跳转至步骤4.8,否则选择下一个信息项并跳转至步骤4.1;
4.8取所有动态字段集合的并集作为最终动态字段集合。
6.根据权利要求5所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤四中,依据特征从动态字段中提取会话字段,所述特征如下:
特征1:包含会话字段的流量包中,发送包和接收包的数目相同;
特征2:会话字段在不同流量文件中保持不同,在同一流量文件中的流量包中保持一致;
特征3:会话字段不会出现在流量文件的第一个流量包中;
特征4:会话字段在流量包中的位置不变;
基于不同特征构建不同指标用于判断动态字段是否为会话字段,对所有动态字段依照上述指标进行判断,获得所有满足上述指标的动态字段识别为会话字段;记录用于获取包含该会话字段的响应流量包的请求session_request,会话字段在响应流量包中的位置response_location,以及会话字段在其他请求中的位置request_location;在采集目标信息时,将通过发送session_request向目标设备索要会话字段,根据response_location从目标设备的响应中提取会话字段;在发送特定请求时,根据request_location用会话字段替换请求中相应位置的字节,以保证特定请求通过目标设备的反重放校验机制。
7.根据权利要求5所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤四中,从变化字段中去除错序字段,包括:首先识别顺序错乱的流量包,随后将所有位于错序包中的变化字段识别为错序字段并进行去除,具体采用如下方法来排除错序包:
方法1:比较流量包的长度,因为具有相同功能的流量包具有相同的长度;
方法2:少数功能不同的流量包可能长度相同并绕过方法1的过滤,但由于功能不同,其内容会有很大差异;完成字段比较后,比较原始流量包中变化字段的比例,如果超过β,则流量包被认为是具有相同长度的错序包,β为0-1的可控参数,用于控制筛选错序包的严格程度,可根据需求改变;
部分错序字段可以通过上述方法的识别,但仍有部分错序字段长度较短,内容差异不大,因此对剩余字段进行进一步过滤:所有num值低于γ的字段被认为是错序字段,γ为0-1的可控参数,用于控制筛选错序包的严格程度,可根据需求改变;从变化字段中删除错序字段,将剩余字段整合,去除重复字段后生成特征字段。
8.根据权利要求1-7中任一项所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤五中,生成目标信息指纹时,将特征字段在流量包中的偏移位置"location"、获取该流量包的请求"request"、以及特征字段值value和目标信息的信息项T之间的对应关系"map"进行整合,与会话字段的相关信息"session"共同形成用以获取目标信息的指纹;所述会话字段的相关信息"session"包括:获取会话字段的请求"session_request"、会话字段在响应流量包中的位置"response_location"、会话字段在其他请求中的位置"request_location"。
9.根据权利要求8所述的基于标记流量对比的工控设备信息提取方法,其特征在于,所述步骤六中,从工控设备处获取目标信息,包括建立连接、获取会话字段、发送请求、映射信息项四个步骤,具体为:
6.1与工控设备建立TCP连接,转至步骤6.2;
6.2发送获取会话字段的请求"session_request",并接收目标工控设备发送的响应,根据指纹中的"response_location"截取响应信息中的相应字节作为会话字段,转至步骤6.3;
6.3根据指纹中的"request_location",将指纹中"request"的相应字节替换成会话字段,以通过工控设备的反重放校验,并将"request"发送给目标工控设备,转至步骤6.4;
6.4获取目标工控设备的响应,根据指纹中的"location"截取响应中的相应字节,并根据指纹中的"map"信息以及字节值得到当前目标信息所处的信息项。
10.一种基于标记流量对比的工控设备信息提取装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,用于实现如权利要求1-9中任一项所述的基于标记流量对比的工控设备信息提取方法。
CN202310174766.0A 2023-02-28 2023-02-28 基于标记流量对比的工控设备信息提取方法及装置 Active CN116527303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310174766.0A CN116527303B (zh) 2023-02-28 2023-02-28 基于标记流量对比的工控设备信息提取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310174766.0A CN116527303B (zh) 2023-02-28 2023-02-28 基于标记流量对比的工控设备信息提取方法及装置

Publications (2)

Publication Number Publication Date
CN116527303A true CN116527303A (zh) 2023-08-01
CN116527303B CN116527303B (zh) 2023-12-12

Family

ID=87394716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310174766.0A Active CN116527303B (zh) 2023-02-28 2023-02-28 基于标记流量对比的工控设备信息提取方法及装置

Country Status (1)

Country Link
CN (1) CN116527303B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281213A (zh) * 2013-04-18 2013-09-04 西安交通大学 一种网络流量内容提取和分析检索方法
CN109768887A (zh) * 2019-01-11 2019-05-17 四川大学 一种自动挖掘工控流量周期性特征的方法
CN110505111A (zh) * 2019-07-09 2019-11-26 杭州电子科技大学 基于流量重放的工控协议模糊测试方法
KR102139140B1 (ko) * 2020-04-27 2020-07-30 (주) 앤앤에스피 비공개 ics 프로토콜에 대한 태그 데이터의 프로파일링 시스템
CN112714047A (zh) * 2021-03-29 2021-04-27 北京网测科技有限公司 基于工控协议流量的测试方法、装置、设备及存储介质
CN112769796A (zh) * 2020-12-30 2021-05-07 华北电力大学 一种基于端侧边缘计算的云网端协同防御方法及系统
CN114553983A (zh) * 2022-03-03 2022-05-27 沈阳化工大学 一种基于深度学习高效工业控制协议解析方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281213A (zh) * 2013-04-18 2013-09-04 西安交通大学 一种网络流量内容提取和分析检索方法
CN109768887A (zh) * 2019-01-11 2019-05-17 四川大学 一种自动挖掘工控流量周期性特征的方法
CN110505111A (zh) * 2019-07-09 2019-11-26 杭州电子科技大学 基于流量重放的工控协议模糊测试方法
KR102139140B1 (ko) * 2020-04-27 2020-07-30 (주) 앤앤에스피 비공개 ics 프로토콜에 대한 태그 데이터의 프로파일링 시스템
CN112769796A (zh) * 2020-12-30 2021-05-07 华北电力大学 一种基于端侧边缘计算的云网端协同防御方法及系统
CN112714047A (zh) * 2021-03-29 2021-04-27 北京网测科技有限公司 基于工控协议流量的测试方法、装置、设备及存储介质
CN114553983A (zh) * 2022-03-03 2022-05-27 沈阳化工大学 一种基于深度学习高效工业控制协议解析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
程必成;刘仁辉;赵云飞;许凤凯;: "非标工业控制协议格式逆向方法研究", 电子技术应用, no. 04 *
赵贵成;程鹏;王文海;: "工控系统现场控制网络异常检测技术浅析", 信息技术与网络安全, no. 03 *

Also Published As

Publication number Publication date
CN116527303B (zh) 2023-12-12

Similar Documents

Publication Publication Date Title
Raghavan Digital forensic research: current state of the art
CN101751535B (zh) 通过应用程序数据访问分类进行的数据损失保护
CN107667370A (zh) 使用事件日志检测异常账户
CN107169361A (zh) 一种数据泄露的检测方法及系统
CN103748853A (zh) 用于对数据通信网络中的协议消息进行分类的方法和系统
CN105138709B (zh) 一种基于物理内存分析的远程取证系统
CN108334758A (zh) 一种用户越权行为的检测方法、装置及设备
Tsukerman Machine Learning for Cybersecurity Cookbook: Over 80 recipes on how to implement machine learning algorithms for building security systems using Python
CN106534146A (zh) 一种安全监测系统及方法
CN113111951B (zh) 数据处理方法以及装置
CN108055166A (zh) 一种嵌套的应用层协议的状态机提取系统及其提取方法
CN106528805A (zh) 基于用户的移动互联网恶意程序url智能分析挖掘方法
CN111049828B (zh) 网络攻击检测及响应方法及系统
CN116527303B (zh) 基于标记流量对比的工控设备信息提取方法及装置
CN117454376A (zh) 工业互联网数据安全检测响应与溯源方法及装置
Wurzenberger et al. Discovering insider threats from log data with high-performance bioinformatics tools
CN101562603A (zh) 一种通过回显解析telnet协议的方法及系统
CN116894018A (zh) 事件数据处理
CN116232696A (zh) 基于深度神经网络的加密流量分类方法
CN115766258A (zh) 一种基于因果关系图的多阶段攻击趋势预测方法、设备及存储介质
KR20100115451A (ko) 기업의 정보 유출을 방지하는 보안방법
CN111177737A (zh) 一种基于数据内容的数据加密方法以及相关装置
Lee et al. A method for extracting static fields in private protocol using entropy and statistical analysis
Chu CCNA Cyber Ops SECOPS–Certification Guide 210-255: Learn the skills to pass the 210-255 certification exam and become a competent SECOPS associate
Horan Open-Source Intelligence Investigations: Development and Application of Efficient Tools

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant