软件安全的残酷真相:无人真正掌控全局

本文深刻剖析软件安全行业现状,指出缓冲溢出等基础漏洞历经50年仍未解决,批判安全厂商过度承诺与技术神话,揭示安全防护的本质只是提高攻击门槛而非绝对防护。

无人真正知晓我们在做什么

我想告诉你一个小秘密:安全行业没有人——尤其是我们这些从事软件安全的人——真正知道自己在做什么。安全供应商的宣传绝不会让你意识到这一点。如果你参加安全会议,走过数百个展位与推销解决方案的安全专家交谈,每个方案都标价数万甚至数十万美元,他们都承诺用自己的技术平台、专业服务,尤其是最新的深度学习和人工智能算法来解决你的安全问题。

但关键在于:我们研究软件安全问题已有五十年,却依然没有解决方案。事实上问题正在恶化——严重恶化。攻击面正在快速扩大;有意愿且有才华的攻击者持续增加;数据泄露事件数量持续上升;每年造成的损失也越来越大。这听起来像成功故事吗?

我查看了CWE列出的25个最危险软件漏洞,排名第一的竟然是缓冲区溢出(及下溢)。这是一个在1972年就被充分记录和理解的安全漏洞!这正是我1997年刚入行时钻研的漏洞类型(现在回想仿佛石器时代)。

为什么这个被透彻理解、拥有多种成熟缓解技术的问题,在2019年仍能成为头号危险漏洞?是因为安全行业迷失方向了吗?如果我们50年来一直了解某个漏洞的细节,而合作开发团队如今仍在生产软件中发布该漏洞,这说明了我们的方法存在什么问题?

安全行业不知道如何解决眼前的问题,于是不断推出越来越复杂的技术,心知肚明每一项技术虽然有所作用,但远远不够。如果问题没有真正解决,算得上解决了吗?向客户出售仅能略微改善安全状况、却会增加时间成本和其他风险的方案,能获得金牌吗?我们告诉自己,只要让系统稍微安全一点,就是在履行职责。但要知道,只需一个漏洞/错误配置/人为失误,整个纸牌屋就会崩塌,而收拾残局的却不是我们。随便问一家安全公司的代表能否真正让企业安全,然后等着看他们如何支支吾吾吧。

我接触的大多数客户都关心安全,真心实意。但凭借现有的资源和知识,他们不知道如何应对问题。我的职责是帮助他们进步。我不愿告诉他们安全就像无底洞——解决问题是指数级挑战:做得越好,成本越高。我尽力而为,但完成工作后他们依然脆弱。我知道这一点,因为不可能不脆弱。没人知道如何构建连接互联网后无法被黑客攻破的软件。我们只知道开发足够难攻击的软件,希望攻击者感到无聊转而寻找其他目标。这就够了吗?比同行稍微安全一点,指望他们先被攻击,这就足够了吗?

我住在蒙大拿,这里的人喜欢拿灰熊开玩笑。免费送你一条建议:你不需要跑得比熊快,只需要比组里最慢的人快。

软件安全的推论是:你不需要比黑客更厉害,只需要足够好让他们转向更容易的目标。

这就是我们能做到的最好程度吗?

——
本文是一个系列的开篇,乔和我将探讨软件安全领域的漏洞,并寻找可能让我们走向更好方向的解决方案。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计