工控防火墙安全测试技术

  • A+
所属分类:安全文章

作者 | 绿盟科技格物实验室 陈杰 [email protected]

前言

近年来,工控安全事件频发,工控安全不仅事关工控行业,更是被上升到国家安全的高度,优秀的工控安全解决方案被应用到了生产中,而安全解决方案最终会落地到安全产品中,越来越多工控安全产品部署在工业现场,其中作为安全产品中的主力军防火墙在现场用得最多。对工控防火墙的功能测试已经是老生常谈,但是对其安全性测试却鲜有人提及,本篇主要介绍了工控防火墙安全测试一些关键思路,目的是提高工控防火墙自身的安全性。

工控防火墙

工控防火墙可以根据需要部署在关键节点上,如工程师站和控制器之间,或者IT网和OT网之间等,防火墙对流量进行解析,根据内置的规则对流量进行阻断或者放行,并对用户及时进行通知告警。工控防火墙和传统的IT类防火墙除了自身需要满足在工业现场部署的相关标准外,最主要的区别还是在支持的协议上,除了传统的IT类协议,工控防火墙内置了大量工控协议的解析引擎,例如OPC、Modbus TCP、Siemens S7、IEC104、EIP等工业协议,而且有些工业协议是私有的,只能进行定制化处理,在实现这些解析引擎时,也会出现一些安全性问题。

工控防火墙安全测试技术

测试方法

无论是黑盒还是白盒测试,都是发现安全问题的利器。

黑盒测试:

通过端口扫描对防火墙的管理口和业务口进行端口扫描,发现其开放服务,或者直接使用漏扫测试,发现已知漏洞。安全人员也可以凭借测试经验,发现未知安全问题。

白盒测试:

在获取到代码情况下,进行代码审计,退一步来说,即使在获取固件的情况下,通过解包固件文件,获取到其中的相关代码,通过逆向工具进行逆向分析。

安全测试

暴露的服务

远程控制服务:

有些工控防火墙为了维护方便,会留下一些诸如SSH,telnet方便运维人员进行远程支持,一旦知道了root密码,任何人都可以获取到防火墙的完全控制权限,这种是非常不安全的设计,也是进行安全测试重点关注的服务。

WEB服务:

WEB服务一般是在管理口会开放,其他网口访问不到WEB服务,针对该服务进行测试时,可以沿用传统的WEB安全测试思路,对工控防火墙的WEB口进行相关测试,重点关注未授权访问,命令注入,SQL注入等危害较大的漏洞,一旦出现这类漏洞,有可能会导致工控防火墙沦陷。

安全建议:

任何时候都不应该使用硬编码,工控防火墙是通用性产品,一旦攻击者知道了硬编码,就可以利用该硬编码去攻击其他同系列的产品。

协议解析

防火墙对协议解析的健壮性也是值得进行测试的,由于大量工控协议解析插件可能是厂商自己实现的,没有经过大量安全测试,那么其中就有可能存在问题。为了快速测试防火墙的健壮性,可以使用模糊测试对其进行快速测试。

测试示意图: 

工控防火墙安全测试技术

  1. fuzz发送端发送变异的工控数据,在经过防火墙时,防火墙会调用解析引擎对发送协议进行解析。

  2. fuzz接收端接收到发送端发送的fuzz数据,返回变异的响应数据包,这时防火墙同样会进行解析。

  3. fuzz可以选取大量的工控协议测试数据,来保证测试的覆盖度,一旦防火墙出现了异常,有可能导致数据包丢失或者拒绝服务。

安全建议:解析引擎一般都是c/c++实现的,在开发的过程中,要遵守安全编码规范,对数据包的长度字段使用之前一定要对其范围进行限定,杜绝使用危险函数。

安全功能绕过

工控防火墙使用得白名单进行访问控制,只允许规则中功能码,或者工控协议中的指定读写地址的数据包通过防火墙。如何构造测试数据包需要结合解析协议的具体实现,例如一些协议解析插件细粒度不够,导致恶意的数据包可以进行“走私”,对控制器或者其他设置进行恶意操作,这也是安全测试过程中需要测试到的。

总结

本篇通过介绍了对工控防火墙安全测试的思路,从不同的测试途径对工控防火墙的安全性进行测试,旨在提高工控防火墙自身的安全性,从而让安全的解决方案能够真正安全!也希望厂商能够更多关注工控安全产品自身的安全性。



原文来源:关键基础设施安全应急响应中心
“投稿联系方式:010-82992251   [email protected]
工控防火墙安全测试技术

本文始发于微信公众号(网络安全应急技术国家工程实验室):工控防火墙安全测试技术

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: