天天看點

利用組政策進行的一次Windows主機安全整改

前段時間,客戶的上級主管機關對客戶機關的整個資訊系統進行了一次全面的主機脆弱性分析。由于客戶機關的資訊安全性要求較高,這次脆弱性分析也做得非常徹底,找到了很多安全漏洞,尤其是對網絡中的Windows主機更是提出了大量的整改意見。

前言

在落實這些整改意見,修複主機漏洞的過程中,發現涉及到的計算機非常多,工作量很大,靠人力逐個計算機的去操作基本上是不可能的。這時想到了Windows系統中強大的管理工具——組政策。利用組政策批量更改配置的特性,配合計算機啟動腳本的使用,整個安全修複工作僅用了1天就完成了。而如果靠人力逐個計算機的去操作可能要花費至少1個月的時間。下面給大家分享一下本次利用組政策對Windows系統進行全面安全防護的全過程。

一、主機脆弱性分析

本次評估中, Windows主機安全漏洞分析總共涉及到了Windows 2003伺服器11台,Windows 2000伺服器12台,以及抽樣30台Windows XP用戶端進行人工審計。發現的主要問題有:

(一)啟用了多個不必要的服務和端口

多台Windows主機啟用了多個不需要的服務。某些啟動的服務可能與目前承載業務無關,例如:DHCP Client、Remote Registry、Task Scheduler、Telephony、Messenger。系統中開啟了多個可能不必要且易受攻擊的端口,如135、139、445、593、1025、2745、3127、6129等。

不需要的服務被啟用,惡意使用者可以通過嘗試攻擊不需要的服務來入侵系統,而管理者在管理維護過程通常會忽略不需要的服務,無法及時修補不需要服務中所存在的安全漏洞,給惡意使用者留下更多的攻擊途徑。

不需要的端口被啟用,非法者可以利用這些端口進行攻擊,獲得系統相關資訊,控制計算機或傳播病毒,對計算機造成危害。

(二)沒有重命名或禁用預設帳戶

Windows主機沒有更改預設管理者使用者名:Administrator。

預設帳戶在帶來友善的同時也嚴重危害系統安全。未更改Administrator帳号,惡意攻擊者将輕易得知超級使用者的名稱,隻需對密碼進行猜測即可。

(三)未屏蔽之前登入的使用者資訊

作業系統登入時,顯示上次登入使用者名。

沒有配置此項安全功能,使用者啟動主機系統時,登入界面顯示上次登入使用者名,隻需輸入密碼。惡意攻擊者隻需對密碼進行猜測,無需猜測使用者名,為攻擊提供友善。

(四)作業系統開啟預設共享

主機開啟了C$、D$、Admin$、IPC$等預設共享。

預設情況下開啟了很多共享檔案夾。如C$、D$、ADMIN$等,這樣對系統安全帶來很多隐患。另外IPC$共享的存在将允許任何使用者通過空使用者連接配接得到系統所有賬号和共享清單。攻擊者可能利用這項功能,查找使用者清單,并使用字典工具,對伺服器進行攻擊。

(五)未采用屏保密碼設定

多台Windows系統沒有設定在屏保後進行鎖屏。

很多時候管理者會在離開伺服器時忘記鎖定系統。系統預設會在一定時間之後開始屏保,如果在屏保中設定了密碼保護。那麼很大程度上可以保護主機系統不會被非法操作,減少安全風險。

(六)帳号密碼長度和複雜度不滿足安全要求

為了提高使用者密碼字典窮舉的難度,需要配置密碼政策,密碼複雜性要求,為使用者設定強壯的密碼。

(七)使用者鑒别未加強

為了防止非法使用者對使用者密碼進行反複嘗試,應配置作業系統使用者鑒别失敗政策,即帳戶嘗試登陸閥值及達到閥值所采取的措施。

(八)稽核政策未加強

稽核是追溯惡意操作的最有力工具。系統預設的稽核範圍比較單一,并不能為安全事故分析提供充分的資訊。是以需要配置作業系統的安全審計功能,確定系統在發生安全事件時有日志可供分析。

二、安全整改方法

八條安全整改建議基本上覆寫了大部分最常見的Windows安全問題,下面我們利用強大的組政策工具,對所有建議提供點對點問答式解決方案。

(一)關閉不需要的服務和端口

1,在Windows服務中禁用以下服務。

