■ 河南 郭建偉
編者按: 企業部署不同的應用系統,都存在用戶管理的功能。針對不同的用戶和角色,可以查看到系統中不同的信息。因此,在規劃和創建應用系統時,對于不同用戶的權限以及允許查看的內容必須嚴格加以限制。用戶在使用過程中,可能會有意或者無意的跨越邊界,試圖越權查看其他信息,就會遭到系統拒絕并被記錄下來。
在不同場景中,安全審計具有不同的標準。例如對于ISO 19011標準來說,系統所記錄下來的用戶訪問信息和狀態信息就是安全審計的證據。有了完整的記錄后,在審計時就會利用基本的安全策略對比所有記錄信息,來判斷用戶的操作是否合規。
對于安全審計來說,重點關注的就是不合規的信息。在所有版本的Windows系統中都提供了安全審計功能。例如Windows Server 2016安全審計功能必然包括記錄所有的訪問信息,使用合適的審計標準以及判斷用戶行為合規性等三個要素。
對 于Windows Server 2016來說,可以利用其安全審計策略來確定需要的記錄用戶活動信息,并將記錄信息保存在事件日志中,管理員就會據此來判斷用戶行為的合規性。
例如在Windows Server 2016文件服務器中,要使用安全審核功能,可以使用多種方法來實現。例如在Power Shell窗口中執行“auditpol /list /category/v”命令,顯示可選擇的策略元素,即用戶的哪些活動會被記錄下來。執行“auditpol/get /category:*?”命令,可以顯示更加詳細的安全策略內容。通過查看以上信息,可以了解到究竟有哪些用戶的訪問行為會被記錄下來,作為安全審核的材料。
在默認情況下,一些策略處于未啟用狀態。例如對于對象訪問類別來說,其中就包括對文件系統、注冊表、文件共享、證書服務、內核對象、可移動存儲等審核策略,該類別處于未啟用狀態。為此可以執行“auditpol/set category:{xxx} /s u c c e s s:e n a b l e /failure:enable”命 令,即可啟用針對該類別的審計功能,記錄其中所有操作的成功或失敗的操作,其中的“xxx”表示該類別的GUID值。例如當創建了一個共享目錄后,其行為會被記錄下來。執行“eventvwr.msc”命令,在事件查看器選擇“Windows日志”→“安全”項,就可以查找到對應的記錄信息。
對于本地Administrators組來說,其中的用戶都擁有管理員權限,因此對本地安全組進行安全審計,就可以及時發現該組中成員的變動情況。執行“auditpol /set category:{xxx} /success:enable”命 令,即可啟用針對賬戶管理類別的審計功能,記錄其中所有操作的成功操作,其中的“xxx”表示該類別的GUID值。執行“net localgroup administrators”命令,顯示當前的本地管理員組中的成員信息。當在其中添加新的成員后,在事件查看器中選擇“Windiws日志”→“安全”項,點擊菜單“操作”→“篩選當前日志”項,在打開窗口中的“包括排除時間ID”欄中輸入“4732”,點擊確定按鈕,就可以將添加賬戶的信息過濾出來。如果篩選的ID為“4799”,就會將查詢管理員組的操作信息顯示出來。
使用命令行工具來管理審核功能,存在一些不足,例如操作起來較繁瑣,只能針對主要的類別啟用審核策略,無法直接對具體的子類別單獨配置審核策略等,如果存在很多服務器,只能逐臺進行配置等。
利用本地組策略和域的策略可以很好地解決這些問題。執行“gpedit.msc”命令,在組策略編輯器中選擇“計算機配置”→“Windiws設置”→“安全設置”→“本地策略”項,在右側顯示所有的審核策略。例如雙擊“審核賬戶管理”項,在屬性窗口中選擇“成功”和“失敗”項,就啟用了該審核策略。
之后所有和賬戶管理相關的操作都會被系統記錄下來。如果僅僅想針對具體的子類來設置審核策略,例如單獨設置賬戶管理類別中的安全組管理子類進行操作,可以在左側選擇“計算機配置”→“Windiws設置”→“安全設置”→“高級審核策略配置”→“系統審核策略”項,在其下顯示不同的審核類別。選擇對應的類別,在右側顯示其中包含的所有子類別。例如選擇“賬戶管理”項,在右側雙擊“審核安全組管理”項,在打開窗口中選擇“配置以下審核事件”項,選擇“成功”或“失敗”項,激活針對該子類別的審核功能。
選擇“本地策略”→“安全選項”項,在右側雙擊“審核:強制審核策略子類別設置替代審核策略類別設置”項,在屬性窗口中選擇“已啟用”項,那么僅僅會激活高級審核策略。當然,這需要在Windows Server 2008 R2及其以上版本的支持方可。為了針對不同的用戶進行審核,也可以利用組策略實現。例如在高級審核策略分支下選擇“對象訪問”項,在右側雙擊“審核文件系統”項,激活該審核項目。之后在目標文件或目錄的屬性窗口中的“安全”面板中點擊“高級”按鈕,在打開窗口中的“審核”面板中點擊“添加”按鈕,添加目標賬戶。在“基本權限”欄中為其指定審核項目,包括完全控制、修改、讀取和執行、列出文件夾內容、讀取、寫入等項目。當該用戶針對文件執行具體操作時,其行為就會被系統記錄下來。這樣可以針對不同用戶分別進行審核。對于擁有指定權限的用戶,記錄的是成功的事件。對于沒有權限的用戶操作,則是失敗的操作。
使用系統自帶的審核機制,可以快速發現潛伏很深的惡意程序。這里以監控“C:Windowssystem32”系統文件夾中的“drivers”子文件夾為例進行說明。
在Windows的“文件夾選項”窗口的“查看”面板中取消“使用簡單文件共享”項,在開始運行中執行“gpedit.msc”命令,在組策略窗口左側依次展開“計算機配置”→“Windows設置”→“安全設置”→“本地策略”→“審核策略”分支,在右側窗口中雙擊“審核對象訪問”項,在彈出窗口中勾選“成功”和“失敗”項,保存配置。
在“Drivers”文件夾的屬性窗口中打開“安全”面板,點擊右下角的“高級”按鈕,在彈出窗口“審核”面板中點擊“添加”按鈕,在賬戶搜索窗口中選中“Everyone”用戶,在審核項目窗口中的“訪問列表”中的“遍歷文件夾/運行文件”欄中勾選“成功”和“失敗”項。
當然,也可以選擇其他審計項目。這樣,對“Drivers”文件夾的操作就會被系統列入審核的范圍內。
之后可以隨時打開Windows事件查看器,在窗口左側選擇“安全性”項,點擊菜單“查看”→“篩選”項,在彈出窗口中僅僅勾選“成功審核”和“失敗審核”項,這樣就大大縮小了搜索范圍。如果發現有用戶對“Drivers”文件夾進行了訪問,就說明有可疑程序對系統驅動程序進行了改動。之后使用安全軟件對系統進行徹底掃描,來清除深度潛伏的害群之馬。
利用審核策略可以有效控制程序的運行,例如禁止運行一些具有潛在風險的程序等。只要開啟關于目標程序的審核策略,系統的事件查看器就會自動記錄針對該程序的審核事件。
審核事件是可以關聯到計劃任務的,利用這一原理,就可以在啟動該程序時自動將其關閉。在組策略窗口左側選擇“計算機配置”→“Windows設置”→“安全設置”→“本地策略”→“審核策略”項,在窗口右側雙擊“審核對象訪問”項,在彈出窗口中的“審核這些操作”欄中選擇“成功”和“失敗”項,開啟本審核策略。之后進入目標程序安裝路徑,選擇“xxx.exe”文件,在右鍵菜單中點擊“屬性”項,在彈出窗口中的“安全”面板中點擊“高級”按鈕,在高級安全設置窗口的“審核”面板中點擊“編輯”,在彈出窗口中點擊“添加”,在選擇用戶或組窗口中點擊“高級”按鈕,之后點擊“立即查找”按鈕,可以顯示系統中的所有賬戶和組信息。
選擇合適的賬戶名添加到審核列表中。隨后自動打開的審核項目窗口,在其中可以針對該賬戶設置所需的審核項目。為了全面掌握目標程序的活動情況,選擇“成功”和“失敗”列中的所有項目。之后連續點擊確定按鈕,就完成針對特定賬戶使用該程序的審核操作設置。
當指定賬戶試圖啟動該目標程序時,就會觸發上述設置的審核項目,系統的事件查看器會在后臺自動記錄對應的審核事件。進入事件查看器窗口。在窗口左側點擊“Windows日志”→“安全”項,顯示所有的安全日志信息。可以手動查找和該程序相關的記錄項。如果事件記錄過多,可以在窗口右側點擊“查找”項,在搜索欄中輸入“xxx.exe”,可以迅速定位到所需的日志項目。可以看到,在本例中事件代號為4907的日志項記錄著關于該程序的安全審核數據。
掌握了對應的事件ID,就可結合計劃任務進行攔截。在事件查看器窗口選擇事件ID為4907的記錄項,右擊“將任務附加到此事件”項,彈出計劃任務創建向導界面,輸入任務名稱和描述信息,依次點擊“下一步”,在“希望該任務執行什么操作”中選擇“啟動程序”→“瀏覽”按鈕,選擇系統目錄中的“taskkill.exe”程序,例如具體路徑為“c:windowssystem32 askkill.exe”。在“添加參數”欄中輸入“/im thunder.exe /f”。其中“im”參數指明需要關閉的進程名,“/f”參數表示執行強制關閉動作。連續點擊“下一步”,完成本計劃任務的創建操作。
在控制面板中打開“系統和安全”→“計劃任務”項,在計劃任務窗口左側點擊“任務計劃程序庫”→“事件查看器任務”項,在窗口中部就會顯示上述創建的計劃任務項目。為提高其運行隱蔽性,可以雙擊該任務項目,在屬性窗口中的“常規”面板中勾選“使用最高權限運行”和“隱藏”項。這樣不僅可以讓計劃任務在運行時避開UAC的管控,而且可以在后臺悄然運行。
之后,當選定賬戶啟動成功該程序后,會觸發預設的審核項目,審核成功后系統會自動在事件查看器中記錄該安全日志信息,同時會觸發與之綁定的計劃任務項目。這樣,該計劃任務就會自動在后臺運行“c:windowssystem32 askkill.exe /im thunder.exe /f”程序,會將啟動的目標程序強制關閉。因為該過程實際上是以SYSTEM賬戶身份執行,不受系統UAC的攔截。如果需要正常運行該程序,只需將與事件ID為4907的記錄項綁定的計劃任務刪除,就可自由運行了。根據以上原理,可以毫不費力的攔截所需的所有程序,讓程序運行特權處于您的掌控之中。
如果希望對多臺主機批量的設置審核機制,可以通過域的組策略來完成相關的配置。以域管理員身份登錄DC,在組策略管理器左側選擇“林”→“域”→“域名”分支下的具體的OU對象,在其右鍵菜單上選擇“在這個域中創建GPO并在此處鏈接”項,輸入GPO的名稱,創建新的組策略對象。打開該GPO的編輯窗口,在左側選擇“策略”→“Windiws設置”→“安全設置”→“本地策略”項,之后按照上述防腐來設置合適的審核策略。這樣,在該OU中的所有主機都會應用設定的審核策略。