工控系统的指纹识别技术

转载:灯塔实验室

当前,指纹识别技术已被或坏或好的广泛应用于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。

时间: 2024-10-01 03:20:20

工控系统的指纹识别技术的相关文章

火力发电厂工控系统网络安全解决方案 - 对比分析

发电厂网络概述 火电厂网络架构中涉及的系统主要包括:火电机组分散控制系统DCS.火电机组辅机控制系统DCS\PLC.火电厂级信息监控系统.调速系统和自动发电控制功能AGC.励磁系统和自动电压控制功能AVC.梯级调度监控系统.网控系统.继电保护.故障录波.电能量采集装置.电力市场报价终端等系统. 电力行业在安全方面是考虑地比较早的,形成了"安全分区.网络专用.横向隔离.纵向认证"的总体原则. 区域一般分为:生产控制大区(控制区+非控制区),管理信息大区. 也有情况下,电厂会将区域分为4个

高考替考事件为指纹识别技术敲响警钟

指纹识别技术存在严重安全漏洞 河南高考替考案中暴露出来的指纹膜以假乱真,也让反作弊问题浮出水面.指纹识别认证受环境温度和个人皮肤条件影响较大等原因,部分考生指纹不易 采集,且市场上又出现了大量复制指纹的产品,给通过指纹验证考生身份造成困扰.而现实中,用印泥盗取他人指纹的情形更是屡屡发生. 上述种种危险传递出一个信号:技术已趋成熟且获广泛应用的指纹识别技术,仍存在其自身难以克服的安全漏洞.由于指纹裸露于体表,无法避免被复制及窃取,急需更加安全且同样便捷的身份识别和安防技术. 现在不少公司都装配了指

指纹识别技术需要遵循的2点原则

手机指纹识别技术应该遵循的2点原则: 第一,指纹扫描必须只基于硬件,不可通过软件激活,或是将指纹信息传送给软件.如果该装置能够被软件激活,则无法避免被恶意代码攻击的风险.而基于硬件的实现仅会通知软件"指纹验证通过"或"指纹验证失败",但不会与软件分享任何指纹相关的数据与信息. 第二,在本地存储的指纹信息,其存储位置必须非常安全,这个位置必须禁止软件的访问,否则黑客会通过破解软件的方式来获取指纹信息.Shuman Ghosemajumder提到的2点原则应该成为所有指

基于HTML Canvas实现“指纹识别”技术

作者:zhanhailiang 日期:2015-01-31 说明 所谓指纹识别是指为每个设备标识唯一标识符(以下简称UUID).诸如移动原生的APP都可以通过调用相关设备API来获取相应的UUID.但是浏览器内WebAPP受限于运行环境无法直接防部设备API,此时需要通过其它方法来设置UUID. 基于持久化Cookie生成UUID 原理 当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中种入含有UUID的Cookie,并通过这个信息将用户所有行为(浏览了哪些页面?搜索了哪些关键字?对

支持Android、iOS系统的人脸识别技术

随着深度学习方法的应用,支持Android.iOS系统的人脸识别技术的识别率已经得到质的提升,目前我司的支持Android.iOS系统的人脸识别技术率已经达到99%.支持Android.iOS系统的人脸识别技术与其他生物特征识别技术相比,在实际应用中具有天然独到的优势:通过摄像头直接获取,可以非接触的方式完成识别过程,方便快捷.目前我司的支持Android.iOS系统的人脸识别技术已应用在金融.教育.景区.旅运.社保等领域. 支持Android.iOS系统的人脸识别技术主要分为两部分: 第一部为

生物特征识别:指纹识别技术应用

指纹识别是一项古老的技术,早在公元前N多年古中国人就已经意识到指纹的唯一性,并在一定程度上应用.19世纪人们开始对指纹的更进一步的研究,并得出了两个重要结论. (一),没有任何两个手指的指纹纹线形态是一致的. (二),指纹纹线的形态是终生不变的. 这两个重要的结论的引用使得一些国家和机构作为辨识的根据,例如鉴定犯罪嫌疑人等.上世纪80年代后,计算机技术的发展和光学传感器的进步,使得指纹识别技术得到更广阔的空间,随着传感器技术和相应软件算法的发展,指纹识别技术进一步得到普及. 现代指纹识别技术是通

通信辐射源指纹识别技术

摘要 通信辐射源个体识别是近来通信对抗领域的重要研究课题,不同于传统通信信号侦察中的调制模式识别研究,通信辐射源识别主要研究体现同类辐射源之间个体差异的信号指纹的分析提取技术.文中研究分析信号指纹的分析提取存在的技术难点和解决方案.对稳态通信信号的个体细微特征,如通信发射信号在载频和调制参数特征上的偏差,以及信号杂散输出成分的差异,并考虑将上述特征确立为反映通信电台个体技术特点的信号指纹,提出一个基于证据理论的通信辐射源识别方案,是实现个体识别在军事通信对抗作战计划的重要依据.关键词 通信辐射源

工控安全-PLC指纹提取的几种方法

前言:PLC为可编程逻辑控制器,采用S7协议.其硬件本身存在许多漏洞,可以利用kali里面的漏洞模块或者modbus工具对其进行攻击,甚至直接可以进行未授权访问,只要其开启对外网的端口服务,那么我们就可以利用其私有协议进行指纹提取.模糊测试.漏洞利用来最终达到控制PLC.指纹提取占据比较重要的位置,因为我们只要把指纹提取的工作做好,那么我门就可以针对什么版本的PLC进行1day的打击.因为工控硬件的更新换代始终很慢. 这里采用的是一个西门子PLC的仿真软件来进行实验的. 0x01 nmap指纹识

基于ARM9的指纹识别系统的设计和实现

生物识别技术是利用人体固有的生理特性(如指纹.脸象.红膜等)和行为特征(如笔迹.声音.步态等)来进行个人身份的鉴定. 生物识别技术比传统的身份鉴定方法更具安全.保密和方便性.生物特征识别技术具有不易遗忘.防伪性能好.不易伪造或被盗.随身"携带"和随时随地可用等优点. 生物识别的工作原理是利用生物识别设备对生物特征进行取样,提取其唯一的特征并将其转化成数字代码,并进一步将这些代码组成特征模板,人们同识别设备交互进行身份认证时,识别设备获取其特征并与数据库中的特征模板进行比对,以确定是否匹