我们生活在有趣的时代
又过了六个月——又到了BlueHat,微软内部安全会议的时间。
这次会议看起来会很有趣。早期的BlueHat会议全是关于原始技术——Shok深入研究内存管理器,Brett Moore对又一个文件格式漏洞感到无奈。但确定漏洞需要的不仅仅是理解技术。归根结底,有坏人存在,而坏人未必需要走最极客的路线来达到目的。因此,今年许多演讲中似乎贯穿着一个有趣的线索,将我们作为工程师的能力与攻击者作为罪犯的行为联系起来。
就我而言,我将(毫不意外地)讨论今年夏天引起一些轰动的DNS漏洞。那是一次相当有趣的经历,而且确实仍在继续。DNSSEC正在取得惊人的进展——这一点毫无疑问。但它也不会很快部署在99%的权威服务器上——即使是.GOV域名也预计需要两年时间才能覆盖其管辖范围。而实用修复方案(源端口随机化)的数据仍然非常出色。但确实有对更好方案的需求,我将讨论的一个有趣问题是:
现在怎么办?下一个临时修复方案应该是什么样子?需要覆盖哪些完整场景,才能证明进行另一个补丁周期是合理的?我们需要与哪些实际部署兼容?
为什么我们必须修复这个问题?为什么这么多东西都坏了,以至于在受到基本中间人攻击时轻易失败?
这些都是难题。答案并不全在DNS中,甚至不仅限于技术。一个清晰而引人入胜的认识是,不仅仅是这一个漏洞,2008年的所有主要漏洞都与完全的身份验证失败有关。无论是Mike Perry发现许多(大多数?)SSL站点将其身份验证cookie泄露给未加密的第三方,还是Mike Zusman发现许多(大多数?)SSL-VPN实际上并未验证它们是否在加密特定对象的有效载荷,或是Wes Hardakar发现SNMPv3几乎不要求用户进行身份验证——大量问题都追溯到我们根本不知道我们在与谁交谈。
身份验证不是,也永远不会仅仅是技术问题。修复它需要技术——但也需要更多东西。需要一些工作来弄清楚那是什么——但我们至少有一个重要的数据点显示,有惊人数量的公司付出了巨大努力,追求为自己和客户做正确的事情。我们可以,也应该从这次经历中学习,我期待在BlueHat上探索这一切。
Dan Kaminsky, IOActive