标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-173] 作者: 闲云野鸡 发表于: [2017-07-28]
本文共 [972] 位读者顶过
1、工业领域的安全事件 [出自:jiwo.org] 历史上发生过很多震惊世人的安全灾难,有前苏联切尔诺贝利核电站爆炸事故,印度博帕尔毒气泄漏事故,墨西哥湾“深水地平线”钻井平台原油泄漏事故;在1982年冷战期间,美国中央情报局找到一种破坏俄罗斯的西伯利亚天然气管道的办法,向前苏联“输出”一个有设计缺陷的控制软件,所植入的漏洞最终引发了1982年的西伯利亚天然气管道大爆炸;2006年美国宾夕法尼亚州的一家水处理厂安全防护系统受到攻击,一种能破坏水处理工作的恶意软件从外部被移植到水处理控制系统计算机;2008年,南美洲某国的电网控制系统被黑客攻击劫持,引发该国的电力被中断;2010年震网病毒事件,震网病毒通过对ISC系统的入侵,威胁伊朗核反应堆不能安全运营;2011年黑客通过入侵远程监控与采集系统,破坏了美国某城市的供水栗;2012年中东地区的网络被称为“Sky Wiper”病毒的攻击,使该地区石油平台的计算机系统遭到了摧毁;2014年韩国一家主要核电厂KHNP遭到破坏性恶意软件MBR Wiper的攻击。
2、通用计算机系统的漏洞与攻击分析 SCADA系统也是一种计算机系统,对计算机系统的攻击就包括web漏洞攻击、操作系统漏洞攻击、数据库漏洞攻击、螺虫攻击和木马病毒及恶意代码的攻击等。 (1)Web漏洞。网络系统中Web安全面临着日益严峻的挑战,Web安全需要从Web服务器、Web客户端和Web通信信道三个方面的安全考虑。由于SCADA系统需要为应用层提供Web服务,因此本设计中所讨论的安全主要是考虑Web服务器的安全和Web通信信道的安全。对Web服务器的攻击可以分为:攻击Web服务器的漏洞,如目录遍历、IIS缓冲区溢出等漏洞;另一种是攻击网页本身的漏洞,如跨站脚本漏洞、SQL注入等。具体的安全威胁主要表现在因程序编写考虑不周所导致的缓冲区溢出(Buffer Overflow)由此可能导致服务器执行远程代码;系统遭受拒绝服务(Denial ofService)的攻击;客户端用户输入数据过滤不严格,造成的SQL语句注入(SQL Injection)可能引起信息泄漏、创建远程用户、远程代码执行等;过于信任用户的输入信息可能导致跨站脚本攻击(Cross SiteScript)通过运行恶意脚本程序运行服务器端的Shell等。Web的通信信道和一般的Internet通信一样,都有被噴探和拒绝服务的攻击威胁。
(2)操作系统漏洞。操作系统是运行于计算机和服务器上的大型管理软件,不同的操作系统有着不同的工作原理,因此对于操作系统的入侵工具,每种工具只能入侵其相应的操作系统。所以,操作系统的入侵,首先就是要判别操作系统的类型。识别操作系统类型可以用ping命令识别操作系统,连接端口返回的信息识别操作系统,通过操作系统识别软件判断操作系统类型等。
识别到操作系统类型后,需要对操作系统常见漏洞进行查找。Windows Server系列操作系统的漏洞主要有虚拟内存漏洞、系统日志漏洞、应用程序漏洞、系统转存漏洞、网络发现功能带来的漏洞、特权账号等漏洞。
对于UNIX系统的漏洞主要有Telnet存在缓冲区溢出漏洞和Taylor UUCP参数处理错误漏洞等。
(3)数据库攻击。数据库是存储在某种存储介质上的相关数据有组织的集合。SCADA系统所有的信息最终都要存放在数据库中,对数据库的攻击和防御是信息系统研究的重点。对于数据库来说,主要攻击方法包括口令攻击、溢出攻击和SQL注入攻击等。
(4)蠕虫攻击。计算机蠕虫是可以独立运行,并把自身的一个包含所有功能的版本传播到其它计算机上的程序。螺虫的传染方式主要通过计算机系统漏洞传播,当查找到网络中存在有漏洞的设备后对其采取主动攻击,无论计算机操作者有没有对计算机操作,螺虫的攻击都会一直进行,因此无论使用者对计算机知识水平的高低,计算机都有可能被螺虫攻击。计算机螺虫的特点在于可以以独立个体存在、可以自身拷贝、攻击网络上其他计算机且通过蠕虫程序自身触发传染等。其行为特征在于主动攻击,本质上来讲,螺虫是入侵攻击的自动化工具,当婦虫被释放后,首先要搜索漏洞,然后根据搜索结果攻击系统,攻击成功后又复制副体,在这个过程中是由螺虫程序主动完成,其行踪很隐蔽,不需要计算机操作者的辅助操作,在传播过程中计算机使用者很难察觉。
(5)木马、病毒及恶意代码的攻击。在计算机系统中,恶意代码就是一种病毒,而木马是一种经过伪装的病毒,是系统中被植入的、人为设计的恶意程序,其目的在于远程控制,窃取其他的计算机系统资料,并致使计算机系统瘫痪等。目前木马常被用作网络系统入侵的重要工具和手段,木马可使计算机的数据和机密传送到攻击者手中,也可执行攻击者的攻击指令。木马也被用做后门工具,当系统被植入木马后,木马就会攻破系统的防御,以便为下一次的入侵访问系统提供方便。木马入侵系统后,还可能通过欺骗合法用户方式偷偷的散发木马程序,扩大木马的入侵效果和入侵范围,为进行其它入侵活动创造条件。木马所能实现的功能可分为破坏系统、DOS攻击、远程访问、密码发送、键盘记录、反弹端口、代理、程序杀手等,木马所能实现的功能对于SCADA系统的运行是很大的威胁。
3、工业系统产品的漏洞 SCADA系统与通用计算机系统的不同之处在于SCADA系统还由各种工业产品组成,包括软件产品和硬件产品,这些软硬件产品在SCADA系统中的运行,可能对SCADA系统的安全构成威胁。
3.1软件产品的漏洞 在组态软件涉及的漏洞类型中主要包含了远程缓冲区溢出、未授权访问、拒绝服务、内存破坏、任意代码执行等高危漏洞类型,可以造成软件恶意崩馈、系统命令执行等攻击效果。综合来说主要涉及应用在处理某些报文时存在一个基于堆、栈的缓冲区溢出,允许远程攻击者利用漏洞向特定端口发送特制的报文使应用程序崩馈及执行任意代码;某个组件不需要身份验证,远程攻击者可通过发送直接请求,利用该漏洞,获得管理员访问权限;某些组件在处理不正确报文时,造成一个内存缓冲区溢出,可远程执行任意代码;SCADA软件的某组件可能以不安全方式装载DLL文件或者执行命令,攻击者构建恶意文件或命令,执行远程文件或者自定义的恶意命令;应用在处理某些畸形报文或者批量处理请求时,出现异常造成程序或系统崩淸等。本研宄以目前我国工控系统中常见的工控软件为例,对其存在的漏洞进行分析。 1)ICONICS GENESIS32缓冲区溢出漏洞。ICONICS GENESIS32是由美国ICONICS公司研制开发的新一代工控软件。ICONICS GENESIS328.05版本、9.0版本、9.1版本、9.2版本与BizViz 8.05版本、9.0版本、9.1版本和9.2版本中的Security LoginActiveX控件中存在缓冲区溢出漏洞。远程攻击者可利用该漏洞借助长密码导致拒绝服务(应用程序崩溃)或者执行任意代码。
2)Siemens SIMATIC WinCC拒绝服务漏洞。Siemens SIMATICWinCC多个版本中的运行加载器中的HmiLoad中存在拒绝服务漏洞,远程攻击者可利用该漏洞通过越过TCP发送特制数据,导致拒绝服务(应用程序崩溃)。这些版本包括:Siemens WinCCflexible 2004版本、2005版本、2007版本、2008版本,WinCC V11(也称TIA portal),TP、OP、MP、Comport Panels和Mobile PanelsSIMATIC HMI面板,WinCC V11 Runtime Advanced以及WinCC flexibleRuntime。
3 ) Siemens SIMATIC WinCC安全漏洞。Siemens SIMATICWinCC多个版本中存在漏洞,该漏洞源于TELNET daemon未能执行验证。远程攻击者利用该漏洞借助TCP会话更易进行访问。这些版本包括:Siemens WinCCflexible 2004版本、2005版本、2007版本、2008版本,WinCC V 11(也称TIA portal ) , TP , OP , MP , ComfortPanels和Mobile PanelsSIMATIC HMI面板、WinCC V 11 Runtime Advanced以及WinCC flexibleRuntime。
4 ) We1linTech KingView的KVWebSvr.dll和ActiveX控件栈缓冲区溢出漏洞。WellinTechKingView 6.52和6.53版本的KVWebSvr.dll的ActiveX控件中存在基于栈的缓冲区溢出漏洞。远程攻击者可借助ValidateUser方法中超长的第二参数执行任意代码。
5 ) Invensys WonderwareInformation Server权限许可和访问控制漏洞。InvensysWonderwareInformation Server 4.0 SP1和4.5版本中存在漏洞,该漏洞源于未正确实现客户端控件。远程攻击者利用该漏洞借助未明向量绕过预期访问限制。
6 ) Invensys Wonderware in Batch ` ActiveX’控件缓冲区溢出漏洞。InvensysWonderwareinBatch中存在多个基于栈的缓冲区溢出漏洞。攻击者可利用该漏洞在使用ActiveX控件的应用程序(通常InternetExplorer)的上下文中执行任意代码,攻击失败可能导致拒绝服务。
7 ) GE Proficy iFixHMI/SCADA任意代码执行漏洞。GE Proficy iFix HMI/SCADA的installations中存在漏洞,远程攻击者可利用该漏洞执行任意代码。且利用这个漏洞,并不需要认证。通过默认TCP端口号14000监听的ihDataArchiver.exe进程中存在特殊的漏洞。在这个模块中的代码信任一个通过网络提供的值,并且使它作为把用户提供的数据复制到堆缓冲区的数组长度,通过提供一个足够大的值,缓冲区可能会溢出导致在运行服务的用户上下文中执行任意代码。
8)6.1 SP 1,SunwaylandForceControl httpsvr.exe堆缓冲区溢出漏洞。Sunway ForceControlSP2和SP3版本的httpsvr.exe 6.0.5.3版本中存在基于堆的缓冲区溢出漏洞。远程攻击者可借助特制的URL导致拒绝服务(崩溃)并可能执行任意代码。 3.2硬件产品的漏洞 在当今各大厂商的各系列PLC中都会有以太网接口的应用,这样丰富了PLC通讯的方式,也方便了远程管理,但是随着以太网的接入,PLC对TCP/IP的支持,同样导致了PLC易受各种来自网络中的攻击。本研究主要以西门子S7系列、罗克韦尔(AB)系列和施耐德系列的PLC进行分析,找出了其可能存在的漏洞。
西门子S7系列的PLC中,200, 300, 400,1200, 1500均被ICS-CERT(美国国土安全部下工业控制系统应急响应小组)通报过各种拒绝服务、未授权访问等高危漏洞,通过发布的报告我们可以得知目前西门子PLC存在如下安全问题: 1)拒绝服务攻击。PLC对于一些畸形报文的处理存在异常,可以使设备直接进入停止或故障状态。 2)协议安全问题(ISO-TASP)。西门子S7系列PLC使用了开放的ISO-TSAP协议用于通信,而ISO-TSAP设计之初并非是一个安全协议,在PLC与工作站之间的通讯过程是可以被捕获分析的,如果PLC没有配置密码保护,那么从工作站上的操作配置软件发送的任何命令都可以被捕获、修改、重放(MITM)到PLC内。 3)密码保护机制绕过。攻击者可以捕获到工作站与PLC之间通讯的密码序列,并且可以使用该密码序列对那些启用了密码保护的PLC发起重放攻击。 4)硬编码及后门。对于一些带有调试接口的PLC,可以通过厂商内置的用户名密码访问PLC的内部shell,攻击者可以执行各种内部诊断功能,并提取PLC内存中内容。
对罗克韦尔(AB)系列PLC安全报告的分析中,PLC涉及到的风险分以下方面: 1)重放绕过风险。在罗克韦尔多个产品系列中的web服务器口令认证机制极容易受到中间人攻击(MITM)和重放攻击,如果成功利用了web服务器的授权访问问题,则可以查看或者更改产品的配置信息和诊断信息。 2)不正确的验证。在多个系列的PLC中对固件升级时固件来源的权威性及完整性和可用性未进行验证,导致上传非法固件后PLC运行故障。 3)不正确的访问控制。在多个系列中PLC的协议通讯端口((TCP/UDP44818TCP/UDP2222)接收到有效的,但是来自于未经授权控制PLC的CIP通讯消息后,可以强制更改PLC配置的网络参数造成通讯终端,甚至可以使CPU进入停止状态同时进入故障模式,攻击者更可以伪造发送畸形报文到通讯端口造成PLC的CPU和NIC拒绝服务。 4)协议安全问题((EtherNet/IPCIP)。在罗克韦尔的产品中对于未授权的用户也可以远程操作PLC内I/O点的实时数据,造成运行时的逻辑问题。 在对施耐德系列PLC安全报告的分析中,PLC涉及到的风险分以下方面: 1)协议安全问题。施耐德系列PLC延续了莫迪康的标准,使用了标准的ModbusTcp协议作为PLC的通讯协议,而ModbusTcp协议为开放式标准协议,双方在使用Modbus协议通讯时,协议内的验证部分可以忽略,故对于PLC来说与客户端的通讯是无验证、无加密的,对于攻击者来说可以随时修改PLC内I/O点的实时数据。 2)不正确的认证。Modicon和Quantum系列PLC的以太网模块中内嵌的嵌入式web服务器,允许用户使用SOAP消J息的HTTP POST请求Modbus命令,通过该种方法发送的Modbus命令不会被验证,可以直接修改I/O实时数据。 3)跨站请求伪造。PLC设备可能接收到来自于客户端的请求,但是没有验证是否为授权以内的用户或执行的命令,攻击者可能通过嵌入有效的命令HTTP请求发送到PLC的嵌入式web服务器以内。 4)默认用户名密码。Schneider系列PLC的以太网模块中内嵌的Web服务器,在配置操作界面的认证时,默认情况为使用user/user作为登录口令,登录认证后可以修改PLC内I/O数据。 4 SCADA系统的防护措施 SCADA系统的防护是指在系统设备上利用计算机的各种检测、分析和处理功能,应对整个系统运行时可能受到的恶意攻击和破坏行为。 (1)Web的防护。为了避免超文本应答时头信息中包含超文本指纹的行为,可以通过增加插件和自定义超文本应答头信息来清除传输过程中真实的服务器Banner信息,这种方法可以自动的阻止很多对Web服务器的攻击,甚至还会误导攻击者。自定义Http应答头就是要修改服务器返回的Banner,其设置可以利用软件工具查看Http服务的源代码,在源代码里直接修改Banner信息,然后重新起动Http服务就即可。对于像微软的IIS或者是Netscape这样没有公开源代码的Http服务器,可以在存放Banner的dll文件中修改。使用插件模糊B anner信息的方法就是利用可以提供自定义Http应答信息的插件代替Web服务器处理Banner的应答请求。
提高Web页面代码的质量。不要将机密信J自、写入代码的注释中,尽量避免代码中出现设计错误和安全漏洞,并在安全性测试以后再发布Web页面;监视GET请求比较多的IP。对Web页面进行自动扫描的IP,会快速的多次请求站点,当遇到此种情况时,可以考虑封闭或者限制此IP地址对Web页面的访问权限;在Web站点上设置garbage.cgi脚本。garbage.cgi脚本可以在页面被访问到时不停的产生垃圾页面,可以避免自动扫描程序快速的盗窃Web页面;经常关注新出现的Web扫描工具,了解其扫描内容,避免站点上出现扫描工具所针对的安全漏洞,及时修复或暂停有安全漏洞的页面。另外,对于Web站点的检查,也有一些专用的脚本工具,如phfscan, cgiscan等。
(2)操作系统的防护。作为服务器的计算机,其操作系统运行时,需要将不必要的服务关闭,设置关机清除虚拟内存页面文件,使系统关机时,清除虚拟内存中可能的隐私信息,这样就不能在系统页面文件中获得本地系统的隐私信息;制定新的防火墙入站规则,避免恶意程序利用应用程序的漏洞,经网络传输破坏计算机系统;关闭系统失败时的写入调试信息,消除系统崩溃时本地系统的一些隐私信息、被他人非法查看;关闭系统的网络发现功能,避免泄漏内网环境中的其它的网络设备;对系统默认的特权帐号重命名操作,以免攻击者通过系统默认的帐号控制计算机等。
(3)数据库的防护。限制用来查询数据库的账户权限,对数据库更新、插入、查询、删除操作时选用不同的账户执行,防止用于查询的命令被修改成执行更新、插入和删除的操作。针对SQL注入的攻击,需要严格的过滤用户提交的数据和输入参数,比如过滤逗号,单引号,分号等;严格检查用户输入的字符串,尤其是出现的对数据库操作的关键字,如delete, union, select等;最好对用户提交的参数的长度也进行判断,还可以加密保存用户登录名和密码等数据,防止攻击者注入SQL命令。
(4)蠕虫攻击的防护。蠕虫攻击虽然隐蔽,但需要通过网络传播,会引起网络数据流量的变化,严重的可以导致网络瘫痪,因此蠕虫攻击的防护需要严密监视网络流量,一旦发现网络异常,立即追踪网络异常来源。
蠕虫侵入计算机系统后,会在计算机上复制多个自身副本,每个副本又开始自动 启动扫描程序探测网络中新的可攻击目标,此时会大量消耗系统资源,致使系统性能 下降,尤其对网络服务器的影响明显,因此网络服务器需要分析蠕虫的行为,采取有 针对性的预防措施。
(5)木马的防护。根据木马工作的原理,一般可以通过端口扫描和连接检查、系 统进程检查、ini文件检查、注册表和服务检查、网络通讯监视等手段检测木马。其来 源是一般是本机攻击,可通过找到对应的安全事件来确定发起攻击的源头,然后删除 木马登记项,根据木马登记的目录删除木马程序,通过这样的“查、堵、杀”等方法检测和清除木马。 5、主动防御技术原理 主动防御技术是采用行为算法针对新型未知攻击、组织化攻击进行防御的技术。主动防御技术在监控、分析、侦测等环节中采用主动感知,对未知威胁采取行为识别、智能处理和防御加固等主动性技术来进行防御。主动防御技术在未知的攻击发生的事前、事中和事后都需要对受保护的系统进行主动防御和相应的测试性操作,以确保系统的正常运行。
在未知攻击发生之前的防御测试包括系统的脆弱性分析、可信任检测和系统加固测试。脆弱性分析主要是对系统中账号、密码安全策略、网络与服务、核心文件、日志系统、IE浏览器、SPI网络通信层、注册表主要安全配置项、网络配置项(防ARP欺骗)等存在的安全风险进行分析;可信任检测是通过对系统六大子系统(内核子系统、服务子系统、账号及安全子系统、通信子系统、资源子系统)进行可信任链接,发现其信任关系的变化;系统加固是针对风险事件进行安全加固。
事中防御是主动防御的核心对抗行为。其操作就是对病毒、木马及黑客攻击的程序行为进行感知、识别和处理。与特征码技术相比,主动防御技术处理恶意程序的能力和抗未知威胁的能力更强,且占用的系统资源更少。
事后的系统功能测试包括实时记录内核子系统、服务子系统、帐号安全子系统、资源子系统、应用子系统六大子系统中的运行事件,针对攻击事件以及威胁事件进行统计分类,并对遭受到恶意程序及黑客攻击后的系统进行修复等操作。
主动防御技术的核心是对恶意程序行为的分析和识别,结合项目组提出的基于因素神经网络的SCADA安全防御体系模型FSDM (FactorNeural Network Based SCADAScurity Defense Model),以外部程序的可疑API调用作为行为因素,判断其恶意性,生成报表,发出警告,阻止恶意行为的执行。(未完待续) |