软件安全的真相:无人知晓我们在做什么

本文探讨了软件安全行业的现状,指出即使是最资深的安全专家也无法完全解决安全问题。文章分析了长期存在的漏洞问题、行业应对策略的局限性,并提出了对当前安全实践的根本性质疑。

无人知晓我们在做什么

我想告诉你一个小秘密。安全行业的从业者,尤其是我们这些从事软件安全的人,其实并不知道自己在做什么。你从安全供应商那里绝对听不到这种话。如果你参加安全会议,走过一个个展台,与数百名安全专业人士交谈,他们会推销价值数万甚至数十万美元的解决方案,每个都承诺通过他们的技术平台、专业服务,尤其是他们新的深度学习和人工智能算法来解决你的安全问题。

但关键在于——我们研究软件安全问题已经五十年了,仍然没有解决方案。事实上,问题正在变得更糟。糟糕得多。攻击面正在迅速扩大。有兴趣、有才华的攻击者群体持续增长。漏洞事件的数量趋势一直在上升。每年造成的损害都在增加。这听起来像是一个成功的故事吗?

我查看了CWE列出的25个最危险的软件漏洞,列表上的第一项是缓冲区溢出(和下溢)。这是一个在1972年就被记录和理解清楚的漏洞!这正是我在1997年刚开始职业生涯的第一年就接触到的同类漏洞(现在感觉像是石器时代)。

这个被广泛理解的问题,有着各种经过验证的缓解技术,怎么可能在2019年仍然是最危险的漏洞第一名?是因为安全行业迷失了方向吗?如果我们了解一个漏洞的方方面面已经50年了,而我们合作的开发团队今天仍然在生产软件中发布这个漏洞,那这说明了我们的方法有什么问题?

安全行业不知道如何解决我们面前的问题,所以我们不断推出越来越复杂的技术,完全清楚每一项技术虽然有所作用,但远远不够。

如果你没有真正解决问题,解决一个问题就足够了吗?你卖出一个解决方案,让客户的安全状况略有改善,同时却在他们的流程中注入额外的时间、成本和其他风险,这样就能得到金星吗?我们告诉自己,如果我们能让系统稍微安全一点,我们就是在做我们的工作。但猜猜看,只需要一个漏洞/配置错误/困惑的人就能让整个纸牌屋倒塌,而我们不是那个留下来收拾残局的人。问问任何安全公司的代表,他们是否真的能让你的企业安全,然后准备好见证他们的支支吾吾。

我交谈过的大多数客户都关心安全。他们真的关心。但鉴于他们现有的资源和知识,他们不知道如何应对这个问题。我的工作是帮助他们变得更好。我不喜欢告诉他们安全就像一个无底洞的需求。解决问题是指数级的——你变得越好,它就变得越昂贵。我尽力而为。但当我完成后,他们仍然脆弱。我知道这一点,因为不可能不脆弱。没有人知道如何构建一旦连接到互联网就无法被黑客攻击的软件。我们知道如何做的是创建可能足够难黑客攻击的软件,希望攻击者会感到无聊而转向其他地方。这就足够了吗?比同行稍微安全一点,并希望他们先被攻击,这就足够了吗?

我住在蒙大拿州,在这里我们喜欢开玩笑关于灰熊。我给你一个免费的建议——你不需要比熊更快,你只需要比你们组里最慢的人更快。

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

这就是我们能做的最好的吗? — 这篇文章是一个系列的第一篇,乔和我将探讨软件安全领域的差距,并寻找可能让我们达到更好状态的解决方案。

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