工控系统的指纹识别技术

blacksunny blacksunny     2022-09-09     480

关键词:

转载:灯塔实验室

当前,指纹识别技术已被或坏或好的广泛应用于ICT(信息和通信技术)系统。攻击者通过扫描网络获取设备指纹来关联漏洞入侵系统,安全防护者则利用设备指纹来发现系统的脆弱性,检测系统的网络异常。在工业控制系统(ICS)中,指纹识别技术亦用于发现ICS系统脆弱性,检测攻击行为等方向。本文主要关注工控安全领域指纹识别技术。

  • 指纹识别是什么

        在ICT领域里,指纹识别是利用不同信息描述运行于网络中的设备或者软件的一种技术。我们了解最多的是设备指纹,被用来远程识别设备的硬件,操作系统,运行软件(及其相关的版本号,配置参数)等信息。

 

  • 指纹识别的常见应用场景

    • 网络空间搜索:Shodan 是目前最流行的网络空间搜索引擎,它扫描HTTP, FTP, SSH,Telnet, SNMP and SIP 等协议,通过分析客户端与服务端交互过程中的信息,识别全网设备。目前较流行的威胁感知系统也是利用fingerprint devices技术探测网络空间设备。

    • 资产管理:现实中,系统管理员很少了解资产的全部信息,或者了解到的是错误信息。导致这种现状出现可能是因为信息未能及时更新,或者是系统维护交由外包管理,或者是设备供应商提供了错误的配置信息。因此,ICS系统有必要提供信息保证高效的现场检查(site-inspection),系统管理员能够准确的了解系统的相关配置信息。

    • 入侵检测:攻击者理论上可以通过注入命令或者假数据来侵扰ICS网络,如造成大面积停电等灾难性后果。一些设备由于老旧无法升级,甚者一些设备供应商不提供线上升级打补丁。安全工作人员能够及早的发现入侵行为显得尤为重要。

 

  • 指纹提取方法的种类

        指纹提取方法主要分为两类:主动式(active)和被动式(passive)。主动式指纹提取要求工具去主动扫描网络系统获取信息,被动式指纹提取方法则是通过尽可能少的网络侵扰(less intrusive),被动式的监听网络获取信息。通常,主动式指纹识别成功识别系统的概率更大些。这是因为主动式识别意味着收集所有生成fingerprint所需要的信息,而被动式识别只能收集会话通道信息。但主动式识别并不是任何时候都能够起作用,探测扫描更易造成网络繁忙,且易被检测。例如,在SCADA系统中,主动式扫描可能造成系统过载。主动调试会使设备处理的frame数量增长,PLCs和RTUs无法支持超出的流量,从而导致正常请求无法响应。而被动式监听网络由于收集信息复杂则存在指纹准确性问题。

ICS/SCADA环境特性。

        指纹识别技术应用于ICS领域的过程中,在相对传统网络有可利用的优势同时也伴随着挑战。ICS系统组件相对于常规互联网和公司局域网有着其固有的特性和缺陷。一方面,相较于传统IT系统,ICS系统中工控设备具有长生命周期,稳定的网络拓扑和会话;另一方面,信息采集方式面临着主动式或是被动式方法选择问题,设备多样化,长时间TCP会话连接等问题。设备供应商协议定制则是一把双刃剑,协议允许检测者对ICS系统进行定位(公开协议)或者识别特定设备(私有协议),而相对私有协议做报文分析因无文档而显得很困难。

 

