预防逻辑炸弹(Logic Bomb)

中国古代有神笔马良,他非常喜欢画面,有一天晚上一位白胡子老爷爷送给他一支金光灿灿的神笔,神笔画出来的东西都能变成真的,马良用这支神笔热心帮助了许多穷苦农民。神笔马良的事迹成为了经久不衰,家喻户晓的童话故事。

现代有一种职业叫做软件开发工程师,他们从事软件开发,并且会的技能也比较全面。身边有了一台心仪的电脑,便拥有了强大的自我驱动力,就能去追逐梦想。他也希望能像神笔马良一样,成为大家都喜欢,都称赞的人。

printf("车子/房子/飞船/梦想");

但难免会有极少数调皮捣蛋的人,在软件代码里加入了一些不同寻常的小东西,使得原本一个完整的作品多出了一点邪性。这个邪性产物就是本篇文章所讲的“逻辑炸弹”。

逻辑炸弹.png

概述

逻辑炸弹也许本身就是一个完整的程序,也许只是程序的一部分。

它深藏不露,一直处于潜伏待机状态,它需要一个特定的事件去激活,便会触发预先设定好的计算机指令。

通常会在受害者毫不知情时发生,让人防不胜防,令人不寒而栗。

触发寿命

  • 有且只有一次触发(恶作剧、毁灭性)
  • 周期性触发,长期潜伏

利益群体

  • 商业利益
  • 个人利益

特点

  • 破坏计算机软件产品有效数据(比如:数据库、操作系统)
  • 逻辑条件的判断,可能会有故障(BUG)
  • 若是程序的一部分,可能无法正常清除
  • 逻辑炸弹本身不具备传播性

常见的触发方式

触发方式 举例说明
时间触发 检查系统的日期,达到预定日期、周期时
消息触发 采用特定的消息机制,包括本地消息、远程消息
文件触发 某文件增长到一定大小时;某文件一定时间内无更新时
特定用户触发 需要管理员账户;具备某项权限的用户
间接触发 捆绑某个应用程序;漏洞植入

预防逻辑炸弹

逻辑炸弹的预防在这里分为了两个层面,一个是用户使用软件层面(用户层面),另一个是开发/研发软件层面(开发层面)。

用户层面预防
在用户层面的预防与预防病毒的方法是相同的。
  • 从软件官方、正规渠道下载软件(拒绝破解版、盗版)
  • 安装正版的操作系统,保持自动升级
  • 安装正版杀毒软件,保持自动升级(比如:360杀毒)
  • 安装全面保护上网安全的浏览器(比如:360安全浏览器),不要去浏览有风险的网站
  • 不要轻易点开可疑链接(比如:邮件里的链接)
开发层面预防
在开发层面的预防,使用了规范化开发管理方法。
  • 项目禁止开发人员单点
  • 源代码中有良好的注释,API有对应的文档
  • 所有上线的代码,必须经过QA测试
  • 所有上线的代码,必须经过安全测试
  • 采用代码版本控制系统(Git / SVN)
  • 有一套良好的代码发布系统(Code Review)
  • 有良好的权限管理机制(IaaS、PaaS、SaaS)

结语

曾梦想仗剑走天涯,去看看世界的繁华。有人的地方就有江湖,且行且珍惜。

江湖.png


范家鹏
24 声望3 粉丝

一个简简单单的程序员,交个朋友吧