打開“預設域政策”,依次展開“計算機配置” 、“Windows設定” 、“安全設定”,然後選中“系統服務”,在右邊窗格中右鍵選擇Remote Registry服務,點選“屬性”。在彈出的屬性視窗中,選擇“定義這個政策設定”,并勾選“已禁用” ,然後點選“确定”,關閉視窗。依次對以下服務完成以上操作。

(1)Remote Registry

(2)DHCP Client

(3)Task Scheduler

(4)Print Spooler

(5)Telephony

(6)Messenger

其中:

(1)Remote Registry Service允許遠端系統資料庫操作,如果沒有特殊的管理平台(例如SMS)需要遠端修改計算機系統資料庫的話,該服務也可以禁用。

(2)DHCP Client服務是用于DHCP用戶端接收伺服器分發的IP位址,還可實作客戶機DNS動态注冊。在本案例中,所有計算機均是固定IP位址,并無DHCP服務。是以該服務也可以關閉,這樣可防止未經授權或惡意使用者配置或操作該服務。

(3)Task scheduler服務允許程式在指定時間運作,如果沒有設定計劃任務的話,該服務也沒有啟動的必要。

(4)Print Spooler服務将檔案加載到記憶體中以便以後列印。該服務非常容易遭到攻擊,是以除列印伺服器和其他需要列印功能的計算機外,計算機上的這個服務都必須禁用。

(5)Telephony服務為電話應用程式程式設計接口 (TAPI) 提供支援。 TAPI主要是用來支援傳統和 IP 電話服務,以提供聲音、資料和視訊通信。對于 Windows 2000 Server 和 Windows Server 2003 以及 Windows 2000 Professional 和 Windows XP 系統,如果尚未配置電話服務功能,Telephony服務将是一個本地特權提升漏洞。

(6)Messenger 服務負責傳輸用戶端和伺服器之間的 NET SEND 和 警報器服務消息,通常該服務可以關閉。

在很多文章中還提到Computer Browser、TCP/IP NetBIOS Helper等服務也需要禁用,但事實這些服務隻是在單機情況不起作用,在區域網路環境中是十分重要的。例如如果TCP/IP NetBIOS Helper服務禁用的話,基于域的組政策将不再起作用,同時域使用者也将無法登陸。

2.關閉不必要的端口。

預設情況下,Windows有很多端口是開放的,這些開放的端口會帶來很大的安全隐患,端口主要包括:TCP 135、139、445、593、1025 端口和 UDP 135、137、138、445 端口,以及一些流行病毒的後門端口(TCP 2745、3127、6129 端口等)。我們可以利用IP安全政策中的IP篩選器來關閉這些網絡端口,具體方法如下:

(1)打開“預設域政策”,依次展開“計算機配置” 、“Windows設定” 、“安全設定”,然後選中“IP 安全政策,在Acive Directory” 。在右邊窗格的空白位置右擊滑鼠,彈出快捷菜單,選擇“建立 IP 安全政策”。在向導中點選“下一步”按鈕,為新的安全政策命名(端口屏蔽);再按“下一步”,則顯示“安全通信請求”視窗,取消對“激活預設相應規則”的選擇,點選“完成”按鈕就建立了一個新的IP 安全政策。

(2)右擊該IP安全政策,在“屬性”對話框中,把“使用添加向導”選項去掉,然後單擊“添加”按鈕添加新的規則,随後彈出“新規則屬性”對話框,點選“添加”按鈕,彈出IP篩選器清單視窗;在清單中,首先把“使用添加向導”選項去掉,然後再點選右邊的“添加”按鈕添加新的篩選器(TCP)。

(3)進入“篩選器屬性”對話框,首先看到的是尋址,源位址選“任何 IP 位址”,目标位址選“我的 IP 位址”;點選“協定”頁籤,

在“選擇協定類型”的下拉清單中選擇“TCP”,然後在“到此端口”下的文本框中輸入“135”,點選“确定”按鈕,這樣就添加了一個屏蔽 TCP 135(RPC)端口的篩選器。

(4)點選“确定”後回到篩選器清單的對話框,可以看到已經添加了一條政策,重複以上步驟繼續添加 TCP 137、139、445、593 端口和 UDP 135、139、445 端口,為它們建立相應的篩選器示。

(5)再重複以上步驟添加TCP 1025、2745、3127、6129端口的屏蔽政策,建立好上述端口的篩選器,最後點選“确定”按鈕。

