前言
现在安全攻防演练趋于常态化,攻击方的思路大概如下:
外网:资产收集-->漏洞挖掘-->获取权限-->进入内网
内网:横向扫描-->资产收集-->漏洞挖掘-->寻找边界-->进入生产网
这个过程比较复杂,而且方法比较灵活。此文章中分析讲述的是,攻防演练中和工控安全比较相关的攻防技术,重点放在了工控WEB系统安全问题及攻击发展趋势这方面。
1.什么是工控WEB系统
此处说的工控WEB系统,是泛指所有工控相关设备的WEB系统,比如PLC、SCADA、防火墙、交换机等的WEB管理系统。
由于工控设备的特殊性,在工控WEB系统中,大部分可利用的漏洞,都可以获取到后台权限、WEBSHELL权限、数据库权限、主机权限等。
此类漏洞往往都会导致相关工控管理系统的控制权直接沦陷,会造成比较大的危害。这里主要以一些SCADA的WEB系统为例进行讲解,其他工控WEB管理系统方法类似。
2.工控WEB系统常见的漏洞
工控WEB系统常见的漏洞,也就是工控设备中的WEB应用漏洞。但是由于工控的特殊性,漏洞往往不能像普通WEB系统那么去评估,其侧重点也有所不同。这里主要讲5类常见的工控WEB系统存在的漏洞,其主要特点就是:
无需交互即可利用。
利用难度低,危害影响大。
1.越权(平行权限)漏洞
2.文件上传漏洞
3.SQL注入漏洞【重点】
4.命令执行漏洞【重点】
5.弱口令漏洞【重点中的重点】
2.1 越权(平行权限)漏洞
此类漏洞往往属于越权访问后台系统,访问敏感页面、下载敏感文件比较多。比如不登录状态,直接访问对应URL即可越权进入系统 **.**.**.**:8088/Main.aspx?userid=1
越权(平行权限)漏洞的危害和防御措施
此类漏洞主要的风险点:绕过登陆限制,直接访问系统的某些页面,获取敏感信息,执行页面相应权限等。
此类漏洞的防御修补措施:对具体的目录和URL页面进行严格的身份权限鉴权处理。
2.2 文件上传漏洞
通过其他漏洞进入系统,或者有公开的上传接口的时候,可以利用此漏洞上传木马文件,从而获取webshell权限。
文件上传漏洞的危害和防御措施
此类漏洞主要的风险点:上传木马文件,系统解析木马文件后,攻击者可以直接获取到WEBSHELL权限。
此类漏洞的防御修补措施:
a 在服务器端,对具体上传文件进行严格的判断,比如判断后缀是不是为可执行文件。
b 对相应目录的权限进行严格划分,比如图片储存目录,就要严格禁止执行脚本。这样的话,即使木马文件被成功上传,文件也不能得到有效的解析。
c 最好采用白名单的措施,比如一个上传图片的点,就只允许上传jpg/gif/png等图片文件,其他文件类型一律拒绝。
2.3 SQL注入漏洞
SQL注入漏洞的原理和利用,这里分两种来简单说明下:
第一种利用方式,登录位置用户名和密码的SQL注入,这种可以直接构造利用后,绕过登陆验证,进入系统。比如用户名admin' or '1'='1 具体绕过原理如下图:
第二种利用方式,其他URL位置的注入,当然登陆位置也可以,这种主要是利用注入点,然后去获取数据库,从而进行信息窃取,数据收集等。
SQL注入漏洞的危害和防御措施
此类漏洞主要的风险点:
a 绕过登陆限制,直接进入系统,从而获取到工控WEB系统的管理权限,比如某些SCADA系统、以及某些自开发的工控WEB管理系统。
b 可以获取到整个数据库的数据权限,包括账号密码等数据。
c 某些root权限下,可以配合os-shell执行命令,从而获取服务器的webshell权限。
此类漏洞的防御修补措施:
a 对具体参数的输入点进行检测校验,防止输入危险的特殊字符。
b 经常关注相关系统官方的安全补丁信息,有安全问题出现,及时打补丁进行防御。
c 对系统的日常的加固防护,比如部署SQL注入防御相关的WAF程序,进行整体防御。
2.4 命令执行漏洞
此类漏洞往往比较多的是struts2命令执行漏洞,利用该类漏洞可以获取到webshell权限。
案例:某铁路工程管理平台存在struts2命令执行漏洞,可以获取webshell权限。
此类漏洞的主要的风险点
a 获取某些工控WEB系统的管理权限,比如某些SCADA系统、以及某些自开发的工控WEB管理系统。
b 执行任意命令,获取到服务器的WEBSHELL权限,以及其他同服务器、同IP网段的系统及设备的权限。
c 在获取到某些WEB系统、WEBSHELL权限后,再一步步深入攻击,从而获取到上位机、工控生产系统的权限等。
此类漏洞的防御修补措施
a 及时的对旧版本的Struts2框架进行升级。
b 经常关注官方的安全补丁信息,有安全问题出现,及时打补丁进行防御。
c 对系统的日常的加固防护,比如对系统目录的写入权限进行限制,对目录的可执行文件进行严格的配置,最好使用白名单策略。
2.5 弱口令漏洞
弱口令漏洞,是最常见也是利用最简单的一种漏洞。往往存在于登陆位置,利用此类漏洞,可以直接获取到系统的一定权限,甚至往往都是系统管理员权限。
为什么这类漏洞要作为重点中的重点来讲述呢?主要原因如下:
1.工控web系统在很多时候用的,都是默认的弱口令的账号和密码。
2.一般的工控web系统最明显的攻击点,都是系统的登陆页面这个入口。
3.利用此漏洞可以直接进入系统,甚至往往还是系统管理员的权限。
4.网络隔离一般都是在交换机、防火墙、堡垒机、单向隔离网闸之类的设备上配置的,如果设备出现弱口令,那么攻击者可以直接进入到系统,更改相关网络隔离策略,从而突破网络限制。
也就是说由于工控固件设备的特殊性,此类弱口令漏洞往往都会导致相关工控管理系统的控制权直接沦陷,造成比较大的危害。
工控WEB系统的弱口令漏洞案例 简直是数不胜数:
案例1:某工控自动化远程热网监测SCADA系统弱口令(账号admin密码123456)。
案例2:某运营商SCADA系统弱口令,可以控制整个机房设备(账号admin 密码admin888)。
案例3:某燃气SCADA系统弱口令,可以操作实时数据(账号admin 密码admin@123)。
通过上面的案例讲解,可能有人会问,这些弱口令漏洞是怎么发现的呢?其实大部分情况下,弱口令漏洞都是通过相关可以暴力破解的接口去探测出来的。
所谓暴力破解,就是指某些账号、密码的请求接口,可以无限次数的去进行请求尝试,这样只需要准备一定数量的账号、密码字典,再去进行大量的请求尝试,就有一定概率找到一些弱口令漏洞的账号和密码了。
由于工控设备物理隔离,操作人员的安全意识低,往往默认密码有很大的概率是不会被修改的,或者会将默认密码又改成另一个还是弱口令的密码,这种情况就是一个很大的风险点,攻击者只需要收集常见的账号密码然后进行一一尝试,就有很大概率可以攻入系统。
由于工控固件设备的特殊性,在工控WEB系统中的暴力破解漏洞中,有90%以上都是存在于登陆功能。下面主要说的是如何对此类漏洞进行防御:
首先,对于暴力破解弱口令的这种问题,应该对请求频率做下判断,比如以1分钟为时间周期,如果登陆失败的请求超过30次,就判断为可能是在进行暴力破解的攻击行为。重要的系统,最好再加入二次验证,由于工业系统绝大部分都是不联网的,所以手机号+短信验证码的这种二次校验方式,是肯定不行的。可以自定义一些问题和答案进行二次校验,这里要切记问题和答案不能太简单,防止被猜测到。
其次,对于员工的安全意识也需要定期培训,比如对系统默认密码做到及时的修改。以及公司安全制度的定制,发现有人设置弱密码,进行警告或者罚款的处理措施。
还有,要经常对密码进行更改, 尤其是重要的系统,更需要经常的去更改密码,这么做目的,是防止密码被针对性社工获取。
最后,在多个系统中,不要用同一套的账号密码,因为这样很容易因为一个系统的账号密码泄露,导致其他多个系统也受牵连。
有一种观点认为,系统是绑定了指定IP或者MAC地址的机器的,非指定设备是不能进行登陆的,所以密码即使是弱口令也无所谓。这种白名单的策略的确会有一定的防御效果,然而我们不能直接忽略掉机器已经被攻击者控制的情况。因为这种情况,即使进行了白名单的IP和MAC地址绑定,弱口令漏洞导致的风险,依然还是存在的。
3.工控安全的攻击发展趋势
通过以上的漏洞和案例分析可以看到,现在越来越多针对工控设备的攻击,都是从工控WEB系统发起的。随着智能化工业环境的发展,那种完全100%物理隔离的环境,更是越来越少了。很多厂商为了方便操作管理,都会把web系统和工控生产系统,以某种关系进行关联,而不是做到真正的物理隔离。
而且随着智能化信息时代的到来,越来越多的智能电网、智能燃气等系统,也在被慢慢普及使用。工控厂商因此产生方便的同时,也面临着更大的安全风险。
这种情况下,攻击者只要有足够的能力和时间,就可以APT的渗透方式,一步步的获取权限,提升权限,扩大资产数据,进而最终控制整个工控生产系统。
这种攻击方式,只要是不启用大型扫描器去攻击,人工手动去一步步的进行深入,传统的工控防护设备,尤其是根据异常流量去检测的方式,是很难判断出攻击行为的。
工控攻击的发展也从以前的单点投病毒、放木马,变成了多点多维度的APT渗透攻击了。收集各种目标设备的相关情报和资源数据,然后一步步的由浅入深,由外而内的进行权限获取,渗透测试,主机服务器控制等。
4.如何防御修补工控WEB系统的漏洞
1.务必将一切内部设备从外网隔离(或限制访问ip、绑定mac地址、建立严格的vpn等),对整个网络进行安全排查,确保没被恶意利用。
2.修改服务器、数据库等一切可以从SCADA系统访问到的设备口令,一口令对应一设备,切勿重复使用,对相关人员进行安全培训。
3.存在安全漏洞的SCADA系统,向厂商索要漏洞解决方案或更换SCADA系统。
4.部署SCADA-IDS/IPS等监测设备,做好异常行为监控。
5.将关键资产划分为功能组,并由独立防火墙隔离,可减少攻击截面(采用功能分层和拓扑隔离的方法,这个后面会讲到)。
6.设置专业的工控安全运维人员的岗位,对设备及系统环境定期进行检查。
总结
工控行业相比传统互联网行业来说,由于其特殊性,其痛点比较明显:
1.可用性和稳定性大于安全性
也就是说,首先要保证设备的稳定工作,以及可以正常运作,如果因为安全问题导致这两点无法保证的时候,安全性就会被舍弃掉。
2.设备、系统、软件陈旧,漏洞问题百出,无法得到时时、快速、有效的解决
工控设备价格昂贵,而且往往都关系着重要基础设施,也就是说更换设备系统等,就必须要对应着某些基础设施停止工作,这种操作对整个民生的影响是比较大的。所以往往一台设备就是几年甚至几十年都不曾更换过,系统用的还是数年、数十年前已经淘汰的漏洞百出的系统,可想而知其中积累的安全问题有多么严重。
鉴于上面提到工控安全痛点的这些问题,所以现在大多数的工控安全厂商主要的防御点,还是放在了设备、网络、流量、监控预警阻断,这些方面。
威努特在行业内率先提出的白环境的理念,也是为了有效地阻止恶意软件、流量和输入,这样防御理念相比传统防御方式,是可以大大提升防御效果的。
从前面的案例可以看到,由于工控设备的陈旧问题,只要攻击者进入到了工控环境的网络,基本上就可以做到畅通无阻,一路“高歌猛进”了。
目前在工控安全防御方面,最应该解决的还是如何去推动功能分层和拓扑隔离 的这个措施,以及对相关操作人员进行安全培训也是比较重要的一个环节(因为弱口令、同一套账号密码等一系列,由于人为操作不当导致安全问题数不胜数)。
如上图,采用功能分层和拓扑隔离的方法,就可以对网络防御状况带来明显的改善。
声明:文中所有相关案例均来自于互联网,且均为修复后的已知公开漏洞。