• 9.70 MB
  • 2022-06-16 12:40:48 发布

基于沙盒技术的应用层蜜罐软件实现

  • 80页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
学校代码:10286分类号:TP3密级:公开UDC:004学号:127180工程硕士学位论文基于沙盒技术的应用层蜜罐软件实现(学位论文形式:应用研究)研究生姓名:郭骞导师姓名:吴国新教授余勇研究员级高工申请学位类别工程硕士学位授予单位东南大学工程领域名称计算机技术论文答辩日期2018年08月28日研究方向计算机技术学位授予日期答辩委员会主席翟玉庆评阅人盲审2018年9月8日 硕士学位论文基于沙盒技术的应用层蜜罐软件实现专业名称:计算机技术研究生姓名:郭骞导师姓名:吴国新教授余勇研究员级高工 IMPLEMENTIONOFAPPLICATIONLAYERHONEYPOTSBASEDONSANDBOXTECHNOLOGYBYGUOQianSupervisedbyProf.WUGuoxinandProfessorofSeniorEngineerYUYongComputerScience&EngineeringSoutheastUniversitySeptember2018 东南大学学位论文独创性声明喊成果。本人觸臓挪m顿文舰个妹聊鮮下iit細喊工作魏_己经发表或撰写过,尽我所知,除了文中特别加以标注和致谢的地方外论文中不包含其他人而使用过的材料°与我的研宄成果,也不包含为获得东南大学或其它教育机构的学位或证书°一同工作的同志对本研宂所做的任何贞献均己在论文中作了明确的说明并表示了谢意3^-日期).:20研宂生签名:_东南大学学位论文使用授权声明所〉》东南大学、国家图书馆、《中国学术期刊(光盘版电子杂、中国科学技术信息研宄、志社有限公司、万方数据电子出版社北京万方数据股份有限公司有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的一纸质论文的内容相致,允许论文被査阅和借阅,可以内容和。除在保密期内的保密论文外公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布)。(包括以电子信息形式刊登授权东南大学研宄生院办理研宄生签名:>^_导师签名日期:^ 摘要摘要电力作为传统行业,电力生产是其经营核心,如何保护电力核心业务应用系统是电力企业面临的长期重要问题。传统的电力安全防护是以物理可控范围内的设备为前提,采用隔离装置(GAP)来隔离核心业务应用系统是稳妥的措施。但随着新业务及新技术的发展,移动化新业务、互动化新业务、智能化新业务及交易类新业务的大量应用,电力设备大量安装于小区中、客户家中等不可控环境中,网络攻击行为日趋针对业务系统的应用层漏洞,传统的隔离方案已不能保证电力系统的安全。本文针对用电信息采集系统(一种电力业务应用系统),实现了一个蜜罐软件,能够对来自采集终端侧的应用层网络攻击的识别、监测和分析,同时依赖于沙盒技术,直接保护该系统的应用层安全。具体实现包括三个方面。(1)利用沙盒技术实现了一种应用层蜜罐软件。该软件具备蜜罐的特性,即具备捕捉来自于网络上的攻击行为,将该行为的网络访问、数据库访问、操作系统访问进行记录和分析,能够为未知网络攻击行为提供分析的条件。而使用沙盒技术,则可以通过HookAPI等方式建立虚拟运行环境,使得在蜜罐软件上直接运行真实电力业务应用成为可能,避免传统蜜罐软件需要将仿真对象功能高度还原、不能真实运行电力应用、无法执行真实电力业务请求的缺点。(2)通过SQL代理方式扩展了沙盒技术建立的虚拟运行环境范围,使得沙盒不仅接管操作系统访问和网络访问,还接管了对于电力应用更为重要的数据访问,从而建立全面的应用层防护。(3)通过对1376.1规约(用电信息采集系统的终端调用规约)的解析和监测功能的实现,使得该软件能够对用电信息采集系统这样的具体电力应用进行深度分析,提高分析的深度,满足具体电力应用防护的需要。通过以上功能的实现,本文最终实现了一个能够针对电力业务应用系统进行监测、分析和保护的蜜罐系统,保障了电力业务应用系统的网络安全。关键词:沙盒,电力业务应用系统,蜜罐,实现I AbstractAbstractAsatraditionalindustry,Electricity"scoreispowerproduction.Howtoprotectthecoreproductionandthemanagesystemisanimportantissueforthepowercompany.Thetraditionalprotectionforpowermanagesystemisusingisolationdevice(GAP)toisolatethecoreproductionsystem(powerapplication).Thisisasafemeasurebasedontheequipmentwhichisinphysicalcontrollablerange.Butwiththedevelopmentofnewbusinessandtechnology,traditionalisolationschemescannotprotectthepowersystem.Inthispaper,ahoneypotsoftwareisimplementedtoprotecttheelectricalinformationacquisitionsystem(anelectricpowerbusinessapplicationsystem),andtoidentify,monitorandanalyzethenetworkattacksfromtheacquisitionterminalside.Therealizationcontentincludesthreeaspects.(1)Weusethesandboxtechnologytoimplementanapplicationlayerhoneypotsoftware.Thesoftwarehasthecharacteristicsofthehoneypot,thatis,tocapturetheattackfromthenetwork,torecordandanalyzethenetworkaccess,databaseaccess,andoperatingsystemaccess,whichcanprovidetheconditionsfortheanalysisofunknownnetworkattackbehavior.Usingsandboxtechnology,virtualrunningenvironmentcanbeestablishedthroughHookAPIandsoon,makingitpossibletorunrealpowerbusinessapplicationdirectlyonHoneypotsoftware.Thismethodsolvesmanyproblemsofthetraditionalhoneypotsoftware,suchastheneedtorestorethefunctionofthesimulationobject,donotrunthepowerapplication,andcannotexecutetherealpowerservicerequest.(2)ThispaperextendsthescopeofvirtualoperationenvironmentbuiltbysandboxtechnologythroughSQLproxy.Itmakesthesandboxnotonlytakeovertheoperatingsystemaccessandnetworkaccess,butalsotakesovermoreimportantdataaccesstothepowerapplication,thusestablishingacomprehensiveapplicationlayerprotection.(3)Throughtherealizationoftheanalysisandmonitoringfunctionofthe1376.1protocol(theterminalcallprotocoloftheelectricalinformationacquisitionsystem),thesoftwarecananalyzethespecificpowerapplicationsuchastheelectricalinformationacquisitionsystemtoimprovethedepthoftheanalysisandmeettheneedsofthespecificprotection.Throughtherealizationoftheabovefunctions,ahoneypotsystemwhichcanmonitor,analyzeandprotectthepowerbusinessapplicationsystemisfinallyrealized,andthenetworksecurityofthepowerbusinessapplicationsystemisguaranteed.Keywords:sandbox,powerapplication,honeypot,implementionIII 目录目录摘要...................................................................................................................................................................IAbstract..........................................................................................................................................................III目录.................................................................................................................................................................V第一章绪论....................................................................................................................................................11.1研究背景...........................................................................................................................................11.2电力应用架构...................................................................................................................................21.3传统电力安全防护措施...................................................................................................................41.4电力安全的新风险与传统防护措施的不足...................................................................................51.5论文研究内容及意义.......................................................................................................................81.6论文组织结构...................................................................................................................................9第二章相关技术..........................................................................................................................................112.1用采系统.........................................................................................................................................112.2针对电力应用的攻击行为模型.....................................................................................................122.3蜜罐技术.........................................................................................................................................142.3.1蜜罐技术综述......................................................................................................................142.3.2蜜罐技术实现......................................................................................................................142.4沙盒技术.........................................................................................................................................152.4.1沙盒技术综述......................................................................................................................152.4.2沙盒技术实现......................................................................................................................152.5目前技术的不足.............................................................................................................................162.6本章小结.........................................................................................................................................17第三章整体软件设计..................................................................................................................................193.1设计思路.........................................................................................................................................193.2总体设计.........................................................................................................................................213.2.1业务流程..............................................................................................................................213.2.2应用架构..............................................................................................................................223.2.3数据架构..............................................................................................................................223.2.4技术架构..............................................................................................................................233.3容量规划.........................................................................................................................................243.4本章小结.........................................................................................................................................24第四章多种沙盒技术的实现......................................................................................................................254.1传统沙盒技术应用和实现.............................................................................................................254.1.1技术选型..............................................................................................................................254.1.2技术实现..............................................................................................................................25V 东南大学硕士学位论文4.1.3模块执行流程......................................................................................................................264.2数据库沙盒的实现.........................................................................................................................274.2.1数据库沙盒总体架构..........................................................................................................274.2.2模块处理流程......................................................................................................................284.2.3JDBC驱动............................................................................................................................294.2.4JDBC接口适配器................................................................................................................314.2.5数据库适配器......................................................................................................................314.2.6SQL过滤模块......................................................................................................................324.2.7数据库操作日志..................................................................................................................344.3本章小结.........................................................................................................................................34第五章针对用采系统的网络监测模块的实现..........................................................................................355.1网络监测模块的实现.....................................................................................................................355.2用电信息采集规约的解析.............................................................................................................355.2.1帧结构..................................................................................................................................365.2.2传输规则..............................................................................................................................375.2.3链路层..................................................................................................................................375.3监测处理流程.................................................................................................................................415.4本章小结.........................................................................................................................................42第六章整体蜜罐软件的实现......................................................................................................................436.1各功能的集成与模块间通信.........................................................................................................436.1.1蜜罐采集协议......................................................................................................................436.1.2通信认证协议......................................................................................................................456.1.3配置管理/监控协议............................................................................................................466.2分析引擎的实现.............................................................................................................................466.2.1分析引擎..............................................................................................................................466.2.2分析场景..............................................................................................................................476.2.3分析规则..............................................................................................................................486.2.4实现流程..............................................................................................................................526.3网络攻击的重放.............................................................................................................................536.4最终实现.........................................................................................................................................546.5本章小结.........................................................................................................................................57第七章软件测试..........................................................................................................................................597.1测试拓扑结构.................................................................................................................................597.2测试方法.........................................................................................................................................597.3测试配置.........................................................................................................................................607.4混合攻击行为抵御能力分析.........................................................................................................607.5本章小结.........................................................................................................................................62VI 目录第八章总结与展望......................................................................................................................................638.1总结.................................................................................................................................................638.2展望.................................................................................................................................................63致谢................................................................................................................................................................65参考文献........................................................................................................................................................67作者简介........................................................................................................................................................71VII 第一章绪论第一章绪论1.1研究背景电力业务应用系统(以下简称电力应用)是一种由计算机设备与工业过程控制部件(即工业控制设备)组成的工业自动控制系统(以下简称工控系统),主要用于实现远程数据采集及控制等功能,包括生产控制大区具有远程控制功能的电力监控系统,以及管理信息大区中用于用户侧及开放环境下数据采集的用电信息采集系统(以下简称“用采系统”)。随着计算机技术和网络通信技术应用于电力应用,带来了电力应用的网络安全问题,如病毒、信息泄漏和篡改、系统被非法控制等,这些网络安全问题极大的降低了电网的稳定,带来人民的生命财产损失、环境的污染破坏、工商农业无法正常运转,最终影响国家的长治久安。电力安全防护的目标是降低电力应用的危险发生概率,避免或减少人民的生命财产的[1]损失和环境污染,以达到环境、经济、社会三方面效益的一致发展。近年来,国内外电力业务应用的网络安全引发的重大事件仍常有发生。在国外,2003年,美国俄亥俄州一家核电厂的计算机感染了SQLServer蠕虫,导致电力监控系统停机将近5小时;2008年,南美洲某国家的电网调度系统被一名黑客劫持,导致几分钟的大面积电力中断;同年,美国国土安全局在攻击测试中,对一台发电机的控制系统进行网络攻击实验,导致发电机组损坏;2010年,伊朗核电站大面积爆发“震网”病毒,该类攻击行为重点对西门子的核电数据采集与监控系统SIMATICWinCC发送特定指令,导致离心机过速;2011年,全球独立安全检测机构NSSLabs发布报告称,西门子的一个工控系统存在新的漏洞,该漏洞易受黑客攻击。近年来,针对电力应用的网络入侵事件接连发生,尤其是2015年12月23日“乌克兰”事件,进一步印证了网络攻击已成为破坏电力基础设施的新型武器。2017年6月公开的“Industroyer”工控系统专用工具,就是利用工控系统的应用层规约开展攻击的工具。在国内,电力应用也是国内外攻击的主要目标。习近平总书记在2016年4月19日的网络安全和信息化工作座谈会上提出:“电力调配指令存在可被恶意篡改的风险隐患”,明确指出了电力应用的现实风险。2016年国家电网公司监测并拦截互联网出口高风险攻击数量238万余次,同比增加62.2%。2017年上半年,网络安全形势更加严峻复杂:互联网边界遭高风险攻击180.7万余次,同比增加约51%。敌对势力从来没有放弃对电力应用的网络攻击。传统的安全防护技术目前已无法切实保障电网的安全稳定,电力应用面临来自终端侧的定制攻击,这类攻击可以通过定制的规约数据包绕过传统防护措施,渗透并控制电力应用。电力1 东南大学硕士学位论文应用的安全状况引起了国家以及公司等多个层面的高度重视,抵御网络攻击已经是电网稳定运行的核心安全问题之一,迫切需要寻找新的技术、新的方法强化电力应用安全。2014年,国家发改委发布14号令《电力监控系统安全防护规定》替代电监会5号令《电力二次系统安全防护规定》。14号令在5号令的基础上增强了国家信息安全等级保护制度、无线接入网的控制、安全接入区的设置等要求,从而从技术上对电力二次系统的安全进行了强化。但防护措施依然依赖于传统的防火墙、入侵检测、隔离(GAP)技术,针对新形势下的电力应用攻击行为的控制能力有限,主要表现在:(1)智能终端的安全缺陷,导致工控安全威胁向电力应用主站泛化演进。工控终端与传统终端相比,主要实现实时的智能化生产控制操作,设计之初主要考虑功能的可用性与实时性,信息安全措施设计较少,同时终端设备类型多数量大(如配电终端规模约数百余万台、智能电表约数亿台)存在漏洞不可控的情况:一是存在程序开发不规范造成的系统软件漏洞和设备制造时植入的硬件后门等隐患。二是智能终端漏洞修复困难,工控系统优先保障业务可用性与连续性,一旦上线不能中断,无法像信息系统进行常态补丁升级。三是智能终端使用的嵌入式操作系统通常由硬件设备厂商自己进行裁剪,系统存在较多安全配置漏洞未加固。攻击者可以利用这些智能终端漏洞对装置进行控制,发动对电力应用主站的网络攻击。(2)电力工控攻击定制化发展,电力工控规约安全缺陷成为新的攻击目标。工控攻击与传统信息系统攻击相比需要深入了解工控业务逻辑,进行深度定制,通过恶意控制指令的模拟实现对系统的破坏,目前由于工控通信协议注重实时性,部分典型工控通信协议(IEC61850/60870)缺乏加密认证机制,使工控控制命令易被伪造。(3)面向业务的电力应用安全监测与攻击溯源能力不足,无法准确感知工控攻击威胁。目前,网络攻击已成为新型武器,敌对势力利用网络攻击成功破坏电力等国家关键基础设施已成为现实,电力工控特种攻击一般针对电力特有的协议和特定的业务逻辑,具有攻击目标明确、操作隐蔽、潜伏时间长等特点,且一般通过集团式甚至是国家级实施攻击。攻击采用的技术先进,病毒扩散以及破坏隐蔽,现有防病毒软件无法进行查杀,由于缺乏对电力应用全局性的安全监测预警能力,导致无法对潜在的风险或隐患进行预测并对攻击事件进行追踪溯源。1.2电力应用架构电力应用的典型逻辑架构如图1-1所示,由数据访问层、业务数据表示层、业务操作和数据采控组成。其中数据访问层主要负责数据的存储,业务层和业务数据表示层是电力应用的核心,提供业务处理的过程。业务操作和数据采控分别是客户端管理界面和电力采控2 第一章绪论装置的采控过程。其中业务层、业务数据表示层是整个系统的核心,关系到整个系统的安全。图1-1电力应用典型逻辑架构用采系统的网络架构见图1-2,用采系统包括用采系统主站、通信信道、终端设备以及采集系统Web用户端。采集系统主站还与营销、安监、运检、运监、发策等其他业务系统进行交互,为这些业务系统提供数据支撑。用采系统主站是典型逻辑架构中的业务层、业务数据表示层以及数据访问层。采集终端是数据采控部分。用采系统主站同其他系统同在企业内网,具有同样的防护级别,属于企业内可信任的安全系统。图1-2用采系统的网络架构采集终端包括采集设备、表计设备和计量现场作业终端三类。(1)采集设备采集终端处于采集系统的中间层包括集中器和专变终端。集中器一般部署在用户变压器附近,负责对变压器所辖居民用户电能表的用电信息采集、汇总,并将汇总数据集中上传3 东南大学硕士学位论文到主站。工商业用户一般配置专变终端,由专变终端采集用户电表用电信息,实现与采集系统主站通信。集中器不带控制功能,专变终端具备负荷控制功能。(2)表计设备表计设备处于采集系统的底层,主要指智能电能表和多功能电能表。一般智能电能表具有费控功能,可以根据用户缴费信息和用电情况进行执行费控功能。费控功能包括本地费控和远程费控两种;本地费控计费和控制环节在电表本地完成,远程费控的控制命令由采集系统主站发起。远程多功能费控电能表一般是指内部集成了远程通信模块的电能表,该电表同时集成了集中器和电表的功能,一般用于偏远用户或临时用户的用电计量设备。智能电能表具备费控功能,属于带控设备。(3)计量现场作业终端计量现场作业终端是对电能表和采集设备进行应急抢修与现场维护的移动作业设备,计量现场作业终端内置通信模块可直接与主站通信,连接的是采集主站系统的采集运维模块,网络架构上等同于一款移动的采集终端。当电表与主站之间的链路故障时,可通过计量现场作业终端建立主站与电表之间的传输通道,排查电表、采集终端与主站之间的故障点,排查修复故障,实现电表、采集终端的应急抢修与现场维护。三类终端中,除计量现场作业终端是企业员工领用和使用,其他两类终端都在用户侧环境中。用采系统主站和采集终端之间通过网络进行通信,采集设备和表计设备部署于各家各户、各企事业单位中,处在无保护或低保护的环境中,导致来自采集终端的网络攻击威胁对用采主站影响较大。1.3传统电力安全防护措施电力作为传统行业,电力生产是其经营核心,所有的防护措施必须以保护核心经营为前提。在网络互联尚未大量发展的时期,已经因为个别事件导致电力采用更为封闭的手段,作为最核心生产系统(直接获取电力传输数据或控制电力传输装置的系统或电力应用)放置于生产控制大区,其中控制区负责带控制指令的电力应用,非控制区负责其他仅具备采集功能而不具备控制能力的电力应用。所有电力数据采集和控制的装置(图1-3中左下侧的生产控制大区)均在有人值守的区域。其他不采集装置数据或控制装置的电力应用放于管理信息大区。网络防护结构如图1-3所示,从互联网向内依次是防火墙、正反向隔离装置(GAP)。4 第一章绪论图1-3电力信息网络防护结构1.4电力安全的新风险与传统防护措施的不足电力应用分布在电力的各个环节,在电网调度环节有能量管理系统,在配电环节有配点自动化系统,在变电环节有变电站监控系统,在用电环节有用采系统。在终端侧,具有一系列典型的工控终端包括变电站数据通信网关机、保护测控装置、配电终端和用电信息采集终端等,这些终端类型多样,分布广泛,给电力应用的安全防护带来的挑战。管理信息大区中的用采系统也是一种典型的电力应用。该系统的终端:费控电能表及专变终端,不仅可以采集用户电量信息,也能控制开关,大量分布在居民家中、小区内,给安全防护工作带来了困难。传统的电力安全防护是以物理可控范围内的设备为前提,采用隔离装置(GAP)来隔离核心生产系统(电力应用)是稳妥的措施。随着新业务及新技术的发展,移动化新业务、互动化新业务、智能化新业务及交易类新业务在满足了智能多样灵活互动需求的同时,也增加了业务应用过程中的各种风险。作为电力应用中最为重要的生产控制系统,譬如调度自动系统、变电站自动化系统、配电自动化系统、用采系统等等,在网络互联尚未大量发展的时期,这些系统都部署于公司可控的物理区域内,具有视频监控、门禁等措施。而今,电力应用越来越向用户侧延伸。譬如,用采系统的终端就是家用智能电表等终端设备,具有直接的数据采集和断电控制功能(见图1-4)。5 东南大学硕士学位论文图1-4用采系统的典型网络架构这样的电力应用使用场景下,导致采集终端(电力采控装置)必须安装于电力公司不可控的小区中或住户家中。连接电力采控装置接入的网络与电力应用是互联的,对应的安全防护仅采用防火墙,比传统的隔离装置(GAP)级别要降低很多。而目前大量攻击是通过应用协议的应用层攻击,防火墙的防护对此攻击无能为力,当前防护问题的难点见表1-1。表1-1来自终端的可能攻击行为攻击效果攻击类型攻击对象传统防护措施说明信息获取端口扫描电力应用服务器防火墙拒绝服务DOS攻击电力应用服务器防DOS攻击设备DDOS攻击、网电力应用服务器防DOS攻击设备络拥塞数据篡改传输数据篡改电力应用加密认证系统控制缓冲区溢出电力应用无通过畸形报文引起系统错格式错误误,向电力应用服务器写入后门程序。SQL注入通过规约字段的解析漏洞,篡改SQL命令,调用SQL存储过程,获得数据库权限。命令注入通过规约字段的解析漏洞,向电力应用服务器写入后门程序。系统篡改缓冲区溢出电力应用无通过畸形报文引起系统错格式错误误,删除或篡改电力应用软6 第一章绪论攻击效果攻击类型攻击对象传统防护措施说明件,导致电力控制瘫痪。依托国家发改委信息安全专项,针对系统攻击和系统篡改,中国电科院等单位开展典型工控系统安全测评,发现主要存在七类攻击途径(见表1-2)对工控设备发起边界攻击、协议攻击、软硬件漏洞攻击和管控漏洞攻击,可能导致工控设备配置异常、程序运行错误和通信中断等后果,严重的将影响主站控制系统,造成系统瘫痪,威胁电网稳定运行。表1-2工控设备典型攻击攻击分类攻击途径攻击可导致后果边界攻击通过无线公网漏洞渗透主站系统被入侵,控制系统瘫痪协议攻击通信协议设计缺陷引入安全工控设备被恶意控制,可向一次威胁设备发送错误的操作指令,威胁电网稳定运行软硬件漏洞攻击设备制造时植入软硬件后门设备程序运行异常、通信中断和和逻辑炸弹敏感数据泄露利用设备应用程序开发不规工控设备瘫痪范造成程序漏洞管控漏洞攻击运维用电脑和移动存储介质工控设备感染病毒或木马,运行携带病毒、木马感染工控设备出现异常运维人员直接接入工控设备工控设备配置异常或感染病毒、篡改配置文件或植入恶意代木马码内部人员各种后果均可发生从风险引入的环节和攻击手段出发,对工控设备的7类主要攻击进行了可监测性分析,如表1-3所示,初步分析可监测的攻击有5类,无法监测的攻击有2类。表1-3工控攻击的可监测性分析可监测性攻击途径可监测通过无线公网漏洞渗透运维用电脑和移动存储介质携带病毒、木马感染工控设备运维人员直接接入工控设备篡改配置文件或植入恶意代码通信协议设计缺陷引入安全威胁设备应用程序开发不规范造成程序漏洞不可监测设备制造时植入软硬件后门和逻辑炸弹内部人员(1)可监测的5类攻击对于通过无线公网漏洞渗透,可通过识别渗透节点的方式进行监控,一方面在通讯设7 东南大学硕士学位论文备中对所有接入点进行探测,另一方面通过探针监测网络中的异常流量以判断是否被渗透。对于运维笔记本和移动存储介质携带病毒、木马感染工控设备,主要通过对移动介质的使用过程进行监控,对设备移动存储接口使用情况进行记录,并分析介质和设备间的文件交换明细。对于运维人员直接接入工控设备篡改配置文件或植入恶意代码,可行的监控手段包括,要求运维人员在专用设备上进行操作,通过该专用设备对人员操作进行监管和审计。对于通信协议设计缺陷引入安全威胁属于协议设计阶段即存在的风险,主要针对协议缺乏安全认证进行攻击,可通过辨别控制命令发出方,监测工控设备日志审计与报文综合分析。对于设备应用程序开发不规范造成程序漏洞,可通过对设备应用程序进行代码安全分析进行监测,但较难实现在线实时监测。(2)不可监测的2类攻击对于设备制造时植入软硬件后门和逻辑炸弹,制造阶段故意植入的风险在发作前难以监测。宜加强设备厂商信息安全意识宣贯,并实施工控设备供应链安全管理,强化信息安全入网检测作用,推动工控设备的国产化。内部人员恶意风险,其攻击途径非常多,难以通过技术手段监测,宜加强员工信息安全意识教育,规范运维管理制度及运维操作流程,对工控系统的重要操作实施多因子安全控制。1.5论文研究内容及意义为了更好的应对电力应用的应用层风险,快速准确的对以上5类可监测的攻击行为进行分析,主动阻止网络攻击的行为并及时捕获,对捕获的攻击行为进行分析,采取针对性的防御措施,国家电网公司开展了工控安全防护的研究,其中部分内容是研究“基于沙盒技术的应用层蜜罐软件实现”,能够实现对未知网络攻击行为的分析、识别和防御。具体实现包括三个方面。(1)利用沙盒技术实现了一种应用层蜜罐软件。该软件具备蜜罐的特性,即具备捕捉来自于网络上的攻击行为,将该行为的网络访问、数据库访问、操作系统访问进行记录和分析,能够为未知网络攻击行为提供分析的条件。而使用沙盒技术,则可以通过HookAPI等方式建立虚拟运行环境,使得在蜜罐软件上直接运行真实电力业务应用成为可能,避免传统蜜罐软件需要将仿真对象功能高度还原、不能真实运行电力应用、无法执行真实电力业务请求的缺点。8 第一章绪论(2)通过SQL代理方式扩展了沙盒技术建立的虚拟运行环境范围,使得沙盒不仅接管操作系统访问和网络访问,还接管了对于电力应用更为重要的数据访问,从而建立全面的应用层防护。(3)通过对1376.1规约的解析和监测功能的实现,使得该软件能够对用电信息采集系统这样的具体电力应用进行深度分析,提高分析的深度,满足具体电力应用防护的需要。通过该软件的实现,能够对用电信息采集系统的主站提供全面的应用层保护,抵御网络攻击对用电信息采集系统主站的控制。1.6论文组织结构本文共分为8章,各章的主要内容具体如下:第一章为绪论,阐述项目背景及技术情况,对本文所研究对象的背景的进行阐述和分析,探讨研究的内容和意义。第二章,对本文所涉及软件的背景知识和相关技术进行阐述,分析当前技术的不足以及发展的目标。第三章,对蜜罐软件的整体设计进行梳理,明确设计思路、业务流程、应用架构、数据架构、技术架构和容量规划。第四章,重点实现沙盒模块,包括传统沙盒和数据库沙盒。针对传统沙盒技术无法实现的数据库保护,通过SQL代理方式实现,弥补传统沙盒的不足。第五章,实现网络监测模块设计,解析用采系统的1376.1规约,使得整个蜜罐软件能够针对用采系统进行针对性防护和分析。第六章,对蜜罐软件各个部分进行集成,实现统一的通讯,建立分析引擎和分析规则,实现网络攻击重放。第七章,软件测试。第八章为总结与展望。9 10 第二章相关技术第二章相关技术本文实现的蜜罐软件主要针对用采系统,用采系统是主要用于采集智能电表数据,对每户电力用户的电表信息进行采集、处理和实时监控的用电状态,实现用电信息的自动采集、电表的异常监测、供电质量监测、电表参数的下发和设置、相关信息发布、分布式能源监控等功能,是常见的电力应用,面临着典型的网络攻击行为。针对这些攻击行为,本文主要采用典型的蜜罐技术和沙盒技术来实现针对性的防护。2.1用采系统从用采系统主站界面上执行请求,到计量终端执行具体的操作,譬如关合闸、采集数据,需要经过一系列的逻辑转化,包括有界面展现与用户输入、服务请求的发送、数据传出与传入、业务逻辑的转化、报文数据组装和传输、数据操作和反馈等多个阶段,在网络上分为主站层、通信信道层、采集终端层(现场终端层)三个层次,见图2-1,该图是图1-2的详细图。主站层具有前置采集服务器、应用服务器、数据库服务器等组成。通信通道层主要采用的通信信道有:光纤专网、无线专网或运营商虚拟专网、230MHz无线接入。采集终端层(现场终端层),对于低压集抄部分,可能有多种形式,包括集中器+电能表和集中器+采集器+电能表等,负责收集用户智能表计设备的信息,处理和冻结有关数据,并实现与上层主站的交互。11 东南大学硕士学位论文图2-1用采系统系统网络结构图2.2针对电力应用的攻击行为模型一般网络攻击都分为三个阶段,即攻击的准备阶段、攻击的实施阶段和攻击的善后阶段,如图2-2所示。图2-2网络攻击一般过程攻击的准备阶段包括确定攻击目的、准备攻击工具和收集目标信息。此阶段即通过各种途径对所要攻击的目标进行多方面的了解,确定攻击的时间、地点和方法等。攻击的实施阶段包括隐藏自己的位置、利用收集到的信息获取帐号和密码登陆主机、12 第二章相关技术利用漏洞或者其他方法获得控制权并窃取网络资源和特权。攻击的善后阶段包括消除攻击的痕迹、植入后门和安全退出。从黑客攻击的目的来看,无非两种:一种是给目标以致命打击,使其丧失基本能力,虽然黑客自己不一定能得到直接利益,但能让目标系统受损,甚至瘫痪。另一种攻击,其目的在于获取直接的利益,比如截取到目标系统的机密信息,或者是得到目标系统的最高控制权。无论哪种目的,攻击实施阶段都是整个攻击的核心,从图2-3可见,侵入和威胁实现的行为主要顺序为:创建后门、隐蔽后门、隐蔽踪迹、获取数据等资源、权限提升、获取访问权限、威胁实现。而对于系统控制类攻击、系统篡改类攻击而言,实现攻击的关键是向电力应用服务器的操作系统写入数据(包括写入后门程序、篡改电力应用软件)和调用数据库存储过程。从用采系统来看,大面积用户的用电稳定是该系统最为重要的安全防护目标,而控制用户用电的是居民家中的智能电表。智能电表的控制受制与规约加密、终端安全保护等国家电网公司强制要求的限制,仅在接收到从用采系统主站发来的指定命令方能执行终端动作,具体措施因涉及企业秘密不进行详述。因此,必须攻破用采系统的主站,方能实现各类攻击目的。攻击:总意图I,算法G侦查侵入、威胁实现创建后门识别操作系统类型和版本隐蔽踪迹识别主机服务获取数据等资源获取其它信息识别主机是否存活权限提升获取用户/组信息获取文件等资源信息获取访问权限获取应用和棋标信息威胁实现破坏完整性TCPFIN扫描拒绝服务TCP连接扫描破坏保密性端口扫描ping目标主机地址TCPSYN扫描SYNFLOODING代理扫描DumbHost扫描TCP连接请求其它类型PingTCPXmastreeFTP反弹扫描扫描PingSweepSYN标志,目的TCP空标志位扫描UDP扫描地址:SYN报文半连接扫描Partof关系图例:攻击意图框属性:成本因子,收益因子,Kindof关系成功/失败标志,前提,提供攻击行为框属性关系攻击行为实例框属性实例关系序列关系图2-3攻击的行为模型从攻击的途径上来看,用采系统等电力应用仅有“遥测”、“遥信”、“遥控”三类数据流,见表2-1,均为单向传输,其中和用采系统主站安全最为密切的从终端侧传输过来的数据,即“遥测”、“遥信”,这两类数据从终端向电力应用的数据流可供网络攻击使用,也13 东南大学硕士学位论文是电力应用仅接收的2类数据。表2-1终端与电力应用的交互类型交互类型数据内容传输方向遥测终端测量电力线路的具体数值,单向,终端流向电力应用譬如电量、电压等遥信电力线路、开关的状态信息单向,终端流向电力应用遥控控制终端的关合闸单向,电力应用流向终端从攻击的通道来看,攻击行为伴随遥信、遥测数据攻击前置机和数据库。前置机是下发指令的关键服务器,获得此前置机服务器权限即可获取所有终端的控制权,达到控制整个系统和篡改系统的最终目标;另一方面,虽然数据库中的数据保密性对电力来说并不具有核心重要作用,但数据库服务器是管理服务器向前置机传递数据的重要途径,一旦被控制也可间接控制整个电力应用。2.3蜜罐技术2.3.1蜜罐技术综述[2]蜜罐是一种大范围使用的针对网络攻击的诱骗手段,这种技术在国家互联网响应中[3][4]心等单位使用广泛,重点针对网络安全威胁进行监测,具有很好的效果。蜜罐主要通过[5]仿真某类特定应用、发布于网络,来实现针对该类应用的攻击行为捕获,为高级网络安全[6][7]分析人员提供攻击行为的研究条件。蜜罐主要实现应用仿真、行为捕获和回放3大功能。基于安全威胁监测方面的重要作用,大量组织和机构开始研究基于蜜罐技术的恶意代码自动[8][9]捕获、监控和分析方法,形成了一系列较为完善的产品。譬如德国的蜜网项目组研发的Nepenthes系统。Nepenthes采用低交互式蜜罐技术思想,通过模拟网络服务并预留特定的漏洞,诱骗、捕获并分析针对性的恶意攻击样本。iDefense实验室的Multipot恶意代码捕[14]获器、DTK、honeyd等开源工具和KFSensor、ManTraq等一系列的商业产品也是具有代表性的产品。2.3.2蜜罐技术实现蜜罐的主要技术原理包括以下几个方面:(1)网络诱骗。通过预留缺陷或漏洞,诱骗网络攻击者针对这些安全弱点开展探测、攻击行为。蜜罐的价值就在于对这些探测、攻击的过程的分析,网络诱骗是蜜罐技术中的重[10]要实现部分,常见的有模拟网络服务、模拟特定软件漏洞、模拟应用服务、流量仿真等。(2)数据捕获。首先由防火墙、截包工具来对出入蜜罐的网络数据报文进行截包、[11][12]记录;然后由数据转发器来将所有的网络数据报文进行转存,便于分析;最后由蜜罐的模14 第二章相关技术[13]拟操作系统和模拟服务,截取所有系统日志、用户操作、执行动作等。[14](3)数据分析。蜜罐技术的另一个重要作用是数据分析,因为未经处理的网络数据信息庞大,部分是正常业务数据、部分是攻击数据,需要通过协议分析、行为分析、特征[15]分析等手段,对数据进行挖掘,提取有用的数据、行为,为安全人员分析黑客所使用的工[16]具、攻击的策略以及攻击的动机提供简明、直接的信息。[17](4)网络保护。网络保护住要用于确保蜜罐软件自身的安全。因为蜜罐仅是模拟,不能代替真实应用,且是黑客的攻击目标,被攻破以后极有可能被黑客用作为攻击其他重要[18][19]系统的跳板。因此必须对蜜罐系统进行隔离,避免降低所在网络的整体安全水平。基于以上的原理和需求,蜜罐本质上是一个“虚假的、存在安全漏洞、防范措施不足[20]的计算机”,目的是诱骗黑客攻击,借此收集网络攻击过程,因此必须具有以下功能:识别[21]攻击、产生告警、强大的记录能力、诱骗、协助调查。因为蜜罐这些特点,使得它不能在真实的应用服务器上运行,而必须设置独立的服务器地址并与真实应用完全隔离,限制了蜜罐系统不能作为一种防护手段来使用。2.4沙盒技术2.4.1沙盒技术综述[22]沙盒技术实际上也是一个模拟的虚假操作系统运行环境,在这个环境中,各类有风[23]险的攻击行为、破坏行为可以任意执行而不会对原系统产生破坏。它和虚拟机的具有大量的不同:沙盒通常运行在操作系统上,依赖于原系统的API执行、线程的调度等,只是通过[24]hook的方法把沙盒中运行的应用所执行的API拦截掉。通过这种API拦截机制,沙盒能够将所有的API请求转移、存储和回放,随时可以将环境“回滚”到破坏前的状态。而虚拟机则是虚拟底层的硬件环境,虚拟的硬件环境上再安装操作系统,目的是为了更为有效的利用资源,不具有操作转存的机制,只具备整个硬件环境备份的能力。所有当虚拟机内受到攻击和破坏时,虚拟机只能通过备份文件将整个磁盘、存储介质恢复到备份前。[25]一些通过hookAPI方式实现的“主动防御”技术,同沙盒使用的是同一种方式,是沙盒技术的子集,通常只具备拦截API请求的能力。而沙盒可以将虚拟环境恢复到原状态[26]。目前的沙盒技术主要的应用领域还在于操作系统的保护,包括防病毒、防木马等行[27][28]为。对于业务应用的保护尚无明确的方法和技术。目前业界对于真实业务应用的攻击捕获和应用保护的实践尚存在空白。2.4.2沙盒技术实现15 东南大学硕士学位论文[29]沙盒的实现,本质是实现一个Windows过滤文件驱动,这个过滤驱动封装原本的系统驱动功能,使得上层软件对底层的调用能够提前被截获,即APIHook技术。具体来说,就是把要写入硬盘的数据写入到一个转存处,实际上并没有写到硬盘;当读取内容时,判断是沙盒开启之前就存在的内容还是开沙盒之后写入的内容,要分别从不同的地方读取内容,重启之后把转存的地方清零。当然,本项目的目标是防护目标系统不会恶意影响,故直接禁止写入数据至硬盘,并将要写入的数据全部转存。APIHook技术有InlineHook、SSDTHook、ShadowSSDTHook等多种。InlineHook是封装API函数,重写函数执行流程,实现对驱动函数的过滤控制。SSDTHook和ShadowSSDTHook主要是针对系统服务描述符表(SystemServicesDescriptorTable)执行Hook,实现对内核API的操作。沙盒技术利用APIHook实现一系列的具体功能,实现包括以下部分:(1)文件系统虚拟化。针对WriteFile()、ReadFile()使用APIHook技术,实现一个封装于系统API之上的文件系统驱动程序,重定向文件目录的路径。监控Windows系统上,文件的打开、创建、删除、复制、粘贴、剪切、读、写等状态。(2)注册表虚拟化。使用APIHook技术,封装注册表系统的驱动程序的API接口,避免真实的Windows注册表被直接写入。封装注册表操控的内核函数、定义通用的HIVE数据结构,并重定向注册表相关键值的路径,指向指定的文件。监控注册表的键值操作:创建、删除、读、写、粘贴、剪切、复制等状态,允许读取操作,但不允许创建、删除、写、粘贴、剪切等操作。一旦发生违规行为,立即触发沙盒动作,将这些操作进行记录,同时将操作的行为进行转存,避免对windows注册表的操作。由于电力应用中不再使用32位系统,因此本课题仅讨论64位系统。在64位windows系统中,注册表操作管理主要依赖于CmRegisterCallback()函数。CmRegisterCallback()函数,主要是提供了一个函数指针,通过这个指针,执行注册表的监控和操作。(3)服务虚拟化及自我保护。对于沙盒创建的服务进行虚拟化,主要作用是防止沙盒内的程序通过服务进程来穿透沙盒。沙盒的实现本身是避免危险的行为对真实系统产生影响,如果不能有效控制危害范围,就无从谈起沙盒技术。另外,为避免沙盒进程防止被恶意程序结束,在64位Windows系统上需要内核函数ObRegisterCallbacks(),利用Callback函数指针来保护进程不被结束。(4)DCOM虚拟化。使沙盒内进程的功能更加完善,比如ie浏览器在很多地方就使用了DCOM组件,如不进行虚拟化则ie有些功能会不正常。(5)实现钩子引擎。(6)日志记录。支持64位操作系统。(7)服务端进程。用来模拟RPC通信。实现所需要进行RPC交互的各种消息。2.5目前技术的不足传统蜜罐技术的实现如图2-4所示,当网络数据流进入后,首先由Snort或IPS进行16 第二章相关技术甄别,当检测攻击数据时,则进入蜜罐环境。蜜罐环境中仿真的虚拟应用将向内核空间的[7]Read()和Write()动作进行记录,和snort采集的网络数据一起交给日志系统(或日志数据库)。这样的技术实现严重依赖于通过Snort或IPS进行的网络数据流分析,依赖于指定规则匹配,误报或漏报容易发生,最终会对电力应用产生影响,不符合实现目标。同时,蜜罐环境下的仿真的虚拟应用并不具备真实业务运行所需数据库,针对电力应用数据库的攻击行为,譬如SQL注入等,并不能有效的处理和采集,一方面容易被攻击者识别,进而采取其他手段绕过Snort识别并直接攻击真实应用;另一方面,缺少数据库请求的分析,使得整个网络攻击行为数据不完整,对针对电力应用数据库的攻击行为失去分析能力。图2-4传统蜜罐技术的实现为此所有的蜜罐技术都是以独立环境运行,保持蜜罐环境和应用环境的完全隔离,同时必须与真实应用使用不同的端口和接口,这在很大程度上削弱了它的防护作用,因为网络攻击者必须在明显区别下选择正常环境还是蜜罐环境,而正常的业务均需在正常环境下执行,也就失去了蜜罐的作用。而沙盒技术恰巧是能解决该问题的良方。沙盒技术的保护方法能够建立一系列虚假的系统运行环境,针对系统的攻击行为并未真实的发生,而是通过过滤文件驱动转存到特定的数据库表、结构化文件中,实现收集攻击数据的同时,也能保证业务的正常运行,是本文所提软件实现的基本。此外,相对于操作系统访问,电力应用访问更为频繁、同时也是电力应用核心的数据库,传统沙盒技术并未给出保护措施,这是本文需要探讨和实现的内容。而用采系统也有其独特性,相较于常见的信息系统,国家电网公司的1376.1用电信息采集规约是最为显著的特点,其协议解析也是软件实现的一个重要内容。17 东南大学硕士学位论文2.6本章小结本章从所针对的目标系统分析入手,阐述进行分析过程中所需要处理的规约格式、网络攻击行为,对本项目中所使用的技术进行了阐述,同时分析当前技术的不足以及需要改进实现的目标。18 第三章整体软件设计第三章整体软件设计整体软件以蜜罐软件的基本功能为基础,使用传统操作系统沙盒、数据库沙盒、网络监测3方面支撑必要的防护和数据采集。3.1设计思路整体思路是引入沙盒技术,将电力业务应用系统直接运行在蜜罐中,将蜜罐环境和应用环境融合为一个环境。设计目标是通过对用采系统的的交互分析,用采系统对外交互对象包括网络、操作系统、数据库,分别提供用户交互、应用承载、数据存储的功能。项目通过接管电力应用的所有对外交互过程,实现电力应用的沙盒环境,并通过对事件的数据库存储和分析,形成蜜罐的回溯分析能力,总体设计目标见图3-1。图3-1软件总体设计目标设计思路如图3-2所示,在操作系统基础上通过沙盒技术和SQL代理实现一个虚拟环境以屏蔽对操作系统底层的调用和数据库的直接操作。网络攻击行为的判断不再由单一的snort采集数据的分析来获得,而另外包括APIHook模块和JDBC代理模块上的采集数据和分析结果。APIHook模块和JDBC代理模块通过白名单机制,对整个电力应用的保护和网络攻击数据采集起核心作用。白名单由电力应用实际业务操作需求导出,当且仅当符合白名单规则的操作行为是正常业务行为,其余操作行为均判定为网络攻击行为,同snort的采集数据一起存入日志数据库供后续分析。19 东南大学硕士学位论文图3-2本课题实现原理软件主要面向各省级电网公司下属信通公司的人员使用,设置2个岗位:系统管理员和安全专责。系统管理员负责整个系统的管理、安全专责负责相关统计、分析和处置,见表3-1。表3-1岗位定义编号岗位所属组织单元职责1001系统管理员省公司信通公司进行系统配置,用户管理和规则库的管理。1002安全专责省公司信通公司安全相关的统计分析,报表生成、告警处置、蜜罐分析在角色方面,按软件不同使用场景和用途,划分为用户管理员、配置管理员、监测审计员、告警处置员、重放分析员5个角色,如表3-2所示。其中用户管理员负责所有用户定义、认证、权限的管理。配置管理员负责模块的配置。监测审计员负责实时监测系统的运行。告警处置员负责在发生告警事件后,处置网络攻击行为。重放分析员负责事后负责对网络行为的重放分析,无论是否发生告警。表3-2角色定义编号角色对应岗位所属组织单元职责100101用户管理员1001省公司信通公司监测模块用户管理100102配置管理员1001省公司信通公司监测模块配置管理100201监测审计员1002省公司信通公司安全相关的统计分析,报表生成100202告警处置员1002省公司信通公司告警处置100203重放分析员1002省公司信通公司重放蜜罐过程,分析蜜罐数据课题实现的蜜罐软件,主要供负责安全分析的安全专责使用,包含安全监测分析、统20 第三章整体软件设计计与监测、统计报表管理、告警管理和日志管理几个部分,如图3-3所示。图3-3用例图其中监测审计用例主要是对数据进行采集分析过程的描述,包含安全监测分析(监测协议特征、常规攻击、特种攻击和违规业务子用例)、统计和监测(数据流量的统计与监测、设备状态的统计与监测、业务信息的统计与监测、攻击事件的统计与监测4个子用例)、统计报表管理;告警处置用例主要对分析结果的展示和处置过程的描述,包含当前告警处置和历史告警查询;行为重放用例主要对采集到的攻击行为进行重放展示过程的描述,主要是按时间重放各部件行为。3.2总体设计3.2.1业务流程根据以上设计思路,主业务流程如图3-4所示,实现数据采集、深度监测、攻击分析、行为阻断、数据存储和攻击回溯等核心业务节点,包括:网络采集、文件系统采集、数据库采集、协议解析、事件生成、禁止操作行为定义、操作阻断、过程数据存储和攻击回溯等九项主要活动。图3-4主业务流程21 东南大学硕士学位论文3.2.2应用架构总体应用架构如图3-5所示,由沙盒模块、SQL代理、网络探针、数据库存储、分析处置组成。其中沙盒模块、SQL代理、网络探针直接负责数据的采集和处理;数据库存储主要存储规则、分析结果(事件)、过程记录(采集的数据);分析处置主要负责人机交互部分,展示分析结果、配置策略、处置告警信息。图3-5总体应用架构围绕上所述应用架构,本课题计划通过4个模块来具体实现,如表3-3所示,4个模块分别实现网络数据流采集与分析、操作系统文件操作行为采集与分析、SQL命令请求的采集与分析以及系统整体的分析配置。表3-3功能模块设计思路模块实现功能网络探针模块采集网络流量,识别非电力规约的网络报文,实现对非常规网络行为的识别传统沙盒模块截获操作系统文件操作,对非定义的操作系统文件操作、数据库存储过程调用进行识别数据库沙盒模块使用SQL代理技术,截获数据库SQL命令,所有攻击过程数据存储入数据库,供后续分析分析配置模块告警数据分析规则配置3.2.3数据架构22 第三章整体软件设计数据架构如图3-6所示,整个数据架构由分析与管理层、安全监控层组成。安全监控层包括对服务器(操作系统)、数据库、报文(网络数据流)的相关数据;分析与管理层则提供分析、配置与展示功能的相关数据。数据库使用PostgreSQL数据库。图3-6数据架构3.2.4技术架构本课题总体技术架构如图3-7所示,由分析监控、数据存储、分析与管理组成。分析监控采用APIHook、SQL代理、Libcap混杂模式报文收集等技术,同时使用白名单规则;数据存储使用PostgreSQL数据库;分析与管理使用tomcat和UAP平台。图3-7总体技术架构23 东南大学硕士学位论文3.3容量规划存储容量由系统容量和业务数据容量构成,整体容量规划如表3-4所示。系统容量:指用于安装操作系统、数据库服务、探针装置及Web应用服务系统发布服务,存放系统文件、临时文件及运行日志等系统文件的空间,一般部署于服务器本地硬盘。业务数据容量:指存放监测数据,分析数据等相关数据的空间,一般存放于数据库。表3-4容量规划类别容量规划备注系统容量100GB-业务数据容量360GB计算公式=(流量数据+事件数据+告警数据+分析数据)×365天=979.02MB/天*365天/年≈360GB/年-流量数据50万台终端*0.05KB/终端每小时*24小时/1024=586M-事件数据60万条记录/天*0.5KB/1024=293M-告警数据20条记录/天*1KB/1024=0.02M-分析数据:100M备份业务数据容432GB计算公式=业务数据容量*压缩率(一般为25%-50%)≈量144GB/年*3年以上目录共需硬盘大小容量约1TB,考虑到给服务器留有一定的余量以及今后的扩展性,容量按2TB规划,服务器本地配置4块500GB磁盘,采用RAID冗余方式保证可靠性。3.4本章小结本章重点对蜜罐软件进行整体设计,研究如何使得蜜罐,能够在不进行电力应用改造、不影响电力应用运行的前提下,抵御来自终端侧的系统控制和系统篡改类攻击,同时实现数据采集和应用保护的目的,为整个系统的实现提供设计基础。24 第四章多种沙盒技术的实现第四章多种沙盒技术的实现4.1传统沙盒技术应用和实现传统沙盒技术主要是对操作系统的文件读写操作进行管控,是一种比较成熟的技术。4.1.1技术选型通过以上交互数据分析可知,操作系统方面的交互单一,主要为读写操作,其中读操作并不会造成危害,所以重点对写操作进行分析和处理。技术方面使用APIhook来满足要求,技术选型结果见表3-5。表3-5沙盒模块技术选型分类选型原则技术选型沙盒模块主要使用APIHook技术,通过拦截windows的API调用,管理电力应用对操作系统文件的读取、操作和保存。当写入文件时,判定路径是否合法,阻止非法路径写入到磁盘中,将恶意动作按时间节点写入过程记录数据库。部署模式二级部署开发平台C++中间件不涉及数据库PostgreSQL9.4操作系统Windows4.1.2技术实现(1)实现逻辑该模块使用APIHOOK技术实现Ring3级别下的CreateFile、ReadFile、WriteFile等IO句柄的劫持。APIHOOK是通过通过拦截windows的API调用,管理电力应用对操作系统文件的读取、操作和保存,限制电力应用对操作系统关键文件、非指定路径下文件的读取,一旦发生这样的行为立即进行阻止并告警;对于操作系统关键文件、非指定路径下文件的创建、写入、删除操作,将操作动作转存到指定位置,而不操作原文件,防护原文件的安全并立即告警。(2)指定进程的沙盒控制Windows操作系统的的每一个进程都在系统中具有一个EPROCESS结构,进程的名字都以字符串形式被保存在这个结构中,由于驱动程序总是在System这个进程中加载所以我们可以首先在EPROCESS中搜索“system”,然后在“system”中搜索当前进程。获取当前进程名之后再与指定进程名进行比较,就可以判断当前进程是否是需要找的25 东南大学硕士学位论文进程。(3)文件操作重定向文件操作的重定向主要通过windows驱动层的过滤驱动实现。目前的windows版本都是使用的WDM驱动模型,这是一个基于分层的驱动程序模型。在此驱动模型下,完成一个操作至少需要两种“附加”和“被附加”的关系驱动设备共同完成,一种是物理设备,一种是功能设备。驱动程序的目的是创建一个功能设备对象,然后将这个功能设备附加到物理设备上。功能设备是上层设备对象,物理设备是下层设备对象,两者之间可以加载过滤驱动。过滤驱动是运行于操作系统内核的一个模块,封装内核驱动,屏蔽上层应用对内核驱动的直接访问,因此上层应用向过滤驱动请求操作时,过滤驱动可以直接调用下层设备,也可以执行自己的逻辑,不调用下层设备或调用下层设备其他的功能。功能设备对象的上下都具有过滤驱动,在上层的叫上层过滤驱动,在下层的叫下层过滤驱动。在Windows系列操作系统上运行的应用程序都要通过I/O管理器访问I/O设备。沙盒所使用的文件过滤驱动,在驱动层次中位于I/O管理器的上层,可以在捕获应用程序发往I/O设备的任何请求。文件操作重定向的总体思路是:当一个进程需要请求访问I/O设备的文件时,通过过滤驱动实现文件的重定向,将被访问的文件重定向到指定的文件中。譬如将C盘的文件请求全部转移到C:Sample目录。那么,对于C:password文件,重定向过后就成了C:Samplepassword。需要访问I/O的进程看来,它访问的文件是C盘下的文件,但实际上访问的是C:Sample目录下的文件,这样就可以起到文件操作重定向的作用,防止对磁盘的异常访问。本文使用文件操作重定向的方法,通过白名单方式限定写入文件对象,实现对用采系统的操作系统保护。不同的是,重定向的位置不是真实磁盘,而是内存中划出的一块虚拟磁盘。首先判断该次请求的路径是否白名单中指定的路径,如果是,则直接写入。如果不是,则进行重定向处理,首先获取需要操作的文件全路径,将文件操作全部转移到已划好空间的内存中的虚拟磁盘,同时将文件全路径以及文件操作均返回给蜜罐软件的日志服务器。4.1.3模块执行流程沙盒工作流程如图3-8所示,首先判断Write、Delete、Create操作,非此类操作则直接执行;当为此类操作时,判断执行对象,如果为授权对象,则执行;如果为非授权对26 第四章多种沙盒技术的实现象,则将截获编辑内容,作为日志写入数据库,而不执行操作系统的真实文件操作。图3-8沙盒流程设计图4.2数据库沙盒的实现针对应用层的沙盒保护方法不同于一般操作系统沙盒技术的一个重要特点在于:应用系统通常会有数据库支撑,而数据的安全恰恰是整个系统的核心。沙盒技术可以实现对操作系统的读写控制,但是对数据库的读写控制却无法实现,必须有一个数据库的控制功能进行补充。本课题使用的是基于JDBC的SQL代理技术实现针对数据库的沙盒,完善本课题中蜜罐软件所采用的沙盒技术在数据库防护方面的不足。该内容具体包括数据库沙盒的总体架构以及JDBC驱动、JDBC接口适配器、SQL过滤模块等子模块功能,支持对Oracle、DB2、SQLServer等多类型数据库的统一执行。4.2.1数据库沙盒总体架构数据库沙盒模块化方式进行开发与设计,总体架构如图4-1所示,框内为SQL代理引擎作为核心模块,处理数据的转换以及安全控制等内容。JDBC接口适配器,负责连接各种后台数据库,屏蔽不同数据库的差异性。数据提供者负责模拟成一个数据库服务器接口,向数据客户端提供服务,将数据客户端发送来的操作请求交给SQL代理引擎进行处理。数据客户端为部署在应用服务器上的JDBC驱动程序,通过自定义的协议与数据提供者进行通讯。27 东南大学硕士学位论文管理模块提供了整个体系架构的管理输入接口,负责与远端的图形化管理控制客户端进行通讯,动态调整配置。监控模块负责将整个软件体系的运行情况进行记录、筛选和输出,并支持输出至远端的安管平台或者监控中心进行监控。同时,多执行器的引入为SQL代理带来了功能扩展的可能。架构内每一个执行器负责一个或多个类型数据库的连接,现有执行器支持OCI的方式连接ORACLE数据库,或使用ODBC方式连接其他数据库。SQL代理清晰的定义了执行器与其他模块之间的接口,对于目前尚不支持的数据库类型,仅需要重新开发执行器模块,即可实现对新类型数据库的支持。图4-1数据库沙盒总体架构示意图4.2.2模块处理流程模块首先对SQL语句进行解析,对比SQL白名单,如果不符合规则,则告警,并将SQL语句作为日志写入日志数据库,而不将此语句在真实数据库上执行。如图4-2所示。28 第四章多种沙盒技术的实现图4-2SQL代理流程设计4.2.3JDBC驱动专用JDBC驱动就是整个系统的用户接口,电力应用通过调用专用JDBC驱动来访问后[30]端数据库,整个JDBC驱动的调用过程对用户来说是透明的。对外接口实现。对于专用JDBC接口,其对外接口实际上就是JDBC3.0标准中定义的[31]标准接口,包括:DataSource、Driver、Connection、Statement、PreparedStatement、CallableStatement、ResultSet、RowSet、DatabaseMetaData、ResultSetMetaData、RowSetMetaData、ParameterMetaData、Blob、Clob、Savepoint。专用JDBC接口中对以上标准接口的实现为标准接口的名称前加前缀xxx,如DataSource的实现对应xxxDataSource类。专用JDBC对外接口、内部接口以及与JDBC接口适配器之间的关系如图4-3所示。其中xxxResultSetCache、MessageFiller、Message、Access为内部接口。29 东南大学硕士学位论文图4-3JDBC接口适配器关系图(1)JDBC接口实现JDBC接口实现是一个标准的符合JDBC规范的类型3驱动程序。它实现了JDBC标准规定的所有接口,并且实现的语义与JDBC规范相一致。(2)安全传输协议为了保证通讯的安全,客户端与服务器端采用基于数字证书技术的安全套接字连接;在采用安全套接字的基础上,为客户端与服务器端的通信定义具体的传输协议。传输协议包括了对JDBC接口调用的编码、对方法参数的编码以及对返回的结果的编码。(3)SQL语句特征字符过滤对sql语句进行初步的过滤,减少sql代理服务器的负担。过滤基于特征字符,如果sql语句中间出现了识别为危险信息的特征字符(比如说‘1=1’),那么该sql语句将被拒绝发送到sql代理服务器端。(4)缓存管理把从服务器端查询获得的结果缓存起来。下次执行同样的查询时可以直接使用缓存的结果,从而减少了网络负载和服务器端负载,但是增加了客户端内存的使用量以及缓存数据和数据库数据同步的问题。从服务器端查询获得的结果时就将结果对应的元数据缓存起来。当客户需要查看结果集元数据的时候可以直接返回,从而减少了网络负载和服务器端负载,不过一旦客户端更新了结果对应的表的结构,那么缓存的结果集元数据将与数据库中表真实的元数据不同步。把从数据库元信息缓存起来,当客户端需要访问数据库元信息时,可以直接从缓存中30 第四章多种沙盒技术的实现获得,无需再次访问sql代理服务器,从而减少了网络负载以及sql代理服务器的负载,不过一旦客户端更新了数据库结构,那么缓存的数据库元数据将与数据库中真实的元数据不同步。4.2.4JDBC接口适配器(1)JDBC驱动请求处理JDBC接口适配器的一个基本实现,主要负责消息的解析和封装;管理客户端驱动和代理服务器间的通讯请求;完成所有请求处理的实现,包括客户端驱动连接建立请求处理,SQL请求处理以及事务请求处理等;客户端到代理服务器的连接管理(包括:连接的建立;连接的关闭;连接的重置);处理所有不同类型的SQL请求,如Statement、PreparedStatement、CallableStatement等;完成所有的数据库事务处理,如Begin、Rollback、Commit、SavePoint。(2)虚拟数据库该功能主要提供对数据库的模拟,使得所有数据库的请求语句都能得到准确无误地执行,功能包括:用户认证:通过使用IP地址、用户名和密码以及数字证书等方式进行身份鉴定,区分合法的应用用户与非法的入侵者。SQL检查:设计SQL语句库;完成对SQL语句语法、语义解析;根据解析结果对SQL语句进行访问控制;统计数据库访问信息。数据库连接池管理:实现基本数据连接池功能。实现对数据库连接的分配、管理和释放;对于错误使用连接造成的死锁或者阻塞,提供死锁检测的技术。缓存管理:负责存储与管理SQL代理自身数据及结果集缓存。提供自定义规则存储及访问接口;提供审计结果存储及查询接口;代理服务器用户信息存储与访问接口:SQL解析缓冲区管理;SQL元数据信息缓冲区管理;SQL结果集缓冲区管理。结果集处理:负责管理标准JDBC结果集,包括生成、释放、拷贝、序列化等。该模块将标准结果集的内容复制到自定义的结果集存储空间,然后将新的结果集传送给JDBC驱动。4.2.5数据库适配器统一数据库服务适配器用于屏蔽各个数据库厂商在JDBC驱动方面的差异,为系统支持的目标数据库管理系统分别进行定制各自的适配器,见图4-4。不同数据库访问的适配器相对执行引擎而言,是一个可“插拔”的组件,具有较好的扩展性。这样对于实际的数据库服务器而言,SQL代理服务器相当于一个客户端程序,通过数据库适配器和数据库服务器进31 东南大学硕士学位论文行交互,最大限度地做到了通用性。数据库适配器包括执行引擎、数据转换模块、结果集缓存以及通用数据库驱动。图4-4统一数据库适配器执行引擎用于将任务对象分解为内部操作符,然后调用数据适配器接口和物理数据库服务器进行交互,完成实际数据操作动作。数据转换模块负责各种数据类型的转换和处理,从功能上定义了本地数据存放格式。结果集管理模块管理SQL语句执行结果。适配器的另一个重要功能是可以实现从JDBC接口ODBC接口的自动翻译与映射,将JDBC的13个接口类、668个接口映射成ODBC接口集合的60个常用接口。为了提高数据库访问的效率,数据库服务适配器模块实现了结果集缓冲区功能。当某个SQL语句产生了非常大的结果集时,如果将其一次性获取到本地会消耗大量系统资源。采用分批获取的控制策略来解决以上问题:SQL代理服务器根据事先定义的参数,每次向服务器获取一批结果集。在结果集对象上记录游标位置指针信息,当用户请求的数据超过本地结果集范围时再向数据库服务器发请求获取下一批数据。4.2.6SQL过滤模块SQL模块主要是根据沙盒的白名单策略,对SQL语句进行安全检查工作,对于不在白名单列表中的SQL语句,判定为违规操作,将SQL请求转化成数据库操作日志提交给蜜罐软件。其架构图如图4-5所示。32 第四章多种沙盒技术的实现图4-5SQL过滤模块架构图SQL过滤模块对SQL语句的处理分成三种:(1)SQL解析依赖于SQL语法树分析模块。SQL解析包括词法分析和语法分析两种:对SQL语句进行词法分析,分析出SQL语句所包含的每一个单词(一条SQL语句中由空格符分隔的一个字符序列称为一个单词),并且将单词组织成单词链,然后根据SQL单词替换策略将某些认为是用户输入的单词替换成占位符。对SQL语句进行语法分析,分析的结果是一颗语法树,该语法树包含了解析的SQL语句的结构。同时通过语法分析,获得了SQL语句的语义信息,语义信息包含了SQL操作类型(删除、查询、插入操作)、SQL操作对象(对哪张表进行操作)等信息。(2)SQL存储将SQL语句解析成的词法链以及语义存储起来。多个词法链存储成哈希表结构(简称为SQL池)。将学习到的SQL语句存储进SQL学习文件中。将语法树解析时获得的语义信息存储成SQL行为表。(3)SQL过滤SQL过滤分成两个阶段:SQL词法过滤。将SQL语句进行词法分析成的词法链与数据库沙盒定义的SQL操作白名单的词法链进行比较,如果有相同的词法链,则认为SQL语句合法;否则判定为违规操作,将SQL请求转化成数据库操作日志提交给蜜罐软件。SQL语法过滤。如果词法过滤认为SQL语句不合法,则进行SQL语法过滤。将SQL解33 东南大学硕士学位论文析成语法树同时得到SQL语义信息。如果符合数据库沙盒定义的SQL操作白名单的语义库符合,则认为SQL语句合法,否则判定为违规操作,将SQL请求转化成数据库操作日志提交给蜜罐软件。4.2.7数据库操作日志向蜜罐系统提交的数据库操作日志分为多种类型和多种级别。日志级别分为DEBUG、INFO、WARNING、ERROR、FATAL五个级别。日志记录的内容包括:登陆信息,记录系统用户登录、登出系统信息及在线人数。需记录信息包括什么时间、什么人、什么IP、什么操作(登录或登出)、常规在线人数。SQL语句,记录数据库操作。需记录的信息包括什么时间、什么数据源、什么表、什么操作(添加、删除、更新);系统异常,系统异常的反馈信息,包括时间、异常类型、异常反馈信息、具体数据。4.3本章小结本章实现传统沙盒盒数据库沙盒的功能,重点对基于SQL代理的数据库沙盒模块进行设计和实现,完善传统沙盒技术的不足,保障电力应用的最为重要的数据库的安全,同时将功能融入到整体软件中去。34 第五章针对用采系统的网络监测模块的实现第五章针对用采系统的网络监测模块的实现5.1网络监测模块的实现该模块利用Libpcap进行网络数据包的收集,将网络接口设置为混杂模式,任何通过的网络数据完全拷贝一份转移到指定的数据过滤器。过滤器根据定义好的过滤规则对数据报文进行匹配,匹配成功就放入缓冲区,分析完成后再将数据合并分析结果转发给蜜罐系统的日志数据库,匹配失败就直接丢弃。主要逻辑处理流程是:取得libpcap接收的报文信息,进行初步解析,并按照相应格式存储进行存储。(1)链路层协议分析在数据链路层可识别以太网协议,点对点等协议的识别并对源mac地址和目的mac地址等相关链路层信息进行解析。逻辑处理流程及关键算法:取得报文的链路层信息,如mac地址等,并判断链路层的协议类型,根据不同的协议类型进行链路层解析。(2)网络层协议分析对采集报文的网络层内容进行自动识别和解析,获取网络层如IP地址等信息。逻辑处理流程及关键算法:取得ip地址信息、判断相应的ip类型(ipv4、ipv6),并对网络层信息进行解析。(3)传输层协议分析对采集报文的传输层内容进行自动识别和解析,获取传输层TCP、UDP端口等信息。逻辑处理流程及关键算法:获得报文的端口号,并判断该端口是属于哪种传输层协议,如(TCP、UDP、ICMP)等,并根据不同传输层各自的解析方法进行后续处理。(4)应用协议智能识别对采集报文的应用层内容进行识别和解析。逻辑处理流程及关键算法:用采协议分析树首先对报文发送的方向进行判断,然后调用interp->NewData函数对每个报文进行解析。解析中如果遇到异常情况通过catch(binpac::Exceptionconst&e)进行异常捕捉。35 东南大学硕士学位论文5.2用电信息采集规约的解析用采系统使用标准的规约规范,目前在国内使用最为广泛和通用的是《Q/GDW[32]1376.1-2013电力用户用采系统通信协议第1部分:主站与采集终端通信协议》,该套规[33]范覆盖国家电网的典型用采系统应用场景。Q/GDW1376.1规约定义了用采系统主站和计量表计之间的传输数据的方式、报文格式、编码规范和传输规则,支持目前用采系统中普遍使用的集中器、多功能智能电表、现场作业终端等多种终端类型,可以实现批量下达“三遥”[34]指令、远程修改终端参数、定期上传、主动招测等用电采集动作。5.2.1帧结构1376.1规约的帧结构依然沿用的是《GB/T18657.3-2002远动设备及系统第5部分:传输规约第3篇:应用数据的一般结构》标准中规定的“增强性能体系结构”。帧的头部的[35]基本长度为8字节。整个帧结构按照从低位到高位、从低字节到高字节的方式排布。整体帧结构如图5-1所示:图5-1用电信息采集规约帧格式简化的帧结构,如图5-2所见:36 第五章针对用采系统的网络监测模块的实现起始字符(68H)↑【?】长度L固定长度长度L的报文头起始字符(68H)↓【?】控制域C控制域地址域A地址域用户数据区链路用户数据链路用户数据(应用层)校验和CS帧校验和结束字符(16H)图5-2帧格式5.2.2传输规则当线路空闲状态时,设置二进制值为1;线路空闲间隔,在两帧之间为最少33位,帧的字符之间不设间隔。接收方接收到规约数据包以后,对以下内容进行检查:对于每个字符:校验起动、停止和校验位。对于每个帧报文:●检查规约报文头中的起始和结束的字符以及协议、标识位是否符合要求;●检查2个长度L是否符合要求;●检查帧的总长度是否符合要求;●校验校验和CS;●检查出一个差错时,检查线路空闲间隔;若这些检查有一个失败,则丢弃帧;否则,认为该帧数据有效,供业务应用使用。5.2.3链路层链路层是1376.1规约的通信定义层,定义基础的连接对象,是除了链路用户数据意外的剩余部分。5.2.3.1长度L长度L表示的是用户数据的长度,包括控制、地址和链路数据总和的长度,由2字节组成,如表5-1所示:表5-1长度定义D7D6D5D4D3D2D1D0D15D14D13D12D11D10D9D837 东南大学硕士学位论文协议标识由D0~D1两位编码表示,含义如下:D0=1、D1=0:按照国网公司企业标准要求,仅使用于电力负荷管理系统;D0=0、D1=1:按照国网公司企业标准要求,仅使用于用采系统。5.2.3.2控制域C控制域C表示这个帧的服务类型以及向什么方向传输:主站向终端、终端向主站等等,见表5-2:表5-2控制字定义D7D6D5D4D3~D0下行方向帧计数位FCB帧计数有效位FCV传输方向位启动标志位功能码上行方向DIRPRM要求访问位ACD保留(1)传输方向位DIR当值置为0时,表示该帧的传输方向是从主站发给终端;当值置为1时,表示该帧的传输方向是从终端发给主站。(2)启动标志位PRM当值置为1时,表示该帧来自初始主站;当值置为0时,表示该帧不是来自初始主站。(3)帧计数位FCB帧计数位主要表示每个主站数据来回的序列,通过这个序列,主站能够知道发送或收到请求的过程中是否有帧的丢失或重发,避免网络或设备传输故障引起的指令不动作、误动[35]作。当主站向同一个设备或站端发送新信息的请求或者响应的时候,就将FCB取为负值。设备或站端依据接收的FCB值执行不同的动作。主站保存所有FCB,当没有收到帧或者帧存[35]在错误,就继续发送数据,并不该动FCB,继续使用原有值。当要设备或站端复位时,就将FCB设为0。(4)请求访问位ACDACD位用来标识终端向主站发送的帧。当表示有数据需要访问主站时,就将值设为1,否则设为0。(5)帧计数有效位FCV标识FCB是否有效,当为1时,表示有效,当为0时,表示无效。(6)功能码功能码在PRM不同值时表示不同的意思,见表5-3、表5-4所示:38 第五章针对用采系统的网络监测模块的实现表5-3功能码定义(PRM=1)功能码帧类型服务功能0——备用1发送确认复位命令2~3——备用4发送∕无回答用户数据5~8——备用9请求∕响应帧链路测试10请求∕响应帧请求1级数据11请求∕响应帧请求2级数据12~15——备用表5-4功能码定义(PRM=0)功能码帧类型服务功能0确认认可1~7—备用8响应帧用户数据9响应帧否认:无所召唤的数据10—备用11响应帧链路状态12~15—备用5.2.3.3地址域A(1)地址域格式地址域由行政区编码、终端地址信息、主站地址信息或者组地址标志组成,格式见表5-5:表5-5地址域格式地址域数据格式字节数行政区编码BCD2终端地址信息BIN2主站地址信息或者组地址标志BIN1(2)行政区编码行政区编码按《中华人民共和国行政区划代码》的国家标准定植。(3)终端地址信息终端地址信息选址范围为1~65535,可以为广播地址。(4)主站地址信息或者组地址标志主站地址信息或者组地址标志的D0位表示该信息是否为表计终端的组地址,置为1时,表示是组地址,置为0时,表示是单终端;主站地址信息或者组地址标志D1到D7组39 东南大学硕士学位论文[35]成最大表示127个的主站地址。链路用户数据链路用户数据又称为1376.1规约的应用层数据,主要承载具体的“三遥”业务实体。(1)链路用户数据格式链路用户数据(规约应用层数据)格式定义见表5-6:表5-6链路用户数据格式定义应用层功能码AFN帧序列域SEQ数据单元标识1数据单元1……数据单元标识n数据单元n附加信息域AUX(2)应用层功能码AFN应用层功能码AFN是1字节的二进制编码数据,具体定义见表5-7:表5-7应用层功能码AFN定义应用功能码AFN应用功能定义00H确认否认01H复位02H链路接口检测03H中继站命令04H设置参数05H控制命令06H身份认证及密钥协商07H备用08H请求被级联终端主动上报09H请求终端配置0AH查询参数0BH请求任务数据0CH请求1类数据(实时数据)0DH请求2类数据(历史数据)0EH请求3类数据(事件数据)0FH文件传输10H数据转发11H~FFH备用40 第五章针对用采系统的网络监测模块的实现5.3监测处理流程模块通过Libpcap采集数据后,在数据链路层解析以太网协议、点对点等协议的识别并对源mac地址和目的mac地址等相关链路层信息。在网络层解析IP协议,并可以对源ip地址和目的ip地址等信息。在传输层解析TCP协议、UDP协议、ICMP协议并对源端口号和目的端口号等信息。在应用层根据工控协议报文的特殊标识,识别出工控协议报文,并对工控协议报文内容进行初步解析。监测探针根据工控协议的识别结果,对于工控协议报文和一般协议报文进行分流处理,对于一般协议报文会进行常规规则的特征匹配,而对于工控协议报文会根据报文协议的报文格式进行深入解析。监测探针根据报工控协议的报文格式的描述脚本,实现工控报文的深度解析,分析出工控协议的报文长度,工控协议报文的应用层功能码,工控协议报文的数据单元标识和数据内容等后期监测分析需要的相关信息,当判别报文违反指定协议特征时,则产生事件输出。整体设计如图5-3所示。图5-3网络监测探针流程设计图需要检测的非正常电力规约(或异常报文)如表5-8所示。表5-8非正常报文形式序号异常特征分类判断方法1消息头格式异常第一处起始字符非68H2协议标识的值非"01"和"10"32个长度L不一致4第二处起始字符非68H41 东南大学硕士学位论文序号异常特征分类判断方法5消息结束格式异常结束字符非16H6消息完整性错误校验和字段同计算所得不一致7数据单元部分异常数据单元标识的长度大于0并且小于48BCD码值的范围超过0~99上行方向的报文中,AFN码为01H,04H和05H。10Fn的范围超出0~24811数据单元内容的长度异常同设置值不同或者小于可能的最小值12电表协议部分异常电表协议的第一处起始字符非68H13电表协议的第二处起始字符非68H14电表协议的结束字符非68H5.4本章小结本章实现网络监测模块的功能,满足用采系统规约的监测要求,使得蜜罐系统能够针对具体的电力应用能够进行深入的解析和分析。42 第六章整体蜜罐软件的实现第六章整体蜜罐软件的实现蜜罐软件的核心是实现数据的统一收集、重放和分析,需要实现各功能部件的集成、分析引擎、攻击重放等功能。6.1各功能的集成与模块间通信应用层沙盒的整体实现目标是将真实应用的所有对外接口进行控制,其中最为核心的操作系统、数据库的操作采取白名单机制进行操作限制,网络则采取全监测措施并使用一定的规则库分析网络攻击行为。整个设计对电力应用的网络规约过程并不采取任何限制措施,而将防护重点放置在最为核心的操作系统和数据库上,紧密依据业务的操作需求采取限制措施,从而保证对业务不产生任何影响。所有模块采集的数据均按时间顺序将采集数据上传到日志服务器。如图6-1所示。图6-1各功能的集成各模块之间的通信通过统一的通信协议进行管理,该协议包括蜜罐采集系统、通信认证协议、配置管理/监控协议组成。6.1.1蜜罐采集协议蜜罐采集协议主要通过网络监测日志、操作系统沙盒日志、数据库沙盒日志等日志报文实现。(1)日志报文的定义日志管理主要实现对各种日志记录的监测和管理。流量日志:网络监测日志,主要是对系统后台记录的流量日志进行实时的监测,并按43 东南大学硕士学位论文照固定的时间段进行统计并写入数据库。存储的流量数据内容作为流量信息展示的数据来源,可通过Web页面进行展示。业务行为:网络监测日志,主要是对系统后台记录的各项行为进行实时的监测,并对工控系统的业务行为进行提取和审计,对符合违规业务规则特征的业务行为进行业务告警。并将业务行为的审计结果记录到数据库。存储的业务数据内容作为审计日志管理的数据来源,可通过Web页面进行展示。流量信息:网络监测日志,主要对记录的流量信息进行分析,并以Web图形化的方式进行展示。文件系统操作尝试日志:操作系统沙盒日志,主要对操作系统的文件操作的尝试进行记录,对违反白名单规则的操作尝试进行阻断、告警并记录到数据库。存储的文件操作尝试数据内容作为操作系统审计日志管理的数据来源,可通过Web页面进行展示。进程变化日志:操作系统沙盒日志,主要对操作系统的进程变化进行记录,对所有进程的变化进行告警并记录到数据库。存储的进程变化数据内容作为操作系统审计日志管理的数据来源,可通过Web页面进行展示。数据库操作异常日志:数据库沙盒日志,主要对向数据的发起的SQL进行记录,对于违反白名单规则的SQL操作进行阻断、告警并记录到数据库。存储的SQL数据内容作为数据库审计日志管理的数据来源,可通过Web页面进行展示。模块日志管理:主要是对监测模块的运行状况进行记录,并以Web图形化的方式进行相关展示和管理。主要监测指标包括模块状态,模块所处设备的CPU利用率,内存利用量,可用磁盘大小等。(2)日志报文格式日志服务器与采集模块之间的消息发送和接收都采用统一的消息格式,消息主要包括两个部分:消息头和消息体。通用的消息格式如图6-2所示:类型子类型长度时间校验加密选项内容负载选项TypeType图6-2消息格式长度:整个消息长度,3Bytes,运行整个消息的最大长度为2**24=16MB;时间:记录该条日志的触发时间,用于标识消息执行顺序,1Bytes;类型:记录日志的类型,包括网络监测-常规、网络监测-业务、文件系统操作-禁止、进程变化-禁止、数据库请求-禁止这几类,1Byte;校验:将内容通过hash方式生成2Bytes的校验码;内容:各部分的事件记录内容,定义格式为:对象(操作系统文件、网络接口、数据44 第六章整体蜜罐软件的实现库)、动作(读取、写入、删除、传入、传出)、具体数据(报文数据、文件写入数据、数据库更新数据)。加密选项:定义针对内容的加密模式,待定,2Bytes;负载选项:待定,1Byte。(3)日志传输和存储软件的各部分将日志输出功能封装到logging::writer接口中,因此通过配置不同的日志写入器可将日志输出到不同目的地。本项目需要将日志传输到PostgreSQL数据库中存储,参考SQLLite的代码,实现输出日志到PostgreSQL的新的日志写入器。在PostgreSQL数据库,建立日志数据表,按照日志报文格式建立时间、类型、子类型、内容4个字段。每个日志报文接收以后将内容解密后按字段名分别存储。6.1.2通信认证协议认证协议用于管理服务器同采集模块通讯的安全。它具有如下的功能:(1)当应用程序服务器同采集模块服务器建立TCP连接以后,通过认证协议,应用程序服务器和采集模块能够确认对方的身份(防止是黑客冒充的)。(2)通过认证协议,应用程序服务器和采集模块同时获得了一个用于加密以后传输报文的临时密钥(该临时密钥可以动态的更改)。(3)通过认证协议,应用程序服务器和采集模块协商好了使用临时密钥加密数据的算法。为了实现认证协议功能,使用一对用于非对称加密的密钥,应用程序服务器和采集模块各保存一个(密钥必须机密保存)。应用程序服务器和采集模块在发送认证协议报文时,认证加密流程如图6-3所示:图6-3认证加密流程图45 东南大学硕士学位论文认证解密流程如图6-4:图6-4认证解密流程6.1.3配置管理/监控协议配置管理/监控协议用于对采集模块的配置进行动态的更改以及获得采集模块的运行信息。配置管理协议主要是对采集模块过滤策略、用户策略、日志策略、告警策略、线程池以及连接池等策略进行动态的配置。通过监控协议能够获得的采集模块的运行信息包括采集模块的内存使用信息、CPU使用信息、硬盘使用信息、任务队列信息、处理过的命令信息。6.2分析引擎的实现6.2.1分析引擎分析引擎由后台来实现,主要完成对各种攻击行为的监测。端口扫描行为检测:主要是由分析器预先根据端口扫描攻击行为的特征,设定端口扫描行为报文的规则。通过对接收到的一般协议报文实施相应的规则匹配来实现对端口扫描攻击的实时监测。违规端口检测:将非法的端口号进行预先定义。在解析每个连接的相关信息时,将目标端口与数据库中工控系统允许使用的端口进行对比,检测出发向违规端口的网络数据报文情况,并对违规情况产生实时告警。在对违规端口进行实时监测的基础上,还增加了对于常规网络攻击的攻击规则库,对于一般协议报文实施常规规则匹配,从而实现了对常规网络攻击进行监测的攻击扩展。46 第六章整体蜜罐软件的实现关于常规网络攻击规则库的更新和维护,可以实时从开源社区下载最新的常规网络攻击规则源,根据试点系统的实际运行环境从规则源中筛选出符合需求的规则,进行格式转换,并加入攻击规则库。例如,将规则源中的规则按照应用层协议进行分类,删除试点系统环境中绝对不会出现或者出现频度较低规则,也可将规则源中的规则按照重要级别进行分类,删除重要级别较低的规则,精简规则库中的规则数。同时,在规则转换过程中,对已经产生的常规告警进行分析,尤其对于频繁告警的规则进行深度分析,通过调整规则的载荷内容、阈值等提高常规攻击监测识别的精度。违规协议检测:根据工控协议的协议标识,在解析每个接收报文的相关信息时,将目标协议与数据库中允许使用的工控协议进行对比,实现对非工控协议的识别。并对违规情况产生实时告警。违规文件操作检测:根据操作系统的允许规则,在每个文件操作执行之前,检查允许规则库,将操作请求的类型和目标文件和白名单对比,实现对违规文件操作的识别。并对违规情况产生实时阻断和告警。进程变化检测:根据操作系统沙盒模块开始运行时的进程列表,定时检查进程列表信息,对比两个列表的差异,实现对进程变化的识别。并对违规情况产生实时告警。违规数据库操作检测:根据数据库的允许规则,对每个发起的SQL请求,检查允许规则库,将SQL请求的操作类型和目标表名、列名和白名单对比,实现对违规数据库操作的识别。并对违规情况产生实时阻断和告警。6.2.2分析场景软件的告警主要针对用电信息采集主站的安全行为,具体防护与监控范围如表6-1:表6-1防护与监控范围资产分类资产清单企业内网N1内网应用内网业务系统(N)N2内网数据内网应用服务器、前置机、数据库等N3内网服务器操作系统、服务器等上述信息资产和设备可以通过表6-2路径遭受入侵:表6-2攻击路径序号攻击方向攻击路径1接入终端->企业内网接入终端(N8)->内网服务器(N3)->内网数据库(N2)安全威胁与监控场景的覆盖结果如表6-3,针对不同的监控点,当异常场景发生时,则发出报警信息:47 东南大学硕士学位论文表6-3安全威胁与监控场景的覆盖结果监控范风险(Risk)异常场景监控点(Monitor)围(Scene)企接R1数R1.1数据库S15账号异新建账号、激活僵尸账号等业入据库攻SQL注入常内终击R1.2数据库S16数据库恶意操作数据表(如:删除、覆盖)、关网端溢出攻击操作行为异键指令监控、复制监控等->R1.3数据库常企拒绝服务攻S17数据库关键指令监控、服务监控等业击服务中止内R2内R2.1植入木S18账号异账号提权、新建隐藏帐号等网网服务马常器控制R2.2中止服S19程序执病毒木马检查、进程隐藏、进程释放、务行异常关键文件修改等S20服务器服务器异常外联、服务器异常内联、大行为异常量外发邮件、大量上传数据、服务器日志被删除、非指定地点登录、服务被异常开放、关键配置修改、关键指令监控等R3内R3.1U盘摆S21程序执病毒木马检查、进程隐藏、进程释放、网终端渡行异常关键文件修改等攻击S22终端行终端异常外联、大量外发数据、大量上为异常传数据等6.2.3分析规则整个系统对于日志的分析分为3块,分为常规网络攻击、违规业务攻击和异常协议攻击。(1)常规网络攻击常规网络攻击事件,数据来源于网络监测日志、操作系统沙盒日志和数据库沙盒日志,如表6-4所示。其中网络分析日志仅分析非电力规约数据分析所产生的日志。网络监测日志中,达到需要告警上报的条数,按国家电网公司历史网络安全运行经验确定。操作系统沙盒日志和数据库沙盒日志,一旦发生就表示攻击行为确实发生,因此必须定义为每条日志均需要进行报警。表6-4常规网络攻击监测规则分类表序号日志类型中文描述日志来源达到告警的条数1unknown检测到未知的流量网络监测日志152bad-unknown检测到异常的流量网络监测日志1533attempted-recon检测到有意图的信息泄漏网络监测日志9848 第六章整体蜜罐软件的实现序号日志类型中文描述日志来源达到告警的条数4attempted-dos检测到拒绝服务攻击网络监测日志165successful-dos监测到拒绝服务攻击网络监测日志76attempted-user检测到尝试获取用户权限的流量网络监测日志497unsuccessful-user检测到获取用户权限失败网络监测日志58successful-user检测到用户权限成功获取网络监测日志79attempted-admin检测到尝试获取管理员权限的流量网络监测日志1510successful-admin检测到取管理员权限成功获取网络监测日志911rpc-portmap-decode检测到解码RPC查询的流量网络监测日志812shellcode-detect检测到流量中有可执行代码网络监测日志113suspicious-filename-detect检测到流量中有可疑的文件名网络监测日志114suspicious-login检测到尝试使用可疑的用户名进行网络监测日志1登录15system-call-detect检测到系统调用网络监测日志116trojan-activity检测到网络木马网络监测日志198317network-scan检测到网络扫描攻击网络监测日志11819protocol-command-decode检测到解码通用协议指令的流量网络监测日志3620web-application-activity检测到对易受攻击的网络程序的访网络监测日志21问21web-application-attack检测到网络应用攻击网络监测日志4622misc-activity检测到宏指令活动网络监测日志5623misc-attack检测到宏指令攻击网络监测日志2326default-login-attempt检测到试图通过默认的用户名和密网络监测日志1码登录27sdf检测到可能的隐私侵犯网络监测日志128sys-read对不在白名单中的文件进行读取操作系统沙盒1日志29file-write对不在白名单中的文件进行写入操作系统沙盒1日志30file-del对不在白名单中的文件进行删除操作系统沙盒1日志31file-create对不在白名单中的文件夹进行文件操作系统沙盒1创建日志32reg-write对不在白名单中的注册表项进行修操作系统沙盒1改日志33reg-del对不在白名单中的注册表项进行删操作系统沙盒1除日志34reg-create对不在白名单中的注册表项进行删操作系统沙盒1除日志35db-select对不在白名单中的数据库表、字段数据库沙盒日1进行的查询操作志36db-update对不在白名单中的数据库字段进行数据库沙盒日1的update和写入操作志49 东南大学硕士学位论文序号日志类型中文描述日志来源达到告警的条数37db-del对不在白名单中的字段进行数据删数据库沙盒日1除操作志38db-create任何的表、字段的创建数据库沙盒日1志(2)违规业务攻击违规业务攻击事件主要来源于网络监测模块的日志,是对电力规约数据的深度分析,不仅分析来自终端的攻击行为,还分析主站下发的异常动作,从而能够从具体的最终操作行为确定主站是否安全,如表6-5所示,包括违规协议检测和违规业务行为检测。违规协议检测主要是由监测探针可以对根据工控协议的协议标识,在解析每个接收报文的相关信息时,将目标协议与数据库中允许使用的工控协议进行对比,实现对非工控协议的识别。并对违规情况产生实时告警。违规业务行为检测主要是根据电网工控系统的实际应用场景,设定非法的违规业务规则后,监测探针针对于接收到的电网工控报文,监测数据流中可能导致系统异常的敏感业务操作行为,如大量发送电表合闸信息等。对于违规情况可以产生实时告警。表6-5违规业务攻击监测规则一览表序号危险级别违规类型违规动作1参数及全体数据区初始化接受到来自主站的恢复出厂设置命令中继站接受到来自主站的修改值班机与备份机的2中继站工作状态控制切换以及值班机中继转发允许标识的命令终端上行通信口通信参数终端接收到主站发出的终端上行通信口通信参数3设置设置4主站IP地址和端口主站发给终端的IP地址与端口和预设值不一致主站电话号码和短信中心主站发给终端的电话号码与短信中心号码和预设5号码值不一致主站发给终端的虚拟专网用户名和密码和预设值6虚拟专网用户名、密码不一致7严重终端保安定值主站发送给终端的终端保安定值为0终端时段功控定值浮动系当天主站发送终端时段功控定值浮动系数的参数8数设置所影响的终端数量大于等于500个终端月电能量控定值浮动当天主站发送终端月电能量控定值浮动系数的参9系数数设置所影响的终端数量大于等于500个终端电能量费率时段和费当天主站发送终端电能量费率时段和费率数的参10率数数设置所影响的终端数量大于等于500个当天主站发送终端电能量费率的参数设置所影响11终端电能量费率的终端数量大于等于500个当天主站发送的时段功控定值的参数设置所影响12时段功控定值的终端数量大于等于500个50 第六章整体蜜罐软件的实现序号危险级别违规类型违规动作当天主站发往终端的总的厂休功控参数的参数设13厂休功控参数置所影响的终端数量大于等于500个当天主站发往终端的总的营业报停控参数的参数14营业报停控参数设置所影响的终端数量大于等于500个当天主站发送的功控轮次设定的参数设置所影响15功控轮次设定的终端数量大于等于500个当天检出遥控跳闸事件,影响总终端数量大于等16遥控跳闸记录于10个当天检出功控跳闸事件,影响总终端数量大于等17功控跳闸记录于10个当天检出电控跳闸事件,影响总终端数量大于等18电控跳闸记录于10个当天终端对主站的总的认证失败次数大于等于19消息认证错误记录500次20发现未知电表事件记录检出未知电表21电表清零主站发送电表清零操作跳合闸、报警、保电,所影响总终端数量大于等22跳合闸、报警、保电于100个/小时当天系统中终端对主站的总的认证失败次数大于23安全认证命令等于1000次当天终端反馈的总的硬件安全认证错误的次数超24一般硬件安全认证错误应答过500次25不告警电能表开表盖事件记录电能表开表盖事件(3)异常协议攻击异常协议攻击事件主要来源于网络监测模块的日志,也是对电力规约数据的深度分析,总体规则如表6-6所示,包括电网工控协议畸形报文检测和电网工控漏洞攻击检测。电网工控协议畸形报文检测主要是由监测探针在对工控协议报文进行深入解析之后,对于解析的内容,根据工控协议的协议特征规则(如协议长度、协议各字段格式规范)进行协议特征的一一匹配,并识别出不满足工控协议规范的畸形报文。产生实时告警。电网工控漏洞攻击检测主要是根据工控系统的业务特点,及系统的实施运行环境。针对可能存在的工控漏洞设定工控漏洞库。通过对数据包特征的提取,完成工控数据包与工控漏洞特征库的智能比对,实现对电网工控漏洞攻击的检测。表6-6协议异常攻击监测规则一览表序号异常特征分类判断方法错误信息规则id1消息头格式异常第一处起始字符非68H"第一处起始字符错误,起始字xy0000001符是0x%02x."2协议标识的值非"01""协议标识错误,协议标识xy0000002和"10"是%d."32个长度L不一致"长度L1和L2不一致,L1是xy00000030x%02x,L2是0x%02x."51 东南大学硕士学位论文序号异常特征分类判断方法错误信息规则id4第二处起始字符非68H"第二处起始字符错误,起始字xy0000004符是0x%02x."5消息结束格式异结束字符非16H"结束字符错误,结束字符是xy0000005常0x%02x."6消息完整性错误校验和字段同计算所得"校验和验证错误,报文校验和xy0000006不一致字段是0x%02x,计算所得校验和是0x%02x。"7数据单元部分异数据单元标识的长度大"数据单元标识的长度错误,应xy0000007常于0并且小于4用层功能码是0x%02x,"8BCD码值的范围超过0~9"BCD码错误,错误字段是%s,xy0000008BCD码是%d."9上行方向的报文中,AFN"应用层功能码异常,应用层功xy0000009码为01H,04H和05H。能码是%02x,报文方向是上行"10Fn的范围超出0~248"数据单元标识异常,应用层功xy0000010能码是%02x,Fn码是%d"11数据单元内容的长度异"数据内容长度异常,应用层功xy0000011常同设置值不同或者小能码是%02x,Fn码是%d。"于可能的最小值12电表协议部分异电表协议的第一处起始"电表协议头第一处起始字符xy0000012常字符非68H错误,第一处起始字符是%02x."13电表协议的第二处起始"电表协议头第二处起始字符xy0000013字符非68H错误,第二处起始字符是%02x."14电表协议的结束字符非"电表协议结束符错误,结束字xy000001468H符是%02x."6.2.4实现流程(1)规则定义规则定义主要由规则属性构成,规则属性又分为不同类别,由以下不同的C++类实现。(2)建立规则树按照每个规则包含的RuleHdrTest列表建立以RuleHdrTest为节点的基数树。每个RuleHdrTest节点又包含了与之匹配的规则集合(3)建立PatternSet在每个RuleHdrTest节点上将与之匹配的规则集合包含的所有Pattern按照不同PatternType编译成PatternSet,一个PatternType的PatternSet最多包含sig_max_group_size(默认值为50)个Pattern,如果超过,分成若干组。PatternSet保存在RuleHdrTest的psets二维数组中。(4)告警的生成52 第六章整体蜜罐软件的实现对于通过蜜罐采集协议传输过来的日志报文,均通过PatternSet进行匹配,当匹配数量达到告警阙值时,就发出告警信息。(5)告警阙值的定义告警阙值主要通过3个全局变量定义:…#单个模块的违规日志阈值和消息globalafn_fn_defs:table[string]ofAFN_FN_Def&redef;#影响总的违规日志阈值和消息globalafn_fn_global_defs:table[string]ofAFN_FN_Def&redef;#每小时影响的违规日志阈值和消息globalafn_fn_per_hour_defs:table[string]ofAFN_FN_Def&redef;…其中单个模块违规日志阙值主要针对各模块,对每个模块的不同类型日志分别定义一个阙值。其中操作系统违规操作日志和数据库违规操作日志的告警阙值设为1,即一旦发生违规行为立即报警。(6)告警展示对于达到阙值的告警信息,通过图形方式展现在告警页面上。告警展示主要实现对各种告警日志内容进行多种方式的展示,主要包括攻击告警的查询、展示,处理等子功能。告警查询主要是按告警类型(包含常规告警:常见网络攻击告警)、处置状态、重要级别,告警时间等查询条件,展示常见网络攻击告警的明细信息。告警展示主要包括显示当前系统中常见网络攻击告警的分布,一段时间内的告警数量的变化趋势,以及每条常见网络攻击告警的详细信息和关联事件信息等。具体包括选择展示的时间范围(月/周),以饼状图展示在该时间段内,常见网络攻击告警的分布比例。以及以折线图展示在该时间段内每日常见网络攻击告警数量的变化趋势。以及通过点击【详细】按钮,查看每条常见网络攻击告警的详细信息,包括告警编号,告警类型,重要级别,处置状态,告警时间,告警内容等,并且可以通过一览表来展示与本条告警关联的所有事件。告警处置,点击【处置】按钮,对单一常见网络攻击告警进行处置,包括更新处置方式和处置内容。另外,选择多条告警记录,点击【批量处置】按钮,可以对多条常见网络攻击告警同时进行处置。6.3网络攻击的重放按照指定的时间段(周/月),事件类型(是否终端上报),通过SQL文,从结构化数53 东南大学硕士学位论文据库中,查询出符合条件的日志信息记录,按照时间,将检索出的日志信息按类型、以时间顺序排序,用图形等形式展现在页面上。其中,网络监测日志的重放中,依据网络报文中的源IP地址和目的IP地址,按采集终端、集中器、服务器进行分类,绘制各对象之间的数据流向,以0.5秒为间隔,逐条绘制网络监测日志。对于同一时间的操作系统访问日志和数据库访问日志,在右下角以列表更新方式,以网络监测日志的时间为节点,显示前3条和后3条日志信息,供安全专责进行分析。6.4最终实现根据用例和场景,最终实现监测分析、统计报表查询、告警管理、重放分析4个功能。(1)监测分析。主要负责通过各类图表图形,从流量、设备、业务、攻击4个方面,监测当前数据,见图6-5。图6-5监测分析界面(2)统计报表查询。定期生成报表,形成是整体事态的分析,见图6-6。54 第六章整体蜜罐软件的实现图6-6统计报表查询界面(3)告警管理。提供对敏感行为和特殊动作的告警,见图6-7,图6-8是告警详细页面,图6-9是告警处置页面。图6-7告警监测界面55 东南大学硕士学位论文图6-8告警详细页面图6-9告警处置页面(4)重放分析。通过各类行为日志的图形化展现,实现对攻击行为的重放,见图6-10。56 第六章整体蜜罐软件的实现图6-10蜜罐的攻击回放界面6.5本章小结本章重点对蜜罐软件的主体进行实现,实现各功能的集成、分析引擎和规则、网络攻击的重放,最终实现整个系统。57 58 第七章软件测试第七章软件测试本章主要针对最终实现成果,采用特定攻击行为的攻击数据包,测试软件的具体分析和实现情况。7.1测试拓扑结构正常情况下集中器与主站间通过无线的方式建立长连接。工控监测探针以旁路的方式监测集中器与主站之间的通信。本次攻击方案,攻击者主要在集中器终端通过使用笔记本等外部设备尝试对主站环境进行安全测试,见图7-1。图7-1测试拓扑结构图7.2测试方法本次攻击测试主要是模拟终端向主站发起攻击。伪造集中器通信:尝试通过笔记本模拟集中器与主站进行通信,并尝试伪造报文、报文重放测试。本次攻击使用该方法,主要用于畸形报文攻击模拟。跳过集中器通信:尝试通过笔记本+3G网卡,以特定APN方式接入到专线网络中尝试对主站进行常规渗透测试。本次攻击使用该方法,主要用于畸形报文以外的攻击模拟。59 东南大学硕士学位论文7.3测试配置包含两台测试前置机10.176.11.23/10.176.11.25,服务器探针使用测试前置机的IP地址。网络探针使用10.176.34.137。前置机接入到镜像交换机的镜像源端口,探针接入到镜像目的端口,在镜像交换机中配置镜像策略,将两台测试前置机的出入流量镜像至探针的镜像端口eth1,整体测试配置图如图7-2。图7-2测试部署7.4混合攻击行为抵御能力分析7.4.1.1测试设备和测试数据常规业务流量使用改造过的4台青岛世泽电子仪表有限公司的DJGL33-SZ004型智能电表集中器进行常规规约交互。采用科来软件的数据包发送功能进行攻击行为的模拟,包括有5类攻击行为:blaster病毒攻击、nimda木马攻击、畸形规约报文(一种针对用电信息采集系统规约解析漏洞的溢出攻击报文)、网络端口扫描攻击、用电信息采集系统数据库注入攻击(一种实验室发现的针对用电信息采集系统的SQL注入攻击),如图7-3,每轮的数据包播放时间为1秒,时间间隔为10毫秒。其中畸形规约报文附带了“C:\boot.ini”的写操作指令;用电信息采集系统数据库注入攻击附带了“Manager”表的“User”字段的读取请求。60 第七章软件测试图7-3攻击行为模拟所有模拟的终端与主站的通信数据包统计如表7-1所示:表7-1数据包统计序号传输数据类型数据包数量1常规业务访问数据包250002网络攻击数据包(其中包括异常操作系统文件操作500次,15000异常数据库操作300次)监控策略设置为全部策略。常规访问行为的时间分布如图7-4所示。图7-4常规访问行为时间分布全部的攻击行为在常规访问中的时间分布如图7-5所示,其中红色为网络扫描、畸形报文等不影响系统自身安全的攻击行为;黄色为畸形报文攻击对操作系统操作的行为;蓝色为最用电信息采集系统数据库注入攻击的数据库操作行为。图7-5全部行为时间分布7.4.1.2测试结果测试共计时长为20分钟,网络监测日志共收集到15000个可疑攻击数据包,其时间分布情况,如图7-6所示,数据包数量和时间分布均与预期相符。61 东南大学硕士学位论文图7-6网络监测日志结果操作系统沙盒日志收到违规文件操作尝试500次,时间分布情况如图7-7所示,数量和时间分布均符合预期。图7-7操作系统沙盒日志结果数据库沙盒日志收到违规数据库操作300次,时间分布情况如图7-8所示,数量和时间分布均符合预期。图7-8数据库沙盒日志结果测试结果:所有监测到的攻击数量和攻击的时间分布均与原发端数据相匹配,系统对攻击的检测符合预期。7.5本章小结本章对测试方法和测试结果进行了论述,测试结果符合预期。62 第八章总结与展望第八章总结与展望8.1总结本文完成的主要工作如下:(1)研究分析了项目研究的背景,对电力应用架构和电力防护特点进行了论述,分析了当前电力应用面临的风险和挑战,提出项目的工作内容。(2)从典型的电力业务应用系统入手,分析该系统的架构特点,阐述项目使用的相关技术和技术实现原理,便于技术的实际应用。(3)对软件的功能进行详细设计,实现一套蜜罐软件能够对网络攻击的行为进行分析、告警和重放。(4)采用沙盒技术保证蜜罐软件内真实电力应用的安全。(5)基于SQL代理方式实现数据库沙盒,解决传统沙盒技术无法对电力应用的数据库进行保护的问题。(6)解析用采系统规约,实现相应网络监测模块的设计,实现对用采系统的深度支持。从实验结果可以看出工程实现的软件符合实际预期。8.2展望电力的信息安全防护是长期的课题,信息安全与实际业务的结合是未来的发展趋势,在不干扰业务运行的前提下开展信息安全防护工作是信息安全技术应用的首要考虑问题。沙盒等对业务透明而又结合业务开展防护的技术在未来的信息安全技术中必然发挥重要的作用,使得信息安全真正为业务的稳定而服务。63 64 致谢致谢我需要衷心的感谢校内导师吴国新教授和校外导师余勇研究员级高级工程师。在本项目的研究、设计和实现的过程中,得到他们悉心的指点,无论在态度、学习和工作都给予了指正,在此表示感谢。同时感谢在软件开发、测试过程中提供帮助的费稼轩、范杰、李尼格、曹宛恬等人,他们对本文的各部分的工作给予了细心的帮助。65 66 参考文献参考文献[1]王晓易.加强工业控制系统信息安全管理[EB/OL].http://news.163.com/14/1120/13/ABGDN99000014AEE.html,2014-11-20[2]沈昌祥.构建积极防御综合防范的信息安全保障体系[J].金融电子化,2010,(12):12-18[3]诸葛建伟,唐勇,韩心慧,等.蜜罐技术研究与应用进展[J].软件学报,2013,24(4):825-842[4]程杰仁,殷建平,刘运,等.蜜罐及蜜网技术研究进展[J].计算机研究与发展,2008,45(z1):9-11,16[5]刘宝旭,许榕生.主动型安全防护措施-陷阱网络的研究与设计[J].计算机工程,2002,28(12):375-378[6]谢柏林,余顺争.基于应用层协议分析的应用层实时主动防御系统[J].计算机学报,2011,34(3):452-463[7]王超杰,黄宇达,赵红专,等.基于双层动态蜜罐技术的智能交通网络主动防御方案[J].计算机应用研究,2015,32(7):2159-2162[8]LanceSpitzner.HoneypotFarms[EB/OL].https://www.symantec.com/connect/articles/honeypot-farms,2003-8-12[9]任艳斐.网络安全体系及其发展趋势研究[J].计算机与网络,2008,(12):48-50[10]蒋国松,金徐伟,陈云志,高永梅,等.互联网病毒新趋势与防治策略研究[J].计算机时代,2011,(3):20-24[11]闫新娟,谭敏生,吕明娥.基于行为分析的主动防御技术研究[J].计算机安全,2010,(10):38-39[12]PaulBächer,ThorstenHolz,MarkusKötter,etal.Knowyourenemy:trackingbotnets,usinghoneynetstolearnmoreaboutbots[EB/OL].http://www.honeynet.org/papers/bots/,2008-08-10[13]诸葛建伟,韩心慧,周勇林,等.HoneyBow:一个基于高交互式蜜罐技术的恶意代码自动捕获器[J].通信学报,2007,28(12):8-13[14]曾晓光,郑成辉,赖海光,等.基于Honeyd的产品型蜜罐系统[J].郑州大学学报(理学版),2010,42(3):63-6467 东南大学硕士学位论文[15]翟继强,叶飞.蜜罐技术的研究与分析[J].网络安全技术与应用,2006,(4):15-17[16]蒋贤维.自定义蜜罐在抵御蠕虫攻击中的应用研究[J].无线互联科技,2012,(4):15-17[17]司瑾,王光宇.蜜网技术与网络安全[J].电脑编程技巧与维护,2009,(S1):176-178[18]邹文,唐心玉.蜜罐与蜜网技术的研究与分析[J].电脑知识与技术,2008,7(3):1214-1216[19]程晓伟,杨百龙.基于蜜罐特征的蜜罐识别技术[J].现代电子技术,2009,(15):89-92[20]吴馨,黄皓.基于Apache的低交互蜜罐设计与实现[J].计算机科学,2006,33(4):97-102[21]赵军.高伪装高交互蜜罐技术的研究与实现[J].计算机工程,2010,36(15):156-158[22]程晓伟,杨百龙.基于蜜罐特征的蜜罐识别技术[J].现代电子技术,2009,(15):89-92[23]王洋,王钦.沙盒安全技术的发展研究[J].软件导刊,2009,8(8):152-153[24]刘真.虚拟机技术的复兴[J].计算机工程与科学,2008,30(2):105-109[25]吴俊.解密沙盒技术威胁防御应用[J].计算机与网络,2015,(23):53-53[26]徐江峰,邵向阳.基于HOOKAPI技术的进程监控系统设计与实现[J].计算机工程与设计,2011,32(4):1330-1333[27]陈珂,柯文德,王爱国,等.基于沙盒技术的行为分析系统研究[J].计算机技术与发展,2015,25(8):166-169[28]黄莉.第三方JavaScript代码沙盒技术研究[J].宝鸡文理学院学报(自然科学版),2013,33(4):61-63[29]陈丹伟,唐平,周书桃.基于沙盒技术的恶意程序检测模型[J].计算机科学,2012,39(B06):12-14[30]陈建业,张涛,陈浩.安全隔离技术在电力信息网络安全防护中的应用[J].山东理工大学学报(自然科学版),2009,23(5):72-75[31]秦昊,林为民,张涛.基于代理的信息安全网络隔离装置的研究与实现[J].计算机与数字工程,2012,40(10):110-112,15568 参考文献[32]朱国富,张晓东,闫书芳,赵军平.基于电力用户用电信息采集系统的智能售用电管理系统的应用及技术[J].电测与仪表,2015,52(16A):13-16[33]胡江溢,祝恩国,杜新纲,杜蜀薇.用电信息采集系统应用现状及发展趋势[J].电力系统自动化,2014,38(2):131-135[34]刘宣,郑安刚,张乐群.用电信息采集系统数据传输协议的发展趋势研究[J].通信技术,2016,49(8):1057-1061[35]中国电力科学研究院.Q/GDW1376.1-2013电力用户用采系统通信协议第1部分:主站与采集终端通信协议[S].北京:中国电力出版社,201369 70 作者简介作者简介郭骞(1983.02.23—),男,汉族,江苏盐城人,现为东南大学计算机科学与工程硕士研究生。l攻读硕士学位期间发表的论文[1]高鹏,范杰,郭骞.电力系统信息安全技术督查策略研究.电力通信管理暨智能电网通信技术论坛,2012.[2]QianGuo,XingchuanBao,GuFeng.PowerDataNetworkDynamicSimulationPlatform.ICSCTEA2013,September25-27,2013.[3]QianGuo,JieFan,NigeLi.TheAchieveofPowerManagerApplicationHoneypot.the5thinternationalconferenceonElectricUtilityDeregulationandRestructuringandPowerTechnologies,November26-29,2015.l攻读硕士学位期间发表的专利[1]一种用于工控设备的测试床方法.ZL201210512919.X.[2]一种电力数据网络的动态仿真系统及仿真方法.ZL201210160288.X.[3]一种基于实验资源树的实验能力定量评价方法.ZL201310314094.5.71