我们首先了解下为什么工控网络中存在安全漏洞?传统的工控网络属于专用网络,是一个相对封闭的网络环境,所以工业控制系统在设计之初往往缺乏完整的安全性考虑,传输协议都是公开的明文,没有任何身份认证和加密机制,同时在系统上线前很少进行安全漏洞检测,在投入生产后为了确保运行的稳定,也几乎不会对系统和软件进行升级。这样的工控网络系统在接入到互联网后就像把温室里长大的花朵直接暴露在烈日、狂风和暴雨下,是非常危险的。
那么工控网络系统这个“温室花朵”都有些什么样的漏洞呢?有些工控系统漏洞已经被研究者发现,并且在专门的漏洞发布平台上被公布出来了,我们把这种漏洞称为“已知漏洞”。对于已知漏洞,检测起来相对简单,治病的方法非常明确,对症下药即可。还有一些工控系统的漏洞我们称之为“未知漏洞”,就像当年的SARS一样,在它被发现以前,我们对它一无所知,甚至在发现后的一段时间内也无计可施,这种未知漏洞(也可以叫做零日漏洞)的危险性是非常大的,需要专门进行深度挖掘才能发现。
针对工控系统中的安全漏洞,传统的检测手段是否能有效诊断出问题呢?答案是不能,就像拿着水果刀当手术刀一样去做手术,都是刀,但对象和用途不一样。现有检测手段仅针对工控网络内的外围服务器和通用IT设备,不会触及亟待保护的核心工控设备;现有的端口服务扫描、漏洞特征扫描等技术对漏洞库的依赖较大,而公开的工控安全漏洞库信息很少,无法实现深入、全面的检测;基于公开漏洞的扫描技术和机制无法有效发现未知漏洞,同时在时间上永远滞后于攻击者利用的未知漏洞。
要想对工控网络进行漏洞诊断,必须是一个既熟悉经络之道又通晓祛病之法的全能型“医生”,既要对工业控制系统各种常见的“头疼脑热”进行诊断治疗,也能处理一些病因不明的“疑难杂症”,我们不妨把这个医生称之为“工控漏洞挖掘检测医生”。
检测“已知漏洞”是工控漏洞挖掘检测医生最基本的工作。通过学习和积累的已知漏洞库,对工控网络中控制设备和控制系统进行扫描,检测出工控网络中的已知漏洞。
其次,工控漏洞挖掘检测医生还要能对工控网络中的疑难杂症即未知漏洞进行深度挖掘,因为未知漏洞对工控系统的潜在危害是难以估量的。通过望(监控测试目标),闻(选择对应的协议和测试用例),问(智能挖掘引擎发出各种变异报文),切(点对点,桥接等测试连接方式),最后由测试目标一些不正常的反应来发现可能出现的未知漏洞。
最后,漏洞挖掘检测医生还要能对可疑的结果进行分析,判断是不是真的未知漏洞,以及产生的根源是什么。就像病人有咳嗽症状,引起的原因有上呼吸道感染,支气管炎,甚至是肺炎,但也有可能就是吸入了花粉之类的过敏物。漏洞挖掘检测医生通过根源分析、漏洞验证等手段来进行未知漏洞的确诊,并且在确诊的基础上,开出针对性的药方(保护策略开发),从而实现药到病除的效果。
综上所述,要给工控网络进行漏洞诊断不容易,而想要做一个合格的工控网络安全漏洞挖掘检测医生更不容易。但是如果有这么一位医生存在,不但可以发现并治愈工控网络中的已知漏洞,还将极大地帮助我们提早发现工控网络中的安全隐患,把病患消灭在萌芽中。