捐血一袋救人一命

2024年7月18日 星期四

以 Windows 內建的 AppLocker 來管制使用者執行/安裝應用程式

AppLocker 是一個用來管制電腦可以運行的程式、Installer(.msi)、指令碼(.bat, .cmd, .vbs, .ps1, .js,...)、DLL、封裝的應用程式(.app, .appx)的服務。 


它從 Windows Server 2008 R2/Windows 7 就已經存在,但是卻很少人使用它。

其實搞懂它之後,它就是免費強大的資安管理系統!

要使用 AppLocker,有一個必要條件,Windows 版本需要更新到 22H2 版本以後,不然即使設定好相關的政策與服務,AppLocker 也不會生效!

AppLocker 要依靠 AppIDSvc 服務(Application Identity),看名字就知道是用來識別應用程式的服務 。

但是,在Windows 10 的服務管理,卻無法設定該服務於開機時自動啟動! 
網路上多是叫你用 sc.exe 來設定該服務
sc config appidsvc start=auto
或是去修改機碼
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppIDSvc] "Start"=dword:00000002
其實 AppIDSvc 是由 AppID 服務控制,只要設定 AppID 開機自動啟動,AppIDSvc 開機就會自動啟動(但是服務啟動類型仍顯示為手動啟動) 你可以使用
sc config appid start=auto
或是使用 Powershell
Set-Service -Name AppID -Startup Automatic


注意:這個 AppID 在服務裡是找不到的!所以你沒辦法用服務管理 GUI 來維護。(個人猜測,本來是要在 AD 環境管理的;但是我是沒有AD的環境,只能這樣處理)

當你重新開機,讓 AppID & AppIDSvc 服務啟動之後

你可以透過 c:\windows\system32\secpol.msc 啟動 本機安全性原則管理程式。

安全性原則 > 應用程式控制原則 > AppLocker

它分成四大類可以運行的程式

  1. 可執行檔規則
  2. Windows Installer 規則
  3. 指令碼規則
  4. 已封裝的應用程式規則

這四項當中,如果都沒有任何規則時,預設是全部允許執行!

但是,當你設定有任何一個規則,預設是全部不允許!所以你要做的就是設定哪些程式允許被執行!


要讓所有人可以正常運行Windows基本功能,請在這四大項,建立預設規則(D)

 

另外,當你要設定拒絕規則時,請不要使用內建的 Users 群組名稱,這會造成連管理者都被拒絕執行!請務必自行建立一個新群組名稱,然後把使用者帳號加入群組,然後設定該群組拒絕執行。


AppLocker

Powershell cmdlet for AppLocker

0 意見: