Windows Kerberos漏洞细节渐趋明朗

  微软昨天的非常规更新修复了一个特别严重的缺陷:任何登录到域里的用户都可以将自己的特权提升成其他用户的特权,甚至包括域管理员的特权。笔者从预先的通知得知,错误之一是特权提升错误,而且错误评级为严重。笔者阅读通知时即知道,这次的漏洞有些东西不太一样。

  微软在后来的安全研究和防御(SRD)博客里对漏洞做了更多的解释,尽管提供的细节仍然有限。

  先是好消息:“Azure的Active Directory在外部接口没有用到Kerberos,因此不受该漏洞影响。”否则的话就要坏大事了。

  而Windows Server 2008 R2以及更低版因含有该安全漏洞可被攻破。Windows Server 2012也含有一相关的漏洞,但利用漏洞进行攻击的难度高些。桌面Windows不含该漏洞,但他们还是发布了桌面系统的更新。桌面机里含有相关的代码,这样做可能是正着。

  这也就解释了为什么微软给出的更新优先次序表是下面这样的:

  1、更新运行Windows Server 2008 R2和更低版本的域控制器

  2、更新运行Windows Server 2012或更高版本的域控制器

  3、更新运行任何版本Windows的所有其他系统

  完成第一步前不要中间停下来。

  要搞清楚漏洞的机制,有必要了解一下Kerberos是如何工作的。微软提供了以下说明:

  KDC(密钥分发中心,域控制器上被攻击的组件)在票证交换过程中的某以点(图中标2的地方)向客户端发送一个名为称为PAC(特权属性证书)的数据结构,PAC包含一个数字签名过的部分,该部分本身含有用户安全权限(用户的域SID和用户所属的安全组)。用户然后重新将该票证发给KDC,以换取一服务票证,用户再用服务票证在Windows服务上进行身份验证。

  问题在这里:用户发回PAC给KDC请求服务票证时,KDC对PAC数字签名的验证有时不完善。即是说,用户可以在伪造的PAC数据里放置用户的权限,例如将自己设为属于域管理员安全组的成员。

  微软介绍了一种方法,可以用于在运行更新程序前确定你的系统是否已经被人攻破过,但该方法只是测试某些类型的攻击方式,包括坊间见过的攻击方式。利用其它技术的攻击也是可能的,微软的这个方法检测不到这些攻击。看一下下面的安全事件日志中的一项:

  重点检查安全ID(Security ID)和帐户名称(Account Name)是否不同。二者应该是相同的。

  运行了更新程序后,可以利用不同的事件,搜寻是否有人企图在攻击的证据。

  各位应该特别认真地对待此事。据NVD(美国国家漏洞数据库)给出的描述,该漏洞影响巨大,攻击漏洞的做法简单。如果你的系统被攻破的话,无论攻击者是否进行了破坏,代价都将会十分高昂:补救的唯一方法是从头开始重新构建域。更新吧,不要让这种事发生在阁下身上。

 

上一篇:智能无惧挑战 山石网科轰动RSA2015

下一篇:四面楚歌的今天 迈克菲从容应对未知威胁