APP下载

工控系统认证绕过漏洞实证分析

2018-09-26王航张帅杜君杨帆

网络空间安全 2018年3期

王航 张帅 杜君 杨帆

摘 要:论文研究了当前工业控制系统存在的安全风险以及漏洞披露的现状,分析了认证绕过的常见方法。针对某厂商系列PLC进行了实验仿真的渗透测试,发现了认证绕过漏洞,同时基于逆向算法实现重放攻击,可以从PLC中获取梯形图逻辑,并在组态软件中复原。

关键词:工业控制系统安全;认证绕过;重放攻击

中图分类号:TN915.08 文献标识码:A

1 引言

工业控制网络由最初的分散型控制系统,后来逐渐演变成以现场总线技术为基础的网络。由于没有通行标准,很多厂商推出了私有的现场总线标准,形成了所谓的“自动化孤岛”,不符合现代企业对数据通信的要求。随着以太网进入工业领域,形成工业以太网,使得企业实现了从现场设备层到管理层间全面的无缝信息集成,并提供了开放的基础构架。正是由于“两网”(管理网和生产网)的融合,连通性给原有并没有过多考虑安全设计的工控系统带来灾难性后果,加之工业系统对稳定性要求非常高,企业即使发现了工控系统的漏洞,也很少或很难对系统进行升级。因此,对工控系统漏洞的研究、防护和应急响应,成为目前国家基础设施安全的首要问题。

2 工控漏洞研究现状

根据美国工控系统网络应急响应小组(ICS-CERT, Industrial Control Systems Cyber Emergency Response Team)最新公布的“ICS-CERT漏洞协同披露指南”( 2016 ICS-CERT Annual Vulnerability Coordination Report)的统计,2016年收到ICS漏洞的报告数高达2272例,是2015年的5.32倍,如图1所示。可见,工控系统存在很大的安全风险。

从漏洞类型上看,最常见的漏洞类型为基于栈的缓冲区溢出(CWE-121)、不当输入验证(CWE-20)、跨站脚本(CWE-79)以及基于堆的缓冲区溢出(CWE-122)四类,如图2所示。

我国国家信息安全漏洞共享平台CNVD也收录了很多工控系统的安全漏洞,如西门子(如图3所示)和横河(如图4所示)的安全漏洞。以横河产品为例,这几年只披露了11个漏洞,而关注度更高的西门子能搜索到200个以上的漏洞。所以说,随着对工控系统关注度的持续升高,会有大量的0-day漏洞会被暴露。

3 漏洞分析

3.1 认证绕过漏洞概述

大多数应用的安全基于认证机制,一个用户提供自己的登录名和密码进行身份验证,基于所提供的凭据建立的身份,进而分配特定的权限系统。但并不是每一个认证方法能够提供足够的安全性。

常见的认证方案可以被跳过登录页面,直接调用一个内部页面或通过篡改请求和欺骗应用使其认为用户已经认证通过。常见的手法有四个。

(1)基本认证绕过漏洞:很多程序进行编码时,只在登录页面实现了用户名和密码的认证,然后允许授权用户无限制访问其他网页没有任何进一步的检查。

(2)更改固定参数:很多程序来验证是否成功登录是通过固定参数来传递的。如:http://www.mycorporatewebapp.com/remotemanagement.asp?auth=0

通过修改auth =1 即可绕过认证。

(3)會话预测:很多程序判断用户已经认证通过,是基于Sessionid方式,但Sessionid必须保证随机不可预测性,否则就容易通过预测的会话来实现绕过认证攻击。

(4)SQL注入:通过对登录界面进行SQL注入攻击来进行绕过认证攻击。如认证的方式如下: (authorise a user) WHERE Password='$password'

SQL注入输入:

ABC' or '1' = '1

产生的结果就是绕过认证:

(authorize a user) WHERE Password='ABC' OR '1' = '1'

以上就是常见的认证绕过攻击的手法,在对工控系统进行渗透测试中也非常常见。

3.2 实验场景介绍

本文以某款PLC及其组态软件为例进行了渗透测试,发现设备存在认证绕过漏洞以及其它一些工业场景下常见的漏洞。测试环境拓扑及组件关系如图5所示,实验演示平台如图6所示。

渗透测试主要对两个功能逻辑进行检测。

(1)对PLC进行梯形图逻辑或者功能逻辑配置。首先,在实验中首先将组态软件部署到一个工程师站上;其次,利用组态软件对PLC进行基本CPU配置和网络配置;最后,编写一个跑马灯的梯形图逻辑下装到PLC中,来控制实验平台中的灯闪烁来模拟实际的生产过程。

(2)利用HMI对PLC状态进行实时监控。通过观察灯闪烁的情况,来模拟实际生产中业务是否正常。

本文基于认证绕过漏洞,在没有PLC和上位机管理权限的情况下,利用攻击工具可以直接盗取跑马灯工艺逻辑,进而可以构造更加精细的APT攻击。

3.3 漏洞分析

对实验场景进行了数据分析,组态软件和PLC之间通信采用私有协议,HMI和PLC之间既可以选择该厂商的私有协议也可以选择Modbus等公开协议。通过对组态软件以及通信的私有协议进行分析,发现了认证绕过漏洞:发现该型号的系统对PLC的认证和授权是在组态软件中进行的,而没有实现组态软件和PLC的双向认证。同时对其通信的私有协议进行了逆向分析,破解了其报文格式,利用构造后的报文可以绕过认证机制直接对PLC进行控制。基于此漏洞,测试人员构造了一个渗透测试工具,该工具在网络可达的情况下,可以跳过认证直接获取PLC中的生产工艺梯形图等原始资料。在获取了梯形图逻辑后,可以构造更加精细的攻击手段以实现APT攻击,从而对工业现场造成更大的打击。

通过逆向分析PLC梯形图的上传逻辑,来构造攻击过程。梯形图逻辑的上传,如图7所示。

通过抓取组态软件与PLC间的通信报文,分析得到私有协议支持通过一系列特定的报文,将PLC中的程序上传到PC端。这些特定的报文是一段组合报文,共包含13条请求报文,如图8所示。将这13条报文依次发给PLC,PLC会将内部程序上传给PC端,本文将重点分析其中关键几个报文。

(1)Upload的起始报文

Upload操作的起始报文为图8中的第一条报文,所有的上传操作都从此报文开始。

请求报文如图9所示。

(2)获取工程信息的请求报文

此报文为13条组合报文中的第二条报文,发出此请求报文后,在响应报文中会包含工程名、程序块名、程序块编号及PLC型号信息。除了第一条起始报文数据区为0外,其他组合报文的子数据区中都包含子功能码及子数据区,来完成相应不同的工作,如图10所示。

(3)程序上传请求报文

此报文为13条组合报文中的第十二条报文,当向PLC发送此报文后,PLC会向PC端返回的响应报文中携带PLC程序的二进制数据,如图11所示。

通过对关键报文的分析,可重构关键的Upload等关键报文,欺骗PLC,把工艺文件上传给攻击者。基于该攻击软件,只要网络可达,即可绕过认证盗取生产工艺。

4 结束语

工控系统在最初设计时,并没有把自身的安全性作为主要的考虑目标;又因为工业系统对稳定性要求非常高,企业即使发现了系统组件的漏洞,也很少或很难对系统进行升级。通过本文分析,平台的自身脆弱性是目前工业控制系统所面临的严峻挑战,需要工业界和安全界共同构建集产品自身安全性、后期防护机制以及漏洞修補机制为一体的工控安全体系,才能有效地保护国家基础设施的安全。

基金项目:

2015年工业转型升级智能制造和“互联网+”行动支撑保障能力工程——安全芯片能力提升及应用方向。

参考文献

[1] 周奇辉.工业控制系统网络安全性研究[J].网络空间安全,2016年06期.

[2] 詹乃松,乔振亚.工业控制系统信息安全防护的研究 [J].网络空间安全, 2017年12期.

[3] 孙易安,胡仁豪.工业控制系统漏洞扫描与挖掘技术研究[J].网络空间安全,2017年01期.