CN110868404B - 一种基于tcp/ip指纹的工控设备自动识别方法 - Google Patents

一种基于tcp/ip指纹的工控设备自动识别方法 Download PDF

Info

Publication number
CN110868404B
CN110868404B CN201911069824.3A CN201911069824A CN110868404B CN 110868404 B CN110868404 B CN 110868404B CN 201911069824 A CN201911069824 A CN 201911069824A CN 110868404 B CN110868404 B CN 110868404B
Authority
CN
China
Prior art keywords
tcp
equipment
classifier
subtype
industrial control
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.)
Active
Application number
CN201911069824.3A
Other languages
English (en)
Other versions
CN110868404A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201911069824.3A priority Critical patent/CN110868404B/zh
Publication of CN110868404A publication Critical patent/CN110868404A/zh
Application granted granted Critical
Publication of CN110868404B publication Critical patent/CN110868404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明提出一种基于TCP/IP指纹的工控设备自动识别方法,其特征在于,主要包括:步骤1,收集通讯端口特征;步骤2,提取TCP/IP头部特征;步骤3,设备指纹生成;步骤4,设备类型预测;步骤5,设备子类型预测。

Description

一种基于TCP/IP指纹的工控设备自动识别方法
技术领域
本发明涉及一种自动识别方法,尤其涉及一种基于TCP/IP指纹的工控设备 自动识别方法。
背景技术
工业控制网络“专网专用,物理隔离”的理念被逐渐打破。为了实现系统 间的协同和信息分享,越来越多的工业控制系统开始采用通用的以太网协议标 准进行通讯,甚至直接暴露于互联网之上,工业控制系统的固有漏洞和攻击面 与日俱增。在工业控制系统变得愈发开放、互联的同时,也将面临病毒、恶意 入侵等传统网络安全威胁。
保障工控系统安全的前提是知悉构成系统的各类设备的详情信息。工业控 制系统结构复杂,设备类型众多,由管理员手工维护各类设备信息是低效且不 安全的,难以保证设备信息的时效性和有效性。如果可以通过提取设备指纹对 系统中的设备进行识别,就能准确高效地获取管辖域内各类设备的详情信息。 通过建立工控设备指纹数据库,采用机器学习相关方法对设备指纹进行分类, 实现工控设备的自动识别,在降低系统维护成本的同时提升了系统管理的安全 化水平和风险预防能力。
工业控制网络中的设备类型和通讯协议和传统IT网络有着极大区别,因此 传统IT网络中的设备识别工具如p0f、Ettercap等不适用于工业控制网络。Nmap 可通过第三方脚本库的支持识别使用Modbus、S7、EtherNet/IP等工控协议的 设备,但是其探测方式依赖于大量特殊构造的工控协议探测报文,可能会侵扰 设备的正常运行。目前,专用于工业控制网络的设备识别工具包括:PLCScan 和GrassMarlin。前者探测方式与Nmap类似,且仅支持使用Modbus协议通讯 的设备;后者使用被动监听的方式提取设备指纹用以识别,但其指纹库只包含 部分特定工控协议的指纹(如Modbus、IEC104、DNP3等)。
现有的设备识别方案或是缺乏对工业控制设备的支持,或是缺乏通用可扩 展性。如果可以基于通用的TCP/IP协议栈提取设备特征构建指纹,通过机器学 习算法对指纹进行分类实现工控设备的自动化识别,就能有效地解决现有设备 识别方案的不足。
发明内容
针对现有技术存在的问题,本发明提出一种基于TCP/IP指纹的工控设备自 动识别方法,可支持工业控制设备,具有通用可扩展性。
一种基于TCP/IP指纹的工控设备自动识别方法,步骤包括,
步骤1,收集通讯端口特征;
步骤2,提取TCP/IP头部特征;
步骤3,设备指纹生成;
步骤4,设备类型预测;
步骤5,设备子类型预测。
进一步,所述步骤1中收集通讯端口特征基于被动监听设备通讯流量的方 式,具体方式为对所有设备的端口信息进行预处理,仅保留IANA分配的常用端 口和工控协议通讯端口,并通过基于随机森林的交叉验证式递归特征消除选出 分类贡献度最大的32个端口,然后通过One-Hot编码将其转化为一个32维向 量作为设备的通讯端口特征OP。
进一步,所述步骤2中所述提取的TCP/IP头部特征是从通过单步TCP SYN 扫描获取的设备响应报文中提取,所述提取的字段包括初始TTL,窗口大小WS, 最大报文长短长度MSS,窗口缩放因子WSC,TCP选项布局OL。
进一步,所述步骤3中设备指纹生成的具体方式为将提取到的设备通讯端 口特征和TCP/IP协议头部特征组合为设备指纹F=<iTTL,WS,MSS,WSC,OL, OP>,所述通讯端口特征是一个32维向量,所述TCP/IP头部特征iTTL、WS、MSS、WSC均是数值型字段,所述OL是字符串经过HASH处理映射为数字。
进一步,所述步骤4中设备类型预测的具体方式为将设备指纹F作为预训 练的设备类型分类器的输入,预测设备类型信息。
进一步,所述步骤5中设备子类型预测的具体方式为在确定设备类型之后, 选择对应的子类型分类器预测设备具体子类型信息,子类型分类器以设备指纹 作为输入,确定设备的具体子类型后设备识别流程结束。
进一步,所述设备类型分类器和子类型分类器均基于XGBoost构建,所述 XGBoost是Gradient Boosting算法的高效实现,通过迭代训练的方式不断的 在错误分类的样本中学习,将负梯度作为上一轮基分类器犯错的衡量指标,在 下一轮学习中通过拟合负梯度来纠正上一轮犯的错误,x表示样本实例,y表示 样本真实类别,Fm(x)表示前m次迭代得到的所有基分类器,hm(x)表示第m次迭 代生成的基分类器,在第m次迭代中,前m-1个基分类器都是固定的,即:
Fm(x)=Fm-1(x)+ρmhm(x)
其中学习率ρm的目标是第m步最小化损失函数
Figure BDA0002260603880000031
即:
Figure BDA0002260603880000032
本专利通过提取设备TCP/IP指纹,利用机器学习算法对设备指纹进行分类, 从而实现工控设备的自动化识别;本专利的算法在实验工控环境中和现有设备 识别工具Nmap和GrassMarlin进行过对比验证,验证结果表明本专利的算法的 识别率更高,能准确识别出实验环境中的所有工控设备。
本专利的算法在实验工控环境中和现有设备识别工具Nmap和GrassMarlin 进行过对比验证,验证结果表明本专利的算法的识别率更高,能准确识别出实 验环境中的所有工控设备。
附图说明
图1为本发明的整体框架图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实 施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提出一种基于TCP/IP指纹的工控设备自动识别方法。
工业设备主要包括五大类型:可编程逻辑控制器(PLC)、远程终端单元(RTU)、 网络通讯设备、人机接口(HMI)、SCADA服务器。本发明提出的设备自动识别本 质上是针对设备指纹的多分类任务,利用机器学习算法训练分类器,对设备进 行自动分类。根据输出的不同,分类器分为类型分类器和子类型分类器两大类, 所有分类器均以预处理后的设备指纹作为输入,输出分别对应设备的类型和子 类型标签。子类型分类器是在设备类型确定后,对设备进行更细粒度的识别。
为了获取训练分类器用的足够数据,首先利用Shodan搜索引擎收集暴露在 公网上的各类工控设备的指纹信息,设备指纹的特征组成将在下文详细介绍。 所有指纹样本经由预处理进行去重和筛选(过滤蜜罐设备),并通过专家手工标 注设备类型和子类型信息,最终形成一个包含19174个有效样本的工控设备指 纹数据集,作为分类器的训练/验证数据。
设备类型分类器和子类型分类器均基于XGBoost构建。XGBoost是GradientBoosting算法的高效实现,通过迭代训练的方式不断地在错误分类的样本中学 习,将负梯度作为上一轮基学习器犯错的衡量指标,在下一轮学习中通过拟合 负梯度来纠正上一轮犯的错误,降低犯错概率,以将多个弱分类器组合成一个 强分类器。令x表示样本实例,y表示样本真实类别,Fm(x)表示前m次迭代得 到的所有基分类器,hm(x)表示第m次迭代生成的基分类器。在第m次迭代中, 前m-1个基分类器都是固定的,即:
Fm(x)=Fm-1(x)+ρmhm(x)
其中,学习率ρm的目标是在第m步最小化损失函数
Figure BDA0002260603880000041
即:
Figure BDA0002260603880000051
本发明训练类型分类器和子类型分类器的策略是相同的。首先,以Shodan 数据集的75%样本作为训练集,剩余25%样本作为测试集。为了避免数据分布不 平衡的影响和过拟合问题,本发明采用“One-VS-Rest”结合10折交叉验证的 策略训练分类器,即对每个类别建立一个二项分类器,针对该类别和剩余类别 进行分类。最终通过依次对每个二项分类器进行评估,取置信最高的二项分类 器的输出作为预测类别标签。
本发明基于10折交叉验证的网格搜索方法进行分类器参数调优。对于设备 类型分类器,最终优化后的学习率为0.05,决策树的数量为1000,最大深度设 置为19。最终训练好的设备类型分类器在测试集上达到95.76%的平均F值。此 外,针对PLC和网络设备的子类型分类器在测试集上达到的平均F值分别为 98.53%和96.75%。
工控设备识别流程框图如图1所示,主要包括:通讯端口特征收集、TCP/IP 头部特征提取、设备指纹生成、设备类型预测、设备子类型预测。本发明首先 通过被动监听通讯流量方式收集设备开放端口集合,然后利用单步TCP SYN扫 描提取设备TCP/IP头部特征,进而构建设备指纹。最终通过预训练的分类器依 次预测设备的类型和子类型,实现设备的自动化识别。
步骤1:为了降低对工控设备的侵扰,本发明基于被动监听设备通讯流量的 方式收集设备开放端口集合。本发明对Shodan数据集中所有设备的端口信息进 行预处理,仅保留IANA分配的常用端口和工控协议通讯端口(如:102、502、 2404等),并通过基于随机森林的交叉验证式递归特征消除(RFECV)选出分类贡 献度最大的32个端口。根据选定的端口,在收集到设备的开放端口集合后,通 过One-Hot编码将其转化为一个32维向量作为设备的通讯端口特征OP。
步骤2:考虑到不同类型设备在TCP/IP协议栈实现上的差异性,本发明选 取以下TCP/IP协议头部的字段作为特征:
初始TTL(iTTL):IPv4包头中的初始生存时间值,该字段指定IP包被路由 器丢弃之前允许通过的最大网段数量。
窗口大小(WS):TCP窗口大小字段,表示接收方的缓冲区大小,发送方可以 根据这个值的大小来调节发送的数据量,从而起到流控的目的。
最大报文段长度(MSS):TCP协议定义的一个选项,用于在TCP连接建立时, 收发双方协商通信时每一个报文段所能承载的最大数据长度。
窗口缩放因子(WSC):TCP协议选项,用于增加TCP接收窗口大小,使其超 过65536字节。
TCP选项布局(OL):TCP包头中使用的所有选项以及选项的出现次序信息。
以上TCP/IP头部特征从通过单步TCP SYN扫描获取的设备响应报文中提取。
步骤3:将提取到的设备通讯端口特征(OP)和TCP/IP协议头部特征组合为 设备指纹F:F=<iTTL,WS,MSS,WSC,OL,OP>。端口特征OP是一个32维向 量,TCP/IP头部特征iTTL、WS、MSS、WSC均是数值型字段,而OL是字符串, 需要先经过HASH处理映射为数字。最终组合之后的指纹F是一个37维向量。
步骤4:将设备指纹F作为预训练的设备类型分类器的输入,预测设备类型信 息。
步骤5:在确定设备类型之后,选择对应的子类型分类器,预测设备具体 子类型信息。子类型分类器仍以设备指纹F作为输入。确定设备的具体子类型 后,设备识别流程结束。
本专利通过提取设备TCP/IP指纹,利用机器学习算法对设备指纹进行分类, 从而实现工控设备的自动化识别。本专利的算法在实验工控环境中和现有设备 识别工具Nmap和GrassMarlin进行过对比验证,验证结果表明本专利的算法的 识别率更高,能准确识别出实验环境中的所有工控设备,对比验证结果如表1 所示。
与其他现有的设备识别方法相比,本专利所涉及的方法面向工业控制系统 设计,原生支持对工控设备的识别,并且直接从TCP、IP协议报文中提取特征 字段构建设备指纹,不依赖于特定应用层协议,因此具备较高的通用性和可扩 展性。同时,在保证识别精度的前提下,考虑到工业控制环境对稳定性的要求, 本发明采用被动监听流量加单步TCP SYN扫描的方式收集设备指纹特征,这种 混合型方式对工控设备的侵扰性极低,在实际工控环境中具备可操作性。
表1设备识别结果对比
Figure BDA0002260603880000071
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限 制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员 应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中 部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本 质脱离本发明各实施例技术方案的精神和范围。

