预防逻辑炸弹(Logic Bomb)
中国古代有神笔马良,他非常喜欢画面,有一天晚上一位白胡子老爷爷送给他一支金光灿灿的神笔,神笔画出来的东西都能变成真的,马良用这支神笔热心帮助了许多穷苦农民。神笔马良的事迹成为了经久不衰,家喻户晓的童话故事。
现代有一种职业叫做软件开发工程师,他们从事软件开发,并且会的技能也比较全面。身边有了一台心仪的电脑,便拥有了强大的自我驱动力,就能去追逐梦想。他也希望能像神笔马良一样,成为大家都喜欢,都称赞的人。
printf("车子/房子/飞船/梦想");
但难免会有极少数调皮捣蛋的人,在软件代码里加入了一些不同寻常的小东西,使得原本一个完整的作品多出了一点邪性。这个邪性产物就是本篇文章所讲的“逻辑炸弹”。
概述
逻辑炸弹也许本身就是一个完整的程序,也许只是程序的一部分。
它深藏不露,一直处于潜伏待机状态,它需要一个特定的事件去激活,便会触发预先设定好的计算机指令。
通常会在受害者毫不知情时发生,让人防不胜防,令人不寒而栗。
触发寿命
- 有且只有一次触发(恶作剧、毁灭性)
- 周期性触发,长期潜伏
利益群体
- 商业利益
- 个人利益
特点
- 破坏计算机软件产品有效数据(比如:数据库、操作系统)
- 逻辑条件的判断,可能会有故障(BUG)
- 若是程序的一部分,可能无法正常清除
- 逻辑炸弹本身不具备传播性
常见的触发方式
触发方式 | 举例说明 |
---|---|
时间触发 | 检查系统的日期,达到预定日期、周期时 |
消息触发 | 采用特定的消息机制,包括本地消息、远程消息 |
文件触发 | 某文件增长到一定大小时;某文件一定时间内无更新时 |
特定用户触发 | 需要管理员账户;具备某项权限的用户 |
间接触发 | 捆绑某个应用程序;漏洞植入 |
预防逻辑炸弹
逻辑炸弹的预防在这里分为了两个层面,一个是用户使用软件层面(用户层面),另一个是开发/研发软件层面(开发层面)。
用户层面预防
在用户层面的预防与预防病毒的方法是相同的。
- 从软件官方、正规渠道下载软件(拒绝破解版、盗版)
- 安装正版的操作系统,保持自动升级
- 安装正版杀毒软件,保持自动升级(比如:360杀毒)
- 安装全面保护上网安全的浏览器(比如:360安全浏览器),不要去浏览有风险的网站
- 不要轻易点开可疑链接(比如:邮件里的链接)
开发层面预防
在开发层面的预防,使用了规范化开发管理方法。
- 项目禁止开发人员单点
- 源代码中有良好的注释,API有对应的文档
- 所有上线的代码,必须经过QA测试
- 所有上线的代码,必须经过安全测试
- 采用代码版本控制系统(Git / SVN)
- 有一套良好的代码发布系统(Code Review)
- 有良好的权限管理机制(IaaS、PaaS、SaaS)
结语
曾梦想仗剑走天涯,去看看世界的繁华。有人的地方就有江湖,且行且珍惜。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。