Windows Kerberos漏洞細節(jié)漸趨明朗
前天,微軟的非常規(guī)更新修復了一個特別嚴重的缺陷:任何登錄到域里的用戶都可以將自己的特權提升成其他用戶的特權,甚至包括域管理員的特權。筆者從預先的通知得知,錯誤之一是特權提升錯誤,而且錯誤評級為嚴重。筆者閱讀通知時即知道,這次的漏洞有些東西不太一樣。
微軟在后來的安全研究和防御(SRD)博客里對漏洞做了更多的解釋,盡管提供的細節(jié)仍然有限。
先是好消息:“Azure的Active Directory在外部接口沒有用到Kerberos,因此不受該漏洞影響。”否則的話就要壞大事了。
而Windows Server 2008 R2以及更低版因含有該安全漏洞可被攻破。Windows Server 2012也含有一相關的漏洞,但利用漏洞進行攻擊的難度高些。桌面Windows不含該漏洞,但他們還是發(fā)布了桌面系統(tǒng)的更新。桌面機里含有相關的代碼,這樣做可能是正著。
這也就解釋了為什么微軟給出的更新優(yōu)先次序表是下面這樣的:
1、更新運行Windows Server 2008 R2和更低版本的域控制器
2、更新運行Windows Server 2012或更高版本的域控制器
3、更新運行任何版本W(wǎng)indows的所有其他系統(tǒng)
完成第一步前不要中間停下來。
要搞清楚漏洞的機制,有必要了解一下Kerberos是如何工作的。微軟提供了以下說明:
Kerberos票證交換示意圖(圖片來源:微軟)
KDC(密鑰分發(fā)中心,域控制器上被攻擊的組件)在票證交換過程中的某以點(圖中標2的地方)向客戶端發(fā)送一個名為稱為PAC(特權屬性證書)的數(shù)據(jù)結構,PAC包含一個數(shù)字簽名過的部分,該部分本身含有用戶安全權限(用戶的域SID和用戶所屬的安全組)。用戶然后重新將該票證發(fā)給KDC,以換取一服務票證,用戶再用服務票證在Windows服務上進行身份驗證。
問題在這里:用戶發(fā)回PAC給KDC請求服務票證時,KDC對PAC數(shù)字簽名的驗證有時不完善。即是說,用戶可以在偽造的PAC數(shù)據(jù)里放置用戶的權限,例如將自己設為屬于域管理員安全組的成員。
微軟介紹了一種方法,可以用于在運行更新程序前確定你的系統(tǒng)是否已經(jīng)被人攻破過,但該方法只是測試某些類型的攻擊方式,包括坊間見過的攻擊方式。利用其它技術的攻擊也是可能的,微軟的這個方法檢測不到這些攻擊??匆幌孪旅娴陌踩录罩局械囊豁棧?/p>
被攻擊過的痕跡(圖片來源:微軟)
重點檢查安全ID(Security ID)和帳戶名稱(Account Name)是否不同。二者應該是相同的。
運行了更新程序后,可以利用不同的事件,搜尋是否有人企圖在攻擊的證據(jù)。
各位應該特別認真地對待此事。據(jù)NVD(美國國家漏洞數(shù)據(jù)庫)給出的描述,該漏洞影響巨大,攻擊漏洞的做法簡單。如果你的系統(tǒng)被攻破的話,無論攻擊者是否進行了破壞,代價都將會十分高昂:補救的唯一方法是從頭開始重新構建域。更新吧,不要讓這種事發(fā)生在閣下身上。