技术分享

  • 指纹提取一般流程

        尽管识别目标(如操作系统识别,硬件识别,特定软件识别等)和信息数据源(如包,网络流量,时间等)不同,所有的识别工具或方法都有共性的功能任务。因此,这里将所有识别工具工作模块抽象出来。指纹提取工具整体处理流程如图1所示。

        数据源(Sources):任何一种指纹识别方法或者工具都会依赖于一种或者多种信息源。在ICS环境中,有多种不同信息可以作为指纹识别信息源,主要分为两种:TCP/IP协议(protocol)和网络会话(communication traffic)特征。TCP/IP协议特征在传统ICT指纹识别技术中应用最为广泛。但我们意识到一个主要问题。前文提到的ICS环境中长时间TCP会话连接不允许太多的TCP三次握手(也就意味着,没有SYN和SYN-ACK 包),由于这些初始阶段包中存储着识别所需信息,基于TCP/IP协议实现方法显得很低效。当然也有例外,一些ICS中使用的协议(如Modbus)提供入口函数,方便了指纹识别。而ICS环境中网络会话具有显著的稳定性和规律性,研究社区相信使用时间维度,网络流量特征和交互模式等数据源很适合ICS环境,避免使用TCP/IP协议所遇到的问题。

        采集模块(Gathering):  采集模块实现采集信息方法。这里更多的讨论被动式识别以避免任何可能的系统干涉。最好的解决方案是,对ICS系统组件做透明网络嗅探。被动式识别方法利用Wireshark等工具生成的PCAP文件或者直接生产线上sniffer做数据分析。它没有网络流量注入并且不响应即将到来的消息,这样能够保证ICS系统操作不被干扰。PLCScan和Modbuspatrol 等类似工具是个例外,因为Modbus提供了执行查询相关函数,采用主动式查询ICS系统的方式,对系统造成影响很小。另外,并不是所有的网络流数据都是有价值的,采集模块会过滤掉ICS网络会话无关数据和脏数据(如TCP重传,重复的ACK包等)。

        生成模型(ModelGeneration) :  该模块组织整理并存储数据。主动式识别方法通过扫描查询获取到固定的数据结构或者详细信息列表,并不需要多余的规范说明。而基于时间,网络流量,会话交互模式等数据源的识别方法,需要处理完整的描述ICS系统行为特征集,无法通过一个简单的签名而缩小数据集。因此,被采用的特征集需要做系统的和完整的数据结构定义,描述概括ICS环境架构,属性,运行趋势等。

        决策模型(DecisionModels) :  生成模块的输出结果。为了解决生成模型中提到的数据结构定义,这里引入一个上下文环境模型(contextmodel)的概念,用来描述系统的运行行为和设备的操作实现。而且,它能基于特征值和运行关系展现设备在系统中的角色。数据被采集后经过context model处理,获取更高水平的契合分析的信息。

        预处理(Pre-processing):  在经过采集模块(Gathering)处理后,会话信息会经受进一步的提炼。处理过程依赖于决策模型(Decision Model)的数据结构和分类(Classification)算法。最简单的例子是,预处理模块提取未知ICS环境数据,为后续比较建立签名信息。在其他的情况下,预处理模块通过context model提炼更高水平的信息。预处理模块同时需要过滤无用信息和标记不完整信息。

        分类(Classification):  分类模块确定指纹。标准TCP/IP协议栈分析方法中实现了一系列的比较算法,用来识别操作系统等信息。一些方法识别软件应用和硬件组件。当ICS协议提供方法扫描查询设备信息的时候,可以做全面的指纹信息分析。ICS系统中指纹的识别目标还包括供应商(vendor)识别,硬件识别(如device model),软件识别,组件类型(type)识别(如SCADA servers和PLCs),组件角色识别(主PLCs和普通PLCs),网络拓扑识别(PLCs与单个SCADA服务交互还是PLCs之间交互),生成处理流程信息(能源行业与水厂处理流程存在网络特征差异)等。

        决策(Decision):分类算法的输出,即指纹的生成结果。传统的比对匹配方法实现会涉及到结果集的更新。而在机器学习等数据建模的情况下,会对输出结果做监督/无监督学习训练,优化生成模型。

 

  • 方法介绍

        识别过程当中,你有没有为手工扫描识别所带来的大量时间消耗而困惑呢?端口扫描可能打断低计算能力或者过时设备的运行。在ICS环境中,我们总是更倾向于只使用被动式监控,最小化潜在的风险。目前已有些比较成熟的被动式识别工具(如ettercap, p0f, Satori and NetworkMiner),它们基于TCP/IP协议栈监听分析网络。但研究者们更倾向于采用透明的,无深度包检查(Deep Packet Inspection)的方式来识别ICS网络行为。这里选取了三个工控安全研究社区较新的,比较典型的识别方法做介绍。它们都是基于网络流量特征分析的被动式识别方法。我们从原理依据,数据源,classification算法,准确度,健壮性,通用性等几个维度对方法进行了解。

