如何检测像 Stuxnet 这样的恶意软件?

信息安全 恶意软件 身份证 检测
2021-08-12 20:48:52

Stuxnet 和其他最先进的 Internet 蠕虫列表中的其他蠕虫具有某些特征,它们非常隐蔽地泄露他们收集的信息。因此,它设法躲过了雷达,通常不会被 IDS/防火墙注意到。Stuxnet 还具有一个功能,即受感染的机器通过 RPC 以 P2P 方式联系并更新其他受感染的机器。

我的问题是:拥有智能 UTM/IDS 可能需要进行哪些添加或更改才能检测到此类恶意软件,这些恶意软件往往是隐秘的并且不为人知?

我不是在这里邀请猜测,而是基于知识的意见和一些伟大的想法......

4个回答

我可以想到一些方法:

  1. 恶意软件连接到 C&C 服务器。如果您监控您的流量(因为应该监控敏感系统) - 您会发现可以标记的异常流量(并且应该进行调查)

  2. 如果恶意软件使用 USB 闪存驱动器进行自我传播,并且您的环境中有不同的计算机平台(例如:windows、mac、linux 和 BSD 系统),那么您将在闪存驱动器上看到其他平台的可执行文件。这样你就有了一个真正的恶意软件“样本”来分析。(大多数恶意软件是特定于平台的),因此如果您将闪存驱动器连接到非 Windows 机器,则可以查看恶意软件文件,而不会被感染)

  3. 蜜罐 - 你说 stuxnet 太聪明了,不会落入蜜罐,但我认为这完全取决于谁更聪明——蜜罐还是恶意软件。如果您使用普通的蜜罐 - 恶意软件肯定会忽略它,但如果蜜罐使用新技术 - 它不会被恶意软件检测为蜜罐。请记住,一些高度复杂的恶意软件,如 Duqu 和 Flame,只有在 C&C 服务器发出指令时才会传播,这使得它们更不容易被蜜罐发现。

在我写完这篇文章后,我去看看 Stuxnet 是如何被发现的,Stuxnet 本身被检测到是因为一个在受感染的计算机上制造BSOD(蓝屏死机)的错误(来源)。研究人员在寻找另一种恶意软件时发现了火焰。我找不到 Duqu 是怎么找到的。

所以我们都可以很聪明,但要找到如此复杂的病毒,我们真正需要的是运气……

您的问题可以在更广泛的背景下看到:如何防御 APT(高级持续威胁)式攻击(又名有针对性的攻击)。

Qucik 回顾一下 APT 攻击的主要特征:

攻击向量

到目前为止,大多数此类攻击使用三种攻击向量之一(带有一些示例):

  1. 鱼叉式钓鱼:
  2. 受感染的 USB:
  3. 网络战略妥协

实际上,在任何拥有足够大网络和大量员工的大公司中,都无法 100% 地阻止所有这 3 个主要攻击向量。因此,由于预防最终会失败,我们必须在检测能力上建立我们的防御。但众所周知,检测有针对性的攻击很难,而且正如APT1 Mandinat 报告向我们展示的那样,此类攻击可能会在多年内被忽视。这很难主要是因为这些攻击中使用的恶意软件的隐蔽性。

隐身性

有针对性的攻击的隐秘性是基于执行此类攻击的恶意软件是自定义恶意软件这一事实 - 以前 AV 软件从未在野外发现过这种恶意软件,IDS 系统没有针对它的签名等。

防御方法

针对此类攻击的防御概念仍在不断涌现和发展,一些值得注意的例子:

洛克希德马丁公司基于威胁情报和杀伤链的方法 ( link1 link2 )

或者

RSA 和互联网安全中心的网络风险情报方法 ( link1 link2 )

人们相信 Stuxnet 是由一个主要实体(例如政府)创建的,这意味着它是由非常了解自己在做什么的专家创建的,因此极难被发现。事实上,他们本可以与拥有他们专门攻击的知识、产品或技术的不同公司合作。话虽如此,我相信检测这种恶意软件的最佳方法是使用基于策略的安全性(即赛门铁克关键系统保护),它比被动更主动。使用这种基于策略的技术,您可以限制系统执行预期的某些活动。例如,可以设置安全策略以阻止任何 RPC 通信. 如果发生 RPC 通信,它将触发警告消息日志。可以使用该工具的中央报告控制台将这些警告消息关联起来,以检测系统正在做什么以及它如何偏离其正常操作的差异。

其他人可能会纠正我,但我记得 Stuxnet 攻击的独特之处在于 Stuxnet 是经过数字签名的……作为西门子软件。由于它针对的是西门子控制系统,因此西门子签署的应用程序很可能已经受到信任,因此一层防御变得无用。当然,要做到这一点,需要有人设法对西门子应用程序签名证书进行逆向工程,入侵西门子并获得他们的私钥副本,或者强迫西门子与他们合作......