裝置控制攻略

本文說明了不同的方式來了解裝置控制的運作方式。 從預設設定開始,每個章節都說明如何配置裝置控制以達成特定目標。

探索裝置控制的預設狀態

預設情況下, 裝置控制 是被關閉的,且對於新增裝置沒有限制。 對於已導入 Defender for Endpoint 的裝置,已啟用基本裝置控制事件的稽核。 此活動可在 裝置控制報告中看到。 依據內建的 PnP 稽核原則 進行篩選時,會顯示已連線到環境中各端點的裝置。

Defender for Endpoint 中的裝置控制是根據裝置的屬性來識別。 裝置屬性可透過在報告中選擇項目來查看。

裝置 ID、供應商 ID (VID)、序號和匯流排類型皆可用來識別裝置(請參閱 適用於端點的 Microsoft Defender 中的裝置控制原則)。 資料也可在 進階狩獵 中使用,方法是搜尋「隨插即用裝置已連線」動作(PnPDeviceConnected),如下列範例查詢所示:


DeviceEvents
| where ActionType == "PnpDeviceConnected"
| extend parsed=parse_json(AdditionalFields)
| extend MediaClass = tostring(parsed.ClassName)
| extend MediaDeviceId = tostring(parsed.DeviceId)
| extend MediaDescription = tostring(parsed.DeviceDescription)
| extend MediaSerialNumber = tostring(parsed.SerialNumber)
| project Timestamp, DeviceId, DeviceName, AccountName, AccountDomain, MediaClass, MediaDeviceId, MediaDescription, MediaSerialNumber, parsed
| order by Timestamp desc

裝置控制狀態 (啟用/停用、預設強制執行及最後政策更新) 可透過 Get-MpComputerStatus 取得,如下摘要所示:


DeviceControlDefaultEnforcement   : 
DeviceControlPoliciesLastUpdated  : 1/3/2024 12:51:56 PM
DeviceControlState                : Disabled

將測試裝置的控制狀態改為啟用。 請檢查 Get-MpComputerStatus,確認該政策是否已套用,如下片段所示:


DeviceControlDefaultEnforcement   : DefaultAllow
DeviceControlPoliciesLastUpdated  : 1/4/2024 10:27:06 AM
DeviceControlState                : Enabled

在測試裝置中插入 USB 隨身碟。 沒有任何限制;允許所有類型的存取方式 (讀、寫、執行及列印) 。 會建立一個紀錄以顯示 USB 裝置曾被連接。 你可以使用以下範例的進階狩獵查詢來查看:


DeviceEvents
| where ActionType == "PnpDeviceConnected"
| extend parsed=parse_json(AdditionalFields)
| extend MediaClass = tostring(parsed.ClassName)
| extend MediaDeviceId = tostring(parsed.DeviceId)
| extend MediaDescription = tostring(parsed.DeviceDescription)
| extend MediaSerialNumber = tostring(parsed.SerialNumber)
| where MediaClass == "USB"
| project Timestamp, DeviceId, DeviceName, AccountName, AccountDomain, MediaClass, MediaDeviceId, MediaDescription, MediaSerialNumber, parsed
| order by Timestamp desc

此範例查詢會以 MediaClass來過濾事件。 預設行為可變更為拒絕所有裝置,或將某些裝置家族排除在裝置控制之外。 把預設行為改成拒絕,然後把裝置控制設為只套用到可移除儲存裝置。

若使用 Intune,請使用自訂設定檔來設定裝置控制設定,如下:

  • 設定 ./Vendor/MSFT/Defender/Configuration/DeviceControlEnabled 為 1
  • 設定 ./Vendor/MSFT/Defender/Configuration/DefaultEnforcement 為 2
  • 設定 ./Vendor/MSFT/Defender/Configuration/SecuredDevicesConfiguration 為 RemovableMediaDevices

將你的政策部署到測試裝置。 使用 Get-MpComputerStatus 確認預設強制執行設定為拒絕,如下片段所示:


DeviceControlDefaultEnforcement  : DefaultDeny
DeviceControlPoliciesLastUpdated : 1/4/2024 10:27:06 AM
DeviceControlState               : Enabled

將 USB 裝置取出並重新插入測試機。 試著打開硬碟。 硬碟無法存取,並跳出訊息表示存取被拒絕。

注意事項

範本、說明和範例可 在此取得。

步驟一:拒絕所有可移除媒體

為了客製化行為,裝置控制使用結合群組與規則的政策。 首先部署一項政策,拒絕所有可移除儲存裝置的存取,並透過向入口網站及使用者發送通知來審核事件。 下圖總結了這些設定:

圖片顯示裝置控制設定,以拒絕所有可移除媒體。

為了控制存取,裝置會被組織成群組。 此策略使用一個稱為 All removable media devices的群組。 當此策略部署到測試裝置後,重新插入 USB。 螢幕上會出現通知,表示裝置存取受限制。