Claims (4)

1.一种基于TCP/IP指纹的工控设备自动识别方法,其特征在于,主要包括:步骤1,收集通讯端口特征;步骤2,提取TCP/IP头部特征;步骤3,设备指纹生成;步骤4,设备类型预测;步骤5,设备子类型预测;所述步骤1中收集通讯端口特征基于被动监听设备通讯流量的方式,具体方式为对所有设备的端口信息进行预处理,仅保留IANA分配的常用端口和工控协议通讯端口,并通过基于随机森林的交叉验证式递归特征消除选出分类贡献度最大的32个端口,然后通过One-Hot编码将其转化为一个32维向量作为设备的通讯端口特征OP;所述步骤2中所述提取的TCP/IP头部特征是从通过单步TCP SYN扫描获取的设备响应报文中提取,所述提取的字段包括初始TTL,窗口大小WS,最大报文长短长度MSS,窗口缩放因子WSC,TCP选项布局OL;所述步骤3中设备指纹生成的具体方式为将提取到的设备通讯端口特征和TCP/IP协议头部特征组合为设备指纹F=<iTTL,WS,MSS,WSC,OL,OP>,所述通讯端口特征是一个32维向量,所述TCP/IP头部特征iTTL、WS、MSS、WSC均是数值型字段,所述OL是字符串经过HASH处理映射为数字。
2.如权利要求1所述的方法,其特征在于,所述步骤4中设备类型预测的具体方式为将设备指纹F作为预训练的设备类型分类器的输入,预测设备类型信息。
3.如权利要求2所述的方法,其特征在于,所述步骤5中设备子类型预测的具体方式为在确定设备类型之后,选择对应的子类型分类器预测设备具体子类型信息,子类型分类器以设备指纹作为输入,确定设备的具体子类型后设备识别流程结束。
4.如权利要求3所述的方法,其特征在于,所述设备类型分类器和子类型分类器均基于XGBoost构建,通过迭代训练的方式不断的在错误分类的样本中学习,将负梯度作为上一轮基分类器犯错的衡量指标,在下一轮学习中通过拟合负梯度来纠正上一轮犯的错误,x表示样本实例,y表示样本真实类别,Fm(x)表示前m次迭代得到的所有基分类器,hm(x)表示第m次迭代生成的基分类器,在第m次迭代中,前m-1个基分类器都是固定的,即:
Fm(x)=Fm-1(x)+ρmhm(x)
其中学习率ρm的目标是第m步最小化损失函数
Figure FDA0002725183000000021
即:
Figure FDA0002725183000000022
CN201911069824.3A 2019-11-05 2019-11-05 一种基于tcp/ip指纹的工控设备自动识别方法 Active CN110868404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911069824.3A CN110868404B (zh) 2019-11-05 2019-11-05 一种基于tcp/ip指纹的工控设备自动识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911069824.3A CN110868404B (zh) 2019-11-05 2019-11-05 一种基于tcp/ip指纹的工控设备自动识别方法

