真实案例讲解如何采取正确的措施防范ICS攻击

很多行业的工业控制系统(ICS),都可能遭受数据泄露、病毒、恶意软件、内部攻击或其它任何形式的攻击。令人遗憾的是,很多自动化工程师并没有意识到问题的严重性,说他们需要确凿的证据来证明攻击确实发生了。

下面就来举一个真实的案例。在Verizon 2016数据泄露调查报告(DBIR)里,详细介绍了16种常见的数据泄露情形。其中一个案例,描述了关于一家紧固件制造商如何从对安全隐患毫无察觉、到发现问题、再到采取积极有效的防范措施的过程。案例中许多工程师的想法可能会对你大有启发。

Gator-Grasp紧固件公司从事专用紧固件的生产制造,需要满足非常特殊的工程要求,例如产品必须达到或超过一定的强度、拉伸应力、机械特性与材料含量阈值。确保控制系统的安全对他们来说格外重要,因此请Verizon的风险团队来检查他们公司的工业环境。

在网络健康检查刚开始时,Gator-Grasp公司的自动化工程师,对此表示怀疑和温和的异议,认为“健康检查”根本没有必要。在多年的工作中,“病人”一直运转良好,并没有表现出“不健康”的迹象。所以为何要弄乱这一切呢?他们向管理层保证OT环境是安全的,预计不会有重大问题。毕竟他们知道自己在做什么。尽管如此,管理层仍然坚持与风险团队合作,而最后自动化工程师也只能勉强同意。

发现潜藏的安全隐患

和所有的合同一样,这个项目开始也有一个启动会议,以便介绍每个人,确定初始期望,讨论工作范围,请求额外的信息和制定现场参观计划。

需要提供的信息包括网段、IP地址范围、IP地址分配和资产清单。Gator-Grasp公司团队按照指示,不创建任何新的文件,以避免创出现建新文档掩盖程序缺陷的情况发生。在整理文件时,该公司很快就意识到,它所做的还远远不够。

在现场访问期间,自动化工程师和风险团队的关键基础设施保护/网络安全(CIP / CS)专家,讨论了各种OT系统、已经就位的安全措施和其它操作程序。这包括所遵循的过程和实践,这些都没有实现文档化。这些讨论揭示控制工程网版权所有,在过去的几个月里,网络似乎有点“迟缓”,自动化工程师将其归因于旧的、传统的设备。对这些情况有了基本的了解之后,风险团队又参观了不同的地方,走进了生产车间,获得了一些额外的信息。

很快,风险团队就注意到了一件事,一些OT系统有防病毒保护,而另一些则没有。对于那些没有的系统,他们被告知,就因为它们是孤立的系统,所以不需要保护。令人难以置信的是,当他们检查OT系统上安装的防病毒软件的反病毒日志时,发现里面充满了恶意软件检测、删除和隔离警告。在总计57个系统中,有33个系统至少有一个恶意软件警报,而且很多系统有多个警报。

“当我们查询这些警报时控制工程网版权所有,发现自动化工程师和操作人员对此都很清楚。他们认为,由于有保护软件纠正和修复问题,一切都是可以接受的。我们解释说,存在明显的潜在问题,会导致重复感染,因此建议进行更详细的检查,以查明根本原因。”风险团队的成员透露。

查找受感染终端

Gator-Grasp公司没有记录调查事件的事件响应流程,所以我们牵头做这件事情。该公司没有一个集中的日志解决方案,或者提供日志功能的设备,无法提供深入了解恶意软件是如何进入网络的。问题是我们需要有更多的可见性。

风险团队为该公司建立了一个交换端口分析器,部署了无源网络分析仪来收集和分析数据流。使用与已识别的病毒有关的指标,审查网络流量,并迅速发现了多个潜在的受到感染的系统。正如我们预期的那样,网络流量显示了感染恶意软件的原因,正是OT系统没有防病毒保护。进一步的分析表明,存在一些错误的配置——允许未经授权的网络通信。

