逻辑炸弹可能是最狡猾的网络威胁之一,其本质是嵌入软件系统中的一组指令,当满足指定条件后,就会触发恶意有效载荷,对操作系统、应用程序或网络采取恶意行动。实际执行恶意攻击的代码有时被称为“渣滓代码”,可能是一个独立的应用程序,也可能隐藏在一个更大的程序中。
虽然逻辑炸弹有时会通过与病毒或其他恶意软件感染计算机相同的技术进行传播,但更常见的是由拥有被攻击系统访问权限的内部人员植入,因此很难被发现。
逻辑炸弹有三个特征:
在激活之前处于休眠状态: 逻辑炸弹包含指令(逻辑),可根据必须满足的条件确定何时触发。因此,它们甚至可以无限期地处于休眠状态,很难被发现。
它们包含恶意有效载荷: 逻辑炸弹包含一个有效载荷,负责在触发后执行恶意行动。
它们的构造是在满足条件时引爆: 逻辑炸弹包含一些条件,一旦满足这些条件,恶意有效载荷就会启动。
逻辑炸弹不是病毒,但可以通过病毒传播。与病毒不同,逻辑炸弹的显著特征不是如何传播,而是如何触发。
恶意软件有多种类型,包括病毒、蠕虫和特洛伊木马等,它们一般由传播方式和感染计算机的方式来定义。虽然细节各不相同,但总体上,它们都是为了半自主地寻找受害者而设计的。恶意软件执行攻击的部分被称为有效载荷,可以以不同的方式工作,其中一些有效载荷本身就是逻辑炸弹。例如,由美国和以色列情报部门为破坏伊朗核计划而创建的 Stuxnet 蠕虫病毒,其有效载荷只有在确定运行在特定类型铀浓缩设施的计算机上时才会启动。
也就是说,并不是所有的恶意代码都是恶意软件,也不是所有的逻辑炸弹都是通过病毒或其近亲传递的。事实上,许多逻辑炸弹都隐藏在普通计算机程序中,由编写这些程序的人自己完成。
正如 Stuxnet 示例所示,逻辑炸弹攻击之所以得名,是因为恶意代码会在满足某些逻辑条件时激活,与“如果-那么”句式很类似。逻辑炸弹的触发方式有两种形式:正触发和负触发。正触发会在某些事情发生时触发,而负触发则会在某些事情没有发生时触发。Stuxnet 就是一种正触发:蠕虫会分析底层硬件,如果与设计攻击的系统相匹配,它就会以足够快的速度旋转任何附属的铀离心机,从而摧毁它们。
正触发还有其他一些更普通的类型,例如,如果有人试图打开指定文件,或将数据从一个目录复制到另一个目录,逻辑炸弹就会爆炸。
负触发常见于逻辑炸弹的内部威胁。例如,一名心怀不满的员工怀疑自己即将被解雇,可能会在公司服务器上安装一枚逻辑炸弹,除非制造者干预,否则炸弹将在某个时间清除公司数据。只要该员工还能访问系统,他们就能阻止炸弹爆炸,从而在与雇主的纠纷中占据有利地位,或者至少让他们确信,一旦他们被解雇,随之而来的将是一片混乱。
逻辑炸弹的实际行为范围很广。内部威胁是逻辑炸弹的主要组成部分,其中有几种攻击类型尤为常见,包括赎金威胁或报复行为的文件或硬盘删除,或在未来工作中使用特权从而实现数据外渗。
实际上,只要能够触发,逻辑炸弹所能做的事情只限于攻击者的技能和想象力。例如,一个有心人设法在公共领域的 Python 库中隐藏了一个加密劫持逻辑炸弹,为攻击者偷偷挖掘比特币。
逻辑炸弹可以由创建者希望触发的任何特定事件或条件触发。常见的触发包括:
基于时间的触发:可以对逻辑炸弹进行编程,使其在未来的某个设定时间启动。
事件驱动触发:逻辑炸弹也可设计为在其所在系统发生特定事件时激活,如访问文件或特定用户登录或失去系统访问权时。
用户激活触发:逻辑炸弹也可编程为在用户执行特定操作(如输入特定命令)时触发。
组合触发:逻辑炸弹可设计为在满足一系列条件后触发,包括上述任何一个例子。
定时炸弹是逻辑炸弹的一个子集,尽管有些人可能认为它们是一种密切相关的攻击。定时炸弹是一种在特定时间触发的逻辑炸弹。在某些方面,这可能被认为是逻辑炸弹中最简单的逻辑类型。编写这种触发方式的目的可能与真正的物理爆炸定时炸弹类似:让攻击者有足够的时间离开该区域(这里指的是安装炸弹的计算机或网络),从而降低他们受到影响或被指为攻击者的可能性。
上面提到的负触发案例是定时炸弹概念的一个更复杂的变种,因为它的时间期限可以通过用户操作来推迟,从而形成“失能开关”(是一种在操作者失去行为能力或者离开控制设备时,能自动动作的开关。)。
逻辑炸弹顾名思义就是恶意的。当然,逻辑炸弹中的“炸弹”是比喻性的,尽管在像 Stuxnet 这样以运行技术为目标的情况下,它们会对物理世界造成严重破坏。但即使是全数字的逻辑炸弹,也因为具有破坏性而得名。
当然,也有其他类型的程序表面上可能与逻辑炸弹相似,但并不具有危害性。例如,某免费试用程序可能在 15 天后停止工作。但因为在下载时被告知了这一点,所以这并不被认为是逻辑炸弹。
逻辑炸弹被触发后,会对目标系统造成一系列破坏,包括:
数据丢失和损坏:例如,逻辑炸弹可被设计为删除特定文件或数据库的部分内容。
运行中断:逻辑炸弹可以通过编程修改配置、禁用服务或使系统崩溃,从而导致系统停机。
经济损失:逻辑炸弹造成的停机可能会导致经济损失,例如错失商业机会或与恢复运行相关的成本。
名誉损失:逻辑炸弹造成的损害可能导致客户或合作伙伴失去信任。
数据盗窃:逻辑炸弹的有效载荷可能被配置为在触发时外流数据,包括有价值的知识产权。
合规问题:逻辑炸弹攻击的后果可能会使企业面临严重的合规或法律后果,例如违反数据保护法规。
总而言之,逻辑炸弹是一种特别有害的攻击类型,因为攻击代码就其本质而言可能会长期处于休眠状态。一般来说,即使是最好的端点安全软件也很难嗅出未执行的代码。
由于有些逻辑炸弹是通过恶意软件发送的,因此防止它们进入系统的方法之一就是遵循反恶意软件最佳实践:
注意网络钓鱼电子邮件,如果不能绝对确定附件的来源,就不要打开或下载。
除非来自可信来源,否则不要下载或安装应用程序。这包括浏览器导航条,它是一种常见的恶意软件载体。
使用最新的杀毒软件/端点安全软件确保计算机安全。
但正如我们所看到的,打击恶意软件并不足以拆除所有潜在的逻辑炸弹。上面提到的加密货币就是所谓供应链攻击的一个例子,在这种情况下,如果第三方代码(本例中为开放源代码库)中隐藏了逻辑炸弹,那么组织重复使用这些代码就会成为问题。此外,任何杀毒软件都无法保护企业不受内部威胁的侵害。
要想侦测出被植入软件中的恶意代码(可能是心怀不轨的员工故意植入的,也可能是无意中以第三方库的形式植入的),最好的办法就是在开发流程中加入安全编码实践,比如 DevSecOps 理念中的安全编码实践。这些实践旨在确保任何代码在投入生产之前都能通过安全测试,并防止内部攻击者以不安全的方式单方面更改代码。
1982 年,一场大爆炸中断了穿越西伯利亚的一条重要管道的天然气输送。多年来,一直有传言说这是美国中央情报局的一次破坏行动。据说,美国情报人员发现,他们的苏联同行试图从西方窃取实现管道自动化所需的计算机代码,因为苏联本土的软件业无法胜任这项任务;于是,美国人看着苏联人使用了这些藏有逻辑炸弹的代码,导致管道被毁。这种破坏行为有时被称为原始逻辑炸弹,尽管从未得到任何相关方面的证实,且有证据表明,造成破坏可能只是管道老旧的原因。
虽然我们可能永远无法知道管道事件的真相,但有大量有据可查的逻辑炸弹攻击事件:
2001 年末,一位系统管理员辞去了瑞银的工作,仅几个小时后就买入了大量“看跌 ”期权,如果他的前雇主的股票在 2002 年 3 月 15 日之前下跌,他就可以从中获利。他留下的逻辑炸弹于 3 月 4 日爆炸,损坏了瑞银的许多系统。他落网后被判入狱数年,并被迫赔偿数百万美元。
2003 年,一名系统管理员担心雇主 Medco Health Solutions 打算解雇他,于是在他们的服务器上安装了一个逻辑炸弹,删除了大量数据。他将炸弹设定在 2004 年自己生日那天引爆,但由于程序错误而失败,于是他在第二年更改了触发日期;炸弹提前几个月被发现并被禁用,他因此被判入狱 30 个月。
2008 年,一名程序员被美国抵押贷款巨头房利美公司解雇。他在网络访问被切断前设法植入了一个逻辑炸弹,目的是清除公司的所有数据,但恶意代码被及时发现并解除。房利美的程序员通过网络日志,并对比他被解雇当天在笔记本电脑上创建的目录内容,追踪到了恶意脚本。
2014 年至 2016 年间,宾夕法尼亚州为西门子工作的一名承包商在西门子用于管理订单的电子表格中植入了逻辑炸弹,然后他就有偿上门修复,并从中收取了数万美元的费用。炸弹是在他去度假时被发现的,他把电子表格的密码给了西门子的员工,这样他们就可以在他不在的时候更新电子表格。
如果您想查看逻辑炸弹的简单示例代码,可以访问用 Python 编写的圣诞逻辑炸弹的 GitHub 代码库。该代码是一个定时炸弹,会在圣诞节激活并显示一条节日信息--它不会造成任何伤害,但却可以了解此类攻击是如何运作的。
https://www.csoonline.com/article/510947/logic-bomb.html
文章来源:安在
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END
原文始发于微信公众号(黑白之道):逻辑炸弹的典型案例和防范
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论