Publications (2)

Publication Number Publication Date
CN110868404A CN110868404A (zh) 2020-03-06
CN110868404B true CN110868404B (zh) 2020-11-24

Family

ID=69653538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911069824.3A Active CN110868404B (zh) 2019-11-05 2019-11-05 一种基于tcp/ip指纹的工控设备自动识别方法

Country Status (1)

Country Link
CN (1) CN110868404B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111585989A (zh) * 2020-04-26 2020-08-25 杭州安恒信息技术股份有限公司 联网工控设备的漏洞检测方法、装置和计算机设备
WO2022041225A1 (zh) * 2020-08-31 2022-03-03 中山大学 用于评估心血管状态的服务器、可穿戴设备及心血管状态评估的方法
CN112217800B (zh) * 2020-09-14 2023-04-25 广州大学 一种蜜罐识别方法、系统、装置及介质
CN113973059A (zh) * 2021-10-21 2022-01-25 浙江大学 基于网络协议指纹的被动式工业互联网资产识别方法及装置
CN114584497A (zh) * 2022-05-05 2022-06-03 北京安盟信息技术股份有限公司 一种被动式工业控制系统资产识别方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712396A (zh) * 2018-04-27 2018-10-26 广东省信息安全测评中心 网络资产管理与漏洞治理系统
CN109977151A (zh) * 2019-03-28 2019-07-05 北京九章云极科技有限公司 一种数据分析方法及系统
CN110113335A (zh) * 2019-05-06 2019-08-09 杭州齐安科技有限公司 一种工控设备指纹归一化方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8434140B2 (en) * 2007-11-06 2013-04-30 Barracuda Networks, Inc. Port hopping and seek you peer to peer traffic control method and system
CN109241669A (zh) * 2018-10-08 2019-01-18 成都四方伟业软件股份有限公司 一种自动建模方法、装置及其存储介质
CN110324316B (zh) * 2019-05-31 2022-04-22 河南九域恩湃电力技术有限公司 一种基于多种机器学习算法的工控异常行为检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712396A (zh) * 2018-04-27 2018-10-26 广东省信息安全测评中心 网络资产管理与漏洞治理系统
CN109977151A (zh) * 2019-03-28 2019-07-05 北京九章云极科技有限公司 一种数据分析方法及系统
CN110113335A (zh) * 2019-05-06 2019-08-09 杭州齐安科技有限公司 一种工控设备指纹归一化方法

