计算机安全中的六个最愚蠢观念(2005年)
本文批判性地指出,尽管计算机安全领域创新不断且投入巨大,但持续的安全问题源于一些根深蒂固的错误观念。作者将这些观念称为“反良策”,并按出现频率降序列举了六个最核心的愚蠢观念。
1. 默认允许
这是最常见且最顽固的错误观念。它意味着系统默认允许所有未被明确禁止的行为,将安全人员置于与黑客的无休止军备竞赛中。
- 体现形式:早期防火墙仅阻止少数已知危险服务(如telnet),其余全部放行;操作系统默认允许用户点击的任何程序执行;网络核心缺乏安全分区。
- 正确观念:应采用“默认拒绝”策略,即仅明确允许已知的安全行为。这需要更多设计和投入,但更为有效。
2. 列举恶行
该观念主张通过列举并阻止所有已知的恶意程序、漏洞和攻击来保障安全(如防病毒软件的病毒库)。
- 根本问题:自1990年代起,互联网上的恶意内容(“恶行”)数量已远超过良性内容(“善行”)。试图追踪数量庞大且快速增长的恶意软件列表是徒劳的。
- 正确观念:应采用“列举善行”策略。系统应只允许已知的、合法的应用程序运行,从而同时解决病毒、间谍软件和远程控制木马等问题。作者通过“人工愚昧”的日志分析法举例说明了此方法的有效性。
3. 渗透与修补
此观念指导实践者通过攻击自身系统来发现漏洞,然后修补。
- 根本缺陷:这种方法只是通过试错来“加固”系统,并不能从根本上改善设计。它导致系统永远面临“本周漏洞”的威胁,并且随着漏洞的不断发现和修补,代码会变得越来越臃肿和难以维护。
- 正确观念:系统应从设计之初就以安全性和可靠性为目标进行构建。优秀的工程设计(如PostFix、Qmail)能极大减少漏洞数量。单纯的渗透测试对设计根本性缺陷的系统无效。
4. 黑客很酷
社会对黑客的浪漫化描绘(如“天才少年”、“技术奇才”)实际上鼓励了黑客行为。
- 本质:黑客行为是一个社会问题,而非技术问题。匿名的互联网环境降低了犯罪的心理门槛。
- 对从业者的误导:安全从业者若沉迷于学习漏洞利用技巧(“黑客功夫”),其技能将很快过时,且永远处于“渗透与修补”的被动军备竞赛中。更明智的做法是学习如何设计防黑客的系统。
5. 教育用户
指望通过教育用户(例如:不要打开可疑附件)来解决安全问题,本质上是将“渗透与修补”策略应用于人。
- 现实情况:研究表明,许多用户为了微小利益(如一块糖果)或好奇心(如名人裸照)仍会冒险。用户教育的效果有限且需要不断重复。
- 根本解决方案:应从技术和管理层面直接消除风险源。例如,企业可以在邮件网关自动隔离或删除所有附件,仅提供安全的下载通道,从而无需教育用户如何应对危险附件。
6. 行动优于不作为
许多IT管理者倾向于盲目采用新技术,认为“行动总比等待好”。
- 危害:早期采用不成熟的技术可能导致成本高昂的失败和安全风险。更明智的策略是等待技术成熟,借鉴他人的经验教训。
- 核心原则:“避免做蠢事往往比做聪明事更容易。” 有时,审慎的观望和不做决策本身就是最聪明的决策。
其他次要愚蠢观念
作者还列举了几个同样有害但不那么核心的观念:
- “我们不是目标”:所有联网系统都可能成为自动攻击(如蠕虫)的目标。
- “只用某安全方案就能全员安全”:安全是复杂系统问题,依赖单一产品是幻想。
- “有防火墙就不需要主机安全”/“有主机安全就不需要防火墙”:网络层和主机层安全必须结合。
- “先上线,以后再加固”:系统上线后通常永远不会有机会进行彻底的重新设计。
- “偶发问题无法避免”:关键系统的安全应像航空安全一样追求零容忍。
结论:计算机安全领域过于沉迷于追逐潮流,而忽视了基本常识和工程原则。安全从业者的职责是挑战这些错误的“传统智慧”,因为如果传统智慧有效,系统被攻破的比率就不会持续居高不下。