本文来自安全牛。
逻辑炸弹是一种非常传统的恶意代码攻击形式之一,其雏形可追溯到上世纪80年代美苏冷战时期。当时,前苏联的一家科技公司窃取了加拿大的精密控制系统,用于自己的工业设施建设,但其中已经被秘密植入了逻辑炸弹。该逻辑炸弹在1982年一个特定的时间触发,使涡轮机和阀门失控,产生巨大压力,造成西伯利亚天然气管道爆炸。
虽然随着APT、勒索病毒、供应链攻击等新型威胁的出现,逻辑炸弹攻击看似销声匿迹,淡出人们的视野,但从数字经济时代网络安全的发展形势来看,逻辑炸弹的攻击逻辑一直存在并在不断增长。毕竟,对于敏感的信息系统而言,一旦交付应用就会产生巨大的商业价值,而同时它也会受到多重安全措施的保护,此时逻辑炸弹则成为最难被发现和有效防护的攻击方式。
1.什么是逻辑炸弹?
逻辑炸弹是在满足特定的逻辑条件时能改变运行方式,对目标计算机系统实施破坏的计算机程序。这种程序一般隐藏在具有正常功能的软件系统中,在不具备触发条件的情况下,逻辑炸弹深藏不露,系统运行情况良好,用户也察觉不到任何异常。但是,触发条件一旦被满足,逻辑炸弹就会“爆炸”,造成对目标系统的硬件破坏、文件破坏及系统瘫痪等严重后果。逻辑炸弹的触发方式非常多,如事件触发、时间触发、计数器触发等。
逻辑炸弹之所以被称之为“炸弹”,因为它在原理和破坏力上与真实炸弹高度相似。真实的炸弹的引爆需要触发条件,逻辑炸弹也有类似的触发条件,当预先设定的条件得到满足,逻辑炸弹就会开始工作。逻辑炸弹与真实炸弹一样具有惊人的破坏力,只不过两者破坏目标不同。
逻辑炸弹攻击不但可以设置在企业的应用软件系统中,也可以暗藏在计算设备的硬件系统中,如主板、硬盘和CPU。逻辑炸弹通常不具传染性,也不会自我复制,但触发逻辑炸弹发作的诱因可存在于逻辑炸弹载体的各个环节,具有不可控制的意外性。此外,虽然有时逻辑炸弹的交付技术是通过计算机病毒感染或其他恶意软件,但更多情况下,它们是由对被攻击系统具有特权访问权限的内部人员在开发阶段就植入系统,因此很难检测到。
逻辑炸弹与病毒不同,逻辑炸弹的显著特征不在于它的传播方式,而在于它的触发方式,但它可以通过病毒传播。不过并非所有逻辑炸弹都需要通过病毒来投放,事实上,许多逻辑炸弹都被编写程序的人隐藏在正规的软件程序中。
2.逻辑炸弹的危害
逻辑炸弹的触发器(一种有记忆功能的逻辑部件)一般分为积极触发器和消极触发器两种形式。如果某个事件发生,积极的触发器就会引爆;反之,如果某个事件没有发生,也可能会引爆消极的触发器。
消极的触发器并不难理解,我们可以思考一下企业面临的内部威胁,也是逻辑炸弹的常见案例。例如,心怀不满的员工怀疑他们即将被解雇,因此在公司服务器上放置一个逻辑炸弹,如果创建者没有干预,逻辑炸弹将在上午10点执行删除公司有价值数据的程序。如果员工没有被解雇,则依然保持对系统的访问权限,他们就可以删除逻辑炸弹程序,以阻止炸弹触发执行。这也是他们与雇主争执的筹码——如果得到满足,他们会阻止炸弹爆发;而一旦被解雇,就会选择让逻辑炸弹引爆。
逻辑炸弹的危害范围很广,包括文件或硬盘驱动器删除,作为赎金威胁或报复行为,数据泄露等。可以认为,逻辑炸弹的危害性完全取决于恶意攻击设计者的专业技能和想象力。
当然,也有一些表面上类似于逻辑炸弹但实则无害的应用程序,例如,一些通过互联网免费试用下载的程序可能会在15天后停止工作。这些程序在用户下载时就已被告知,不会对使用者造成危害和损失。
人们有时会将时间炸弹视为一种网络攻击方式,但其实它是逻辑炸弹的一个子集。时间炸弹是一种逻辑炸弹,其触发器会在特定时间触发。在某些方面,它可能被认为是实施逻辑炸弹最简单的一种类型。时间炸弹触发器类似于物理爆炸的定时炸弹:给攻击者足够的时间来隐藏攻击行为,以降低他们作为攻击者受到怀疑的可能性。
消极触发器就是时间炸弹概念的一个更复杂的变体,因为它的时间期限可以通过用户操作推迟或阻止,以创建一种“失能开关(dead man's switch)”,即在操作者失去行为能力,诸如死亡、失去意识或者离开控制设备时,能自动操作的开关,它最初起源于重型机械领域,后来也应用于例如计算机软件等的虚拟应用。例如,如果用户长期处于非活跃状态,则向其发出通知或自动注销账号。
3.如何检测和防御逻辑炸弹攻击
逻辑炸弹是一种特别有害的攻击类型,因为攻击代码本身可能会长期处于休眠状态。一般来说,即使是最好的端点安全软件也很难检测出处于潜伏状态的逻辑炸弹程序。
由于某些逻辑炸弹是通过病毒等恶意软件传播的,因此预防逻辑炸弹的基本防护措施就是遵循反恶意软件最佳实践:
1)注意网络钓鱼电子邮件,请不要打开和下载来历不明的邮件附件。
2)请勿下载或安装未知来源或非官方的应用程序,包括浏览器导航栏,它是一种常见的恶意软件载体。
3)安装并及时更新防病毒/端点安全软件保护您的计算机安全。
但是,防范恶意软件并不足以应对所有的逻辑炸弹,特别是由内部员工设置的恶意逻辑炸弹程序。当代码中隐藏着逻辑炸弹时,现有的防病毒产品也很难发挥作用。检测嵌入在企业业务软件系统中的恶意代码(不论是心怀不满的员工故意破坏,还是以第三方软件库的形式无意导致)的最佳方法是进行有效的软件开发流程管控,将安全编码实践融入到开发流程中。这些做法旨在确保任何代码在正式部署应用之前通过安全测试,并防止内部恶意员工者以不安全的方式单方面修改代码。