(6)如6圖所示,在“新規則屬性”對話框中,選擇“TCP篩選器清單”,激活它,最後點選“篩選器操作”頁籤。在“篩選器操作”頁籤中,把“使用添加向導”選項去掉,點選“添加”按鈕,在“新篩選器操作屬性”的“安全措施”頁籤中,選擇“阻止”,然後點選“确定”按鈕。

(7)進入“新規則屬性”對話框,激活“新篩選器操作”,關閉對話框;最後回到“新IP安全政策屬性”對話框,按“确定”按鈕關閉對話框。在“本地安全政策”視窗,用滑鼠右擊新添加的 IP 安全政策(端口屏蔽),然後選擇“指派”。

(二)重命名預設帳戶Administrator

1.打開“預設域政策”,依次展開“計算機配置”、“Windows 設定”、“安全設定”、“本地政策”,然後單擊“安全選項”。

2.在右窗格中,輕按兩下“帳戶:重命名系統管理者帳戶”。

3.單擊以選中“定義這個政策設定”複選框,然後鍵入要用于管理者帳戶的新名稱。

4.單擊“确定”。

(三)屏蔽之前登入的使用者資訊

2.在右窗格中,輕按兩下“互動式登陸:不顯示上次的使用者名”。

3.單擊以選中“定義這個政策設定”複選框,然後選擇“啟用”。

(四)關閉預設共享

關閉C$、D$、Admin$、IPC$等預設共享需要使用組政策分發計算機啟動腳本的方式來完成。計算機啟動腳本如下:

