9.5.2 后门陷阱

另一个由内部人员造成的安全漏洞是后门陷阱(trap door)。这一问题是由系统程序员跳过一些通常的检测并插入一段代码造成的。如程序员可以在登录程序中插入一小段代码,让所有使用“zzzzz”登录名的用户成功登录而无论密码文件中的密码是什么。正常的程序代码如图9-22a所示。改成后门陷阱程序的代码如图9-22b所示。strcmp这行代码的调用是为了判断登录名是否为“zzzzz”。如果是,则无论输入了什么密码都可以登录。如果后门陷阱被程序员放入到计算机生产商的产品中并飘洋过海,那么程序员日后就可以任意登录到这家公司生产的计算机上,而无论谁拥有它或密码是什么。后门陷阱程序的实质是它跳过了正常的认证过程。

阅读 ‧ 电子书库
图 9-22 a)正常的代码;b)插入了后门陷阱的代码

对公司来说,防止后门的一个方法是把代码审查(code review)作为标准惯例来执行。通过这一技术,一旦程序员完成对某个模块的编写和测试后,该模块被放入代码数据库中进行检验。开发小组里的所有程序员周期性地聚会,每个人在小组面前向大家解释每行代码的含义。这样做不仅增加了找出后门代码的机会,而且增加了大家的责任感,被抓出来的程序员也知道这样做会损害自己的职业生涯。如果该建议遭到了太多的反对,那么让两个程序员相互检查代码也是一个可行的方法。