追捕大型网络威胁的最佳方法
2019-04-03山东李文竹赵长林
■ 山东 李文竹 赵长林
编者按:将网络威胁可视化是防御网络攻击的重要手段,但防御不能在攻击发生之后,而应主动出击。本文在追踪网络威胁时给出了几点建议,以确保使攻击从数据通信的噪音中显露出来。
在谈到追捕现代的威胁时,安全工程师所考虑的是积极地查找网络中的异常情况。安全工程师不能等待事件的发生,而应假设攻击者已经进入了企业网络,从而试图跟踪并主动出击。
安全工程师往往会做出有根据的假设,例如,他们会想到PowerShell远程操作可被用于破坏系统,从而通过编写脚本来检测它,分析其结果,并设置探测程序,用以警告这种技术在未来的使用。
现代数据中心往往是由好几代的软件架构以及由于并购而导致的遗留下的软件组成,往往缺乏分类,再加上可用数据的巨大数量,使得高效的威胁捕获成为很大的困难。
再加上那种“必须确保系统运行”的想法要求安全不能影响运维,从而强迫我们寻找在真实世界的网络中奏效的可升级方法。
我们不妨以一种“已知的良好状态”为基准而开始检查,然后再检测异常并将其归类为环境或安全事件的一部分。
这个过程允许防御者完成任务。由于从基准开始,我们可以检测到可能表明攻击者活动正在发生的异常和偏差,同时我们还可以强化已有的系统,并将基准转变为一种可信基础。
虚拟化是关键
我们很难说出在大型网络中到底在发生着什么,分析存在哪些资产以及谁正在与其他人通信是一个公开的挑战。但是,安全工程师应当构建可以提供部分答案的简单工具。Ss、Sysmon、Sysdig等免费工具与Graphviz相结合可以帮助防御者构建能够跟踪网络活动的地图。
通过使用地图,防御者们就可以开始分析典型的网络通信看起来什么样,并且利用不同的工具建立警告,从而检测异常通信。如果一台独立的Linux服务器要与本地的AD服务器通信,就应该发出警告。负载均衡器背后的Web服务器开始直接与互联网用户通信,也应发出警告。
这些警告未必一定表明攻击的存在。事实上,很多警告可能是无事实证明的行为或IT的错误配置引起的。这些警告都值得调查,以便于修复潜在的可被攻击者频繁滥用来在网络中隐身的问题。随着时间的推移,在特定网络中工作的安全工程师会构建起一个虽很少触发却能真正表明可疑活动的警告集合。
为保持有效性,安全工程师需要精确地知道机器和网络中发生的问题。精确的地图是可见性的一部分。正在运行的映像及其哈希值、域的查找等都是构建传感器的关键组件。这种数据源的频繁构建,需要使用前面所提到的同样的工具,例如Sysmon等,从而能够高效地记录发生在集中化服务器上的事件。
但是,在建立起这种数据源后,又会出现新的问题。处理这些伴随着数据源而来的数据洪水,要比收集数据更具挑战性。安全工程师们不能试图找到海量数据中的蛛丝马迹,而必须利用其多年以来在安全和IT方面的经验。
不要忽视经验
应用程序并不是每天都更新,新服务器也不是突然出现的,而且企业也不会突然地与新的第三方服务开始通信。
安全工程师将事件的当前状态定义为合法,并查找相关的偏离行为。偏离的例子可能是从一个临时文件夹执行二进制文件,也可能是一台与一种通常并不通信的“云服务”通信,或者是与DNS查询并不匹配的IP地址的数据传输。
监视几乎不发生变化的设备和文件是追捕威胁的另一种方法。网络频繁地依赖大量的配置文件,这些文件可以控制DNS解析、数据库的访问、用户管理和其他的关键系统。
此外,这些文件几乎不进行更改。这些文件是监视攻击者活动的典型位置,不管是锁定对文件的访问,又或者是监视文件的变化,都可以起到监视作用。文件的完整性监视可以使安全工程师定义基准并认识到与基准的偏离。
信任但要验证
随着时间的推移,企业构建起大量的传感器和警告器。但是,除了偶尔的渗透测试外,许多传感器并没有被测试。
安全工程师还应当确保现有的安全软件能够正常运行,并且传感器和系统应当定期进行测试,并使用不同的渗透和攻击模拟工具来验证系统。
追捕威胁的总体过程就是要使攻击者从数据通信的噪音中显露出来。要确保成功,我们不要指望有什么万能的方法。
但是,使用这些方法,安全工程师就可以在复杂的网络中高效地工作。通过使网络通信可视化,处理异常的机器活动数据,测试现有的系统,并监视对敏感文件的改变,安全工程师就可以在复杂的网络内部找到可疑的活动。