技术分享        特征值系数评级:前文提到过,ICS环境中网络会话具有周期性,fielddevices端口连接SCADA端口相对固定。因此方法作者[ 2 ]提取了5个基础会话特征对特征值进行系数评级。这5个基础会话特征包括:

I.       源IP(S-IP)

II.     源端口(S-Port)

III.    目标IP(D-IP)

V.    单位间隔段长度(1s)(SegSize)

IV.   目标端口(D-Port)

        依据这些基础特征来算出(具体算法详见参考文献[ 2 ])描述网络流量特征的五个特性系数,分别是:

A.    周期性(Periodicity)系数pR

B.    会话耐用性(CommunicationDurability)系数dR

C.    设备IP端口差异(Device Complexity Gap)系数cR

D.    网络服务访问频度(NetworkService Popularity)系数uR

E.    段大小(SegmentSize)系数sR

 

技术分享

        数据实验结果如图2所示,每行特征值通过作者设计的算法得到一个结果f值,一个排名等级Rank值。我们能够清晰的发现,不同设备IP,端口关联评分系数差异明显。我们可以通过评分系数找出SCADA端口,由SCADA端口找出SCADA设备。方法准确度通过F-score评估结果如图3所示。由F-score分数可以看出:一方面,方法能100%准确识别出field devices和master(precisiond1 = 1),而且能够完全识别出不同厂商定制的SCADA协议;另一方面,dataset1中,方法还无法完全准确识别系统HMI(recalld1 = 0.9434) 。F-score总体评分为F- scored1 = 0.9709, F-scored2= 1 ,可以看出方法在可用性,通用性方面相对表现出色。

        

技术分享

 

?  跨层响应时间(Cross-layerResponse Times):本方法作者[ 1 ]依据ICS环境中,设备具有较低的计算能力,固定的CPU装载启动,简单的周期性网络流量等特性,设计了跨层响应时间算法(CLRT)识别方法。跨层响应时间能够判定出是攻击者通过自己的机器伪造响应,还是ICS环境CPU载荷或者应用配置变化行为。该方法通过一个时间片(如一天)内两个同源同向的包间隔时间为基本元素(图4),构成一个样本数据集,对样本集进行ANN算法和Bayesclassifier算法处理,标识设备和软件。实验数据来源于两个正在运营的变电所环境数据,数据周期为5个月。某些情况下(样本时间周期差异,如1天或者一个月),该方法提炼指纹能达到99%的准确度(Accuracy)。健壮性(Robustness Against Forgery )方面,通过朴素贝叶斯分类算法的分析结果能够高度识别设备伪造攻击(图6 CLRT部分)。一方面,该方法要求SCADA协议使用“read”和“response”消息,但不是所有的SCADA协议都实现;另一方面,方法生成指纹的速度依赖于系统使用quick模式ACKs数量。

技术分享        物理指纹(PhysicalFingerprinting):  一个设备机械和物理的特性决定着它执行特定操作指令的时间,由此特点产生设备指纹。作者[ 1 ]给出了两种计算操作指令响应时间方法,一种是自动响应时间戳,即计算Ethernet层发现操作指令与发现响应时间差;一种是事件序列记录时间戳,即计算Ethernet层发现操作指令与应用层发现事件的时间差,如图5。同跨层响应时间(Cross-layerResponse Times)识别方法相同的实验数据[ 1 ],实验环境显示:

        ①    不同供应商设备操作某些特定指令响应时间不同(自锁继电器打开时间相似,但关闭时间差异明显);

        ②    同设备操作指令不同操作响应时间不同。

通过对采集到的时间数据集(样本)进行FF-ANN算法和na ??ve Bayes classifier算法处理,标识设备,准确度(Accuracy)达到了92%。物理指纹方法在健壮性方面也有上佳表现,如图6 Physical fingerprinting部分。同时,物理指纹方法也依赖于SCADA协议包含时间响应操作,但不是所有的SCADA协议都支持。

 

