本文翻译自美国国土安全部(DHS)下属的国家网络安全和通信整合中心(NCCIC,National Cybersecurity and Communications Integration Center)在2016年4月发布的《Guidelines for Application Whitelisting in Industrial Control Systems_S508C.pdf》,有兴趣的同学可以直接看原文,原文链接地址:https://ics-cert.us-cert.gov/sites/default/files/documents/Guidelines%20for%20Application%20Whitelisting%20in%20Industrial%20Control%20Systems_S508C.pdf
简介
本文件作为"保护工业控制系统的七个步骤"(对应的英文文档为《Seven Steps to Defend Industrial Control Systems》)的附录,提供了有关实施应用程序白名单(本文下面部分使用AWL代替中文翻译)的概念及指导。
AWL可以检测并防止恶意软件上传及执行。大多数工业控制系统的静态特性(计算环境稳定,软件很少变化)使其成为运行AWL的理想选择。因此推荐工厂企业和供应商合作,配置部署AWL来保护工控系统的安全。
AWL优势
AWL是一种安全技术,是分层防御体系的关键组成部分。 AWL只允许选定的授权程序运行,而所有其他程序默认情况下都被禁止运行。一般通过创建和维护"列入白名单"的应用程序或文件位置列表来实现AWL方案,AWL强制机制可以包括对文件散列(例如:MD5、SHA2)、软件签名、可信路径或者文件名称的验证。 注意,基于可信路径的AWL因为控制力度比较小,建议用于企业内部环境,而基于文件名的AWL相对更弱,不推荐使用。
当工控设备使用AWL进行安全保护时,安全软件会根据本地存储的批准列表(策略)检查每个试图执行的应用程序。因为只允许"白名单"上的程序运行,所以能够控制运行合法的软件程序,而恶意软件或其他未经授权的程序被阻止运行,从而可以有效的阻止那些恶意破坏者得逞。
AWL和防病毒软件的差异
虽然看起来AWL的目的与防病毒(AV)产品类似,但两者之间还是存在重要差异。AV产品主要通过使用大型"黑名单"来识别恶意软件的签名。如果可执行程序与列表条目匹配,AV软件会阻止执行并隔离文件。这种方法可以很好地抵御已知的恶意软件,因此AV在工控系统的纵深防御战略中也占有一席之地。但是AV仍然无法防御最新的无法识别的恶意软件,或者因为病毒库没有及时更新而漏掉一些恶意软件。另外,很多恶意软件会进行自我变异,生成一些不一样的复制品,避免被当前的病毒库识别。研究表明,最新的恶意软件创建速度远远超过传统病毒库的扩展速度。考虑到这些情况,AWL可以作为AV软件的有益补充,通过只允许特定程序运行的方式弥补AV系统的不足。
AWL如何运转
大多数AWL解决方案都有一套初步的规则,并支持"学习模式"。在"学习模式"期间AWL通过运行学习白名单规则,根据学习期间的学习结果,修改调整白名单规则。"学习模式"之后,AWL就可以进入"阻塞模式",一旦开始"阻塞模式",AWL解决方案将执行保护措施,仅允许白名单上的程序执行。AWL可以记录阻止操作并报告阻止信息给安全事件审计系统(比如SIEM)来进行后续的审计处理。
许多AWL软件包也支持"警报模式"。 当处于"警报模式"时,非白名单程序的执行不会完全被阻止,而是提示用户来选择是否允许程序执行。
白名单的创建
管理员应该仔细检查在"学习模式"期间产生的白名单,以确保没有预先存在的恶意软件被添加到白名单中。 建议在已知良好的"黄金形象"的系统上开始学习模式。 一旦AWL有效运行,维护的工作量非常小,唯一需要做的就是偶尔检查阻止记录,以确定是否有任何未经授权的应用程序试图执行,或是否有新的合法应用程序已经安装了但没有被添加到白名单中。
在创建白名单期间,要确保把可能需要的软件都包含在内。如果不能确定哪些软件程序将在本地执行,可以与您的工控产品供应商合作以获得完整的清单。注意有些特定的程序只能在退化或紧急情况下执行,因此在"学习模式"期间可能看不到,一定要确保这些程序能被正确的加入到白名单中。
为更复杂的系统创建拥有程序白名单是一个很棘手的事情。幸运的是,ICS环境中的许多设备需求变化很少,以非常确定的方式运行一组相对静态的应用程序。 这种一致性允许精确定制的白名单应用在工控系统环境中,会取得更大的成功、遇到更少的问题。如果是传统的企业IT系统可能就完全不一样了。
一些AWL系统支持信任指定供应商签署的所有应用程序,这种方案可以简化白名单的创建和维护,只要是这个供应商签署的所有软件都将被列入白名单。
AWL作为变更控制的验证工具
可以利用AWL来帮助确保将要安装的应用程序已经过适当的审查并获得批准。 将经过批准的程序名称及HASH值或签名加入白名单程序列表,只有符合审核条件的程序才能安装运行,从而实现对变更控制的验证。
AWL的限制
根据前面所讲,AWL非常适合作为工控领域的防御措施,但它也不是一个"银弹"解决方案,不可能阻止所有的入侵破坏。如果能扰乱加入白名单的过程,从而加入一个坏的"白名单",那AWL也是无能为力的,这样的应用程序不会被AWL标记和阻止的。一些AWL供应商已经基于内存保护机制开发了一些产品来解决其中的一些问题,在内存里限制软件应用的运行。还有一些恶意软件可能运行在更高级别的应用程序环境来逃避白名单的控制,如Java,.NET Framework和脚本语言。最后,如果攻击者已经被列入白名单,那白名单机制是彻底失效的,无法识别白名单列表内恶意程序的破坏行为。
选择一款兼容的AWL
AWL软件必须与工控设备上的操作系统兼容才能正常工作。一些工控设备的操作系统比较特殊,可能很难找到适配的AWL方案。 因此,必须选择与当前操作系统兼容的AWL软件进行部署,市场上有许多不同的AWL解决方案支持不同的操作系统。如果没有兼容的AWL解决方案,一定要在现有网络安全框架下,使用一些补偿机制来保证安全。
一些工控设备供应商提供对AWL解决方案的认证,一些工控设备供应商提供可管理的安全服务。企业管理者应该了解适配这些特定工控设备的安全产品和服务。如果没有合适的安全产品或服务可用,客户在和工控设备供应商签订合同时应该提出要求,要求这些工控设备后续可以兼容AWL方案。
AWL在特定场景的挑战
在某些工控系统上运行AWL可能是一个挑战,使用大量自定义驱动程序和服务的系统可能需要调整才能成功运行AWL。例如,一些PLC工程工作站环境具有数十种定制服务和驱动程序来支持传统网络功能和定制的硬件设备。在这种情况下,一定要与供应商合作以确保所有需要的服务封装在白名单中。有时为了让AWL成功在这样一个系统上运行,可能需要找到并解决两者之间的冲突。 幸运的是,大多数工控系统是基于PC架构的,因此很容易实施AWL。充分利用"学习模式"对于大部分AWL方案的正常运转是至关重要的。
在每个AWL解决方案实施之前,在适当的测试环境上测试每个AWL解决方案是至关重要的。 这种测试应该特别包括在下列情况:任何不经常使用的模块都会被执行,从而确保所有相关程序都被包含进来白名单。
除了供应商提供的程序之外,还应该把定制开发的代码程序包含在应用程序白名单中。
在关键的过程环境中,建议将AWL配置为警报模式而不是阻止模式。假阳性可能会对关键过程产生负面影响,但无论如何应该在设计和实施AWL时咨询工控系统的供应商。
控制管理权限
管理员可以修改或绕过白名单的保护,所以在AWL解决方案中必须严格控制管理员账号权限。任何白名单变更都应该提醒通知所有的管理员。企业主还应该了解合规性政策(例如,NERC / CIP)以及整个系统生命周期中的安全相关事宜。
管理AWL系统
如果本地工控专家有限,那么ICS供应商最好提供AWL支持服务。企业应该和工控设备提供商进行沟通并记录AWL方案对工控设备运行的影响,尤其在紧急情况/应急情况下的影响,以便技术人员能够在必要时使用任何可行的管理工具进行处理。
如果使用基于散列的白名单方法,那么必须修改AWL才能保证补丁或更新程序能够运行。 因此,修改白名单就是安装补丁或更新软件的前置步骤。但是请注意,正如前面所讨论的那样,基于厂商签名认证的AWL系统将不需要这些额外的步骤。对更新进行测试仍然推荐作为典型配置管理的一部分。
任何维护系统的技术人员都应该充分意识到AWL正在运行,他们带到系统的任何工具可能运行不了。如果需要运行这些维护工具,就需要把某些目录列入白名单,或者把维护工具加入白名单。
总结
虽然白名单技术不是万能的,但正确配置的AWL确实是纵深防御解决方案的一个重要组成部分。
附加资源
DHS article "Application Whitelisting in an ICS Environment", DHS ICS-CERT Monitor July, August, September 2013.
NIST Special Publication 800-167; "Guide to Application Whitelisting".
NSA Publication, "Application Whitelisting Using Microsoft AppLocker", August 2014.
NSA Publication "Application Whitelisting Using Software Restriction Policies", Version 1.1, August 2010.
NSA/IAD Publication MIT-006FS-2013 "Application Whitelisting".
威努特工控安全
专注工控·捍卫安全 |