規劃危害因應措施
第一號規則: 除非真的遭遇不測,否則沒有人相信這種事情會發生在自己身上。 - 安全性管理 10 大定律
許多組織中的災害復原計畫著重於從導致運算服務中斷的區域災害或故障中復原。 然而,當我們與遭入侵的客戶合作時,通常會發現他們的災害復原計畫中並不包含從刻意入侵復原的部分。 當入侵導致智慧財產權失竊或故意利用邏輯界限進行破壞 (例如毀損所有 Active Directory 網域或所有伺服器) 而不是實體界限 (例如破壞資料中心) 時尤其如此。 雖然組織可能備有事件回應計畫,界定發現入侵時要採取的初步行動,但這些計畫通常會省略從影響整個計算基礎結構的入侵中復原的步驟。
因為 Active Directory 為使用者、伺服器、工作站和應用程式提供豐富的身分識別和存取管理功能,所以攻擊者總是將其當作目標。 如果攻擊者取得 Active Directory 網域或網域控制站的權限極高的存取權,則可以利用該存取權來存取、控制甚至摧毀整個 Active Directory 樹系。
本文件討論了一些針對 Windows 和 Active Directory 最常見的攻擊,以及您可以實施以減少攻擊面的對策,然而在 Active Directory 完全被入侵時唯一有效的復原之途是在發生入侵之前做好準備。 本節較少著墨於本文件前幾節的技術實作詳細資料,而更著重於可用來建立能全面、綜合性方法,以保護及管理貴組織重要商務和 IT 資產的高階建議。
無論您的基礎結構從未受到攻擊、曾經抵禦過入侵嘗試,或已屈服於攻擊並遭到完全入侵,您都應該針對「您會一再遭受攻擊」進行規劃,這是無可避免的事實。 我們無法阻止他人的攻擊,但確實可以防範重大入侵事件或大量資料外泄。 每個組織都應該密切評估現有的風險管理計劃,並做出必要的調整,藉由在預防、偵測、遏制和復原方面進行平衡的投資,協助降低其整體弱點水準。
若要建立有效的防禦,同時仍為依賴基礎結構和應用程式的使用者和企業提供服務,您可能需要考慮新的方法來防止、偵測及遏制環境中的入侵,然後從入侵中復原。 本文件中的方法和建議也許無法協助您修復遭入侵的 Active Directory 安裝,但可以協助您保護下一個安裝。
復原 Active Directory 樹系的建議會顯示在 AD 樹系復原 - 還原樹系的步驟。 您可能能夠防止新環境完全遭到入侵,但即使無法防止,還是有可以復原及重新取得環境控制權的工具。
重新思考方法
第八條定律:防禦網路的難度與其複雜性成正比。 - 安全性管理 10 大定律
如果攻擊者已取得 SYSTEM、Administrator、root 或對等的電腦存取權,不論作業系統為何,也不論花費了多少努力「清理」系統,該電腦都無法再視為值得信任。 Active Directory 也是一樣。 如果攻擊者已取得 Active Directory 中網域控制站或極特殊權限帳戶的特殊存取權限,除非您有攻擊者所做的每項修改記錄或已知的良好備份,您永遠無法將目錄還原為完全值得信任的狀態。
當成員伺服器或工作站遭到攻擊者入侵和改變時,電腦已不再值得信任,但鄰近未遭受入侵的伺服器和工作站仍可受到信任。 一部電腦遭到入侵並不表示所有電腦都遭到入侵。
然而在 Active Directory 網域中,所有網域控制站都會為相同的 AD DS 資料庫複本提供主機服務。 如果單一網域控制站遭到入侵,攻擊者會修改 AD DS 資料庫,這些修改會複寫到網域中所有的其他網域控制站和樹系 (視被修改的分割區而定)。 即使您重新安裝樹系中的每個網域控制站,您只是在重新安裝 AD DS 資料庫所在的主機而已。 對 Active Directory 的惡意修改會複寫到剛安裝的網域控制站,就像複寫到經年累月執行的網域控制站一樣容易。
當我們評估遭入侵的環境時,通常會發現:我們認為的第一起入侵「事件」,實際上是在攻擊者最初入侵環境之後數週、數月甚至數年之後才會觸發。 攻擊者通常在偵測到入侵之前,早就已經取得權限極高帳戶的的認證,並利用這些帳戶入侵目錄、網域控制站、成員伺服器、工作站,甚至是連線的非 Windows 系統。
這些發現與 Verizon 2012 年資料外泄調查報告中的數項發現一致,其中指出:
98% 的資料外泄源於外部代理程式
85% 的資料外泄需要數週或更多時間才會被發現
92% 的事件是由協力廠商發現的,以及
97% 的入侵是可以藉由簡單或中等程度的控制而避免的。
先前所述程度的外泄其實是無法彌補的,如果 Active Directory 遭到入侵或毀壞,標準建議是對每個遭到入侵的系統進行「扁平化和重建」,這根本不可行,甚至是不可能的。 即使還原到已知的良好狀態,也無法從一開始就根除容許環境遭到入侵的缺陷。
雖然您必須防禦基礎結構的每個層面,但攻擊者只需要在防禦措施中找出足夠的破綻,就能達到他們想要的目標。 如果您的環境相對簡單、原始,且向來管理得很好,則實作本文件中稍早提供的建議可能是一個直接的命題。
然而,我們發現環境愈是老舊、龐大和複雜,這份文件中的建議就愈不可行,甚至有可能根本無法實施。 基礎結構發生事故後再來保護,要比從頭開始建構能抵禦攻擊和入侵的環境困難得多。 但如先前所述,重建整個 Active Directory 樹系可不是小事情。 基於這些原因,我們建議使用更專注、更有針對性的方法來保護您的 Active Directory 樹系。
與其專注於並嘗試修正「被中斷」的一切事物,不如考慮一種方法,讓您根據對企業和基礎結構最重要的事項來排定優先順序。 請考慮建立新的小型安全環境,讓您安全地將使用者、系統和資訊移植到其中,而不是嘗試補救充滿過時、設定錯誤的系統和應用程式的環境。
在本節中,我們會說明一種方法,您可以用於建立原始 AD DS 樹系,作為核心商務基礎結構的「救生艇」或「安全密室」。 原始樹系就是是新安裝的 Active Directory 樹系,其大小和範圍通常受限,而且是使用目前的作業系統、應用程式,以及使用減少 Active Directory 攻擊介面中所述的原則而建置的。
藉由在新建樹系中實作建議的組態設定,您可以建立基於安全設定和作法而建置的 AD DS 安裝,並降低支援舊版系統和應用程式的挑戰。 雖然原始 AD DS 安裝設計和實作的詳細指示超出本文件的範圍,但您應該遵循一些一般性原則和指導方針,以建立能讓您儲存最具關鍵性資產的「安全密室」。 這些指導方針如下:
識別隔離和保護重要資產的原則。
定義一個有限的風險型移轉計畫。
視需要運用「非移轉性」移轉。
實施「創造性破壞」。
隔離舊版系統和應用程式。
簡化一般使用者的安全性。
識別隔離和保護重要資產的原則
您為了存放重要資產而建立的原始環境特性可能會有很大的差異。 例如,您可以選擇建立原始樹系,只把 VIP 使用者和只有這些使用者可以存取的敏感性資料移轉至該樹系。 您可以建立原始樹系,其中不只移轉 VIP 使用者,而且會實作為系統管理樹系,並實作減少 Active Directory 攻擊面中所述的原則,以建立安全的系統管理帳戶和主機,可用來從原始樹系管理舊版樹系。 您可以實作「目的建置」樹系,其內含 VIP 帳戶、特殊許可權帳戶和系統,需要額外的安全性,例如執行 Active Directory 憑證服務 (AD CS) 的伺服器,其唯一的目標是將它們與較不安全的樹系隔離。 最後,您可以實作原始樹系,成為所有新使用者、系統、應用程式和資料事實上的位置,讓您最終能夠透過自然損耗解除委任舊版樹系。
無論您的原始樹系是否包含少數使用者和系統,還是構成更積極移轉的基礎,您都應該在規劃中遵循這些原則:
假設您的舊版樹系已遭入侵。
請勿將原始環境設定為信任舊版樹系,不過您可以將舊版環境設定為信任原始樹系。
如果帳戶的群組成員資格、SID 歷程記錄或其他屬性可能遭到惡意修改,請勿將使用者帳戶或群組從舊版樹系移轉至原始環境。 相反地,使用「非移轉」方法來填入原始樹系。 (本章節稍後將說明非移轉方法。)
請勿將電腦從舊版樹系移轉至原始樹系。 在原始樹系中實作新安裝的伺服器、在全新安裝的伺服器上安裝應用程式,以及將應用程式資料移轉至新安裝的系統。 對於檔案伺服器,請將資料複製到新安裝的伺服器、使用新樹系中的使用者和群組來設定 ACL,然後以類似的方式建立列印伺服器。
不允許在原始樹系中安裝舊版作業系統或應用程式。 如果無法更新並全新安裝應用程式,請將它保留在舊版樹系中,並考慮創造性的破壞來取代應用程式的功能。
定義一個有限的風險型移轉計畫
建立有限的風險型移轉計畫只是表示在決定要移轉至原始樹系的使用者、應用程式和資料時,如果其中一個使用者或系統遭到入侵,您應該根據組織公開的風險程度來識別移轉目標。 最有可能成為攻擊者目標的 VIP 使用者帳戶應該存放在原始樹系中。 提供重要商務功能的應用程式應該安裝在原始樹系中新建的伺服器上,而高度敏感性資料應移至原始樹系中的安全伺服器。
如果您還沒有清楚瞭解 Active Directory 環境中最具業務關鍵性的使用者、系統、應用程式和資料,請使用業務單位來識別它們。 企業運作所需的任何應用程式都應該識別出來,執行關鍵應用程式或儲存重要資料的任何伺服器也一樣。 藉由識別組織繼續運作所需的使用者和資源,您可以建立自然形成優先順序的資產集合,以集中您的工作。
視需要運用「非移轉的」移轉
不論您是否知道您的環境已遭到入侵、懷疑其遭到入侵,或只是不想把舊版 Active Directory 安裝中的舊版資料和物件移轉至新環境,請考慮不會在技術上「移轉」物件的移轉方法。
使用者帳戶
在從某個樹系移轉至另一個樹系的傳統 Active Directory 中,使用者物件的 SIDHistory (SID 歷程記錄) 屬性可用來儲存使用者的 SID 和使用者是舊版樹系成員之群組的 SID。 如果使用者帳戶移轉至新的樹系,而且他們會存取舊版樹系中的資源,則SID 歷程記錄中的 SID 會用來建立存取權杖,讓使用者在移轉帳戶之前可以存取他們擁有權限的資源。
不過,維護 SID 歷程記錄在某些環境中已證明有問題,因為以目前和歷程記錄 SID 填入使用者的存取權杖可能會導致權杖膨脹。 權杖膨脹問題是指使用者存取權杖中必須儲存的 SID 數目使用或超出了權杖中可用的空間量。
雖然權杖大小可以增加到有限程度,但權杖膨脹的最終解決方案是減少與使用者帳戶關聯的 SID 數目,無論是合理化群組成員資格、清除 SID 歷程記錄,還是兩者的組合。 如需權杖膨脹的詳細資訊,請參閱 MaxTokenSize 和 Kerberos 權杖膨脹。
使用 SID 歷程記錄,而不是從舊版環境移轉使用者 (特別是群組成員資格和 SID 歷程記錄可能會遭到入侵的記錄),請考慮利用中繼目錄應用程式來「移轉」使用者,而不需將 SID 歷程記錄帶入新的樹系。 在新樹系中建立使用者帳戶時,您可以使用中繼目錄應用程式,將帳戶對應至舊版樹系中的對應帳戶。
若要提供舊版樹系中資源的新使用者帳戶存取權,您可以使用中繼目錄工具來識別使用者舊版帳戶獲授與存取權的資源群組,然後將使用者的新帳戶新增至這些群組。 根據舊版樹系中的群群組原則,您可能需要建立網網域本機群組以存取資源,或將現有的群組轉換成網網域本機群組,以允許將新帳戶新增至資源群組。 您可以先將焦點放在最重要的應用程式和資料上,並將其移轉至新環境 (使用或不含 SID 歷程記錄),以限制花費在舊版環境中的工作量。
伺服器和工作站
從一個 Active Directory 樹系移轉至另一個 Active Directory 樹系的傳統移轉中,移轉電腦通常比移轉使用者、群組和應用程式相對簡單。 移轉至新樹系可以像取消加入舊網域並加入新網域一樣簡單,視電腦角色而定。 不過,將電腦帳戶完整移轉至原始樹系,會牴觸建立全新環境的目的。 您應該在新的環境中重新安裝伺服器和工作站,而不是將電腦帳戶 (可能已外泄、設定錯誤或過期) 移轉至新的樹系。 您可以將資料從舊版樹系中的系統移轉至原始樹系中的系統,而不是移轉儲存該資料的系統。
應用程式
應用程式從一個樹系到另一個樹系的任何移轉中,都可能帶來最艱鉅的挑戰,但在「非移轉性」移轉的情況下,您應該套用的最基本原則之一是原始樹系中的應用程式應該是最新、受支援及全新安裝的應用程式。 如果可行,您可以從舊樹系中的應用程式實例移轉資料。 在原始樹系中無法「重新建立」應用程式的情況下,您應該考慮使用創造性破壞或隔離舊版應用程式等方法,如下一節所述。
實施創造性破壞。
創造性破壞是一個經濟學術語,描述由破壞先前順序造成的經濟發展。 近年來,該術語已應用於資訊技術。 它通常是指淘汰舊基礎結構的機制,不是藉由將其升級,而是以全新的方式來取代。 2011 年針對 CIO 和資深 IT 主管的 Gaterner ITXPO 研討會提出了創造性破壞,作為其降低成本和提高效率的重要主題之一。 安全性的改善是這個過程中的自然結果。
例如,組織可能由多個業務單位組成,這些單位使用不同的應用程式來執行類似功能,且具有不同程度的現代化和廠商支援。 從歷史上看,IT 可能會負責個別維護每個業務單位的應用程式,而彙總工作則包括嘗試找出哪個應用程式提供最佳功能,然後將資料從其他應用程式移轉至該應用程式。
在創造性破壞中,您不需要維護過時或多餘的應用程式,而是實作全新的應用程式來取代舊應用程式、將資料移轉至新的應用程式,以及解除委任舊應用程式和執行這些程式的系統。 在某些情況下,您可以在自己的基礎結構中部署新的應用程式,但盡可能考慮將應用程式移植到雲端式解決方案,以實現舊版應用程式的創造性破壞。
藉由部署雲端式應用程式來取代舊版內部應用程式,不僅可以減少維護工作和成本,還能藉由汰除被攻擊者利用的舊版系統和應用程式,以降低組織的受攻擊面。 這種方法可讓讓組織更快速地取得所需的功能,同時汰除基礎結構中的舊版目標。 雖然創造性破壞原則不適用於所有 IT 資產,但它提供了一個通常可行的選項,以汰除舊版系統和應用程式,同時部署健全、安全、雲端式應用程式。
隔離舊版系統和應用程式
將業務關鍵性使用者和系統移轉至原始、安全環境的自然結果是:您的舊版樹系將包含價值較低的資訊和系統。 雖然在較不安全的環境中保留的舊版系統和應用程式可能會有較高的入侵風險,但它們也代表入侵的嚴重性降低了。 藉由重新連接和現代化您的重要商務資產,您可以專注部於署有效的管理和監視,而不需要容納舊版設定和通訊協定。
將這些系統從強制實施舊版設定的網域中移除後,您可以將網域設定為僅支援目前的作業系統和應用程式,以增加網域的安全性。 雖然最好盡可能解除委任舊版系統和應用程式。 如果解除委任對於舊版母體中的一小部分而言根本不可行,請將它隔離至個別網域 (或樹系),可讓您在舊版安裝的其他部分執行逐步式改善。
簡化一般使用者的安全性
在大部分的組織中,由於自身在組織中角色的性質得以存取最機密資訊的使用者,用來學習複雜存取限制和控制的時間通常最少。 雖然您應該為組織中的所有使用者提供完整的安全性教育計畫,但您也應該專注於藉由實施透明且簡化使用者遵循的原則,盡可能輕鬆地使用安全性。
例如,您可以定義原則,其中主管和其他 VIP 必須使用安全工作站來存取敏感性資料和系統,並允許他們使用其他裝置來存取較不敏感的資料。 這是讓使用者記住的簡單原則,但您可以實作一些後端控制,以協助強制執行方法。
您可以使用驗證機制保證,只允許使用者使用智慧卡登入其安全系統時存取敏感性資料,而且可以使用 IPsec 和使用者權限限制來控制可連線至敏感性資料存放庫的系統。 您可以實作動態存取控制,根據存取嘗試的特性來限制資料的存取,將商務規則轉譯成技術控制。
從使用者的觀點來看,從受保護的系統存取敏感性資料「就是這麼管用」,嘗試從不安全的系統執行此動作「就是這麼不管用」。不過,從監視和管理環境的觀點來看,您正在協助建立使用者如何存取敏感性資料和系統的可識別模式,讓您更輕鬆地偵測異常存取嘗試。
在使用者 (尤其是 VIP 使用者) 抗拒使用冗長、複雜的密碼,導致密碼原則不足的環境中,請考慮使用替代的驗證方法。 替代方法包括智慧卡 (包含多種尺寸,以及加強驗證的其他功能)、生物特徵辨識控制,例如手指撥動讀取器,或甚至是使用者電腦中受信任平臺模組 (TPM) 晶片所保護的驗證資料。 如果電腦已遭入侵,多重要素驗證並無法抵擋認證竊取攻擊。 不過,藉由提供使用者便於使用的驗證控制項,您可以把更強固的密碼指派給 那些不方便使用傳統使用者名稱和密碼控制項的使用者帳戶。