网络安全
威胁情报最佳实践提示

很多人说威胁情报(TI)很好吃,但很少有人了解如何“烹饪”它。更少的人知道如何让TI发挥作用并带来利益。另外,几乎没有人知道如何选择一个feed提供商,在哪里检查假阳性指标,以及是否值得阻止同事通过WhatsApp发送的域名。
我们曾经有两个商业APT订阅,十个信息交换,约十个免费feed,以及一个TOR出口节点的综合列表。我们还使用了几个强大的反汇编器,精通Powershell脚本,Loki扫描器和付费的VirusTotal订阅。不管安全事件响应中心是否需要所有这些,但如果你想捕获复杂的攻击,你必须全力以赴。
我特别担心的是检查违规指标(IOCs)的潜在自动化。没有什么比人工智能取代人类在需要思考的活动中更不道德的。然而,我意识到我的公司迟早会面临这个挑战,因为我们的客户数量不断增长。
经过几年的持续TI活动,我踩到了很多雷,我想提供一些提示来帮助新手避免常见的错误。
提示1. 不要过于依赖捕获哈希:大多数恶意软件都是多态的
威胁情报数据有不同的格式和表现形式。它可能包括botnet命令和控制中心的IP地址,参与钓鱼活动的电子邮件地址,以及关于APT组即将使用的规避技术的文章。简而言之,这些可以是不同的事情。
为了整理这个混乱,David Bianco建议使用所谓的Pyramid of Pain。它描述了不同指标之间的相关性,你使用这些指标来检测攻击者,以及你识别特定IOC时会给攻击者带来的“痛苦”程度。
例如,如果你知道恶意文件的MD5哈希,可以轻松准确地检测到它。然而,这不会给攻击者带来太多痛苦,因为只需添加1位信息到该文件中就可以完全改变其哈希。
提示2. 尝试使用攻击者技术上难以改变或昂贵的指标
预测到如何判断企业网络中是否存在特定哈希的文件,我会说以下几点:有不同的方法。其中一种最简单的方法是使用一个维护所有可执行文件的MD5哈希数据库的解决方案。
让我们回到Pyramid of Pain。与通过哈希值检测相比,识别攻击者的TTP(战术、技术和程序)更为有效。这样做更难,也需要更多的努力,但你会给对手带来更多的痛苦。
例如,如果你知道针对你经济部门的APT团队发送带有*.HTA文件的钓鱼邮件,那么创建一个检测规则来查找此类电子邮件附件将会击中攻击者的要害。他们将不得不修改垃圾邮件战术,甚至可能需要花钱购买0-day或1-day漏洞,这些漏洞不便宜。
提示3. 不要过于依赖别人创建的检测规则,因为你需要检查这些规则的假阳性并对其进行微调
当你开始创建检测规则时,总是会有使用现成规则的诱惑。Sigma就是一个免费仓库的例子。它是一个SIEM独立的检测方法格式,允许你将Sigma语言翻译成ElasticSearch、Splunk或ArcSight规则。仓库中包含数百个规则。看起来很棒,但魔鬼总是在细节中。
让我们来看看mimikatz检测规则。该规则检测尝试读取lsass.exe进程内存的进程。mimikatz在尝试获取NTLM哈希时会这样做,该规则将识别出恶意软件。
然而,对于我们这些不仅仅是检测而且还响应事件的专家来说,必须确保它实际上是一个恶意行为。遗憾的是,有许多合法的进程会读取lsass.exe内存(例如,一些防病毒工具)。因此,在现实场景中,像这样的规则会产生更多的假阳性而不是带来好处。
我不想指责任何人——所有解决方案都会产生假阳性,这是正常的。然而,威胁情报专家需要了解,双重检查和微调从开源和闭源获取的规则仍然是必要的。
提示4. 检查域名和IP地址的恶意行为,不仅在代理服务器和防火墙上,还要在DNS服务器日志中——同时关注成功和失败的解析尝试
恶意域名和IP地址从检测简单性和给攻击者带来的痛苦程度来看,是最优的指标。然而,它们乍一看似乎很容易处理。至少,你应该问自己一个问题:在哪里获取域名日志。
如果你只限制在检查代理服务器日志,你可能会错过试图直接查询网络或请求由DGA生成的不存在域名的恶意代码,不要忘记DNS隧道——这些都不会在企业代理服务器日志中列出。犯罪者还可以使用具有高级功能的VPN服务,或者创建自定义隧道。
提示5. 监控或阻止——只有在找到指标并承认阻止的可能后果后才决定哪一个
每个IT安全专家都面临过一个非平凡的困境:阻止威胁还是监控其行为并在触发警报时开始调查。有些指南鼓励你选择阻止,但有时这样做是一个错误。
如果违规指标是一个APT组使用的域名,不要阻止它——开始监控它。当前的有针对性的攻击部署战术假设存在一个额外的秘密连接通道,例如手机跟踪应用,这些只能通过深入分析来发现。自动阻止将阻止你在这种情况下找到该通道;此外,对手很快就会意识到你已经注意到了他们的把戏。
另一方面,如果IOC是一个加密勒索软件使用的域名,应该立即阻止它。但不要忘记监控所有尝试查询被阻止域名的失败尝试——恶意编码器的配置可能包括多个命令和控制服务器URL。其中一些可能不在feed中,因此不会被阻止。迟早,感染会尝试联系它们以获取用于加密主机的加密密钥。确保你已经阻止了所有C&C的唯一可靠方法是逆向样本。
提示6. 在监控或阻止之前检查所有新指标的相关性
请记住,威胁数据是由容易出错的人类或不是万无一失的机器学习算法生成的。我曾经见过不同的付费报告提供商不小心将合法样本添加到恶意MD5哈希列表中。考虑到即使付费威胁报告也可能包含低质量的IOC,那么通过开源情报获得的IOC肯定需要经过相关性验证。TI分析师并不总是检查他们的指标的假阳性,这意味着客户必须为他们做检查工作。
例如,如果你获得了一个新的TrickBot版本使用的IP地址,在将其用于你的检测系统之前,你应该确定它不是托管服务的一部分或来自你的IP。否则,你将很难处理每当用户访问托管平台上的网站时产生的大量假阳性。
提示7. 将所有威胁数据工作流程最大限度地自动化。首先,完全自动化假阳性检查,通过警告列表,并指示SIEM监控不触发假阳性的IOC
为了避免与从开源获取的智能相关的大量假阳性,你可以对这些指标进行预先搜索,使用警告列表。要创建这些列表,你可以使用流量最高的1000个网站,内部子网的地址,以及Google、Amazon AWS、MS Azure等主要服务提供商使用的域名。实施一个动态改变警告列表的解决方案也是一个好主意,列表中包含公司员工在过去一周或一个月内访问过的顶级域名/IP地址。
创建这些警告列表对于中型SOC来说可能是一个问题,因此考虑采用所谓的威胁情报平台是有意义的。
提示8. 扫描整个企业的主机指标,不仅仅是连接到SIEM的主机
通常,企业中的所有主机都没有连接到SIEM。因此,仅使用标准SIEM功能检查特定名称或路径的恶意文件是不可行的。你可以通过以下方式解决这个问题:
- 使用IOC扫描器,如Loki。你可以使用SCCM在所有企业主机上启动它,然后将结果转发到共享网络文件夹。
- 使用漏洞扫描器。其中一些具有合规模式,允许你检查网络中特定文件的特定路径。
- 编写Powershell脚本并通过WinRM运行它。
如上所述,本文不是关于如何正确进行威胁情报的综合知识库。根据我们的经验,遵循这些简单的规则将使新手避免处理不同违规指标时的关键错误。
