作者 | 国家互联网应急中心 杜鹏
一、背景与现状
随着工业控制系统数字化、智能化程度不断提升,传统封闭、隔离的工业环境被打破,其面临的网络安全风险也日益严峻。一方面,传统IT领域的病毒很容易蔓延到工控网络;另一方面,基于利益驱动,工控系统逐渐成为黑客组织尝试攻击勒索的重点目标,下面是近期两起典型案例:
富士康工厂遭勒索攻击
2020年11月,富士康工厂遭到了勒索软件攻击,1200台服务器被加密,攻击者在对设备进行加密前还窃取了100GB的未加密文件,同时删除了不少于20TB的备份。随后,攻击者发布了一个指向付款站点的链接,要求富士康支付1804.0955比特币作为赎金(约3486.6万美元),否则将窃取的数据在暗网出售。富士康没有支付,目前至少有部分数据已经被公布在暗网上。
美国东部骨干输油系统被迫暂时关闭
2021年5月7日,美国境内最大规模的燃油管道系统遭到入侵,黑客通过释放勒索病毒致瘫了美国东部地区连接南北炼油重地的骨干输油系统,造成了南起得克萨斯,横跨路易斯安那,一直延伸到新泽西的数个东部沿海州陷入了断油恐慌。这次感染病毒的是Colonial Pipeline公司的信息技术网络,而非运营技术网络,前者主要负责运行电子邮件和常规功能,后者才涉及至关重要的控制能源运输的实际操作。病毒一旦传播进入运营技术网络,会造成的破坏将大幅提升,这才迫使Colonial公司赶紧中断运行暂时关闭。
从以上案例可以看出,工控主机由于其通用性和应用的广泛性,往往成为网络攻击的重点。事实上,如果不考虑物理隔离因素,工控主机的一些固有属性和运行现状,也导致其更容易被攻破。工控主机的生命周期通常很长,出于稳定性和兼容性考虑,工业企业很少对工控主机打补丁或安装安全软件,导致工控主机在漏洞风险下运行成为常态。有些工控主机虽安装了防病毒软件,但由于病毒库长期不更新,实际发挥的作用非常有限。如何改善工控主机的安全现状,什么样的安全技术和产品适用于工控主机?
白名单技术在工控主机安全防护中的应用分析
工控主机通常是承担特定角色的计算机,具有单一性和确定性,即预装的操作系统和业务软件在投入运行后很少改动,这一属性使得基于白名单技术的产品相对其他主机防护软件更适用于工控主机。首先,白名单防护软件与工业软件的兼容性相对更好,在运行适配后,误杀风险相对更小。第二,白名单软件占用系统资源一般较少,通常不会造成主机性能的严重抖动,即通常不会影响业务实时性。第三,因为工控主机运行的应用软件比较确定,白名单不需要频繁更新,而反观传统的杀毒软件和网络防护软件,需要频繁更新病毒库,以保持查杀能力,而且对系统资源消耗较大。第四,工控主机很少打补丁,白名单防护软件只允许白名单内的程序运行,可以在一定程度上缓解系统未打补丁、漏洞被远程利用的风险。
二、白名单产品通常具备的功能
2.1基于白名单控制
基于白名单控制,通常首先对系统进行一次整个根的扫描,对二进制文件、可执行文件做hash值记录,保存于白名单中。内核模块根据白名单对程序执行进行控制。当检测到执行程序启动时,内核模块首先提取启动程序的hash值,然后和白名单中的内容hash,如果白名单库存在该记录,则允许其执行,反之则拒绝程序执行。对工控主机来说,只有白名单内的程序能够执行,其他其它非授权程序都被阻止,以此防止病毒、木马、恶意软件的攻击,保障工控主机全稳定运行。
2.2通常具备的功能
目前市面上白名单产品通常具备的功能如下所示。
三、白名单产品测试与分析
3.1白名单产品测试方案
我们并非白名单产品的功能测试,而是以验证白名单产品的实际防护能力为目标。因此,我们将测试方式分为两方面,即白名单产品的安全防护能力与软件自身安全性。对每个方面结合白名单产品通常具备的功能设计了具体的测试方案,如下所示。
3.2问题列举与深入分析
下面对白名单产品测试发现的问题进行列举和深入分析,分为安全防护能力和自身安全性两方面:
3.2.1安全防护能力方面:
问题1:可绕过防护策略执行禁止的用户指令
现象描述:白名单系统本应阻止reboot命令生效,而实际是/sbin路径下的reboot命令不生效,但/init.d路径下的reboot命令仍可生效;又如,白名单系统应阻止shutdown命令生效,但命令行poweroff –f或/etc/init.d/halt均可以直接关机。
分析:操作系统命令是基于路径的,往往防护策略仅禁止了单一路径下的命令,而其它路径下相同命令仍可生效,解决办法是将需要禁止的命令的其他可执行路径均补全到防护策略中;防护策略的意图本是禁止某一行为,但该行为可能对应操作系统多个命令,这时防护策略需要将相同功能的各个命令均添加至防护策略中,才能达到禁止某一行为的目的;由此可见,充分合理的适配白名单防护策略是能更好地发挥白名单产品的防护效果。
问题2:可远程利用操作系统或业务软件漏洞入侵
现象描述:工控主机操作系统135端口处于开启状态时,可利用该端口远程入侵;工控主机上业务软件的Sqlite_server组件存在漏洞,可利用该漏洞远程入侵。
分析:虽然可以成功入侵,但如果不能非授权关闭或破坏白名单产品防护功能,则白名单产品的防护功能依然生效并持续保护主机安全。但是为了安全,应将主机上不用的网络端口全部关闭。对于业务软件如发现存在漏洞或有新版本时应尽快进行修补或更新。
3.2.2自身安全性方面:
问题3:防护策略未加密存储
现象描述:白名单产品的防护策略是明文存储的,可直接识别防护策略的含义。
分析:白名单系统未对防护策略加密存储,而通过访问控制功能防止策略文件被非授权查看,这样的好处是避免了系统对策略文件加密和解密过程的资源开销。但是弊端也很明显,即如果访问控制的防护功能被非授权关闭或失效则可获取策略文件并直接识别。从纵深防护的角度考虑,使用加密方式防止策略内容被直接识别,可作为访问控制失效或失去安全防护时的第二道防线,因此,对防护策略进行加密存储可以显著增加安全性。
问题4:白名单防护策略未具有完整性校验
现象描述:关闭白名单防护功能并篡改阻止某命令行生效的防护策略后,再开启白名单防护功能后,其他策略仍可生效,但被篡改的防护策略不生效了。
分析:白名单防护策略未具有完整性校验,而通过白名单系统的访问控制功能,来防止防护策略被非授权访问与更改,但这样仍然存在风险,一旦访问控制功能被非授权关闭或失效,策略文件就可以被篡改并导致防护策略不能正常成效。此外,有的白名单产品对其策略文件启用了通用数据库软件的数据完整性校验,但数据库本身未设置访问控制(无需输入用户名、密码即可访问),且其采用的完整性校验算法是通用的,这种情况下仍存在策略文件被篡改的风险。
问题5:数据报文中的完整性字段数值为全零
现象描述:通过对白名单产品传输数据监测获悉,其数据报文中的完整性字段数值为全零。
分析:为了能够具备抵御常见重放类攻击的能力,白名单产品的数据传输应增加完整性效验,也可使用VPN或更高级别的安全传输通道来传输数据。
问题6:防护功能被非授权关闭
现象描述:存在不止一种方式可导致白名单产品的防护功能被非授权关闭。如通过命令行关闭防护进程;如在主机启动过程增加批处理程序禁止白名单防护进程启动;如破坏访问调用防护进程的权限,导致防护进程无法启动;如通过工控主机上存在的白名单产品安装程序(且安装前无身份鉴别)或运维工具(且运行前无密码验证)关闭防护功能。
分析:开机启动过程中,除了极少数的驱动程序外,工控白名单产品需要做到最先启动起来,并使防护功能生效。提供免软件安装的白名单产品硬件,与工控主机物理直连,能够从工控主机加电启动之际便开始对其内存加载数据进行扫描,并全程防护白名单进程被非授权关闭或破坏等,进而实现更强的防护能力。
四、总结
本文所分享的白名单产品通常具备功能,产品测试方案,测试问题列举与深入分析等内容,希望能为后续的白名单产品研发提供参考意见。白名单产品已成为工控主机安全不可或缺的一环防护。为了能对工控主机的网路安全提供更强大的保护措施,可以在工控设备上研发可嵌入式的基于白名单技术的防护产品。如此一来,工控主机与工控设备均可通过白名单产品提供安全防护,能够整体提高工业系统网络安全防范能力,向着构建主动防御内生安全拓展前进。
声明:本文来自网络安全应急技术国家工程实验室,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。