受感染的系统,其中许多还会非常积极地寻找新的系统,是一个很好的展示“网络变慢”问题的对象CONTROL ENGINEERING China版权所有,这一切可以在早期的访问中确定。通过收集到的网络交通信息,风险团队对数据传输率进行统计分析,很快意识到扫描尝试正在使传统网络通讯变的饱和。利用受感染系统详细列表,我们就可以有针对性的查找受感染终端。

虽然发现大面积感染,但Gator公司已经算是很幸运的了。对受感染系统上存在的恶意软件进行检查,发现恶意软件的共同目的,都是要窃银行凭证。由于没有被感染的OT系统被用于除进程管理之外的任何其他方面,因此不可能发生进一步的损害。网络故障是一种意外的副作用,是由恶意软件试图找到新系统、再加上过于宽松的防火墙规则所造成的。

我们提供了一份Gator公司被感染系统清单,并迅速开始重建他们已知的良好形象。在这个过程中,为了将修复的系统保持在已修复的状态,我们持续进行网络流量的监视,监视的指标主要是与已感染恶意软件相关的现象和行为。随着已发现问题的逐步解决,我们把注意力转移到了未感染的、但仍然有“麻烦”的OT系统。

Verizon风险团队将建议分成3类,这些建议涵盖了公司整个OT环境:

1、无人值守场所不必要的老旧系统。将这些系统从网络中删除并退役。因为这些系统没有记录,很难进行追踪,使它们很难被发现,最终会影响整个安全项目的进程。

2、必须保留的老旧系统,由防病毒解决方案进行保护。风险团队手动删除了现有的恶意软件,从最佳实践角度来看,系统安全最终得以强化。最后,制定了严格的防火墙规则,以阻止恶意软件访问这些系统。

3、未打防病毒补丁或未被防毒解决方案保护的新系统。确保这些计算机系统升级了最新的补丁,并安装了保护软件。

采取正确的防范措施

正如在非ICS领域一样,一个安全事件可能会损害品牌声誉,使其失去竞争优势,导致法律或监管问题,造成相当大的财产损失,并对环境和设备造成伤害。

最大的经验教训,可以用一位自动化工程师的评论来总结:“嗯,我在这里呆了25年,我想我知道所有的细节。我不认为文档很重要,但最后,我意识到有很多事情我并不知道,我不知道的事情最终成了问题的一大部分。

风险小组发现,Gator-Grasp公司需要采取很多正确的措施,来支撑其检测、缓解和应对工作,包括:

●执行事件响应计划。事件响应计划对解决安全问题至关重要,为响应人员提供方向和指导。

●进行应急培训。培训那些最有可能识别关于事件响应计划安全问题的人;培训他们如何收集信息并立即进行分类。

●强化OT系统。那些具有过度宽松默认配置的设备,应该禁止非必须的配置选项,以减少滥用的风险。

●确保及时更新补丁。开发一个补丁管理程序,来正确地保护资产和网络。安全补丁可以修复已知漏洞,并减轻恶意软件的传播。

●使用防病毒/入侵检测系统(IDS)保护。在所有IT/OT系统上安装基于主机的反病毒解决方案或入侵检测系统,并保持病毒库是最新的。

●配置日志记录、监控和报警。将所有设备的日志集中到一个地点记录并定期审查可疑的活动迹象,如防病毒警报日志、失败的登录尝试及包含外部系统的网络通信。

●维护事件响应/灾难恢复计划。建立有良好的记录、经过测试的事件响应和灾难恢复计划十分关键。如果没有,响应和恢复过程将是无序的、不完整的,而且需要更长的时间。

来源:控制工程网

特别说明:此文章素材来源于互联网,版权归原作者所有!经编者收集整理后,与大家一起分享学习!如果您认为某些内容侵犯了您的权益,请与编者联系!我们核实后将立即修订!

本文来自企鹅号 - 伺服与运动控制媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

C# 通过HttpWebRequest在后台对WebService进行调用

http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html

3382
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

3166
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1601
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2700
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

2135
来自专栏跟着阿笨一起玩NET

C# Stream 和 byte[] 之间的转换

711
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1471
来自专栏飞扬的花生

日志帮助类

 1.代码 using System; using System.Collections.Generic; using System.Linq; using S...

2039
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2508
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2970

扫码关注云+社区