摘要
在当今工业控制系统网络安全日益严峻的形势下,对入侵行为进行被动防御的策略己经不能完全保障网络安全,主动防御成为现代网络安全的新要求。蜜罐作为一种典型的主动防御技术,近年来已成为国内外网络安全领域的研究重点之一。城市燃气输配 SCADA 系统在社会发展和人民生活中起着举足轻重的作用,尽管该系统十分强大,但在防御潜在网络威胁方面具有严重的脆弱性。另一方面,在 SCADA 系统中实现蜜罐技术面临两个困难:即单个蜜罐因仿真度和交互性有限,难以吸引和捕获深层次的攻击行为;以及蜜网部署成本高、条件严格,难以实现大规模部署。
相比传统网络,虚拟网络技术具有轻量、灵活的特性,本文将其与蜜罐技术结合,设计并实现了一个低成本、易部署、高仿真的燃气输送 SCADA 蜜网系统。本系统针对假设的攻击者模型设计,并以模块化方式实现,按功能分为三大模块,分别是仿真模块,数据采集模块和运维安全模块。文中重点介绍了仿真模块,即对城市燃气 SCADA 平台的仿真。利用 Mininet 对真实的网络拓扑和设备进行模拟,并对网关,带宽,延迟和数据包丢失进行了定制化配置;运用 Conpot 实现协议层的交互,并且对 Conpot 蜜罐的缺陷进行改进,改进后的 Conpot 在反识别和交互能力上都有明显的提高;利用 python Web 框架实现对人机接口
(HMI)的仿真,模拟了 SCADA 系统的业务流程和 Web 服务,极大地提高了蜜网系统的真实性,也为攻击者提供了一种新的攻击途径。
模拟攻击测试中, 侦察扫描攻击显示蜜网系统完成了对城市燃气输送SCADA 平台的仿真且具有一定交互能力,而中间人攻击脚本测试结果表明本系统具有捕获该类复杂攻击的能力。最后,将蜜网系统部署到外网,捕获攻击数据显示,本系统具有显著优势和实用价值。
关键词: SCADA 系统;蜜网;Mininet;工控攻击
摘要 I
Abstract II
1绪论 1
1.1研究背景和意义 1
1.2国内外研究现状 2
1.2.1工业控制系统安全研究现状 2
1.2.2蜜罐的研究现状 4
1.3主要完成的工作 5
1.4本论文的组织结构 6
2SCADA 系统介绍 7
2.1SCADA 系统重要组件 7
2.1.1物理系统 8
2.1.2物理网络连接 8
2.1.3分布式控制系统 8
2.1.4网络 9
2.1.5远程监控 9
2.2城市燃气输配 SCADA 系统平台 10
2.2.1SCADA 平台总体架构 10
2.2.2平台主要硬件介绍 11
2.3城市燃气 SCADA 系统安全分析 11
2.3.1门户网站安全分析 12
2.3.2网络边界安全分析 12
2.3.3业务系统安全分析 12
2.3.4工控攻击方式分类 13
2.4本章小结 14
3相关技术的研究与分析 17
3.1网络虚拟化技术 17
3.1.1虚拟网络架构 17
3.1.2虚拟网络的实现方案 18
3.1.3虚拟网络工具Mininet 19
3.2蜜罐技术 21
3.2.1蜜网技术 22
3.2.2与其他安全概念比较 22
3.2.3蜜罐的分类 24
3.2.4工业控制系统蜜罐 25
3.3本章小结 26
4工控蜜网系统设计 27
4.1系统设计的思想与意义 27
4.2攻击者模型 27
4.3系统网络架构 29
4.4系统功能架构 30
4.5本章小结 32
5工控蜜网系统实现 33
5.1仿真模块实现 33
5.1.1网络层仿真 33
5.1.2协议层仿真 34
5.1.3可视化仿真 38
5.2运维安全模块 40
5.2.1向外连接数控制实现 40
5.2.2抑制攻击包实现 41
5.3数据捕获模块 42
5.4本章小结 42
6系统部署与测试 43
6.1蜜网系统部署 43
6.1.1网络拓扑部署 43
6.1.2配置网桥 43
6.2系统功能测试 44
6.3攻击数据分析 47
6.4本章小结 48
7总结与展望 50
7.1 总结 50
7.2 展望 50
参考文献 52
致谢55
1绪论
1.1研究背景和意义
工业控制系统是电力、交通、能源、水利、冶金、航空航天等国家重要基础设施的“大脑”和“中枢神经”,绝大多数关键的基础设施都离不开工业控制系统。目前我国拥有世界上最大的工业自动控制系统装置市场,传统工业技术改造、工厂自动化、企业信息化需要大量的工业控制系统,在中国智能制造 2025 战略[1]的驱动下,以及国内制造业产业升级,并且迎接“一带一路”的国家政策, 工业控制系统正在向着智能化、信息化和集成化的方向发展。
随着工业控制系统信息化程度越来越高,系统越来越开放,针对工业控制的攻击越来越多,造成的损害也越来越大。针对工业控制系统的攻击主要是以系统中的 IT 网络为突破口,进而影响其 OT 系统的运行。工业控制系统在应对传统功能安全威胁的同时,也面临越来越多的病毒、木马、黑客入侵等工控信息安全威胁。破坏工业控制系统正常运行的攻击中比较典型的案例有震网病毒事件和乌克兰电网事件。震网病毒[2]被认为是最早的专门针对工业控制系统的攻击。攻击者通过病毒攻击伊朗核工厂的铀浓缩设备,包括上位机和物理系统, 即离心机,从而缩短离心机的使用寿命,延期伊朗的铀浓缩进程,严重破环了伊朗核计划。乌克兰电网在一年左右的时间内多次遭受攻击,导致停电事件, 这些事件可以说明针对工业控制系统的攻击从针对 PLC 等通用性部件逐渐扩展到针对专用部件的攻击,例如变电站系统。近年来的全球工控攻击频发,2016 年,旧金山 MUNI 城市捷运系统受到勒索软件攻击。2017 年 5 月,勒索病毒“WannaCry”感染事件爆发,全球范围近百个国家遭到大规模网络攻击,攻击者利用 MS17-010 漏洞,向用户机器的 445 端口发送精心设计的网络数据包,实现远程代码执行。被攻击者电脑中大量文件被加密,被要求支付比特币以解密文件。2018 年 3 月,亚特兰大的连接系统全城被击中了勒索邮件,并要求支付比特币约$50,000,勒索软件被认为是来自 SamSam 的组织。在 3 月 22 日事件之后的日子里,亚特兰大居民无法做简单的城市系统相关任务,如付停车票或水电费,城市服务直到五天后都无法恢复。2018 年美国国土安全多次报道美国电网被俄罗斯黑客不断攻击,黑客通过供应商的网络与电力公司建立的信任关系完成侵入。可以看出,全球的工控系统都在遭受着前所未有的严峻的安全威胁。
不仅外部环境十分恶劣,工业控制系统自身也存在着严重的脆弱性,例如由于我国工控企业起步较晚,国外巨头都以拥有百年历史,一些核心产品仍以外资为主,其中以西门子为代表的欧美品牌占据第一梯队,三菱等日系品牌占据第二梯队,以台达集团为代表的台系品牌占据第三位梯队。它们运用的通信协议有些都是私有的,比如西门子设备运用的 S7comm(S7 Communication)。这给国内的工控网络安全留下了很大的隐患[46]。
在这样的形式下,研究工业控制系统网络的防御方法至关重要,保护工控系统就是在保护关键的基础设施。传统的围墙式防御思维,已经无法有效应对不断变化的新安全形势,有必要在传统的安全防御能力的基础上增加主动防御机制。然后,由于不研究攻击,就无法更好的做好防守,因此需要通过诱捕工控安全攻击行为,结合着公开的安全威胁情报,来分析工控系统攻击者的攻击动机、特点以及常用手段,为更好地开展安全防护工作打下坚实的基础。一旦网络安全遭到破坏,其物理影响的可能性很高,ICS 网络的防御者必须了解他们的对手以及这些参与者的能力。蜜网是支持这一任务的一个有价值的工具,它是一个沙箱网络,由看似脆弱的蜜罐主机组成,模拟组织网络上的生产机器。适当配置的蜜网可以观察到可能高度特定于特定环境的威胁,生成有价值的数据,为网络防御者提供信息。相比蜜罐而言蜜网仿真度和交互性更高,能够吸引和捕获深层次的攻击行为;但是蜜网部署成本高和部署条件要求高,不适合大规模部署。因此需要研发低成本、易大规模部署的,且具有高真实度的工控蜜网系统。
城市燃气输配 SCADA 系统在社会发展和人民生活中起着举足轻重的作用, 尽管该系统十分强大,但在防御潜在网络威胁方面具有严重的脆弱性。本文为了解决这一问题,研究并实现了一个城市燃气输配 SCADA 系统蜜网。
1.2国内外研究现状
1.2.1工业控制系统安全研究现状
在工业控制设备搜索与识别技术方面,设备发现的重要里程碑是 2009 年由
J. Matherly 发布的,有“黑暗谷歌”之称的 Shodan 网络设备搜索引擎。国内较早进入该领域是北京知道创宇信息技术有限公司,该公司在 2014 年第四季度推出的新版 ZoomEye,增加了针对公网设备的搜索服务。在快速设备发现方面,美
国密歇根大学的 Z. Durumeric 团队提出 ZMap 和 Zippier ZMap 来做网络空间的探测,与其它扫描器显著不同的是,它在扫描时不真正建立 TCP 连接,通过半连接的无状态扫描,实现快速的网络空间扫描。设备识别技术包括设备的操作系统指纹、设备的业务服务指纹两个方面,其中设备的业务服务指纹是数量最多,特征最为复杂的,目前还缺乏有效的大规模、自动化的指纹提取方法。
关于针对工控系统的漏洞扫描技术研究方面,绿盟科技于 2014 年 9 月 15 日正式发布了国内第一款工控漏洞扫描系统( Industrial Control Systems Vulnerability Scanning System,ICSScan),该系统支持典型的工控协议[45]。启明星辰与东方电气联合推出了工业控制系统安全检查工具:工控漏洞挖掘系统、工控漏洞扫描系统。天镜工控漏洞扫描系统核心价值在于检测工业控制系统的已知漏洞,可以支持对西门子、施耐德、GE 等工控厂商的 SCADA/HMI 软件、DCS 系统、PLC 控制器进行扫描、识别,检测工业控制系统存在漏洞并生成相应的报告,清晰定性安全风险,给出修复建议和预防措施。但现有漏洞扫描对于特定行业的适用性还不强,对缺少专有设备的漏洞库。
在工业控制系统的流量和控制指令方面,工控系统具有明显的流量特征且流量模式稳定不变,基于流量的检测可精确检测出大流量攻击或误用特征明显的攻击。Vollmer 等人提取网络流量负载,采用误差反向传播(back propagation, BP)神经网络检测 attempted-dos,attempted-recon,等多种异常流量入侵事件。工业控制系统攻击的独特之处是通过非法篡改设备配置,非法控制设备的操作, 修改业务流程等入侵行为,使设备进入不合理状态、停机状态或损坏,需通过设备状态/操作进行检测。Paul 等人根据设备自身的 XML(extensible markup language)文件构造合法配置列表通过将该表与实时配置信息进行比对发现异常变动。Fovino 等人定义临界状态,通过构建的高仿真虚拟镜像获得控制命令的执行结果,并以此判断系统是否正常。以上算法大都关注于理论研究,缺乏实际应用的检验。
在工业控制系统威胁情报方面,美国白宫 2015 年 2 月成立 CTIIC 网络威胁与情报整合中心,负责分析和整合国土安全部、联邦调查局、中央情报局、国家安全局等部门收集到的网络威胁信息,国土安全部下属的网络安全和通信整合中心、联邦调查局等机构将直接从 CTTIC 处获取情报部门的最新网络威胁信息。相比之下,我国威胁情报体系发展还较为落后,但却是挑战与机遇并存。现阶段所涉及领域内形成的学术成果散乱,缺乏有效、可靠的威胁情报的采集、
共享与利用规范和机制。面对新型高级持续性威胁,传统的基于静态特征库的单纯以防御为中心的相互独立的网络空间安全防护体系难以满足大规模虚拟环境下资源分布式部署、通信集中化管控对网络安全动态检测、关联分析和实时响应的需求,亟需通过开放的情报接口,通过协同化的威胁情报共享机制,以提高威胁感知能力。
1.2.2蜜罐的研究现状
首个明确包含关键词 honeypot 的学术出版物可以追溯到 2000 年初。第一个被广泛接受的正式定义是由 Spitzner 提出的:蜜罐是诱饵计算机资源,其价值在于被探测、攻击或破坏。然而,蜜罐的概念并不新鲜,早在 20 世纪 90 年代就已经隐含在信息保护和网络防御领域,但命名不同,例如 jail。后来,多个蜜罐相互连接,称为蜜网。在 2000 年初,基于 Unix 和 windows 的高效蠕虫呈指数级传播,尽管它们分布广泛,但是捕获和分析它们是相当困难的,因为蠕虫只驻留在系统内存中或伪装自己。第一批针对已知威胁的蜜罐被用来分析 sub7 恶意软件。该蜜罐通过对端口 27374 的响应,模拟了一个被 Sub7 特洛伊病毒感染的 Windows 系统,许多蠕虫使用该端口进行后续攻击。SANS 研究所在几分钟内捕获了 W32/Leaves 蠕虫。此后,在 2002 年,一个蜜罐捕获了第一个未知的威胁,即 CDE 子进程控制服务缓冲区溢出,此漏洞允许访问任何基于 unix 的系统。从那时起,蜜罐作为一种对抗漏洞的有效概念被建立起来。
后来蜜罐技术被应用到工业控制系统,许多优秀的工控蜜罐被设计出来, 其中有部分是开源。Conpots 是应用最为广泛的工控蜜罐,它的目标是收集有关针对工业控制系统的敌人的动机和方法的情报。它是用 Python 编写的,可以描述几种常见的 Internet 协议,如 HTTP,还有一些特定于 ICS 的协议,如 IEC104, BACnet 和 Modbus。它们的主要贡献是:a)蜜罐在网络中的部署容易 b)可以轻松地进行修改和扩展。但是它交互能力低,且容易被攻击者识别,被归类为低交互服务器蜜罐。2015 年,Alexandru、Vlad、Serbanescu 等人广泛部署了大规模低交互蜜罐,通过大面积部署取得海量数据进行研究分析[3]。 2016 年, Samuel Litchfield 在论文中介绍了一个框架 HoneyPhy[5],该框架考虑了信息物理系统(CPS)的流程和设备,拟议的工作范围更广,并声称通过混合配置提供真实的物理过程和设备模拟。它使得复杂结构的 CPS 蜜罐成为可能,但是工控系统中业务仿真会面临很多难题,因此该项仍在进行当中[6]。同年,Stephan Lau等人的 SCADACS 团队提出了一个关于 XPOT honeypot 的研究[7]。以 S7-300 系列 PLC 为仿真对象,对 TCP/IP 协议栈进行修改,以保证攻击者无法通过指纹识别系统为蜜罐。同时支持运行 PLC 程序、专有的 S7comm 协议和 SNMP,可以使用标准 IDE(如 Siemens TIA portal)对其进行编程。他们还表示将继续对 XPOT进行开发,虽然与其他蜜罐不同,交互能力和反识别能力有所增强,然而对于一个有工控知识和经验的攻击者来说,XPOT 还是可能被很轻易的识别出来。因此 PLC 仿真精度只是提高蜜罐欺骗度的一部分,增加仿真工控系统的网络拓扑以及物理过程,同样是进一步提高蜜罐的欺骗性的有效方式。
国内对蜜罐技术的研究虽然还不如国外,但是近几年已经开始引起重视。从北京大学计算机研究所的诸葛建伟团队加入 The Honeynet Project 以来,该团队作为国内分支,承担了许多科研项目,2006 年改进了 Nepenthes,提出了基于高交互式蜜罐技术的恶意代码捕获器 HoneyBow,构建了一个完全自动化的恶意代码样本捕获和收集方法。随后协助国家计算机网络应急处理协调中心开发和部署 Matrix 分布式蜜罐[9]。此外,国内还有许多研究团队正在对蜜罐技术进行研究。
1.3主要完成的工作
深入理解城市燃气输配 SCADA 系统,掌握其网络架构、硬件设备信息以及通信协议,然后从门户网站、网络边界和业务系统三个方面对城市燃气输配SCADA 系统的安全问题进行分析,反应了城市燃气输配 SCADA 系统的脆弱性。
对工业控制系统中的蜜罐技术进行深度研究,提出在工业控制系统中实现蜜罐技术面临权衡成本和真实度的问题。单个蜜罐因仿真度和交互性有限,难以吸引和捕获深层次的攻击行为,然而蜜网部署成本高和部署条件要求高,不适合大规模部署。因此考虑用虚拟网络技术来改进传统的蜜网系统。
从资源利用的角度理解了虚拟网络带来的好处,然后深入研究了网络仿真工具 Mininet,通过对其工作原理的研究和与其他仿真器的对比,得出了用Mininet 仿真城市燃气输配 SCADA 系统的显著优势。
总结工业控制系统中现有的攻击行为,假设出攻击者模型,并参考城市燃气输配 SCADA 系统对工控蜜网系统进行总体设计,然后采用模块化的方式实现。
在一台工控机上轻松部署,体现了利用虚拟网络仿真蜜网系统具有低成本、易部署、易维护的优势。然后用侦察扫描方式对蜜网的功能进行测试,结果表明,蜜网系统成功仿真了燃气输送 SCADA 平台,完成测试后,将蜜网部署在外网进行数据捕获,分析结果表明本文设计的工控蜜网系统有显著的实用价值。
1.4论文的组织结构
本论文一共分为七个章节介绍,每章节的具体内容如下:
第一章,论文研究的大背景和研究的意义以及论文所选课题的研究现状。本章首先阐明了论文研究的大背景和意义,介绍如今工业控制系统网络安全严峻形势以及蜜罐技术的优势,然后对蜜罐技术发展以及最新的工控蜜罐技术进行介绍,最后介绍了本文研究的主要工作。
第二章,本文设计蜜网时参考的 SCADA 系统。本章介绍了工控 SCADA 系统的五个重要组件,具体介绍了中国科学院信息工程研究所中的城市燃气输送SCADA 平台;然后对城市燃气 SCADA 系统进行安全分析,总结了现有的攻击方式。
第三章,本文用到的关键技术。本章首先介绍蜜网技术的功能特征以及其核心机制,详细阐述了蜜罐技术在工业控制系统中实现所面临的困难;然后研究了虚拟网络技术的特征和优势,并对 Mininet 网络模拟工具进行了深度研究。第四章,工控蜜网系统的设计。本章根据城市燃气输送 SCADA 平台和攻击
者模型提出了本文蜜网系统的总体框架设计,然后将蜜网系统功能模块化,将蜜网系统分为仿真模块,数据采集模块和运维完全模块三部分。
第五章,蜜网系统的实现。本章分模块介绍蜜罐系统的实现。重点介绍了仿真模块的实现,仿真模块采用 Mininet 技术实现网络拓扑仿真,改进的 Conpot 实现协议仿真,以及 python Web 框架实现 HMI 仿真。
第六章,蜜网系统的部署和功能测试。对系统进行轻松部署后,用侦察扫描方式对蜜网的功能进行测试,结果表明,完成测试后,将蜜网部署在外网进行数据捕获,分析结果表明本文设计的工控蜜网系统有显著的优势和实用价值。
第七章,总结与展望。本章对本论文的完成的工作,解决的问题和做出的贡献进行总结,指出工控蜜网系统仿真程度和功能上存在的不足,并对该系统未来的改进提出了建议和展望。
2SCADA 系统介绍
工业控制系统(ICS)是一个囊括多种类型控制系统的通用术语,其中包括有监控和数据采集(SCADA)系统、分布式控制系统(DCS)和其他一些较小的控制系统装置,如可编程逻辑控制器(PLC)[10]。图 2.1 为典型工业控制系统网络架构图。ICS 通常被用于电力、水务、交通运输、烟草、汽车制造和石油石化等各种基础且重要的行业,因此工业控制系统网络安全至关重要。
本章将介绍工业控制系统中的 SCADA 系统,主要介绍 SCADA 系统的重要组件及其功能,然后具体介绍城市燃气 SCADA 系统,并对其进行多方位的脆弱性分析。
图 2.1 典型工业控制系统网络架构图
2.1SCADA 系统重要组件
SCADA 系统是高分布式系统,常用于控制地理上位置较远的部件,长期对现场工业过程进行集中监控和通信。所有 SCADA 系统都可从结构上分为 5 个主要组件,如图 2.2 所示:物理系统,物理网络连接,分布式控制系统(DCS), 网络,远程监控。本节将对每个组件进行介绍,同时展示其在整个系统中的相关性。
图 2.2 SCADA 系统组件
2.1.1物理系统
物理系统是 SCADA 体系结构的第一个组成部分,SCADA 系统上的物理过程有传感器和执行器来监视和控制过程变量。传感器是测量诸如压力、温度、流量或密度等物理量的设备,由观察者或仪器读取。执行器是机器的一个部件, 在给定输入信号的情况下,负责移动或控制物理系统,控制系统通过执行器对外界起作用。
2.1.2物理网络连接
物理网络连接为来自传感器和执行器的信号提供一个传输介质,使其到达分布式控制系统(DCS)。一般的工业控制系统会采用现场总线(Field bus),他可以实现工业现场各种设备间的信息传输,同时实现现场设备与上层控制系统之间的信息传递与协议转换功能[12]。
值得一提的是,从趋势来看,工业以太网毋庸置疑会进入现场控制,但至少现在看来,从实时控制通信这一个标准考虑,它还难以完全取代现场总线,甚至在不需要复杂技术的地方,链路是由直接向 DCS 传输电压或电流信号的普通电线构成的。
2.1.3分布式控制系统
SCADA 体系结构的第三个组件是 DCS。DCS 由一个或多个控制器组成,通过物理链路与传感器和执行器直接连接。
控制器是现场设备,通常具有嵌入式控制功能,以完成一些逻辑操作。在绝大多数情况下,采用具有嵌入式控制功能和逻辑操作的 PLC 被用作 SCADA 系统的控制器,PLC 只能处理两种信号:离散信号和模拟信号。离散信号是那些只能假设两种状态的信号:开或关。模拟信号可以有一个取值范围,可以表示一个时变量,如温度、压力或密度。离散信号只需要一个位存储在 PLC 存储器中,读写速度快,并且需要相对简单的硬件。模拟信号需要存储更多的比特, 比特的数量取决于用来读取信号的硬件。此外,与离散信号相比,所需的硬件更加复杂,读写速度也更慢。
为了将模拟信号转换成 PLC 能够理解的内容,需要使用两种硬件:用于信号读取的模数转换器(ADC)和用于信号写入的数模转换器(DAC)。ADC 将模拟量转换为数字量,而 DAC 将数字量转换为模拟量。
2.1.4网络
网络是 SCADA 体系结构的第四部分。网络组件用于互连 DCS 和监视控制, 以及与 SCADA 系统相关的其他子系统,如人机接口、操作员站、数据库和用户管理系统等。DCS 根据一组称为协议的规则与网络上的监视控制进行通信。第一个 SCADA 协议是由 Modicon 在 1979 年引入的,称为 Modbus。它很快成为事实上的行业标准,并且由于它的标准是公开可用的,而且实现不需要许可证费用,所以它仍然受到 SCADA 的欢迎。此外,Modbus 可以在许多通信介质上工作,例如电话、以太网、无线电和卫星,这使它成为大型 SCADA 系统的理想选择。此外还有一些未公开的私有 SCADA 协议, 例如 S7comm ( S7 Communication)。S7Comm 是西门子专有的协议,是西门子 S7 通讯协议簇里的一种,它应用于 PLC 中实现交换数据,访问 PLC 数据以及诊断目的。
大型 SCADA 系统可以由不同类型的介质上的多个协议组成。通常称为协议网关的 SCADA 协议转换器提供了一种机制,使在不同协议上通信的设备能够相互通信。此外,一个复杂的 SCADA 网络也可能有一些辅助设备,如桥接器、路由器和交换机,以控制网络流量,并与 SCADA 系统中的其他网络在物理或逻辑上分离。
2.1.5远程监控
远程监视和控制管理物理过程数据并为用户交互和控制提供一种机制。它是操作人员与 SCADA 系统的监视变量交互的前端接口,即人机接口。在更高的层次上,HMI 是由按钮、警报、报告和趋势组成的屏幕,用于监视、分析和控制自动化过程。
HMI 可以是一个物理屏幕,向用户显示图形界面,并与其他自动化设备一起在过程面板中组装,也可以是一个软件,在距离实际过程很远的计算机上以网页的形式显示。此外,HMI 还可以根据使用的 SCADA 协议向设备发送控制动作、警报、错误代码和其他类型的消息。
2.2城市燃气输配SCADA 系统平台
本文设计的蜜网系统以北京中国科学院信息工程研究所物联网组中的城市燃气输配 SCADA 系统模拟平台为参考[4],该系统是真实的城市燃气 SCADA 系统按一个比例缩小的模拟平台。图 2.3 为城市燃气 SCADA 系统模拟平台的实物图。
图 2.3 城市燃气SCADA 系统模拟平台实物图
2.2.1SCADA 平台总体架构
城市燃气系统SCADA 系统由调度控制中心、现场控制系统及通信系统构成。系统总体架构如图 2.4 所示。
调度监控中心根据 SCADA 系统规模大小分为总调度控制中心、备用调度控制中心和区域调度控制中心,完全对城市高中压燃气管网各重要战场、远控截断阀室的监控,同时完成对中压管网监测点的监视,实现管网运行优化、制定输送计划、计量管理等一系列任务[11]。
现场控制系统用于对高压和高中压管路等监测点的操作,也把采集到的相关数据、运行参数等送达上一级的调度监控中心,同时接受、执行其下发的指令[28]。它们执行主调度监控中心指令,实现站内数据采集及处理、连锁保连续控制及工艺设备运行状态的监视,并向主调度监控中心上传所采集的各种数据与信息。通信系统在整个系统中起连接作用,连接调度监控中心和现场控制系统的纽
带,实现系统数据及运行指令的实时传输、接收和执行等[12]。通信系统的网络拓扑为三层结构,调度监控中心和现场控制系统用工业以太网连接,现场控制系统和控制设备采用标准的工业控制协议,运用了 S7comm 协议、Modbud 协议以及 Profibus-DP。
图 2.4 SCADA 系统总体架构
2.2.2平台主要硬件
城市燃气输配 SCADA 平台的主要现场设备有 PLC 和 HMI,PLC 采用西门子 S7-300 PLC 和施耐德 Quantum PLC,HMI 采用的是研华 WOP2100T-N2A 触摸屏,由一台 EDS-408A 系列工业交换机完成设备之间的信息传输以及与调度控制中心之间的通信。
2.3城市燃气SCADA 系统安全分析
本节从门户网站、网络边界和业务系统三个方面对城市燃气输配 SCADA 系统的安全问题进行分析,反应了城市燃气输配 SCADA 系统的脆弱性。
11
2.3.1门户网站安全分析
城市燃气输配 SCADA 系统可以从外网直接访问,因此访问群体较复杂,聚集了大量国内外访问流量,也容易引起黑客的关注。
攻击者可以采用 PLC 注入、固件攻击等攻击方式,可以轻松侵入门站网站, 然后对网站页面进行破环;攻击者有可能将门站网站替换成钓鱼网站或者黄色网站,或者在主页上发布敏感言论,对企业造成极其恶劣的负面影响。Web 服务器被攻陷后,攻击者可能借助该服务器才实施进一步探测扫描、渗透攻击等, 对企业内部敏感数据造成威胁。而从当前主机安全评估结果来看,黑客进入内网后,可以轻而易举攻陷其他服务器。
传统的围墙式防护策略,如防火墙和入侵检测系统,局限于自身的产品特点以及黑名单的防护机制,不能监控网络内容和攻击者访问的行为,因此无法对Web 服务器遭受的变化多端的攻击行为的进行有效防护。
2.3.2网络边界安全分析
任何网络都存在漏洞,未知攻击的入侵和破坏随时都可能带来严重的损失, 这些损失对 SCADA 系统可能是致命的。
网络协议的自身并不安全。工业控制系统的专用网络与传统的不同点在于一般都在专用的计算机和操作系统上实现,而且工控协议设计时更加关注是协议自身的功能性,而对系统的安全运维策略并没有引起重视[13][14]。从而为了节约成本,会放弃部分安全设置。病毒的快速传播。尽管设备公司会经常发出协议的相关漏洞,但是由于系统实时,连续的要求,系统并不会对漏洞进行及时的修补。当城市燃气 SCADA 系统的内部网络受到病毒攻击时,可能会导致网络和系统的处理能力下降,出现网络拥塞,业务中断等等问题,还会对核心机密数据带来泄露的威胁。现有防火墙解决方案的不足。在网络应用层出不穷、新型的威胁不断涌现的背景下,无论是传统防火墙、统一威胁管理设备(UTM)还是下一代防火墙(NF),均已远远不能满足用户对自身网络的安全防护诉求, 主要体现在传统防火墙,不能对网络应用、用户进行有效识别和控制,现有的基于 IP 地址的访问控制已经不可靠。
2.3.3业务系统安全分析
随着网络环境的不断发展和完善。城市燃气输配 SCADA 系统中不仅各项业务工作,如文件分发等由计算机替代,而且信息存储及信息提供也转变为数字方式。
系统漏洞给业务系统造成极大的威胁。恶意入侵者可以利用系统的漏洞,通过发起恶意扫描和远程溢出等攻击,进入业务系统后台获取、篡改,甚至破坏敏感的数据乃至破坏整个网络的正常运行。网络安全审计问题尤为突出。防火墙、入侵检测等传统网络安全策略的不足,使得无法对攻击者的攻击行为进行取证。对于任何一个安全体系来说,审计追查手段都是必不可少的。人为失误及业务权限管理问题,如弱口令,不正确的共享、应用系统的错误使用等,内部人员对业务应用系统的越权访问、违规操作,或者操作人员直接的错误输入, 导致系统宕机等。
2.3.4工控攻击方式分类
通过对城市燃气 SCADA 系统的安全分析,本节对 SCADA 系统中普遍的攻击方式进行总结。表 2.1 为工控攻击方式的分类,本文将其分为以下三类。
表 2.1 工控攻击方式分类
攻击分类 攻击方式
横向攻击 侦察扫描攻击
点对点攻击 拒绝服务攻击,PLC inject,固件攻击辅助攻击 中间人攻击
第一类为横向攻击方式,这种攻击方式,攻击者利用工具或外部信息在互联网上进行大范围扫描。在互联网上寻找目标的有用信息是一个重要的攻击步骤, 它是整个过程的关键部分,为后续战略提供数据。它可以提供帮助制定后续攻击的信息,并且就 ICS 的渗透而言,它有时可以生成一些信息,这些信息可能为流程环境如何工作以及使用什么系统提供线索。
攻击者可以利用扫描工具在 Internet 寻找设备。例如 Maltego 扫描工具,它可以自动执行许多与有用信息相关的任务。给定一个初始起点,如 IP 地址或电子邮件地址,Maltego 将搜索 Internet(包括网站、论坛、社交媒体、Twitter 帖子等),寻找与初始边界相关的所有内容。就像谷歌黑客攻击一样,寻找能够提供更多关于网络架构或用于社会工程的数据的线索的信息。
攻击者也可以利用外部信息,Shodan[16]是令人惊讶和震惊的互联网工具之一。Shodan 是一个专门的在线搜索引擎,旨在发现面向 internet 的设备。当然它同样可以用来查找面向 internet 的 ICS 设备。面向 internet 的 ICS 设备数量非常庞大。Project SHINE 披露了超过 100 万台面向 internet 的工业控制系统设备。
第二类为点对点攻击:有目标攻击。这种具有针对性的攻击,往往是攻击者已经对攻击目标有了一定的了解,并采取进一步措施,直接威胁到工控设备。这类攻击又被分为以下三种:
拒绝服务攻击:通过耗尽 PLC 的资源,比如网络带宽、CPU 计算资源等, 从而使得 PLC 对正常的请求无法及时作出回应。攻击方式简单、粗暴,对技术要求低,容易实现,会破坏 PLC 的正常运行,且持续时间长,会占用 PLC 资源。
PLC inject:注入代码或数据影响 PLC 的正常运行,甚至获取系统控制权。例如蠕虫攻击,首先会尝试与设备建立连接;若建立连接,检查其是否被感染; 若未建立连接或已被感染,尝试其他 PLC;若未被感染,停止 PLC,下装 PLC 程序;重启 PLC。
固件攻击:破坏 PLC 固件,PLC 固件的一个缺陷是信任其内在的固件验证机制。操作如下:1、下载固件,逆向分析固件,确定各个参数的寄存器地址, 匹配已知的设备功能;2、修改固件;3、对固件进行重新打包,并下载到 PLC 中。
第三类为辅助攻击。例如中间人攻击,这种攻击的目的是在上位机与下位机之间对数据包进行修改、重放。虽然没有直接破环设备及控制逻辑,但是攻击者返回给 HMI 错误的数据包,隐藏 PLC 的真实状态,会导致控制器或者管理人员作出错误决定。这类攻击能欺骗监控设备,往往作为其他攻击方式的辅助。
2.4本章小结
本章首先介绍了 SCADA 系统,然后对城市燃气输配 SCADA 系统进行了深入研究,掌握其网络架构、硬件设备信息以及通信协议,然后从门户网站、网络边界和业务系统三个方面对城市燃气输配 SCADA 系统的安全问题进行分析, 反应了城市燃气输配 SCADA 系统的脆弱性。
3相关技术的研究与分析
SCADA 系统被设计得十分强大,却存在着许多安全风险,而且新的攻击手段层出不穷,攻击与防御形成了不对等的局面,蜜罐技术作为主动防御手段能打破这种不对等。由于 SCADA 系统极高的成本和重要的特性使得研究人员几乎不可能对实时网络攻击进行实验。虚拟网络技术使传统的网络变得轻量、灵活, 因此将蜜罐技术结合虚拟网络技术,实现一个高仿真、易部署、低成本的工控蜜网系统一定是十分有价值的。下面将分别介绍这两种技术。
3.1网络虚拟化技术
网络是由各种网络设备,如交换机、路由器,相连组成的一个网状结构。网络虚拟化相对计算、存储虚拟化来说是比较抽象的,其实,网络虚拟化更多关注的是数据中心网络、主机网络这样比较小型的网络,是深入到某一台物理主机之上的网络结构。如果把传统的网络看作“宏观网络”的话,那网络虚拟化关注的就是“微观网络”。网络虚拟化的目的,是要节省物理主机的网卡设备资源。
3.1.1虚拟网络架构
在传统网络环境中,主机之间的通信需要通过自身的网卡与其他主机的网卡建立物理连接,例如连接到交换机上,如下图 3.1 所示。
图 3.1 传统网络框架
这种架构下,每个应用都部署在自己的主机上,应用之间形成了天然的物理隔离,但是在这样的架构下,会产生两个问题:首先当只需要部分应用工作时,其他应用的硬件资源就会被闲置,另外当应用增多的时候,就要添加更多
17
的物理机部署。总之,传统的网络架构在资源的合理运用上存在很多缺点。为应对这些缺点,可以借助虚拟化技术对一台物理资源进行抽象,将一张物理网卡虚拟成多张虚拟网卡(vNIC),通过虚拟机来隔离不同的应用。在虚拟网络中,针对上述问题,首先,当资源分配不均时,可以将空闲应用的资源分配给更需要的应用使用,这是用过调度机制实现的;另外如果物理主机中的资源没有用尽,可以通过添加虚拟机来方便地实现。
虚拟网络架构图 3.2 为虚拟网络架构。与传统网络不同的是,虚拟节点之间的通信是通过虚拟的链路实现的,虚拟链路连接着虚拟网卡和虚拟交换机,整个网络被虚拟在一个主机中,这样的网络在搭建、部署和维护方面都变得更加轻量和灵活。
图 3.2 虚拟网络架构
3.1.2虚拟网络的实现方案
一般,一整套虚拟网络的模块都可以独立出去,由第三方来完成,如其中比较出名的一个解决方案就是 Open vSwitch。Open vSwitch 简称 OVS,是一个高质量、多层的虚拟交换软件[36]。它的目的是通过编程扩展支持大规模网络自动化,同时还支持标准的管理接口和协议。
虚拟网络技术蓬勃发展的今天,对于虚拟交换机的需求也变得越来越迫切, 而传统的闭源虚拟交换机对于普通用户来说成本太高,多层虚拟化软件交换机实现了和大多数商业闭源交换机类似的功能。它的出现使实现虚拟网络的成本降低,很大程度上推动了虚拟网络技术的发展。
OVS 为典型的多层虚拟化软件交换即(图 3.3)。官方的定位是要做一个产品级质量的多层虚拟交换机,通过支持可编程扩展来实现大规模的网络自动化。设计目标是方便管理和配置虚拟机网络,检测多物理主机在动态虚拟环境中的流量情况。针对这一目标,OVS 具备很强的灵活性。可以在管理程序中作为软件 switch 运行,也可以直接部署到硬件设备上作为控制层[50]。
图 3.3 Open vSwitch 在虚拟网络中的应用
OVS 的优势在于它基于 SDN(Software Defined Network)的设计原则,方便虚拟机集群的控制与管理,另外就是它分布式的特性,可以提供虚拟接口与物理接口之间的连接,并处理同一物理主机上虚拟接口之间的通信。
3.1.3虚拟网络工具 Mininet
Mininet 是一个网络仿真器,利用虚拟交换机 Open vSwitch 可以方便地创建一个支持 SDN 的虚拟网络,其中包括虚拟主机、交换机以及路由器等,虚拟主机是可编辑的,可以在虚拟主机上运行应用程序,虚拟主机之间是相互隔离的, 一个进程不能嗅探其他网络命名空间的流量。这种样的功能被广泛的应用到网络测试中,但本文更看重它快速仿真一个虚拟网络的能力。
3.1.3.1Mininet 的工作原理
Mininet 是基于 Linux 网络命名空间设计的,自身就可以原生支持操作系统层级的虚拟化,就可以被用来进行网络仿真。而 Mininet 工具使用 Python 语言对网络仿真过程所涉及的节点、拓扑、链路等进行了封装抽象,便于科研人员迅速开展仿真工作。
从 Linux 2.6.24 版的内核开始,Linux 逐渐支持 6 种不同类型的命名空间。
19
这其中包括进程间通信(IPC)的命名空间、进程命名空间、网络命名空间、挂载命名空间、UTS 命名空间、用户命名空间。Linux 命名空间的原理是资源隔离, 命名空间技术使得进程间的 IPC,UTS,网络等能被需要的命名空间使用,达到资源的合理利用。
顾名思义网络命名空间是提供网络资源的隔离方案,它使得每个命名空间都有自己的协议栈、IP 路由表、端口等网络资源。从网络命名空间的角度看,它代表着分配给一个或多个进程的私有网络资源集合。其主要特性集中在虚拟化和隔离。每个 Linux container 拥有其自己的虚拟的网络设备和用于绑定自己网络端口号的应用程序。主机上合适的路由规则可以将网络数据包和特定container 相关的网络设备关联。网络命名空间的主要应用场景包括:多个网络命名空间可以拥有 eth0 和 lo 等网络设备,多个服务器进程可以在不同网络命名空间的同一个端口上进行监听,一个进程不能嗅探其他网络命名空间的流量,一个进程不能关闭其他网络命名空间的接口。
两个网络命名空间可以通过建立虚拟网络设备对 veth pair 创建通道进行通信。veth pair 是用于不同 Network namespace 间进行通信的方式,作为将一个网络命名空间数据发往另一个网络命名空间的 veth。
Mininet 基于 Linux 网络命名空间,默认情况下,在仿真网络中 Mininet 会为每一个 host 创建一个新的网络命名空间,同时在根进程命名空间 root Namespace 运行交换机和控制器的进程,因此这两个进程就共享同一个网络命名空间。由于每个主机都有各自独立的网络命名空间,每个虚拟节点都是可编辑,并运行网络程序。由于命名空间的虚拟技术没有提供类似于虚拟机的持久化能力,所以在 Mininet 关闭时不能保存所有的配置。
Mininet 使用网络命名空间来让不同的 host 进程拥有独立的网络上下文。如下图 3.4 所示,两个虚拟主机 h1 和 h2 连接到交换机 s1,通过 bash 来模拟 h1 和h2,交换机 S1 运行在 Linux 内核运行的根进程命名空间。h1 和 h2 就拥有自己的网络命名空间以及私有网络接口 h1-eth0 和 h2-eth0。交换机 s1 有两个端口s1-eth0 和 s1-eth1,通过 veth pair 与对应的主机接口相连,这样 h1 和 h2 就可以通过 s1 进行通信。s1-eth0 和 s1-eth1 间的数据包转发通过软件交换机完成,它运行在 root namespace 并使用物理接口 eth0,等待控制器的指令。
Mininet 包含一个网络感知的命令行接口(CLI),在启动网络后,允许开发人员通过一个控制台控制和管理整个网络。由于 CLI 知道节点名和网络配置, 所以可以通过节点名控制各个主机[49]。
图 3.4 Mininet 内部架构
3.1.3.2Mininet 的优势
Mininet 结合了仿真器、硬件测试平台和仿真器的许多最佳特性。与完全基于系统虚拟化的方法相比,Mininet 运行速度快,布置规模大,能提供更多的的带宽,安装简单,它预先包装好的 VM 可以运行在 VMware 或 Mac/Win/Linux 的 VirtualBox 上,并且已经安装了 OpenFlow v1.0 工具,能以秒为单位快速部署上百个主机和交换机,一般而言,在普遍硬件上,总带宽为 2Gbps。与硬件测试平台相比,Mininet 成本低,易获得,且可以快速的重新配置和重新启动。与仿真器相比,Mininet 运行实际的、未修改的代码,包括应用程序代码、操作系统内核代码和控制平面代码,可以容易的连接真实网络,它还给用户提供了交互性能。因此用 Mininet 实现城市燃气输配 SCADA 系统的网络拓扑仿真具有明显的优势。
3.2蜜罐技术
蜜罐技术作为网络安全中主动防御手段,能有效的打破网络安全攻防中攻击者和防御者资源不对等的情况,近年来已成为国内外网络安全领域的研究重点之一。但是蜜罐系统在工业控制系统环境与传统信息技术环境中不同,工控蜜罐更加注重真实性、目标性、成本和风险的平衡。
3.2.1蜜网技术
蜜网[37,38]实质上是一种研究型、高交互型的蜜罐技术,是一个由蜜罐组成的网络,第一代蜜网(Gen-I),设计于 1999 年[39],采用防火墙,主要在 OSI 第三层执行数据控制。尽管 Gen-I 架构成功地证明了它收集攻击的能力,但是它很容易被攻击者发现。它也不能正确地处理出站流量。第二代(Gen-Ⅱ)和第三代(Gen-Ш)蜜网的基石是蜜墙(Honeywall),它作为网络的网关,以更好地控制入站/出站流量。Honeywall 以两层网桥模式运行,以隐藏它的存在,并监控所有传入和传出的流量。它还用于控制和限制由受危害的蜜罐所产生的大量出站流量,例如,在 DDoS 攻击中使用。第 2 代和第 3 代有相同的架构[40],第三代以第二代组件为基础,利用蜜罐监控工具(如 sebek)来检查异常,并实现更容易部署蜜墙。随着云基础设施在今天的网络中被广泛采用,在虚拟环境中部署第三代蜜网变得更加流行,因为它带来了许多在物理机器上部署无法提供[42] 的好处。
蜜网技术核心机制是数据控制机制、数据捕获机制和数据分析机制[5]。数据控制机制的功能是防止蜜网被黑客或者恶意软件利用攻击第三方。数据捕获机制的功能是获取黑客攻击或恶意软件活动的行为数据,包括网络行为数据,如网络连接,以及系统行为数据,如进程、命令、打开文件等。数据分析机制的功能是理解捕获的黑客攻击和恶意软件活动的行为。
3.2.2与其他安全概念比较
安全概念可以按操作领域分为预防、检测和反应。预防可以定义为阻止入侵者和使系统中的漏洞不可行的任何承诺。检测是确定存在损害系统保密性、完整性和可用性的行为的过程。反应是指在检测到有害行为后采取的反应性措施。理想情况下,反应可以加强预防并改善未来的检测。安全概念的目的是在其业务领域取得最好的结果,这导致在其余领域取得较差的结果。除了蜜罐,还可以结合防火墙、入侵检测系统(IDS)、杀毒系统(AV)、入侵防御系统(IPS) 和日志监控来提高网络安全。区分这些概念以便充分利用它们的潜力是很重要的。传统上,防火墙基于预先确定的静态安全规则监视和控制网络流量。它们充当安全网络和不安全网络之间的屏障。高级防火墙不仅通过网络属性过滤, 而且通过协议状态和应用层规则过滤。IDS 分析整个包,包括报头和负载,寻找恶意签名。当检测到已知事件时,将生成警报。IPSs 可以理解为 IPS 的扩展, 它不仅发出警报,而且主动拒绝包并动态添加新规则。AV 软件也是基于签名的, 但操作在文件级别,并试图捕捉木马或病毒的感染。对应用程序日志、服务日志、系统日志等进行完整的日志监控,提高了对网络基础设施或可用性问题的认识。通过统计地评估日志文件中表示重要事件的已知文本模式,可以发现问题。网络安全标准通过定义软件和基础设施的安全指导方针来防止攻击,例如干净的配置、强化的内核和最近的更新。如今,这些概念之间的明显区别变得非常困难,因为安全解决方案是将多个概念组合在一起的混合体,目的是最小化个体之间的权衡。
蜜罐对预防没有什么直接作用,因为它们不能防止安全漏洞。它们最多能阻止攻击,因为攻击者担心攻击蜜罐而不是实际目标:生产系统,这会浪费时间和资源。但是,它们在对付自动化工具包和蠕虫时失败了,这些工具和蠕虫是最常见的攻击类型之一,它们扫描、探测并试图利用它们能找到的每一个网络参与者。这也适用于入侵检测系统,它们可能会阻止,但不会主动阻止自动攻击。防火墙是最好的预防概念,因为它们隐藏服务并阻止未使用端口或可疑 IP 地址的通信,这样入侵者就被排除在外,或者找不到任何可以通信的服务。最好的预防是通过良好的网络安全标准和实践来实现的,例如禁用不必要或不安全的服务、频繁更新和补丁策略、强大的身份验证机制等等。如果是检测,蜜罐增加了广泛的价值。对生产系统的攻击很难检测,因为这些攻击只是淹没在大量的生产活动中。蜜罐可以简化检测过程。由于蜜罐没有生产活动,所有与蜜罐的连接本质上都是可疑的,因此可以检测到未经授权的探测、扫描或攻击, 几乎没有漏报和误报。顾名思义,入侵检测系统是用来检测攻击的。然而,它们的有效性高度依赖于签名的质量。管理员可能会被假阳性信息淹没,变得麻木,并开始忽略这些消息。另一方面,如果在使用新漏洞时不存在适当的签名, 也可能出现假阴性。经过多年的社区贡献,Snort 开发了一种有效的基于签名的识别。
在蜜罐的帮助下,对攻击的反应可以加快。由于攻击数据不与生产活动数据混合,因此攻击的分析要简单得多。此外,与生产系统相比,蜜罐可以完全离线进行分析,从而可以进行适当和全面的法医分析。然后,这些见解可以用于清理生产系统并理解漏洞,这是修补相应漏洞的第一步。入侵检测系统基本上是被动的,这意味着它们分析包并创建警报。传统上,它们不改变网络包流。它们只会将恶意活动通知管理员。对新攻击的反应可能还包括创建新签名。由于防火墙不能检测攻击,因此不能动态地对攻击作出反应。但是,管理员可以手动定义新的防火墙规则,这些规则通常比入侵检测系统的规则简单,并且基于包信息,而不是有效负载和包流。对不同安全概念的讨论表明,所有概念都有一个特定的目标。首先,蜜罐实现反应,IDSs 实现检测,防火墙实现预防概念。这些概念并不排斥,但可以相互补充。
3.2.3蜜罐的分类
对于蜜罐的分类标准不是唯一的,本文介绍了蜜罐的四种分类标准,如表
3.1 所示,Snort 的开发者 Marty Roesch 对蜜罐进行了最早的分类之一,主要是根据蜜罐的业务范围进行分类,分为产品型蜜罐和研究型蜜罐。
生产蜜罐的特点是易于部署和使用,适用于公司的生产环境。它们的目的是通过转移攻击,在特定公司的网络中实现更高的安全级别。生产蜜罐需要在易用性和收集的信息量之间进行权衡。相比之下,研究蜜罐提供了关于攻击的全面信息,但部署较为困难。它们通常被研究组织和网络取证科学家用于审查攻击和制定针对威胁的一般对策。研究蜜罐有助于了解攻击者的动机、行为、工具和组织。举个例子:一家公司将传入的流量重定向到未使用的 IP 地址下部署的 ssh 蜜罐上。蜜罐通过来访的 IP 地址识别攻击者,这些 IP 地址被记录后可用于过滤规则和阻止对生产系统的访问。这种蜜罐的功能是有限的,因为它只需要识别流量及其来源。然而,研究机构可能对研究攻击的细节感兴趣,如攻击者使用了哪些集合来破解密码。因此,他们必须使用研究型蜜罐,它更复杂, 并提供了大量具有 ssh 凭据的日志记录。
另一种被广泛使用的蜜罐分类是基于相互作用的特点,一方面考虑相互作用的程度[44],分为低交互蜜罐、中交互蜜罐和高交互蜜罐;另一方面,考虑相互作用方向[45],分为服务器蜜罐和客户端蜜罐。
低交互蜜罐仅模拟少量服务。低交互蜜罐产生最小响应以允许协议握手。由于信息的收集有限,低交互主要用于统计评估,往往被作为产品型蜜罐部署。
中交互蜜罐比低交互蜜罐稍微复杂一些,但是它们仍然没有提供任何操作系统功能。模拟的服务更加详细,为攻击者提供了更高层次的交互,实际上中交
24
互蜜罐会给出合理的响应,希望能够触发后续攻击。为了成为一个有吸引力的目标,中交互蜜罐还模拟了比低交互蜜罐更多的服务。由于交互能力的较低, 以上两种蜜罐都有一定的机会被破坏。
高交互蜜罐是最复杂的蜜罐。它们是实现、部署和维护最复杂的,因为它们为攻击者提供了一个不受限制的真实操作系统环境[50]。此外,还安装了大量服务。高交互蜜罐收集尽可能多的信息,包括完整的攻击日志、数据访问、遍历文件树、执行代码等。由于高交互蜜罐日志分析的复杂性,通常由网络取证科学家完成,自动化程度较低。高交互蜜罐往往被作为研究型蜜罐部署。
服务器蜜罐等待攻击者发起通信,而客户端蜜罐则主动搜索潜在的恶意实体并请求交互。大部分蜜罐都属于服务器蜜罐,客户端蜜罐更多的应用领域是 Web 浏览器,客户端蜜罐请求主页并检查异常活动。客户机低交互蜜罐只模拟组件, 而客户机高交互蜜罐使用真正的 Web 浏览器。
最后一种分类是基于蜜罐的物理特性,被分为物理蜜罐和虚拟蜜罐。
物理蜜罐是网络上的一台真正的机器。虚拟蜜罐由主机模拟,主机将网络流量转发给虚拟蜜罐。单个主机可以模拟多个虚拟蜜罐。虚拟蜜罐成本低,可大量部署在互联网上,实现与攻击者之间的扫描应答、设备配置与状态请求响应等交互。
表 3.1 不同标准分类的蜜罐类型
分类标准 蜜罐类型
业务范围 研究型/产品型蜜罐相互作用程度 高/中/低交互蜜罐
相互作用方向 服务器/客户端蜜罐物理特性 物理/虚拟蜜罐
3.2.4工业控制系统蜜罐
蜜罐的另一个可能的部署场所是 SCADA 或 ICS 系统,成功的工控蜜罐能平衡真实性、目标性、成本和风险,更真实的特性产生更复杂的蜜罐,可以收集更详细的数据。如果一个蜜罐被攻击者避开,它就毫无用处。例如,Internet 上的一个单独的 PLC 对攻击者来说没什么意义,因为它不太可能是大型系统的一部分。诱捕系统的外观和功能也应该与它们的对手相同,这样攻击者就无法区
分真实的系统和诱饵。蜜罐的财务成本也是一个主要的考虑因素,特别是在它的开发、部署、维护和操作,以及收集数据的分析方面。
工业控制系统环境很难像传统信息技术环境那样利用虚拟化的优势,信息技术蜜罐的研究非常丰富,而且还在不断发展。在 2006 年之前,传统的高交互度
蜜罐被昂贵的物理硬件所限制。从 2006 年到 2008 年,虚拟化技术在商品信息技术市场上得到了广泛应用,这使得部署多个高交互虚拟机作为蜜罐来收集关于网络威胁的详细数据既方便又便宜。然而,传统的信息技术蜜罐技术不容易转移或扩展到工业控制系统。
当前大多数工业控制系统蜜罐都集成了低交互仿真器[47]。尽管可以在低成本,灵活的平台上部署低交互性蜜罐,但是需要付出大量的努力才能实现特定供应商的协议,并且一个工业控制系统通常不止一种工控协议,设计一个满足整个工控系统的蜜罐,财力人力物力就会大大的翻倍。
高交互性的工业控制系统蜜罐可以显示出更大的灵活性,并具有收集有关攻击策略,技术和程序的详细数据的能力。但是,全尺寸测试床的成本可能会很高[44]。实际上,全尺寸系统极为罕见,其使用仅限于受控的实验和研究,它们很少暴露于 Internet 来收集实时威胁数据。此外,通常建立测试床来模拟特定的环境,例如,电网,水处理厂或燃气管网,并且将它们适应于各种工业控制环境通常是不可行的。单个可编程逻辑控制器的成本从几百美元(例如,一台欧姆龙CP1L00 设备大约 900 美元)到几千美元(例如,一台艾伦-布拉德利 1756-L61 系统大约 5000 美元)。采购和部署多个设备的成本限制了它们的可伸缩性(特别是作为某种可消耗的蜜罐)。例如,部署一个由 30 个 L61 可编程逻辑控制器组成的可靠的、可设定目标的蜜罐的成本,仅初始硬件就超过 16.5 万美元。
3.3 本章小结
本章对虚拟网络技术和蜜罐技术进行了深入研究。对虚拟网络技术的研究, 总结其特点与优势,然后重点介绍了 Mininet 网络仿真器。对蜜罐的研究,通过其与其他安全概念的比较,可以发现蜜罐技术的主动防御机制在网络安全领域有着明显的优势和研究价值,但是蜜罐技术在工业控制领域的应用存在着低交互蜜罐仿真困难和高交互蜜罐部署成本高的问题。下面将设计并实现城市输配SDACA 系统蜜网,其中将运用虚拟网络技术来解决蜜网面临的问题。
4工控蜜网系统设计
本文设计的蜜网系统是以北京中国科学院信息工程研究所中的城市燃气输配 SCADA 模拟平台为参考模型,利用虚拟网络技术进行实现的,主要包括网络拓扑仿真、设备仿真、数据捕获和运维安全管理四个部分。
4.1系统设计的思想与意义
城市燃气输配 SCADA 系统暴露的严重脆弱性,以及其在社会发展和人民生活中的重要地位,反映出对城市燃气 SCADA 系统的安全防护迫在眉睫,传统的防护策略例如入侵检测、防火墙,因为自身被动防御机制不能掌握攻击者入侵后的攻击行为,面对如今攻防不对等的恶劣网络环境,这些策略并不能完全胜任防御工作,只有更好地研究攻击,才能做到更强的防御,中国科学院科学院信息工程研究所已经设计并实现城市燃气 SCADA 系统模拟平台,该平台负责漏洞测试和攻防演练,为了进一步研究新的攻击以及了解 SCADA 系统面临的外在威胁,需要实现一个入侵诱捕系统,但是将测试平台直接暴露在外网捕获数据, 一旦被攻陷,会带来严重的经济损失,因此本文提出利用蜜罐技术实现入侵诱捕。
利用蜜罐技术仿真单个工控设备,如 PLC 的蜜罐系统容易被攻击者识别, 无法对复杂的攻击方式进行诱捕,例如中间人攻击。因此为了能欺骗攻击者, 需要仿真 SCADA 系统的网络拓扑、设备、协议以及业务流程,实现一个高仿真的蜜网系统。另一方面,蜜网的成本也是一个主要的考虑因素,要想实现更真实的蜜网注定需要花费更多的成本,即使采用一个个服务器或者虚拟机搭建网络进行仿真,在开发、部署、维护和操作中也会消耗大量的人力成本。
为了解决这一的问题,本文采用虚拟网络技术设计蜜网系统,将工业控制系统的网络和设备虚拟化,通过定制化配置,并集中到一台主机上,从而使蜜网系统达到高仿真、易部署和低成本的目的。
4.2攻击者模型
本文设计的工控蜜网系统会受到一个重要因素的支配,即蜜网的真实度。蜜
网要求真实度吸引感兴趣的攻击者。特别是,如果蜜网的真实性较低,更有经验的攻击者可能会更快地认识到他们正在与蜜网交互。
燃气输送 SCADA 系统测试平台为工控蜜网系统的实现提供了控制设备、控制逻辑、控制网络、通信协议等方面的支持,需要虚拟网络和设备可以通过真实的 SCADA 平台做定制化仿真。但是仿真整个 SCADA 系统是不可能的,为了尽可能提高系统的真实度以及诱捕能力,本文从攻击者的角度,根据第二章总结的攻击方式,设计了工控攻击中普遍存在的一种攻击者模型,如图 4.1 所示, 为系统的架构和功能设计提供参考。
图 4.1 攻击者模型
假设攻击者通过互联网到达蜜网,例如,使用通用搜索引擎(如 Google)或更具针对性的搜索引擎(如 Shodan)查找蜜网的面向互联网的设备。一旦连接到 ICS 内部网络,攻击者就可以使用 nmap 和xprobe2 等工具扫描目标 ICS 系统。因此,攻击者能够获得基本系统信息,例如设备数量、IP 地址、端口状态以及工业协议的类型。然后攻击者通过互联网探测到的信息连接到蜜网,攻击者会发现易受攻击的工控设备,并与该设备进行交互。
假设攻击者具有关于公开文档的工业协议的基本知识,以及关于无公开文档的工业协议(例如 Modbus)的广泛知识,也可能熟悉底层物理过程和控制逻辑。他们可能与物理进程交互,会尝试修改设备运行状态,控制程序,控制变量等, 甚至可能会发送格式错误的数据包和未经授权的命令,执行中间人攻击,并尝试导致蜜网拒绝服务。
根据攻击者模型,燃气输送 SCADA 系统平台的仿真在真实度方面给出了具体的功能指标,分为网络指标和物理指标,如表 4.1,4.2 所示。
28
表 4.1 系统设计的网络指标
网络指标 具体说明
网络参数 IP、MAC 和网络掩码地址与实际系统相同基础设施 网络拓扑与实际系统完全匹配
链路整形 平均丢包、延迟和带宽可以设置为实际系统中的可比值 协议 蜜网中设备之间的通信使用符合标准的工业实现和通用协议
高级流量属性 与真实系统完全匹配消息序列
表 4.2 系统设计的物理指标
物理指标 具体说明
设备信息 与真实PLC 相同的设备信息
物理过程 物理过程使用燃气输送过程高级过程 模拟快速状态变化
4.3系统网络架构
根据攻击者模型的规定,攻击者来自互联网,他可以使用他在攻击侦察阶段可能发现的易受攻击的接口访问虚假的 ICS 内部网络,所以本系统在易受攻击的网关设备上设置了弱凭证以吸引试图连接到内部网络 ICS 设备上的攻击者。为了重现与城市燃气输配 SCADA 平台相同的网络拓扑,相同数量的主机,地址和链路特性,采用虚拟网络技术模拟了交换机、2 个 PLC 以及链路特性。本文设计的蜜网是基于服务器的,它必须暴露真实的服务,因此本文利用蜜罐技术模拟了 SCADA 平台中的 S7comm 服务、Modbus 服务和 HTTP 服务,并监听它们的标准端口。如图 4.2 所示。
图 4.2 蜜网系统的总体架构
图 4.3 蜜网框架与真实SCADA 平台网络框架的比较
图 4.3 显示了蜜网架构与真实 SCADA 平台网络架构之间的比较。蜜网系统用虚线表示,以强调本文设计的蜜网系统与真实 SCADA 网络物理分离的事实。相比之下,传统的蜜网使用未分配的 IP 地址部署在内部网络中,并且它们与真实系统的分离是逻辑上的,通常通过防火墙、路由器或 ARP 代理。蜜网和真实ICS 之间的物理隔离提供了额外的安全层,这意味着获得权限访问蜜网的攻击者不会连接到真实的网络,而是连接到虚拟化的模拟副本。
4.4系统功能架构
为了实现 4.1 中提出的网络指标和物理指标,本系统结合传统蜜网系统的结构和城市燃气输配 SCADA 系统架构,将蜜网系统分为三个模块进行模块化设计,图 4.4 分模块展示了工控蜜网系统的功能架构,三个子模块分别为:仿真模块,数据采集模块和运维安全模块。
图 4.4 系统功能模块框架
仿真模块是核心模块,该模块分为网络层、协议层以及可视化这 3 个层面进行仿真。
在网络层利用虚拟网络技术实现两层网络结构,创建 3 个节点,分别代表西门子 PLC、施耐德 PLC 和一个 HMI,并给它们设置了与真实设备一样的网络参数,并根据真实系统设置了平均丢包、延迟和带宽。使得虚拟的网络拓扑与真实的网络看上去完全相同,极大的提高了蜜网系统的真实度。整个 SCADA 系统被集中在一台主机上,在很大程度上方便了开发和部署的过程,使本文设计的蜜网相比其他蜜网系统具有更低的成本;
在协议层利用蜜罐技术仿真了 PLC 设备的设备信息和网络服务,实现了系统的交互能力,此外协议层还设置了日志功能,以记录攻击者在与虚拟设备交互时产生的攻击数据。
可视化层通过仿真Web 服务器模拟了城市燃气输配SCADA 平台中的HMI。通过业务场景展示增强了蜜网系统的真实性,同时 HMI 的仿真为攻击者提供了新的入侵途径,使蜜网实现对复杂的攻击行为的捕获。
在数据采集与存储模块中,通过生成攻击会话流日志的方式记录攻击者的数据,在仿真的每一个设备中都添加了日志记录模块,这些日志采用统一的格式, 以文本形式保存,为以后的分析奠定基础;运维安全模块通过防火墙和入侵检测技术,防止蜜网被作为僵尸网络攻击第三方。此外该模块还起着保障安全运行系统程序并对其他两个模块的交互进行维护和管理的功能。
4.5本章小结
面对工业控制系统严峻的网络安全问题,以及蜜罐技术在工控系统中应用存在的困难,本章以城市燃气输配 SCADA 系统为参考设计了工控蜜网系统,并通过假设攻击者模型对工控蜜网系统进行了总体架构设计。为了体现工控蜜网系统的真实度,本章从网络和物理两个方面列出了功能指标,并将系统功能分模块化设计。
5工控蜜网系统实现
5.1仿真模块实现
仿真模块的主要功能是模拟燃气输送 SCADA 平台的网络、设备、服务以及场景,本部分主要分为网络拓扑层、协议层和可视化仿真。网路拓扑层主要是对 SCADA 平台的网络设备和网络拓扑进行仿真;协议层仿真主要是对外界的连接请求,端口扫描等操作进行简单的响应仿真;可视化仿真是对测试平台的人机交互界面和对场景的仿真。
图 5.1 是该模块内部的逻辑关系,从网络层到可视化层的攻击行为是层层递进的,攻击者从简单是试探到试图控制或破坏工业流程,本文设计的工控蜜网分层实现,可以反应该蜜网系统的交互程度不断提升。下面将分别介绍子模块的实现。
图 5.1 设备运行仿真模块
5.1.1网络层仿真
5.1.1.1网络拓扑仿真
网络拓扑仿真是工控蜜网系统的基础,传统的网络拓扑仿真一般通过连接工控机或者虚拟机实现,本文对于网络拓扑仿真,使用网络仿真工具 Mininet。Mininet 称为基于容器的虚拟化,使用 Linux 内核的底层功能即网络命名空间和虚拟以太网链路 veth,来进程子集的隔离,也就是虚拟主机之间的隔离。每个进程集合称为容器,并且它们具有完整的网络堆栈,例如 IP,ARP 和路由表。每个容器接口通过 veth 连接到软件交换机的虚拟接口。
Mininet 能够通过 Python 脚本快速地创建、定制一个虚拟网络,包括网络拓扑、主机和交换机,通过脚本在 Linux 网络命名空间中创建一个交换机和 3 和节点,分别代表西门子 PLC、施耐德 PLC 和 HMI,并对它们的 IP 地址、物理地址、子网掩码进行了配置。
链接整形功能是使用另一个底层 Linux 内核功能实现的。它允许监视和操纵每个活动网络接口的网络流量控制设置。实际上,很容易使用对蜜网中的每个容器设置自定义带宽,延迟和数据包丢失。通过对真实 SCADA 系统的发包测试, 为蜜网系统设置了相同的参数。
5.1.1.2网关的设置
网关设备在 ICS 控制网络中用于转换工业协议, 例如从 Modbus 到
Modbus/TCP 的来回转换,并扩展整个 ICS 的设备间通信能力(类似于 NAT)。目标硬件平台是 Moxa OnCell IP 网关,它能够使用不同的技术通过以太网连
接到 SCADA 平台,例如:GPRS,EDGE,UMTS 和 HSDPA。目标设备有两个配置端口打开:一个 telnet 服务器正在侦听端口 23,一个 ssh 服务器正在侦听端口 22。ssh 服务配置了弱凭据:用户名是 admin,密码是 admin。telnet 服务配置了基于纯文本的未加密身份验证,具有与 ssh 服务器相同的弱凭据。在这样的配置下,攻击者能够在网关设备上获得命令 shell,该命令 shell 直接连接到 ICS 内部网络。在网关的设置中,通过 sshd 和 telnetd 支持 ssh 和 telnet 服务器。在 ssh 的情况下,chroot jail 直接在sshd 的服务器配置文件中指定。
5.1.2协议层仿真
协议层仿真采用工控蜜罐中常用的 Conpot 实现,Conpot 为开源蜜罐,其功能强大且部署容易,在本系统中利用其仿真西门子 PLC 和施耐德 PLC 的网络服务以及设备信息。但是 Conpot 一直存在容易被识别和交互能力低的问题。为了避免这些问题,通过对 Conpot 源码的深度理解,修改 Conpot 模板信息和补充协议功能码来提高 Conpot 真实度以及交互能力。下表 5.1 为 Conpot 的组成架构。
表 5.1 conpot 的组成架构
模块名称 信息
core 日志、协议会话管理,包括日志的配置、格式定义emulators 蜜罐服务的管理,包括服务的开启于关回调函数处理templates 不同协议的设置文件,包括设备信息和数据段
tests 官方提供的测试模块
utils 继承的hpfeeds 使用模块,查询公网 IP 和 MSC 地址
protocols 不同协议实现的模块
conpot.cfg Conpot 的初始配置文件
5.1.2.1Conpot 的模板修改
Conpot 之所以容易被识别成蜜罐,有一个很重要的原因是 Conpot 仿真的设备信息固定,例如用 Conpot 默认的西门子 PLC 的设备型号是 SIMATIC 200。Conpot 将不同协议的设备信息储存在 templates,当 PLC 收到读取设备信息的数据包时,协议交互程序会调用模板文件中的信息做返回包。所以按照真实的设备信息修改模板文件,可以增强蜜罐的真实度。下表 5.2,5.3 是真实 PLC 的模板信息说明。
表 5.2 西门子PLC 的设备信息说明
设备信息 具体型号 说明
System name Copyright
Id SIMATIC 300
Original simens equipment S Q-DNU03512203 设备的名称厂商的版权
设备的序列号
Module
Module_type 6ES7 313-5BG04-0AB0
CPU 315-2DP 设备固件信息
设备的CPU 信息
表 5.3 施耐德PLC 的设备信息说明
设备信息 具体型号 说明
Vendor name Network Module
CPU Module Schneider Electric BMX P34 2020
BMX P34 2020 设备的名称网络模块型号
CPU 模块型号
Firmware
Memory Card V2.8
BMXRMS008MP 设备固件版本
储存卡信息
5.1.2.2Conpot 中 S7 协议的改进
蜜罐对特定协议功能码的实现反映了蜜罐的交互能力,Conpot 在实现协议交互时只完成了基本的解包发包,以及部分功能码。相对 S7comm 协议的功能码实现情况,Conpot 对于 Modbus 协议的实现较为完整。因此本文主要介绍对Scomm 协议的改进。
Conpot 实现 S7comm 协议服务的交互程序放在 protocols 中。其处理信息的流程主要分为以下几步,如图 5.2 所示:
1)S7comm 服务器从 conpot 获取执行流,与客户端建立连接。然后,进入会话处理流程,开始循环接收数据包,为客户端提供服务。
2)S7comm 服务器会接收握手信息的前四个字节,如果接收的数据为空, S7comm 服务器会结束本次会话;否则,会接收握手信息的剩余信息。然后, S7comm 服务器会解析包头,提取出 length 参数,用于判定是否是非法的 S7comm 数据包请求。
3)S7comm 服务器完成第一次握手,建立 ISO_TP 连接。ISO_TP 握手信息的标识 tpdu_type 参数值为 0xe0,只有通过本次握手,ISO_TP 连接才能建立起来。
4)S7comm 服务器完成第二次握手,建立 S7comm 连接。S7comm 握手信息的标识 tpdu_type 参数值为 0xf0,只有通过本次握手,S7comm 连接才能建立起来。
5)S7comm 服务器开始第三次握手,开始接收 S7comm 的数据循环。服务器解析 TPKT 和 COTP 层数据,当请求数据的 tpdu_type 参数值为 0xf0 时,表明该 PDU 是通信数据(而非握手信息),S7comm 会解析此数据并据此生成响应数
据包,然后,将响应数据包发送给客户端,完成第三次握手。最后,S7comm 服务器会准备接收本次会话的下一个数据包。
S7comm 服务器具备完整的信息交互机能,通过扮演 PLC 设备的角色来取信于外界攻击者。除此之外,S7comm 服务器还集成了日志记录功能,研究者可以通过分析日志来获取攻击者信息、研究攻击模式、提升防护能力。
图 5.2 conpot 处理数据包流程图
Conpot 实现交互是通过判断功能码来决定返回包数据,当监听的端口收到请求包时,对应的服务线程开始运行,程序按照标准的协议格式进行解析,解析出功能码后,调用对应功能码函数,返回的数据段信息,然后返回主程序做返回包,最后通过 Socket 发送。所以对 S7comm 协议功能的开发,就是如何生成数据段的问题,但是 S7comm 为私有协议,并没有相关的材料对数据段有明确的解析文档。本文采用协议逆向的方法完成 S7comm 协议仿真的改进,如下图
5.3 所示,首先利用 PLCSCAC 脚本和/Snp7 客户端同时向 Conpot 和真实设备发送 Conpot 未实现的功能码数据包。然后对它们的返回包对比分析,将真实的数据段信息写入 Conpot 的功能码函数中。
图 5.3 S7comm 协议改进过程
改进后 S7 协议实现的功能码情况如下图 5.4 所示:
图 5.4 S7comm 协议实现功能码
5.1.3可视化仿真
可视化仿真是模拟城市燃气输配SCADA 平台中HMI 开启的远程Web 服务, 仿真 HMI 采用 python Web 框架,仿真了登录页面和业务流程监控页面。登录页面设置了弱口令以吸引攻击者,为攻击者提供了新的入侵途径。
业务流程监控简单模拟城市燃气 SCADA 系统的业务流程,极大提高了蜜网系统的真实性。图 5.5 为城市燃气输配 SCADA 系统的业务流程。HMI 的业务流程监控页面根据该流程设计,其中涉及到高压进气压力、出口压力、气体温度, 中压进口压力、出口压力、气体温度 6 个参数,为了实现参数的实时显示,采用了长时间记录,然后在页面重放的办法。
38
图 5.5 城市燃气输配SCADA 系统业务流程
仿真 HMI 设置了日志功能,能够记录攻击者连接、登录和查看页面的行为数据,所以仿真的 HMI 也是一个蜜罐系统。下图 5.6 为实现 HMI 的系统组成架构。
图 5.6 HMI 系统的组成架构
5.2运维安全模块
运维安全模块是蜜网的核心功能之一。蜜网部署在公网后,由于允许所有访问者进入蜜网,就面临随时被攻陷的危险,蜜网作为网络攻击者的攻击目标, 若被攻破将得不到任何有价值的信息,还可能被入侵者利用的僵尸网络。
网桥工作在数据链路层,路由不会发生跳转,经过网关的流量的 TTL 值也不会增加,因此攻击者察觉不到网关的存在。但是网关不会主动限制所有访问蜜网的流量,为了避免攻击者将蜜网作为僵尸网络去攻击其他主机,就一定要控制从蜜网向外发出的连接,抑制攻击包和控制向外连接数,如图 5.7 所示。
图 5.7 运维安全设计架构
5.2.1向外连接数控制实现
向外连接数控制由防火墙实现。防火墙可以利用规则设置连接的数量。IPtables 防火墙为封包过滤式防火墙,可以实现规则的增删改查。防火墙遵循这些规则过滤流量,在 Linux 内核中执行这个操作的是一个防火墙框架—netfilter。信息包过滤表是存储这些规则的一个文件,在表中规则被分组放在链中,而表集成在 Linux 内核中,在部署防火墙时需要编写过滤规则,图 5.8 是 IPtables 的配置文件。
图 5.8 IPtables 的配置文件
IPtables 的作用有两个,既要进行数据捕获也要对第三方实施保护,有效的
控制蜜网的对外连接,这样才降低整个系统的风险。
5.2.2抑制攻击包实现
攻击包抑制由入侵检测系统 Snort 实现,Snort 有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。本系统要求 Snort 工作在 NIDS 模式,即网络入侵检测模式。采用如下命令实现:
c:snort\bin\snort -dev -l c:\snort\log -h 192.168.200.0/24 -c c:\snort\etc\snort.conf
图 5.9 Snort 的工作流程
Snort 网络入侵检测模式也是利用规则进行过滤,而且规则是可配置的。snort 分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。Snort.conf 是规则集文件。Snort 会对每个包和规则集进行匹配,发现这样的包就采取相应的行动[52],抑制流量并告警,同时生成告警日志(如图 5.9)。
应用 Snort 最关键的就是规则的编写,一条规则包含处理动作、协议、方向、注意的端口这 4 个信息[51]。下面是一条 snort 规则。
Alert tcp any any ->192.168.1.0/24 145 (content:”|00 01 86 a5|”;msg:”mountd access”;)
该规则的意思是对所有目标地址为 192.168.1.0/24 数据包进行规则匹配,先
转换为 16 进制再与 00 01 86 a5 匹配,匹配成功就会告警并产生日志信息。
5.3数据捕获模块
图 5.10 为数据捕获模块实现的架构。该模块涉及不同类型的数据获取,这取决于蜜网内的攻击者活动。对于易受攻击的网关设备,即为攻击者提供shell, 使用标准的 shell 日志记录技术:日志文件存储一组记录,每条记录包含时间戳, 用户名和发出的命令。对于与工控设备的交互,及与 Conpot 的交互,Conpot 自身有 log 模块会将攻击行为记录为日志形式。对于 HMI 的攻击数据,也是仿照Conpot 日志的结构,将数据以文本形式储存。运维安全模块用到的 IPTables 和Snort 也有数据捕获的功能,它们自带了运行日志和告警日志。这些日志文件会定期转移到蜜网外部,从而可以对蜜网数据作离线分析。
图 5.10 数据捕获实现架构
5.4本章小结
本章按上一章设计的功能模块逐个实现,主要介绍了仿真模块,利用 Mininet 模拟了真实的网络拓扑和设备,并对网关,带宽,延迟和数据包丢失进行了定制化设计;运用 Conpot 实现协议层的交互,由于 Conpot 蜜罐的缺陷,改进了Conpot 对于设备信息,S7comm 以及 Modbus 协议的实现;利用 python Web 框架实现对 HMI 的仿真,模拟了 SCADA 系统的业务流程和 Web 服务,这极大的提高了蜜网系统的真实性,也为攻击者提供了又一种攻击途径。
6系统部署与测试
在完成工控蜜网系统的实现后,还需要对系统进行部署和测试,首先将系统部署在一台工控机上,通过模拟侦察扫描攻击进行测试,完成测试后只需要将工控机连接到外网的交换机下,即可开始进行数据捕获。
6.1蜜网系统部署
工控蜜网系统的部署仅需要一台具有 2 网卡且操作系统为 Linux 的工控机。如果是真实网络至少需要 4 台工控机才能搭建网络。这一点也体现了运用虚拟网络技术降低成本的优势,此外蜜网系统在部署也设计的十分容易,本节主要介绍城市燃气 SCADA 蜜网网络相关的部署。
6.1.1网络拓扑部署
利用Mininet 提供的API 来创建一个两层网络,一个交换机和 3 个网路节点, 分别命名为 PLC1、PLC2 和 HMI,他们都与交换机建立连接。图 6.1 为 Mininet 完成网络搭建的系统展示图。
图 6.1 Mininet 完成网络搭建的系统展示图
6.1.2配置网桥
网卡 eth0 使工控机与外网连接,为了能使虚拟网络能连接到外网,需要把
eth1 网卡闲置,作为虚拟网络连接外网的网关。利用命令:sudo ifconfig eth1 0.0.0.0,把 eth1 的 IP 设置为:0.0.0.0,这样这个闲置的网卡资源就可以被用来桥接到 Mininet 网络中的交换机上。图 6.2 为网络环境部署完成后,工控蜜网系统的网络拓扑图。
图 6.2 工控蜜网系统网络拓扑图
6.2系统功能测试
根据第四章设计的攻击者模型,本文采用了侦察扫描攻击手段对蜜网系统进行功能测试。
侦察攻击是攻击者用来在破坏性活动发生之前获取控制系统信息的一类攻击。实现的侦察攻击之一是地址扫描。在实现的地址扫描攻击中,攻击者将向从 1 到 255 的每个设备发送一个请求,请求读取特定的持有寄存器。如果设备响应,攻击者知道在那个地址存在一个设备。
图 6.3 nmap 扫描结果
通过 nmap 命令: nmap -sP 10.0.0.0/40 扫描蜜网系统的整个网段,得到的结果如图 6.3 所示。蜜网系统中虚拟节点都按要求向外暴露,10.0.0.10 和 10.0.0.20 为仿真的西门子 PLC 和施耐德 PLC,10.0.0.30 为仿真的 HMI,侦察扫描结果表明本蜜网系统实现了城市燃气 SCADA 平台网络拓扑在一台主机上的仿真。很大程度节约了部署的成本和复杂度。
获取设备的 IP 后,发现 502 端口打开,即 Modbus 服务处于开启状态,接着利用nmap 探测工控设备modbus 的脚本对施耐德PLC 发送请求设备信息的指令, nmap --script modicon-info.nse -p 502 10.0.0.20,nmap 扫描设备的过程实际是与设备交互的过程,nmap 首先与设备建立连接,然后通过功能码读取设备信息。从图 6.4 和 6.5 可以看出工控蜜网仿真的硬件设备信息与真实 PLC 完全相同。图中不同点是 PLC 中存放的工程项目的相关信息。
图 6.4 真实设备响应的设备信息
图 6.5 工控蜜网响应的设备信息
仿真的西门子PLC 对102 端口扫描,同样利用nmap 给10.0.0.10 发送S7comm 协议读取设备信息的探测数据包,返回的设备信息与真实的设备信息相同,利用抓包工具 wireshark,抓取 nmap 发送的读取设备信息的数据包经过协议解析后如下图 6.6 所示。
图 6.6 读取设备信息功能码数据包
图中 00 功能码为 Conpot 改进后实现的读取设备信息功能码,从探测的设备信息与真实信息一致,可以表明该功能码添加成功。经完整测试,工控蜜网系统支持表 1 中列举的全部 11 种 S7comm 功能码。
对于 HMI 的测试,通过浏览器访问 10.0.0.30:80,成功登录后可以看到业务流程页面,如下图 6.7 所示。
6.3攻击数据分析
对系统测试完成后,即可以将蜜网系统部署到外网上捕获数据,本文截取了16 天的攻击数据。这 16 天内,可疑攻击数据共 146669 条,攻击数据总量为 19.639 MB。
从日志文件中导出攻击数据后,对其进行了离线分析。分析主要分为三个方面:IP 和端口的统计分析,操作系统的分析和攻击序列的分析。
IP 和端口的统计分析,首先通过 IP 过滤,将时间戳,源 IP,目的 IP 完全相同的数据包进行去重,然后用统计方法,将数据源 IP 进行统计,再对蜜网支持协议的访问量进行统计。在此基础上,通过源 IP 与地区的联系,进而对攻击来源的地区进行了分析。并将分析结果利用前端展示(如图 6.8)。工控相关数据占总攻击数据的 0.6 %。攻击来源国家/地区一共有 123 个,其中中国、美国、俄
罗斯、巴西、台湾占攻击数据总量的 63.78 %。共受到 885 条工控恶意攻击,其中 Modbus 协议 884 条,占 78.89 %。
图 6.8 数据分析展示图
对于操作系统的分析,运用了万能的被动操作系统指纹工具 p0f。p0f 对于网
络攻击非常有用,它利用 SYN 数据包实现操作系统被动检测技术,能够正确地识别目标系统类型。下图 6.9 展示了部分经过操作系统分析后的数据。攻击数据的数据格式包括了时间、源 IP 地址、目的 IP 地址、操作系统等等。
图 6.9 攻击数据展示图
对于攻击序列的分析。把相邻数据包 A 和 B,如果 A 和 B 的源 IP,目的 IP, 目的端口都相同,时间戳不大于最大交互时间阈值,就把数据包 A,B 归到一个攻击序列。这六天提取出攻击序列一共 13 个。表 6.1 列出了出现次数最多的一条攻击序列。
表 6.1 蜜网攻击数列
协议 攻击序列 攻击意图 攻击者IP 次数
Modbus 000000000005012b0e0100
000000000005f22b0e0100 诊断设备 205.205.150.10 5
本文主要侧重于蜜网系统的设计与实现,对于蜜网捕捉的攻击数据只是做了初步的分析,但是从捕获的数据量,IP 和端口的分析以及操作系统的分析,可以看出系统能正常工作,体现了系统的实用性。通过对攻击序列的分析,可以看出蜜网有较高的仿真度,能够吸引攻击者进行深层交互。
6.4本章小结
本章介绍了工控蜜网的部署过程,并通过模拟攻击进行测试,结果表明,蜜
网系统成功仿真了燃气输送 SCADA 平台,对于侦察扫描甚至中间人攻击都能成功捕获。其次本章对蜜网数据进行了简单的分析这反映了本文设计的工控蜜网系统是成功的,能有效防护城市燃气 SCADA 系统,保障其网络安全。
7总结与展望
7.1总结
工业控制系统网络安全是网络安全领域的一个重要分支,为社会发展提供保障。新颖复杂的攻击手段层出不穷,愈演愈烈。蜜罐作为一种典型的防御技术, 在网络安全领域发挥着重要作用。为了吸引更多的工控攻击者,及早地发现工控攻击行为,需要在互联网上部署一定规模的工控蜜罐,来诱捕分析工控攻击。而单个蜜罐因仿真度和交互性有限,难以吸引和捕获深层次的攻击行为;蜜网部署成本高和部署条件要求高,不适合大规模部署。
深入理解城市燃气输配 SCADA 系统,掌握其网络架构、硬件设备信息以及通信协议,然后从门户网站、网络边界和业务系统三个方面对城市燃气输配SCADA 系统的安全问题进行分析,反应了城市燃气输配 SCADA 系统的脆弱性。接着对蜜罐技术和虚拟网络技术进行分析研究,决定采用虚拟网络技术构建蜜网系统,这样解决了蜜罐仿真度问题和成本高部署难得问题。通过对攻击方式的分类,本文假设了一种攻击者模型,这种模型是真实且广泛存在的,蜜网系统的框架根据攻击者模型设计,该方式提高了蜜网的真实度和欺骗性。蜜网实现结合了城市燃气输送 SCADA 测试平台的特点,模拟工业控制协议,构建虚拟网络和设备,部署防火墙及数据采集系统。最后通过攻击测试,证实本文设计的蜜网系统成功地仿真了城市燃气输送 SCADA 系统,为发现工业控制系统网络安全潜在的威胁做出了有价值的贡献。
7.2展望
本文设计的工控蜜网系统未来仍存在改进空间。首先,虽然应用虚拟网络技术仿真了 SCADA 系统的网络、设备、协议以及场景,但是对于真实的物理场景仿真仅仅是通过 HMI 页面展示,蜜网系统无法像真实系统一样给攻击者响应底层的实时设备状态。可以考虑用数学建模或者 Matlab 仿真业务场景数据,然后用 Conpot 的读线圈操作功能码读取仿真数据。其次,作为蜜网系统,本文只考虑了仿真模块,数据控制和数据捕获,对捕获数据暂时只能离线分析,今后的研究考虑使用在线分析方式,对蜜网捕获的攻击情报实时展示以及告警。最后该蜜网系统仅仅仿真了现场控制层中的 PLC 和 HMI,因为本文侧重于研究与实现工业控制相关的设备与协议,为尽可能还原城市燃气 SCADA 系统的所有入侵途径,模拟打印机、工程师站、数据库等的仿真也会来将来的工作中逐渐完善, 从而捕获多类型的攻击手段,增加攻击者在蜜网中的损耗,为真实业务系统的防护争取宝贵的响应时间。
参考文献
[1] 王钦,张隺.“中国制造 2025”实施的切入点与架构[J]中州学刊,2015,(10):32~37
[2]李东.震网病毒事件浅析及工控安全防护能力提升启示[J].网络安全技术与应用,2019,(01):9~10
[3]赵春辉.基于工业业务的 ICS 高交互蜜罐技术研究与威胁情报分析[D].[硕士学位论文].北京:北京邮电大学,2019
[4]王劼斐.基于现场总线的多单元同步控制及系统集成[D].[硕士学位论文].上海:东华大学,2008
[5]张家翔,黄楚斌.PLC 技术在电气设备自动化控制中的应用[J].科学技术创新,2018(27):167~168
[6]张成中.基于S7-300 PLC 的除雾器自动控制系统的设计[D].[硕士学位论文].河北唐山:华北理工大学,2018
[7]张瀚文.基于自主PLC 的监控组态软件数据处理系统设计与实现[D].[硕士学位论文].陕西西安:西安电子科技大学,2018
[8]Microsoft Technology Licensing LLC;Patent Issued for Physical Gesture Input Configuration For Interactive Software And Video Games (USPTO 10,086, 267)[J].Electronics Business Journal,2018
[9]张伟,陈月红.基于 OPC 技术的工业仪表与组态软件的实时通讯[J]山东工业技术,2018(19):137~140
[10]路晓.城市燃气SCADA 系统安全模拟平台的设计与实现[D].[硕士学位论文].河南郑州:郑州大学,2017
[11]胡强,张建.现场总线技术在工业称重仪表中的应用[J].衡器,2012,41(06):4~9
[12]沈盛阳,郭星,徐凯.基于 PROFINET 总线的S7-1500 控制器与SICK 编码器通讯[J].锻压装备与制造技术,2019,54(05):43~46
[13] 汤小康.高校校园网信息安全解决方案研究[J].软件导刊,2014,13(07):139~140,2016(04):46~47
[14]孙向丽,袁晶.数字时代高校图书馆危机管理研究[J].科技信息,2012(34):708~709
[15]徐震,周晓军,王利明,等.PLC 攻防关键技术研究进展[J].信息安全学报,2019,4(03):48~69
[16]石黎云.软件定义网络规划系统研究与开发[D].[硕士学位论文].北京:北京邮电大学,2018
[17]刘力.虚实结合的虚拟网络实验平台设计与实现[D].[硕士学位论文].北京:北京邮电大学,2017
[18]向宏,傅鹂,叶春晓.欧盟工控系统安全研究与举措[J].中国信息安全,2012(03):60~61
[19]徐志成.浅谈工业控制系统信息的安全研究进展[J] .技术与市场,2015,22(12):420
[20]黄容生.工业控制系统信息安全防护研究[J].网络安全技术与应用,2020(02):93~94
[21]Spitzner L.The honeynet project:Trapping the hackers[J].IEEE Security & Privacy,2003, 1(2):15~23
[22]Litchfield S,Formby D,Rogers J,et al.Rethinking the honeypot for cyber-physical systems[J].IEEE Internet Computing,2016,20(5):9~17
[23]Lau S,Klick J,Arndt S,et al.POSTER:towards highly interactive honeypots for industrial control systems[C].Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security.2016:1823~1825
[24]诸葛建伟,韩心慧,周勇林,等.HoneyBow:一个基于高交互式蜜罐技术的恶意代码自动捕获器[J].通信学报,2007(12):8~13
[25]诸葛建伟,唐勇,韩心慧,等.蜜罐技术研究与应用进展[J].软件学报,2013,24(04):
825~842
[26]徐钢,张晓彤,黎敏等.基于统计过程控制的流程工业工艺规范制定方法[J].机械工程学报,2019,55(08):208~215
[27]朱海燕.城市燃气 SCADA 系统调度中心的设计[J].煤气与热力,2014,34(04):24~27
[28]孙萍,娄国焕,赵九新.天然气门站监控系统设计及应用[J].信息系统工程,2012(07):
80~81
[29]徐珊珊.工业控制系统轻量级数据安全传输的研究[D].[硕士学位论文].浙江杭州: 浙江大学,2016
[30] 周奇辉.工业控制系统网络安全性研究[J].网络空间安全,2016,7(06):56~59,64
[31]黄勇.面向 ICS 的异常检测系统研究[D].[硕士学位论文].重庆:重庆理工大学,2014
[32]龙宇奕.电力系统网络攻击风险分析及基于数字水印的应对方法研究[D].[硕士学位论文].湖南长沙:长沙理工大学,2013
[33]L.Spitzner.The honeynet project:Trapping the hackers.IEEE Security & Privacy,2003(2): 15~23
[34]F. H. Abbasi,R. Harris.Experiences with a generation iii virtual honeynet.IEEE In Telecommunication Networks and Applications Conference (ATNAC),2009,1~6
[35]N. Provos.A virtual honeypot framework.In USENIX Security Symposium,2004,173: 13~18
[36]彭子桐.SCADA 系统在城市燃气输配管网中的应用[J].城市建设理论研究,2004(01):24~26
[37]丛航,孙昕,欧阳劲松.基于Modbus 协议的工业自动化网络规范-基于串行链路和TCP/IP
的 Modbus 应用协议[J].仪器仪表标准化与计量,2013,(1):14~17,48
[38]潘少赟.计算机网络安全威胁及防范策略探讨[J].数字化用户,2013,(16):115
[39]王德吉.“互联网+”时代的“工业 4.0”信息安全探索与实践[J].自动化博览,2016: 9~18
[40]C. Alcaraz and J. Lopez , Analysis of requirements for critical control systems[J].International Journal of Critical Infrastructure Protection,2012,5(3-4):137~145
[41]Alcaraz,Femandedez,Carvaial. Security aspects of SCADA and DCS environments in Critical Infrastructure Protection[J]. Springer Berlin Heidelberg,2012,(7130):120~150
[42]董辉明.基于混合式蜜罐技术的蠕虫对抗模型研究[D].[硕士学位论文].上海:上海交通大学,2011
[43]么世雄.基于 Openflow 的多租户网络资源感知与控制技术研究[D].[硕士学位论文].湖南长沙:国防科学技术大学,2013
[44]林秀.基于 PLC 的配料远程控制系统设计[D].[硕士学位论文].江苏扬州:扬州大学,2018
[45]张丽霞.绿盟科技:巨人背后的安全专家[J].金融电子化,2017(01):89~90
[46]张浩.西门子PLC 与HMI 的以太网通讯的应用[J].价值工程,2019(06):168~170
[47]崔利贞,王志明,方征,等.现代工业控制中PLC 编程方法的探究[J].工业控制计算机,2018,31(08):152~153
[48]何贞.基于PLC 的智能家居控制系统研究[D].[硕士学位论文].吉林长春:吉林建筑大学,2018
[49]冯雪徭.面向Internet 的 SDN 运行机制研究[D].[硕士学位论文].陕西西安:西安工业大学,2017
[50]贺文娟.蜜罐技术分析与蜜网设计[D].[硕士学位论文].安徽合肥:安徽大学,2011
[51]费腾,何旭莉.在Linux 系统下构建Snort 入侵检测系统[J].油气田地面工程,2012,31(11):72~73
[52]王建军.Snort 在校园网关键子网入侵检测中的应用[D].[硕士学位论文].山东济南:山东大学,2011