for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(

if exist %%a:\nul (

net share %%a$ /delete

)

net share admin$ /delete

echo Windows Registry Editor Version 5.00> c:\delshare.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\delshare.reg

echo "AutoShareWks"=dword:00000000>> c:\delshare.reg

echo "AutoShareServer"=dword:00000000>> c:\delshare.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>> c:\delshare.reg

echo "restrictanonymous"=dword:00000001>> c:\delshare.reg

regedit /s c:\delshare.reg

del c:\delshare.reg

以上腳本利用net share指令删除所有磁盤共享和admin$共享。但是這些被删除的共享在計算機重新啟動後,又會重新出現。為了永久删除共享,有些人會配置上述的net share delete 指令,讓它們每次開機自動運作一次。其實完全可以通過修改目标計算機系統資料庫來永久關閉這些共享。在系統資料庫HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters下修改或添加AutoShareWks和AutoShareServer鍵,并将其值設為0(DWORD)。其中,鍵AutoShareServer對應C$、D$一類的預設共享,鍵AutoSharewks對應ADMIN$預設共享。

IPC$共享則和前面的“預設共享”及“管理共享”是兩個不同的概念。它是指IPC管道連接配接也就是平時說的空連接配接,也被稱作匿名連接配接。空連接配接是指無需使用者名和密碼就能連接配接主機。利用這個空的連接配接,連接配接者可以得到目标主機上的使用者清單,然後可以猜密碼,或者窮舉密碼,進而獲得更高,甚至管理者權限。是以空連接配接同樣需要禁止。以IPC$隻有0,1,2三種級别,而沒有删除這個說法。空連接配接設定由系統資料庫HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的restrictanonymous鍵來确定。該值預設為0,即任何使用者都可以通過空連接配接連上伺服器,匿名列出帳戶名稱和共享資源,這樣就能夠利用這些資訊嘗試猜測密碼或進行“社會工程學”攻擊。如果設定為"1",一個匿名使用者仍然可以連接配接到IPC$共享,但限制通過這種連接配接列舉SAM帳号和共享等資訊;設定為"2",将限制所有匿名通路除非特别授權,但這樣可能會影響一些正常的管道通信,是以微軟官方建議該鍵值設為“1”。

關于如何使用組政策分發計算機啟動腳本,因為操作比較簡單,這裡不再贅述。

(五)屏保密碼設定

針對整改建議,為了避免由于管理者疏忽,而導緻他人濫用系統,我們采用如下方法統一配置屏保鎖定功能。

打開“預設域政策”,依次展開“使用者配置” 、“管理模闆” 、“控制台”,然後選中“顯示”,在右邊窗格中依次對“螢幕保護程式”,“可執行的螢幕保護程式名稱”,“密碼保護螢幕保護程式”和“螢幕保護程式逾時”四項進行配置。在本案例中,配置政策如下:

1.螢幕保護程式:開啟。

2.可執行的螢幕保護程式名稱:C:\WINDOWS\Resources\Themes\Windows Classic.theme。

3.螢幕保護程式逾時:8分鐘。

4.密碼保護螢幕保護程式:開啟。

(六)配置帳号密碼長度和複雜度要求

為了提高使用者密碼字典窮舉的難度,需要設定密碼政策,密碼複雜性要求,即為使用者設定強壯的密碼。主要配置方法如下:

打開“預設域政策”,依次展開“計算機配置”、“Windows 設定”、“安全設定”、“帳戶政策”,然後單擊“密碼政策”。依次對“ 密碼必須符合複雜性要求”,“密碼長度最小值”,“密碼最長使用期限”,“密碼最短使用期限”和“強制密碼曆史”進行配置。在本案例中,配置政策如下:

1.密碼必須符合複雜性要求:開啟。

2.密碼長度最小值:8位。

3.密碼最長使用期限:60天。

4.密碼最短使用期限:1天。

5.強制密碼曆史:6個。

(八)加強使用者鑒别政策

為了防止非法使用者對使用者密碼進行多次猜測或字典式攻擊,應配置作業系統使用者鑒别失敗政策,即配置帳戶嘗試登陸閥值及達到閥值所采取的措施。主要配置方法如下:

打開“預設域政策”,依次展開“計算機配置”、“Windows 設定”、“安全設定”、“帳戶政策”,然後單擊“賬戶鎖定政策”。依次對“複位帳戶鎖定計數器”,“帳戶鎖定時間”和“帳戶鎖定門檻值”進行配置。在本案例中,配置政策如下:

1.複位帳戶鎖定計數器 :30分鐘。

2.帳戶鎖定時間:30分鐘。

3.帳戶鎖定門檻值:5次。

(九)加強稽核政策

安全稽核是Windows最基本的入侵檢測方法,當有人嘗試對系統進行某種方式入侵的時候(如嘗試使用者密碼,改變帳戶政策和未經許可的檔案通路等等),都會被安全稽核記錄下來。利用組政策開啟的稽核方法如下:

打開“預設域政策”,依次展開“計算機配置”、“Windows 設定”、“安全設定”、“本地政策”,然後單擊“稽核政策”。依次對“稽核政策更改”,“稽核登陸事件”,“稽核特權使用”,“稽核系統事件”,“稽核帳戶管理”和“稽核賬戶登陸事件”進行配置。在本案例中,配置政策如下:

1.稽核政策更改:成功,失敗。

2.稽核登陸事件:成功,失敗。

3.稽核特權使用:成功。

4.稽核系統事件:成功,失敗。

5.稽核帳戶管理:成功。

6.稽核使用者登陸事件:成功,失敗。

(十)對稽核産生的資料配置設定合理的存儲空間和存儲時間

為了保證系統有足夠的空間存儲系統稽核日志和安全稽核日志,不會因為空間不足而覆寫了有用的日志資訊。需要對稽核産生的資料配置設定合理的存儲空間和存儲時間。具體方法如下:

打開“預設域政策”,依次展開“計算機配置”、“Windows 設定”,然後單擊“事件日志”。依次對“安全日志保留天數”,“安全日志保留方法”,“安全日志最大值”和“系統日志保留天數”,“系統日志保留方法”,“系統日志最大值”進行配置。在本案例中,配置政策如下:

1.安全日志保留天數:14天。

2.安全日志保留方法:按天數。

3.安全日志最大值:40000KB。

4.系統日志保留天數:14天。

5.系統日志保留方法:按天數。

6.系統日志最大值:40000KB。

束語

當然要想保證整個Windows主機的安全性,還有許多其他方面需要注意,例如更新檔更新管理;以最小權限原則對作業系統使用者、使用者組進行權限設定;強化 TCP/IP 堆棧防止拒絕服務攻擊和確定遠端控制要有安全機制保證等等。但這些問題在本次主機脆弱性分析前均已進行了合理配置,是以并不在整改建議中,是以這裡不再贅述。

另外本文中都是以“預設域政策”為例,實際操作過程中往往需要根據自己的需求對不同的組織單元的自定義政策分别進行配置,不過配置方法是一樣的。

通過本次安全整改不但讓我們了解到了更多的安全知識,同時也進一步認識到組政策工具的強大功能。希望本文能夠為正在為資訊安全忙碌的廣大同仁提供一點幫助。

本文轉自 tigerkillu 51CTO部落格,原文連結:http://blog.51cto.com/chenyitai/346193,如需轉載請自行聯系原作者

繼續閱讀