Also Published As

Publication number Publication date
CN110868404A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
CN110868404B (zh) 一种基于tcp/ip指纹的工控设备自动识别方法
CN109063745B (zh) 一种基于决策树的网络设备类型识别方法及系统
US11334764B2 (en) Real-time detection method and apparatus for DGA domain name
CN108449342B (zh) 恶意请求检测方法及装置
CN109714322B (zh) 一种检测网络异常流量的方法及其系统
CN112738015B (zh) 一种基于可解释卷积神经网络cnn与图检测的多步攻击检测方法
US11399288B2 (en) Method for HTTP-based access point fingerprint and classification using machine learning
US8065722B2 (en) Semantically-aware network intrusion signature generator
CN111191767B (zh) 一种基于向量化的恶意流量攻击类型的判断方法
CN113259313A (zh) 一种基于在线训练算法的恶意https流量智能分析方法
CN110611640A (zh) 一种基于随机森林的dns协议隐蔽通道检测方法
CN112235288B (zh) 一种基于gan的ndn网络入侵检测方法
CN110691073A (zh) 一种基于随机森林的工控网络暴力破解流量检测方法
CN113079150B (zh) 一种电力终端设备入侵检测方法
CN111294342A (zh) 一种软件定义网络中DDos攻击的检测方法及系统
CN113965393B (zh) 一种基于复杂网络和图神经网络的僵尸网络检测方法
CN1223941C (zh) 一种基于相关特征聚类的层次入侵检测系统
CN112367312B (zh) 一种研判dns隐蔽隧道的检测方法及装置
CN111291078B (zh) 一种域名匹配检测方法及装置
CN116828087B (zh) 基于区块链连接的信息安全系统
CN111447169A (zh) 一种在网关上的实时恶意网页识别方法及系统
CN115473734A (zh) 基于单分类和联邦学习的远程代码执行攻击检测方法
CN114330504A (zh) 基于Sketch的网络恶意流量检测方法
KR20140014784A (ko) 선형패턴과 명암 특징 기반 네트워크 트래픽의 이상현상 감지 방법
Tien et al. Automatic device identification and anomaly detection with machine learning techniques in smart factories

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