如何增強(qiáng)活動(dòng)目錄安全性的五個(gè)步驟
讓AD更安全!是的,每個(gè)管理員都希望如此,但是要盡可能高地實(shí)現(xiàn)這個(gè)目標(biāo),您還是需要花上一點(diǎn)力氣的,本文通過五個(gè)步驟,幫您理解如何來切實(shí)增強(qiáng)AD基礎(chǔ)設(shè)施的安全。
活動(dòng)目錄(AD)中保存著能夠?qū)D進(jìn)行訪問的重要密鑰,如果不能恰當(dāng)?shù)卦鰪?qiáng)AD的安全性,那么它很容易受到攻擊。坦率地講,增強(qiáng)AD的安全性并不簡單,但是通過一些基本的步驟,您確實(shí)可以提高它的安全性。請注意我這里所說的是“基本”步驟。安全無止境,您總是可以找到提高安全性的方法,但是這些方法往往需要付出相應(yīng)的代價(jià)。這些代價(jià)可表現(xiàn)為實(shí)際的花費(fèi),或者靈活性或功能性方面的損失。讓我在這里向您展示5個(gè)步驟,實(shí)施這些步驟的代價(jià)并不算高,但它們卻可以幫助您切實(shí)增強(qiáng)AD基礎(chǔ)設(shè)施的安全性。
步驟1. 遵循管理員方面的最佳做法
您可以通過將手工操作(例如,安裝域控制器)自動(dòng)化的方法來增強(qiáng)AD的安全性,但是目前還沒有出現(xiàn)能夠?qū)⑷祟愋袨樽詣?dòng)化的程序設(shè)計(jì)語言。因此,這就是您需要為管理員如何管理AD建立指南的原因。您需要確信您的管理員遵循了如下的最佳做法:
區(qū)分管理賬號(administrative accounts)的使用。區(qū)分管理賬號的使用已經(jīng)成為許多組織的一個(gè)標(biāo)準(zhǔn)做法,但它仍然值得一提。如果管理員的機(jī)器不小心感染了病毒,那么潛在的威脅將會(huì)非常大,因?yàn)楂@得管理權(quán)限(right)后,病毒可運(yùn)行程序或腳本。因此,對于日常操作,管理員應(yīng)使用非特權(quán)賬號(例如,用戶賬號);對于和AD有關(guān)的操作,管理員應(yīng)使用一個(gè)獨(dú)立的管理賬號。當(dāng)您通過一個(gè)非管理賬號登錄后,您可以使用Runas命令這類工具以管理員的身份打開程序。如需了解有關(guān)如何使用Runas命令的信息,請參閱Windows的幫助文件。
確保管理員機(jī)器的安全性。雖然要求您的管理員以非管理賬號登錄和使用Runas命令打開AD管理程序能夠帶來很多益處,但是如果運(yùn)行這些工具的硬件系統(tǒng)不安全的話,您仍然處于危險(xiǎn)之中。如果您不能確保管理員機(jī)器的安全性,那么您需要建立一個(gè)獨(dú)立并且安全的管理員機(jī)器,并讓管理員使用終端服務(wù)來訪問它。為了確保該機(jī)器的安全,您可以將它放在一個(gè)特定的組織單元中,并在組織單元上使用嚴(yán)格的組策略設(shè)置。您還需要注意機(jī)器的物理安全性。如果管理員的機(jī)器被盜,那么機(jī)器上的所有東西都將受到威脅。
定期檢查管理組(administrative group)的成員。攻擊者獲得更高特權(quán)(privilege)的手段之一就是將它們的賬號添加到AD的管理組當(dāng)中,例如Domain Admins、Administrators或Enterprise Admins。因此,您需要密切關(guān)注AD管理組中的成員。遺憾的是AD不具備當(dāng)某個(gè)組的成員發(fā)生改變時(shí)發(fā)送提示信息的內(nèi)建機(jī)制,但是編寫一個(gè)遍歷組成員的腳本并使腳本每天至少運(yùn)行一次并不復(fù)雜。在這些組上面啟用審核(Enabling Auditing)也是一個(gè)很好的主意,因?yàn)槊看胃淖兌紩?huì)在事件日志中有一條對應(yīng)的記錄。
限制可以訪問管理員賬號(Administrator account)密碼的人員。如果某個(gè)攻擊者獲得了管理員賬號的密碼,他將獲得森林中的巨大特權(quán),并且很難對他的操作進(jìn)行跟蹤。因此,您通常不應(yīng)使用管理員賬號來執(zhí)行管理AD的任務(wù)。相反,您應(yīng)該創(chuàng)建可替代的管理賬號(alternative administrative accounts),將這些賬號添加到Domain Admins或Enterprise Admins組中,然后再使用這些賬號來分別執(zhí)行每個(gè)管理功能。管理員賬號僅應(yīng)作為最后一個(gè)可選擇的手段。因?yàn)樗氖褂脩?yīng)該受到嚴(yán)格的限制,同時(shí)知道管理員密碼的用戶數(shù)量也應(yīng)受到限制。另外,由于任何管理員均可修改管理員賬號的密碼,您或許還需要對該賬號的所有登錄請求進(jìn)行監(jiān)視。
準(zhǔn)備一個(gè)快速修改管理員賬號密碼的方法。即使當(dāng)您限制了可以訪問管理員賬號的人數(shù),您仍然需要準(zhǔn)備一個(gè)快速修改該賬號密碼的方法。每月對密碼進(jìn)行一次修改是一個(gè)很好的方法,但是如果某個(gè)知道密碼(或具有修改密碼權(quán)限)的管理員離開了組織,您需要迅速對密碼進(jìn)行修改。該指南同樣適用于當(dāng)您在升級域控制器時(shí)設(shè)置的目錄服務(wù)恢復(fù)模式(Directory Service Restore Mode,以下簡稱DSRM)密碼和任何具有管理權(quán)力的服務(wù)賬號。DSRM密碼是以恢復(fù)模式啟動(dòng)時(shí)用來進(jìn)行登錄的密碼。您可以使用Windows Server 2003中的Ntdsutil命令行工具來修改這個(gè)密碼。
當(dāng)修改密碼時(shí),您應(yīng)該使用盡量長的(超過20個(gè)字符)隨機(jī)密碼。對于管理員而言這種密碼很難記憶。設(shè)置完密碼后,您可將它交給某個(gè)管理人員,并由他來決定誰可以使用該密碼。
準(zhǔn)備一個(gè)快速禁用管理員賬號的方法。對于絕大多數(shù)使用AD的組織,最大的安全威脅來自于管理員,尤其是那些對雇主懷恨在心的前管理員。即使您和那些自愿或不自愿離開公司的管理員是好朋友,您仍然需要迅速禁用賬號上的管理訪問權(quán)限。
步驟2. 遵循域控制器方面的最佳做法
在確信遵循了與管理員有關(guān)的最佳做法后,我們將注意力轉(zhuǎn)移到域控制器(Domain Controller,以下簡稱DC)上面來,因?yàn)樗鼈兪窃S多AD實(shí)現(xiàn)中最容易受到攻擊的目標(biāo)。如果某個(gè)攻擊者成功進(jìn)入DC,那么整個(gè)森林將受到威脅。因此,您需要遵循如下最佳做法:
確保DC的物理安全性。DC的物理安全性是部署AD時(shí)需要考慮的最重要問題之一。如果某個(gè)攻擊者獲得了DC的物理訪問權(quán),他將有可能對幾乎所有其它的安全措施進(jìn)行破壞。當(dāng)您將DC放置在數(shù)據(jù)中心時(shí),DC的安全性并不存在問題;當(dāng)在分支機(jī)構(gòu)部署DC時(shí),DC的物理安全性很可能存在問題。在分支機(jī)構(gòu)中,DC經(jīng)常存放在可以被非IT人員訪問的帶鎖房間內(nèi)。在一些情況下,這種方式不可避免,但是不管情況如何,只有被充分信任的人員才能夠?qū)C進(jìn)行訪問。
自動(dòng)化安裝的過程。通常自動(dòng)化任務(wù)的執(zhí)行要比手工執(zhí)行的安全性高。當(dāng)安裝或升級DC時(shí)尤其如此。安裝和配置操作系統(tǒng)過程的自動(dòng)化程度越高,DC的不確定因素就越少。當(dāng)手工安裝服務(wù)器時(shí),對每臺服務(wù)器人們的操作均存在細(xì)微的差別。即使完整地記錄下所有過程,每臺服務(wù)器的配置仍然會(huì)有所區(qū)別。通過安裝和配置過程的自動(dòng)化,您有理由確信所有DC均以同樣的方式被配置并設(shè)置安全性。對于已經(jīng)安裝好的DC,您可以使用組策略這類工具來確保它們之間配置的一致性。
迅速安裝重要的更新。在Windows NT時(shí)代,除非絕對需要,絕大多數(shù)管理員不會(huì)安裝熱修復(fù)程序(hotfix)或安全更新。更新經(jīng)常存在缺陷并會(huì)導(dǎo)致進(jìn)一步的問題。今天,我們就沒有那么奢侈了。幸運(yùn)的是微軟提供的更新程序質(zhì)量有了很大提高。因?yàn)镈C是非常顯眼的目標(biāo),所以您需要密切關(guān)注出現(xiàn)的每一個(gè)安全更新。您可以通過訪問地址http://www.microsoft.com/security/bulletins/alerts.mspx來訂閱并收到有關(guān)最新安全更新的Email通知。您可以通過自動(dòng)更新(Automatic Updates)迅速地對安全更新進(jìn)行安裝,或者通過微軟的Software Update Services(SUS)在測試后有選擇地對其進(jìn)行安裝。
創(chuàng)建一個(gè)保留文件。在Windows Server 2003以前的操作系統(tǒng)中,如果用戶具備在某個(gè)容器中創(chuàng)建對象的權(quán)限,那么將無法限制用戶創(chuàng)建對象的數(shù)量。缺乏限制可以導(dǎo)致攻擊者不斷地創(chuàng)建對象以至耗盡DC硬盤空間。您可以通過在每個(gè)DC的硬盤上創(chuàng)建一個(gè)10M至20M的保留文件,以便在某種程度上降低這類風(fēng)險(xiǎn)的發(fā)生。如果DC的空間用完了,您可以刪除上述保留文件,并在找到解決方案前留下一些解決問題的空間。
運(yùn)行病毒掃描軟件。在DC上運(yùn)行病毒掃描軟件比在大多數(shù)服務(wù)器上運(yùn)行該軟件更為迫切,因?yàn)镈C間不僅要復(fù)制目錄信息,還要通過文件復(fù)制服務(wù)(File Replication Service,以下簡稱FRS)復(fù)制文件內(nèi)容。不幸的是FRS為病毒提供了在一組服務(wù)器之間進(jìn)行傳播的簡單途徑。并且FRS通常還會(huì)對登錄腳本進(jìn)行復(fù)制,因此還會(huì)潛在地威脅到客戶端的安全。運(yùn)行病毒掃描軟件可以大幅降低病毒復(fù)制到服務(wù)器和客戶端的威脅。#p#
步驟3. 遵循委派方面的最佳做法
錯(cuò)誤地對保護(hù)AD內(nèi)容的訪問控制列表(ACL)進(jìn)行配置將會(huì)使AD易于受到攻擊。此外,如果委派實(shí)施得越復(fù)雜,那么AD的維護(hù)和問題解決工作就越難。因此我喜歡應(yīng)用簡潔的設(shè)計(jì)哲學(xué)。委派實(shí)施得越簡單,您的麻煩就會(huì)越少,在安全方面尤為如此。事實(shí)上,上述哲學(xué)同樣適用于AD的設(shè)計(jì),在附文“設(shè)計(jì)決定安全”中將進(jìn)行詳細(xì)討論。為了保持委派的簡潔,我強(qiáng)烈建議您閱讀“Best Practices for Delegating Active Directory Administration”一文(http://tinyurl.com/vzlg)。
不要將權(quán)限分配給用戶賬號。進(jìn)行委派的基本原則之一就是除非有充分的理由,否則始終將權(quán)限分配給組而不是用戶。當(dāng)某個(gè)被您分配權(quán)限的用戶離開公司或工作職能發(fā)生改變而再不需要某些訪問權(quán)限時(shí),您需要執(zhí)行哪些操作?找到某個(gè)賬號被賦予的權(quán)限,取消這些權(quán)限,然后再將它們賦予另外一個(gè)用戶,要比將舊賬號從某個(gè)組中刪掉,再將一個(gè)新賬號加入到該組中的工作量大得多。即使您認(rèn)為賦予特定用戶的權(quán)限永遠(yuǎn)不會(huì)被賦予其他用戶,我還是建議您創(chuàng)建一個(gè)組,將用戶加入到這個(gè)組中,然后再將權(quán)限分配給這個(gè)組。
不要將權(quán)限分配給單獨(dú)的對象。當(dāng)您直接將權(quán)限分配給單獨(dú)的對象時(shí)(例如一個(gè)用戶或一個(gè)組對象),事情將會(huì)變得復(fù)雜起來。上述權(quán)限需要更多的維護(hù),并且很容易在隨后被忽視。為了避免問題的發(fā)生,您應(yīng)該將權(quán)限盡量多地分配給組織單元或容器。
記錄下使用的模型。在進(jìn)行權(quán)限委派時(shí),您需要完成的重要工作之一就是記錄下使用的模型。您是否建立了一個(gè)基于角色的模型?請求訪問權(quán)限的過程是什么?模型是否具有特例?所有這些重要問題都應(yīng)該被記錄,它不僅會(huì)使維護(hù)工作變得簡單,而且將確保每個(gè)人都清楚權(quán)限應(yīng)該如何被分配,并可以識別出沒有按照模型進(jìn)行分配的權(quán)限(它將使AD易于受到攻擊)。記錄模型的文檔格式并不重要,但應(yīng)能夠方便管理員查找。
熟悉Dsrevoke的使用。您可通過Active Directory用戶和計(jì)算機(jī)程序來運(yùn)行控制委派向?qū)elegation
步驟4. 監(jiān)視并審核您的AD
因?yàn)锳D包含許多組件,所以確定何時(shí)有人對系統(tǒng)進(jìn)行破壞比較困難。目前您僅能夠遵循上述提到的最佳做法,但是您如何知道有人正在偷偷溜進(jìn)您的系統(tǒng)呢?答案是監(jiān)視和審核。
您至少需要監(jiān)視DC的可用性(availability)。您也許已經(jīng)在進(jìn)行主機(jī)可用性的監(jiān)視了,并用它來確保AD基礎(chǔ)設(shè)施的可用性。但是從安全的角度而言,知道DC何時(shí)非正常停機(jī)更為重要,這樣您就可以立即對原因進(jìn)行相應(yīng)的分析。也許遠(yuǎn)程站點(diǎn)的一臺DC被盜或某個(gè)黑客取得了物理訪問權(quán)并且正在關(guān)閉機(jī)器以便安裝一個(gè)木馬程序!
除了監(jiān)視DC的可用性,您還可以使用性能監(jiān)視器對許多AD的度量(measure)進(jìn)行監(jiān)視,這些度量包括輕量目錄訪問協(xié)議(Lightweight Directory Access Protocol,以下簡稱LDAP)查詢的次數(shù)和復(fù)制數(shù)據(jù)的數(shù)量等內(nèi)容。您可以為每個(gè)感興趣的計(jì)數(shù)器設(shè)定一個(gè)閥值,然后對它們進(jìn)行監(jiān)視。如果您注意到,例如每秒鐘LDAP查詢請求次數(shù)或身份驗(yàn)證請求次數(shù)在一段時(shí)間內(nèi)明顯上升,這也許就是某種攻擊的一個(gè)提示信息。為了獲取更廣泛的監(jiān)視(甚至是警告)信息,您可以使用Microsoft Operation Manager這類工具。
Windows操作系統(tǒng)和AD提供的審核功能允許您將某些事件記錄到安全事件日志中。您可以記錄從操作系統(tǒng)配置更新到AD內(nèi)部修改等任何事件。但是在啟用審核時(shí)您需要謹(jǐn)慎考慮。如果審核的對象過多,那么安全日志中將會(huì)充斥過多的信息以至于很難找到您所需要的內(nèi)容。為了獲取審核對象方面的指導(dǎo),請參閱“Best Practice Guide for Securing Active Directory Installations”一文(http://tinyurl.com/3c928)。
步驟5. 做最壞打算
也許安全規(guī)劃最重要的方面就是建立一個(gè)如何應(yīng)對成功攻擊的預(yù)案。實(shí)施上述最佳做法并不能絕對確保安全。您也許已經(jīng)建立起一個(gè)非常安全的AD基礎(chǔ)設(shè)施,但是如果攻擊者進(jìn)行一次從未見過的AD攻擊,您也許就會(huì)束手無策,因?yàn)槟鷮λ€不了解。這就是為什么做最壞打算顯得如此重要的原因。如果您發(fā)現(xiàn)正處在這種情形下,您已經(jīng)知道該如何應(yīng)對了。如果您發(fā)現(xiàn)整個(gè)森林均受到威脅并且需要進(jìn)行一次徹底的恢復(fù),您將會(huì)因?yàn)槭孪瓤紤]過這個(gè)過程而節(jié)省下寶貴的時(shí)間。
在本文中我們討論了提高AD安全性的一些基本步驟,而且實(shí)施這些步驟的代價(jià)也很低。雖然討論的內(nèi)容僅僅涉及一些皮毛,但是如果您遵循上述步驟,您的AD將會(huì)變得更加安全。
設(shè)計(jì)決定安全
病毒、蠕蟲、垃圾郵件以及拒絕服務(wù)攻擊是互聯(lián)網(wǎng)用戶每天都需要面對的安全威脅?;ヂ?lián)網(wǎng)之所以很容易受到攻擊,是因?yàn)楫?dāng)初設(shè)計(jì)它的時(shí)候并沒有考慮到安全性。它被設(shè)計(jì)成了一個(gè)開放的系統(tǒng),并鼓勵(lì)用戶自由地交流和交換思想?;ヂ?lián)網(wǎng)的建立者從未想到某一天它會(huì)取得商業(yè)上的巨大成功。從此互聯(lián)網(wǎng)社群一直在設(shè)法增強(qiáng)一個(gè)不安全設(shè)計(jì)的安全性。
上述例子說明了某項(xiàng)技術(shù)的實(shí)現(xiàn)將最終決定如何來增強(qiáng)它的安全性,AD也不例外。如果您設(shè)計(jì)了一個(gè)開放的委派模型并將用戶不需要的訪問權(quán)限也分配給他們,或者您將域控制器部署到不安全的位置,那么您將需要花費(fèi)很多時(shí)間用來增強(qiáng)整個(gè)實(shí)現(xiàn)的安全性。
我喜歡應(yīng)用簡潔的設(shè)計(jì)哲學(xué)。AD設(shè)計(jì)得越簡單,您的麻煩就會(huì)越少,在安全性方面尤為如此。復(fù)雜的設(shè)計(jì)往往導(dǎo)致更多需要管理的內(nèi)容,接下來就是對更多的內(nèi)容進(jìn)行安全方面的增強(qiáng)。我喜歡應(yīng)用的一個(gè)基本原則就是“越少越好”。域越少,域控制器就越少。域控制器越少,管理員就越少。組織單元越少,需要委派的對象就越少。
【編輯推薦】