技术分享

  • 结论

        被动式识别方法由于尽可能小的干扰ICS生产环境,自动化等特点,已被工控业界更多接受,研究者们也对被动式识别投入更多热情。尽管目前已有一些成熟的基于TCP/IP协议栈被动式识别工具,但研究者们更倾向于使用网络流量特征分析方法来避免干扰正常工业生产。就目前研究者社区环境而言,基于网络流量特征的被动式识别方法在通用性,准确度方面还有待提高,仍有待完善并标准化。

  • 参考文献

[ 1 ]   David Formby,Preethi Srinivasan,Andrew Leonard,JonathanRogers and Raheem             Beyah,“Who’s in Control of Your Control System? DeviceFingerprinting for Cyber-   PhysicalSystems ”,Available at [Online]:https://www.internetsociety.org/sites/default/files/blogs-media/who-control-your-control-system-device-fingerprinting-cyber-physical-systems.pdf

[ 2 ]   Sungho Jeon, Jeong-Han Yun, Seungoh Choi and Woo-NyonKim , “Passive Fingerprinting of SCADA in Critical Infrastructure Networkwithout Deep Packet Inspection”, cs.CR ,2016.

[ 3 ]   Marco Caselli, Frank Kargl and ValentinTudor ,“Device fingerprinting” ,Available at [Online]:http://www.crisalis-project.eu/sites/crisalis-project.eu/files/crisalis_deliverable-D4.4.pdf

[ 4 ]   彭勇,向憧,张淼,陈冬青,高海辉,谢丰,戴忠华,“工业控制系统场景指纹及异常检测 ”,清华大学学报 (自然科学版) 2016年第56卷第1期。

[ 5 ]   灯塔实验室,“针对网络空间关键基础设施情报收集的组织行为分析报告”,http://plcscan.org/blog/2016/06/ics-security-research-report-2016-05/。

[ 6 ]   Erik Hjelmvik ,“Passive OSFingerprinting” ,http://www.netresec.com/?page=Blog&month;=2011-11&post;=Passive-OS-Fingerprinting,Saturday, 05November 2011。

上海工业控制-青岛海天炜业intrust可信芯片工控安全平台系统软件

工业控制-青岛海天炜业InTrust可信芯片工控安全平台系统软件  鉴于工业控制系统应用场景的特殊性,通用杀毒软件无法有效对各控制系统(DCS/SCADA/PLC/SIS等)的操作站、工程师站等终端的工控软件进程进行有效识别和查... 查看详情

工控网络安全学习路线

...统安全所面临的重要问题是自主可控的问题,我国在工控领域对国外设备和技术的依赖程度强。据中国产业信息研究网调查统计结果显示,全国5000多个重要的工业控制系统中,95%以上的工控系统操作系统均采用国外... 查看详情

工控软件的干扰设计

参考技术A一、工控软件的结构特点及干扰途径在不同的工业控制系统中,工控软件虽然完成的功能不同,但就其结构来说,一般具有如下特点:实时性:工业控制系统中有些事件的发生具有随机性,要求工控软件能够及时地处... 查看详情

一种光学指纹识别系统的设计方案

...系统中运用的技术形式多样,如视网膜识别、面相识别、指纹识别、RFID射频识别应用等。其中,生物特征识别方式以其方便性强、安全性高等特点得到了越来越多人的认可和接受,特别是指纹识别技术方式,现已发展成为应用... 查看详情

行人识别预警系统真的有效吗?

行人识别预警系统真的有效吗?行人识别预警系统是一种通过计算机视觉技术,对视频或图像中的行人进行识别,从而提供行人预警的系统。这种系统可以应用于交通安全、城市管理等领域,提高行人的安全性。然而,该系统的... 查看详情

核心技术解析:移动端车牌识别系统方案