在進階搜捕中,該事件也會在15分鐘內出現。 您可以使用以下範例查詢查看結果:


DeviceEvents
| where ActionType == "RemovableStoragePolicyTriggered"
| extend parsed=parse_json(AdditionalFields)
| extend RemovableStorageAccess = tostring(parsed.RemovableStorageAccess)
| extend RemovableStoragePolicyVerdict = tostring(parsed.RemovableStoragePolicyVerdict)
| extend MediaBusType = tostring(parsed.BusType)
| extend MediaClassGuid = tostring(parsed.ClassGuid)
| extend MediaClassName = tostring(parsed.ClassName)
| extend MediaDeviceId = tostring(parsed.DeviceId)
| extend MediaInstanceId = tostring(parsed.DeviceInstanceId)
| extend MediaName = tostring(parsed.MediaName)
| extend RemovableStoragePolicy = tostring(parsed.RemovableStoragePolicy)
| extend MediaProductId = tostring(parsed.ProductId)
| extend MediaVendorId = tostring(parsed.VendorId)
| extend MediaSerialNumber = tostring(parsed.SerialNumber)
|project Timestamp, DeviceId, DeviceName, InitiatingProcessAccountName, ActionType, RemovableStorageAccess, RemovableStoragePolicyVerdict, MediaBusType, MediaClassGuid, MediaClassName, MediaDeviceId, MediaInstanceId, MediaName, RemovableStoragePolicy, MediaProductId, MediaVendorId, MediaSerialNumber, FolderPath, FileSize
| order by Timestamp desc

注意事項

使用進階狩獵功能,你每天最多可以查看每台裝置300個事件。

選擇事件以查看關於政策和裝置的資訊。

步驟二:允許授權的 USB 裝置存取

要授權存取一組授權的 USB 裝置,請建立一個群組來識別這些裝置。 我們稱這個群組 Authorized USBs為 ,並使用了下圖所示的設定:

截圖顯示一組授權裝置的設定。

在我們的例子中,授權的 USB 群組包含一個以 InstancePathId. 來識別的單一裝置。 在部署樣本前,你可以將測試裝置的值改成 。InstancePathId 請參閱使用 Windows 裝置管理員來判斷裝置屬性,以及使用報告與進階搜尋來確定裝置屬性,了解如何找到正確的值。

請注意,已授權的 USB 群組已排除在「全部拒絕」原則之外。 這可確保這些裝置會依據其他原則進行評估。 原則不會依序評估,因此每項原則在單獨評估時都應該是正確的。 政策部署後,重新插入核准的 USB 裝置。 你應該會看到對該裝置具有完整存取權限。 再插入另一顆 USB,確認該裝置的存取被封鎖。

裝置控制有很多方法可以根據屬性來分組裝置。 欲了解更多資訊,請參閱 適用於端點的 Microsoft Defender 中的裝置控制政策。

步驟 3:允許不同類型的裝置使用不同層級的存取權限

要為不同裝置建立不同行為,請將它們分到不同的群組中。 在我們的例子中,我們使用一個稱為 Read Only USBs的群。 下圖顯示我們使用的設定:

截圖顯示不同裝置存取權限的設定。

在我們的例子中,唯讀 USB 群組包含一個以 VID_PID. 來識別的單一裝置。 在部署樣本前,你可以將 的 VID_PID 值改成第二個測試裝置的值。

原則部署完成後,插入已獲授權的 USB 裝置。 你應該會看到已允許完整存取權限。 現在插入第二個測試裝置 (唯讀 USB) 。 你可以用唯讀權限存取裝置。 嘗試建立新檔案或修改檔案時,你應該會看到裝置控制會阻擋它。

如果你插入其他 USB 裝置,應該會因為「拒絕所有其他 USB」政策而被封鎖。

步驟 4:允許特定使用者或群組對裝置擁有不同層級的存取權限

裝置控制允許你透過條件進一步限制存取權限。 最簡單的條件是使用者條件。 在裝置控制中,使用者與群組依據其安全識別(Security Identified (SID) 來識別。

以下截圖展示了我們範例中使用的設定:

截圖顯示裝置控制設定,允許特定使用者有不同層級的存取權限。

預設情況下,樣本使用 的 S-1-1-0全域 SID 。 在部署政策前,你可以更改授權 USB (可寫 USB) User1 綁定的 SID,並將唯讀 USB 綁定的 SID 變更為 User2。

原則部署後,只有使用者 1 對授權 USB 具有寫入權限,而只有使用者 2 對唯讀 USB 具有讀取權限。

裝置控制也支援群組 SID。 將唯讀政策中的 SID 改為包含 User2的群組。 一旦政策重新部署,使用者 2 或該群組中任何其他使用者的規則將相同。

注意事項

對於儲存在 Microsoft Entra 中的群組,請使用物件 ID 而非 SID 來識別使用者群組。

後續步驟