Badlock:SAMR 與 LSA 通訊協定針對 Samba 的中間人攻擊(CVE-2016-2118)

Red Hat 產品安全部門已得知 Microsoft Active Directory 架構中,以 DCE/PRC 為基礎的 SAMR 與 LSA 通訊協定之漏洞。這問題已經被指定為 CVE-2016-2118

注意:這是通訊協定上的問題,會影響所有採用此通訊協定的應用程式,包括 Samba - CVE-2016-2118 與 Microsoft Windows - CVE-2016-0128。

背景資訊

DCE/RPC 是定義 API 與網路上通訊協定(over-the-network protocol)的 RPC 機制。這個 SAM(Security Account Manager,安全帳戶機制)的遠端通訊協定(客戶端至伺服器端)為帳號儲存或包含使用者與群組的目錄提供了管理功能。這個通訊協定會將「帳號資料庫」暴露給本機與遠端的 Microsoft Active Directory 網域使用。本地的安全授權(網域政策)遠端通訊協定會用來管理多台機器與網域的安全政策。這個通訊協定,在極少數例外情況下,會啟用遠端的安全管理情境。SAMR 與 LSA 通訊協定都基礎在 DCE 1.1 RPC 通訊協定上。

Windows 機器上都有這些通訊協定,每台 Samba 伺服器亦然。這些通訊協定用來維護安全帳號管理員的資料庫。這套用至所有角色(例如單機、網域控制器、或網域成員)。

攻擊的描述與衝擊

由客戶端啟動、連至伺服器的任何通過授權之 DCE/RPC 連線,都可能會被駭客使用「中間人攻擊」(man-in-the-middle attack),對伺服器上的 SAMR 或 LSA 服務偽冒為通過授權的使用者。因此,攻擊者可以取得安全帳號管理員資料庫的讀/寫權限,進而顯示所有密碼及其它機密資料。

用戶端所選擇的應用程式通訊協定、授權類型(例如 Kerberos 或 NTLMSSP)、以及授權等級(NONE、CONNECT、SIGN 或 SEAL)並沒有任何影響。中間人攻擊可以將授權降級到 CONNECT 並控制連線。

Red Hat Enterprise Linux 伺服器與 Red Hat Gluster Storage 的所有 Samba 套件的版本都會受到此漏洞的影響。Red Hat 產品安全部已將此問題的安全性衝擊評為重要

受影響的配置

  • Active Directory 架構中,使用 Samba 伺服器作為網域成員的話,會受到此漏洞的影響。中間人攻擊會攔截網域成員與網域主控器之間的 DCE/RPC 交通,假冒用戶端的身份,並取得通過授權的使用者帳戶之同等權限。攻擊者可以檢視、修改 AD 資料庫中的機密資料,包括使用者密碼的雜湊值,或關閉重要服務。

  • 任何配置為檔案或列印伺服器的 Samba 伺服器也會受到此漏洞的影響。攻擊者可以透過這漏洞修改使用者對檔案或目錄的存取權限。

減緩問題

在這問題修正之前,不使用擁有高權限帳號來存取 SMB/CIFS 服務,可以降低風險。擁有管理權限的帳號只該用在實體硬體上(主控台、伺服器),如此一來,授權就不會牽涉到任何網路通訊。

解決方法

產品 元件 建議
Red Hat Enterprise Linux 5 samba (3.0) RHSA-2016:0621
Red Hat Enterprise Linux 5 samba3x (3.6) RHSA-2016:0613
Red Hat Enterprise Linux 6 samba (3.6) RHSA-2016:0611
Red Hat Enterprise Linux 6 samba4 (4.2) RHSA-2016:0612
Red Hat Enterprise Linux 7 samba (4.2) RHSA-2016:0612
Red Hat Gluster Storage 3 (EL6) samba (4.2) RHSA-2016:0306
Red Hat Gluster Storage 3 (EL7) samba (4.2) RHSA-2016:0306

鳴謝

Red Hat 感謝 Samba 專案回報此問題。上游專案感謝 SerNet 的 Stefan Metzmacher 最早回報此漏洞。

額外附註

此漏洞的安全升級推出了新的 smb.conf 選項,記述如下:

  allow dcerpc auth level connect (G)

    這選項會控制 DCE/RPC 服務是否可以搭配使用
    DCERPC_AUTH_LEVEL_CONNECT,這提供了身分認證,但既沒有提供每則訊息的完整性(SIGN),也沒有提供隱私權保護功能(SEAL)。

    一些介面,例如 SAMR、LSARPC 以及 netlogon,都寫死了預設值
    no;epmapper、mgmt 以及 rpcecho 都寫死了預設值 yes。

    這項行為可以針對每個介面名稱(例如  lsarpc、
    netlogon、samr、srvsvc、winreg 或 wkssvc)覆寫,方法是指定
    'allow dcerpc auth level connect:interface = yes'。

    這選項會移除任何實作指定的限制。舉例
    來說:
* drsuapi 與 backupkey 通訊協定需要 DCERPC_AUTH_LEVEL_PRIVACY。
* dnsserver 通訊協定需要 DCERPC_AUTH_LEVEL_INTEGRITY。

    預設值:allow dcerpc auth level connect = no
    範例:allow dcerpc auth level connect = yes

常見問題集

** 我需要在架構中升級 Samba 伺服器與用戶端嗎?**

至少該升級 Sambe 伺服器。因為 Badlock 是通訊協定上的漏洞,伺服器端與客戶端都會受到影響,這端視 Samba 架構的配置而定。Red Hat 產品安全部建議用戶升級伺服器與客戶端。

** 更新檔會影響我現有執行舊版本 Samba 的用戶端嗎?**

這項安全建議緊縮了一些用來配置 Samba 的安全性選項。在升級 Samba 伺服器時,這可能會弄亂配置;但升級用戶端時不會。要讓系統繼續運作,將配置回復到之前不安全的選項是有可能的(例如在 smb.conf 檔案中設定allow dcerpc auth level connect = yes 選項);但 Red Hat 產品安全部強烈建議您不要這麼做,因為這會引來一些攻擊。

我的 Samba 伺服器並未連到任何 Windows 網域,我還是會受到影響嗎?

會,如果管理者使用不安全的用戶端與 Samba 伺服器通訊,或使用了安全的用戶端與不安全的 Samba 伺服器連線,那麼中間人攻擊者就有可能會透過這漏洞入侵。

我已更新了我的 Samba 伺服器和客戶端,我是否需要重新啟用任何項目?

不,當更新套用到您的系統上時,smb 服務將會自動重新啟用。

加密能否確保我能免於受到這個 MITM 攻擊?

預設上,SMB 通訊協定只會加密身分認證資料與命令,而檔案會以一般文字來傳輸。建議您在需要安全性與隱私性的情境下,使用加密方式來保護所有通訊。加密功能已經加入 Samba 3.2 中,但僅及於 Samba 用戶端。Microsoft 在 Windows 8 與 Windows Server 2012 中加入了 SMB 加密功能。然而,這些加密類型只會在 SMB 協調與命令完成之後保護通訊,例如檔案傳輸。但也正是這階段包含了上述的弱點。Samba/SMB 加密是好的作法,但對於不受此弱點的侵害,是不夠的。

參照

http://badlock.org/

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.