逻辑炸弹引发时的症状与某些病毒的作用结果相似,并会对社会引发连带性的灾难。与病毒相比,它强调破坏作用本身,而实施破坏的程序不具有传染性。逻辑炸弹是一种程序,或任何部分的程序,这是冬眠,直到一个具体作品的程序逻辑被激。
计算机世界中的“逻辑炸弹”正是采用了这样的手法——当计算机系统运行的过程中恰好某个条件得到满足,如系统时间达到某个值、服务程序收到某个特定的消息,就触发恶意程序的执行并产生异常甚至灾难性后果,例如使某个进程无法正常运行、删除重要的磁盘分区、毁坏数据库数据,使系统瘫痪等等。在触发该条件之前系统运行却并未出现任何异常。对系统管理员和计算机用户来说,这样的恶意程序如同埋藏在计算机中的一颗地雷,同样惊心动魄。
背景计算机中的“逻辑炸弹”是指在特定逻辑条件满足时,实施破坏的计算机程序,该程序触发后造成计算机数据丢失、计算机不能从硬盘或者软盘引导,甚至会使整个系统瘫痪,并出现物理损坏的虚假现象。
“逻辑炸弹”引发时的症状与某些病毒的作用结果相似,并会对社会引发连带性的灾难。与病毒相比,它强调破坏作用本身,而实施破坏的程序不具有传染性。 逻辑炸弹是一种程序,或任何部分的程序,这是冬眠,直到一个具体作品的程序逻辑被激活。 在这样一个逻辑炸弹是非常类似的一个真实世界的地雷。
最常见的激活一个逻辑炸弹是一个日期。 该逻辑炸弹检查系统日期,并没有什么,直到预先编程的日期和时间是达成共识。 在这一点上,逻辑炸弹被激活并执行它的代码。
逻辑炸弹也可以被编程为等待某一个讯息,从程序员。 该逻辑炸弹例如,可以检查一个网站,每周一次为某一个讯息。 当逻辑炸弹看到的讯息时,或逻辑炸弹站看到的讯息,它激活并执行它的代码1。
特点逻辑炸弹也可以被编程为激活对各种各样的其他变数,例如当一个数据库的增长,过去一定规模或用户主目录中删除。
最危险的逻辑炸弹是受某事件未发生触发的逻辑炸弹。 试想一名不道德的系统管理员,制造了一个逻辑炸弹用来删除服务器上的所有数据,触发条件是他在一个月内没有登录。 系统管理员制造这个逻辑炸弹是因为他知道如果他被解雇,他将无法取回进入系统设置他的逻辑炸弹。 一天,他在上班的路上,这个不道德的系统管理员发生了车祸被一辆巴士撞了。 四个星期后,他的逻辑炸弹被触发清空了服务器上的所有数据。 系统管理员的意图是在他被解雇后报复公司删除数据,但是他没有料到自己会发生车祸。
因为一个逻辑炸弹不自我复制,这是很容易写一逻辑炸弹的计划。 这也意味着一个逻辑炸弹将不会蔓延到意想不到的受害者。 在某些方面,逻辑炸弹是最文明的程序的威胁,因为一个逻辑炸弹,必须针对特定的受害者。
经典使用一个逻辑炸弹,是要确保支付软件。 如果付款不是由某一特定日期,逻辑炸弹激活和软件会自动删除本身。 一个更恶意的形式,即逻辑炸弹也将删除系统上其他数据。
历史上曾经出现过的一个非常有名的逻辑炸弹例子是,含有逻辑炸弹的程序每天核对一个公司的员工工资发放清单。如果连续在两次的发薪日中,某程序员的代号没有出现在这个工资发放清单,逻辑炸弹就启动了。
危害逻辑炸弹的危害:
(1) 逻辑炸弹可以直接破坏计算机软件产品的使用当事人的计算机数据。而在微机公用的前提下,恶性炸弹的破坏具有较宽的涉及范围。在我国微机广泛使用和备份环节薄弱的情况下,危害常常是不可恢复的,即使对于在特定条件下可以恢复的情况,也可能由于操作不当或其他原因,诱使用户成为最终毁灭数据的直接责任者;
(2) 引发连带的社会灾难。包括直接和间接的损失,如经济损失、企业亏损、资料丢失、科学研究的永久性失败、当事人承受精神打击、失业或家庭破裂、连带的经济犯罪、刑事犯罪、或相关人的生命安全等等,这样的例子和事故是列举不完的。还有很多事故由于各种原因还不可公开,因此,连带责任和损失将不计其数,实际上和普通刑事、民事或经济案件一样,是社会的不稳定因素。
(3) 逻辑炸弹的逻辑条件具有不可控制的意外性。这次无辜用户遭受袭击,就是因为好奇而误用了具有特殊磁道的诱因软盘,还有的用户是因为操作顺序不当,比如把 KV300拷贝到硬盘,想检查用 MK300V4加工的磁盘有无病毒,结果启动KV300时直接插入的是诱因磁盘,而不是原厂磁盘,在这一案例中,导致诱因的磁盘实际属于普通数据磁盘;
(4) 逻辑条件的判断很可能失常,以江民炸弹为例,比如,软盘驱动器的故障、磁盘的故障都是诱发逻辑炸弹的潜在因素。这虽然不是高概率事件,但却具有不可控性。如果磁盘出错导致错误读取的数据恰好是破坏性的计算机指令,这种概率可以说就是零,而错误数据成为逻辑诱因的概率则高得多;
(5) 逻辑炸弹本身虽然不具备传播性,但是诱因的传播是不可控的。要灵活的多。假如病毒可以比作是自己运行的导弹,那么逻辑炸弹则是一枚相对静止的定时炸弹或充满易燃品的军火库。尽管通过管制可以不爆发,但是不会有人愿意住在核电站附近吧。所谓诱因不可控的例子很容易举,比如类似技术使得类似磁道出现在其他商业软件程序中,甚至某个新的加密盘生成工具软件所加工的磁盘都可以成为诱因,这是非常可能的事情;
(6) 新的病毒可以成为逻辑炸弹的新诱因,比如在软盘拷贝(如KV300升级) 过程中,已经驻留而又没有被发现的病毒可以给软盘加工一下,使得正版磁盘成为诱因;病毒也可以驻留内存截获相应的中断服务程序,使得KV300 启动后,实施病毒检查之前,获得盗版磁盘的假象。这就是生动的例子,说明除了零以外,其他数都可以被放大。而那些充当系数的因子本身不实施破坏或实质性破坏。
(7) 由于逻辑炸弹不是病毒体,因此无法正常还原和清除,必须对有炸弹的程序实施破解,这个工作是比较困难的。由于逻辑炸弹内含在程序体内,在空间限制、编写方式、加密方式等各方面比编写病毒要具有更加灵活的空间和余地,所以很难清除。
(8)软件逻辑炸弹或其他类似违法行为,会破坏类似产品或一个领域的相似产品的可信度。对于反病毒厂商,本来就具有很多传闻,说一些病毒就是某些厂商所炮制,并且我国软件市场还不成熟,的确应该象种地一样,一边种植从土地获得养分,一边精心培育和养护这个土地,如果土地伤了元气,就无法种植新的作物了。对类似案件的处理不当或过轻,会引起激发感染,鼓励其他软件也使用类似非法行为进行版权保护2。
区别与病毒、木马的区别:
病毒是通过自我复制进行传播的计算机程序,自我复制是病毒的基本定义,病毒通常包括复制传播机制和条件破坏机制,而后者不是必备的,所以也存在那些只传染复制而不实施恶性破坏的所谓的“良性”病毒。而只破坏却不能自我复制的程序不属于病毒。典型木马程序是以“冒充”来作为传播手段的,比如经常说起的 PK-ZIP300就是典型的例子,它冒充是某个软件的新版本,在用户无意尝试或使用的时候实施破坏。国际上比较先进的计算机反病毒软件有些已经加进了对典型木马程序的判别。
相比而言,逻辑炸弹要更隐藏一些。逻辑炸弹可以理解为在特定逻辑条件满足时实施破坏的计算机程序。与病毒相比,逻辑炸弹强调破坏作用本身,而实施破坏的程序不会传播。我们从定义上将能够复制传染的破坏程序归属在病毒中。与典型木马程序相比,逻辑炸弹一般是隐含在具有正常功能的软件中,而典型木马程序可能一般仅仅是至多只模仿程序的外表,而没有真正的实际功能。当然,这些概念本身都具备一定的灵活性,在一定的条件下可以相互产生和相互转化。我们也把逻辑炸弹发作的条件成为诱因、逻辑诱因。
硬盘逻辑炸弹硬盘逻辑炸弹其实是由于硬盘的主引导记录被修改所引起的。因此,要想了解其原理就必须先了解主引导记录。硬盘的主引导记录位于0柱面0磁头1扇区,它是由3部分组成的,其中从0h到1Beh这446个字节称为引导程序;从1Beh到1Feh这64个字节被称为硬盘分区表,一共可容纳4个分区的数据;从1Feh到200h这2个字节被称为自举标志,在启动时BIOS检查用的。后来我们检查被炸硬盘的主引导记录,结果发现:1?引导程序部分被修改了;2?硬盘分区表也被修改了,而且被改成一个循环链,即C盘的下一个分区指向D区,D区的下一个分区又指向C区,这样一直循环下去造成一个死循环;3?自举标志55AA没被修改。
MCUMCU中的“逻辑炸弹”
单片机中的“逻辑炸弹”指一段特殊的程序,可以在某种条件下将程序摧毁或者锁死,需要密码才能开启重新运行。它主要是用在保护程序员的程序所有权,防止客户不给钱。
逻辑炸弹程序可以编写在EEPROM上(EEPROM是一种掉电后数据不丢失的存储芯片),也可以选用带IAP功能、含有FLASH上。
程序的编写可以是一段计时或计数程序,当达到触发条件后,就对程序进行摧毁或锁死3。
本词条内容贡献者为:
李嘉骞 - 博士 - 同济大学