...了车牌定位、车牌字符切分、车牌字符识别等算法,而且系统具有识别率高、速度快、适应性强等优势,技术领先,在相关行业领域得到用户的广泛好评。首先让我们一起了解一下PC端车牌识别开发的参数的介绍:车牌号识别SDK... 查看详情

核心技术解析:移动端车牌识别系统方案

...了车牌定位、车牌字符切分、车牌字符识别等算法,而且系统具有识别率高、速度快、适应性强等优势,技术领先,在相关行业领域得到用户的广泛好评。首先让我们一起了解一下PC端车牌识别开发的参数的介绍:车牌号识别SDK... 查看详情

图像处理——基于机器视觉技术的人脸在线识别系统设计(代码片段)

  基于机器视觉技术的人脸在线识别系统设计  本设计研究人脸检测与识别技术,在基于机器视觉技术上,构建了一套人脸在线检测识别系统,系统将由以下几个部分构成:计算机图像预处理、数据收集和预处理、人脸... 查看详情

智能自助洗车系统车牌识别解决方案

...体机现如今被大量应用于各种自动获取车牌号的业务处理系统当中。易泊时代研发的车牌识别一体机融合了多项专利技术,如视频编解码技术、嵌入式系统技术、存储技术、网络技术、车牌识别技术、视频识别技术等。车牌识别... 查看详情

嵌入式工控机与普通工控机的区别

嵌入式工控机与普通工控机的区别首先,嵌入式工控机在整个测控系统中所处的位置,往往在前端,嵌入式工控机向上的连接往往是普通工控机,普通工控机的运算能力、软件资源、数据库支持等方面都是嵌入式工控机难以企及... 查看详情

人脸识别系统技术方案

...xff0c;现在很多小区或办公楼已经用上了人脸识别智能门禁系统。如今很多地方出入写字楼不用刷卡识别,直接刷脸就可以进入大楼。新型的生物识别代替了传统的识别方式人脸识别任务,分为二部分,人脸特征提取与... 查看详情

基于arm的指纹识别门禁系统设计方案

...安全,对重要通道的出入口进行管理与控制的系统,基于指纹识别技术的门禁系统是一项高科技安全设施 查看详情

基于lstm网络的视觉识别matlab仿真

...,安全识别领域等[01,02]。在这些应用领域中,视觉识别系统的准确性以及实时性直接对整个系统的性能有着深远的影响。目前为止,视觉识别系统涉及到包括计算机科学,图像处理技术,神经网络技术,模式识别技术,信号处... 查看详情

移动端车牌识别——可以嵌入智能手机系统里的新ocr识别技术

   移动端车牌识别技术,是在OCR光学字符识别技术的基础上研发的用来识别汽车号牌特征信息的图像识别技术。在国内,该项技术由北京易泊时代携手清华大学成功地将"国家863计划"项目成果——"文字图像识别技术TH-... 查看详情

语音识别技术的环节是啥

...计算机科学和电气工程领域的知识和研究。一些语音识别系统需要“训练”(也称为“注册”),其中个体说话者将文本或孤立的词汇读入系统。该系统分析该人的特定声音,并使用它来微调对该人语音的识别,从而提高准确性。... 查看详情

浅谈嵌入式指纹识别方案

...变性、易获取、难以复制等优点。随着科学技术的发展,指纹识别已经成为目前最为实用、应用最为广泛的生物识别技术,尤其在民用生物识别技术中。传统的指纹识别系统都是基于PC机的,这种系统具有识别速度快、样本存储... 查看详情

有没有关于指纹识别的文献综述??

...料好像很难找,有好心人能给我提供一份吗?谢谢!  指纹识别技术是生物测量学技术中较为成熟、应用较多的一种,它是一种利用人的指纹进行计算机自动识别的综合...这里的指纹识别技术是指利用计算机进行的指纹自动识... 查看详情

毕业设计-题目:基于单片机的指纹识别考勤系统-嵌入式物联网(代码片段)

...件电路设计4.1.1单片机主控4.1.2LCD显示屏4.1.3实时时钟4.1.4指纹识别模块4.2软件设计4.2.1系统工作流程5实现效果6部分关键代码7最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目基于单片机的指纹... 查看详情