mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-12 21:37:22 +00:00
commit
4414ea325b
@ -21,9 +21,7 @@
|
||||
href: select-types-of-rules-to-create.md
|
||||
items:
|
||||
- name: Allow apps installed by a managed installer
|
||||
href: use-windows-defender-application-control-with-managed-installer.md
|
||||
- name: Configure managed installer rules
|
||||
href: configure-wdac-managed-installer.md
|
||||
href: configure-authorized-apps-deployed-with-a-managed-installer.md
|
||||
- name: Allow reputable apps with Intelligent Security Graph (ISG)
|
||||
href: use-windows-defender-application-control-with-intelligent-security-graph.md
|
||||
- name: Allow COM object registration
|
||||
|
@ -0,0 +1,162 @@
|
||||
---
|
||||
title: Use audit events to create then enforce WDAC policy rules (Windows 10)
|
||||
description: Learn how audits allow admins to discover apps, binaries, and scripts that should be added to a WDAC policy, then learn how to switch that WDAC policy from audit to enforced mode.
|
||||
keywords: security, malware
|
||||
ms.assetid: 8d6e0474-c475-411b-b095-1c61adb2bdbb
|
||||
ms.prod: m365-security
|
||||
ms.mktglfcycl: deploy
|
||||
ms.sitesec: library
|
||||
ms.pagetype: security
|
||||
ms.localizationpriority: medium
|
||||
audience: ITPro
|
||||
ms.collection: M365-security-compliance
|
||||
author: jsuther1974
|
||||
ms.reviewer: jogeurte
|
||||
ms.reviewer: v-kikl
|
||||
ms.author: dansimp
|
||||
manager: dansimp
|
||||
ms.date: 05/03/2021
|
||||
ms.technology: mde
|
||||
---
|
||||
|
||||
# Use audit events to create WDAC policy rules and Convert **base** policy from audits to enforced
|
||||
|
||||
**Applies to:**
|
||||
|
||||
- Windows 10
|
||||
- Windows Server 2016 and above
|
||||
|
||||
Running Application Control in audit mode lets you discover applications, binaries, and scripts that are missing from your WDAC policy but should be included.
|
||||
|
||||
While a WDAC policy is running in audit mode, any binary that runs but would have been denied is logged in the **Applications and Services Logs\\Microsoft\\Windows\\CodeIntegrity\\Operational** event log. Script and MSI are logged in the **Applications and Services Logs\\Microsoft\\Windows\\AppLocker\\MSI and Script** event log. These events can be used to generate a new WDAC policy that can be merged with the original Base policy or deployed as a separate Supplemental policy, if allowed.
|
||||
|
||||
## Overview of the process to create WDAC policy to allow apps using audit events
|
||||
|
||||
> [!NOTE]
|
||||
> You must have already deployed a WDAC audit mode policy to use this process. If you have not already done so, see [Deploying Windows Defender Application Control policies](windows-defender-application-control-deployment-guide.md).
|
||||
|
||||
To familiarize yourself with creating WDAC rules from audit events, follow these steps on a device with a WDAC audit mode policy.
|
||||
|
||||
1. Install and run an application not allowed by the WDAC policy but that you want to allow.
|
||||
|
||||
2. Review the **CodeIntegrity - Operational** and **AppLocker - MSI and Script** event logs to confirm events, like those shown in Figure 1, are generated related to the application. For information about the types of events you should see, refer to [Understanding Application Control events](event-id-explanations.md).
|
||||
|
||||
**Figure 1. Exceptions to the deployed WDAC policy** <br>
|
||||
|
||||

|
||||
|
||||
3. In an elevated PowerShell session, run the following commands to initialize variables used by this procedure. This procedure builds upon the **Lamna_FullyManagedClients_Audit.xml** policy introduced in [Create a WDAC policy for fully managed devices](create-wdac-policy-for-fully-managed-devices.md) and will produce a new policy called **EventsPolicy.xml**.
|
||||
|
||||
```powershell
|
||||
$PolicyName= "Lamna_FullyManagedClients_Audit"
|
||||
$LamnaPolicy=$env:userprofile+"\Desktop\"+$PolicyName+".xml"
|
||||
$EventsPolicy=$env:userprofile+"\Desktop\EventsPolicy.xml"
|
||||
$EventsPolicyWarnings=$env:userprofile+"\Desktop\EventsPolicyWarnings.txt"
|
||||
```
|
||||
|
||||
4. Use [New-CIPolicy](/powershell/module/configci/new-cipolicy) to generate a new WDAC policy from logged audit events. This example uses a **FilePublisher** file rule level and a **Hash** fallback level. Warning messages are redirected to a text file **EventsPolicyWarnings.txt**.
|
||||
|
||||
```powershell
|
||||
New-CIPolicy -FilePath $EventsPolicy -Audit -Level FilePublisher -Fallback Hash –UserPEs -MultiplePolicyFormat 3> $EventsPolicyWarnings
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> When you create policies from audit events, you should carefully consider the file rule level that you select to trust. The preceding example uses the **FilePublisher** rule level with a fallback level of **Hash**, which may be more specific than desired. You can re-run the above command using different **-Level** and **-Fallback** options to meet your needs. For more information about WDAC rule levels, see [Understand WDAC policy rules and file rules](select-types-of-rules-to-create.md).
|
||||
|
||||
5. Find and review the WDAC policy file **EventsPolicy.xml** that should be found on your desktop. Ensure that it only includes file and signer rules for applications, binaries, and scripts you wish to allow. You can remove rules by manually editing the policy XML or use the WDAC Policy Wizard tool (see [Editing existing base and supplemental WDAC policies with the Wizard](wdac-wizard-editing-policy.md)).
|
||||
|
||||
6. Find and review the text file **EventsPolicyWarnings.txt** that should be found on your desktop. This file will include a warning for any files that WDAC couldn't create a rule for at either the specified rule level or fallback rule level.
|
||||
|
||||
> [!NOTE]
|
||||
> New-CIPolicy only creates rules for files that can still be found on disk. Files which are no longer present on the system will not have a rule created to allow them. However, the event log should have sufficient information to allow these files by manually editing the policy XML to add rules. You can use an existing rule as a template and verify your results against the WDAC policy schema definition found at **%windir%\schemas\CodeIntegrity\cipolicy.xsd**.
|
||||
|
||||
7. Merge **EventsPolicy.xml** with the Base policy **Lamna_FullyManagedClients_Audit.xml** or convert it to a supplemental policy.
|
||||
|
||||
For information on merging policies, refer to [Merge Windows Defender Application Control policies](merge-windows-defender-application-control-policies.md) and for information on supplemental policies see [Use multiple Windows Defender Application Control Policies](deploy-multiple-windows-defender-application-control-policies.md).
|
||||
|
||||
8. Convert the Base or Supplemental policy to binary and deploy using your preferred method.
|
||||
|
||||
## Convert WDAC **BASE** policy from audit to enforced
|
||||
|
||||
As described in [common WDAC deployment scenarios](types-of-devices.md), we'll use the example of **Lamna Healthcare Company (Lamna)** to illustrate this scenario. Lamna is attempting to adopt stronger application policies, including the use of application control to prevent unwanted or unauthorized applications from running on their managed devices.
|
||||
|
||||
**Alice Pena** is the IT team lead responsible for Lamna's WDAC rollout.
|
||||
|
||||
Alice previously created and deployed a policy for the organization's [fully managed devices](create-wdac-policy-for-fully-managed-devices.md). They updated the policy based on audit event data as described in [Use audit events to create WDAC policy rules](audit-windows-defender-application-control-policies.md) and redeployed it. All remaining audit events are as expected and Alice is ready to switch to enforcement mode.
|
||||
|
||||
1. Initialize the variables that will be used and create the enforced policy by copying the audit version.
|
||||
|
||||
```powershell
|
||||
$EnforcedPolicyName = "Lamna_FullyManagedClients_Enforced"
|
||||
$AuditPolicyXML = $env:USERPROFILE+"\Desktop\Lamna_FullyManagedClients_Audit.xml"
|
||||
$EnforcedPolicyXML = $env:USERPROFILE+"\Desktop\"+$EnforcedPolicyName+".xml"
|
||||
cp $AuditPolicyXML $EnforcedPolicyXML
|
||||
```
|
||||
|
||||
2. Use [Set-CIPolicyIdInfo](/powershell/module/configci/set-cipolicyidinfo) to give the new policy a unique ID, and descriptive name. Changing the ID and name lets you deploy the enforced policy side by side with the audit policy. Do this step if you plan to harden your WDAC policy over time. If you prefer to replace the audit policy in-place, you can skip this step.
|
||||
|
||||
```powershell
|
||||
$EnforcedPolicyID = Set-CIPolicyIdInfo -FilePath $EnforcedPolicyXML -PolicyName $EnforcedPolicyName -ResetPolicyID
|
||||
$EnforcedPolicyID = $EnforcedPolicyID.Substring(11)
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If Set-CIPolicyIdInfo does not output the new PolicyID value on your Windows 10 version, you will need to obtain the *PolicyId* value from the XML directly.
|
||||
|
||||
3. *[Optionally]* Use [Set-RuleOption](/powershell/module/configci/set-ruleoption) to enable rule options 9 (“Advanced Boot Options Menu”) and 10 (“Boot Audit on Failure”). Option 9 allows users to disable WDAC enforcement for a single boot session from a pre-boot menu. Option 10 instructs Windows to switch the policy from enforcement to audit only if a boot critical kernel-mode driver is blocked. We strongly recommend these options when deploying a new enforced policy to your first deployment ring. Then, if no issues are found, you can remove the options and restart your deployment.
|
||||
|
||||
```powershell
|
||||
Set-RuleOption -FilePath $EnforcedPolicyXML -Option 9
|
||||
Set-RuleOption -FilePath $EnforcedPolicyXML -Option 10
|
||||
```
|
||||
|
||||
4. Use Set-RuleOption to delete the audit mode rule option, which changes the policy to enforcement:
|
||||
|
||||
```powershell
|
||||
Set-RuleOption -FilePath $EnforcedPolicyXML -Option 3 -Delete
|
||||
```
|
||||
|
||||
5. Use [ConvertFrom-CIPolicy](/powershell/module/configci/convertfrom-cipolicy) to convert the new WDAC policy to binary:
|
||||
|
||||
> [!NOTE]
|
||||
> If you did not use -ResetPolicyID in Step 2 above, then you must replace $EnforcedPolicyID in the following command with the *PolicyID* attribute found in your base policy XML.
|
||||
|
||||
```powershell
|
||||
$EnforcedPolicyBinary = $env:USERPROFILE+"\Desktop\"+$EnforcedPolicyName+"_"+$EnforcedPolicyID+".xml"
|
||||
ConvertFrom-CIPolicy $EnforcedPolicyXML $EnforcedPolicyBinary
|
||||
```
|
||||
|
||||
## Make copies of any needed **supplemental** policies to use with the enforced base policy
|
||||
|
||||
Since the enforced policy was given a unique PolicyID in the previous procedure, you need to duplicate any needed supplemental policies to use with the enforced policy. Supplemental policies always inherit the Audit or Enforcement mode from the base policy they modify. If you didn't reset the enforcement base policy's PolicyID, you can skip this procedure.
|
||||
|
||||
1. Initialize the variables that will be used and create a copy of the current supplemental policy. Some variables and files from the previous procedure will also be used.
|
||||
|
||||
```powershell
|
||||
$SupplementalPolicyName = "Lamna_Supplemental1"
|
||||
$CurrentSupplementalPolicy = $env:USERPROFILE+"\Desktop\"+$SupplementalPolicyName+"_Audit.xml"
|
||||
$EnforcedSupplementalPolicy = $env:USERPROFILE+"\Desktop\"+$SupplementalPolicyName+"_Enforced.xml"
|
||||
```
|
||||
|
||||
2. Use [Set-CIPolicyIdInfo](/powershell/module/configci/set-cipolicyidinfo) to give the new supplemental policy a unique ID and descriptive name, and change which base policy to supplement.
|
||||
|
||||
```powershell
|
||||
$SupplementalPolicyID = Set-CIPolicyIdInfo -FilePath $EnforcedSupplementalPolicy -PolicyName $SupplementalPolicyName -SupplementsBasePolicyID $EnforcedPolicyID -BasePolicyToSupplementPath $EnforcedPolicyXML -ResetPolicyID
|
||||
$SupplementalPolicyID = $SupplementalPolicyID.Substring(11)
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If Set-CIPolicyIdInfo does not output the new PolicyID value on your Windows 10 version, you will need to obtain the *PolicyId* value from the XML directly.
|
||||
|
||||
3. Use [ConvertFrom-CIPolicy](/powershell/module/configci/convertfrom-cipolicy) to convert the new WDAC supplemental policy to binary:
|
||||
|
||||
```powershell
|
||||
$EnforcedSuppPolicyBinary = $env:USERPROFILE+"\Desktop\"+$SupplementalPolicyName+"_"+$SupplementalPolicyID+".xml"
|
||||
ConvertFrom-CIPolicy $EnforcedSupplementalPolicy $EnforcedSuppPolicyBinary
|
||||
```
|
||||
|
||||
4. Repeat the steps above if you have other supplemental policies to update.
|
||||
|
||||
## Deploy your enforced policy and supplemental policies
|
||||
|
||||
Now that your base policy is in enforced mode, you can begin to deploy it to your managed endpoints. For information about deploying policies, see [Deploying Windows Defender Application Control (WDAC) policies](windows-defender-application-control-deployment-guide.md).
|
@ -0,0 +1,194 @@
|
||||
---
|
||||
title: Configure authorized apps deployed with a WDAC managed installer (Windows 10)
|
||||
description: Explains how to configure a custom Manged Installer.
|
||||
keywords: security, malware
|
||||
ms.assetid: 8d6e0474-c475-411b-b095-1c61adb2bdbb
|
||||
ms.prod: m365-security
|
||||
ms.mktglfcycl: deploy
|
||||
ms.sitesec: library
|
||||
ms.pagetype: security
|
||||
ms.localizationpriority: medium
|
||||
audience: ITPro
|
||||
ms.collection: M365-security-compliance
|
||||
author: jsuther1974
|
||||
ms.reviewer: isbrahm
|
||||
ms.author: dansimp
|
||||
manager: dansimp
|
||||
ms.date: 08/14/2020
|
||||
ms.technology: mde
|
||||
---
|
||||
|
||||
# Configuring authorized apps deployed by a managed installer with AppLocker and Windows Defender Application Control
|
||||
|
||||
**Applies to:**
|
||||
|
||||
- Windows 10
|
||||
- Windows Server 2019
|
||||
|
||||
Windows 10, version 1703 introduced a new option for Windows Defender Application Control (WDAC), called managed installer, that helps balance security and manageability when enforcing application control policies. This option lets you automatically allow applications installed by a designated software distribution solution such as Microsoft Endpoint Configuration Manager.
|
||||
|
||||
## How does a managed installer work?
|
||||
|
||||
A new rule collection in AppLocker specifies binaries that are trusted by the organization as an authorized source for application deployment. When one of these binaries runs, Windows will monitor the binary's process (and processes it launches) then tag all files it writes as having originated from a managed installer. The managed installer rule collection is configured using Group Policy and can be applied with the Set-AppLockerPolicy PowerShell cmdlet. You can't currently set managed installers with the AppLocker CSP through MDM.
|
||||
|
||||
Having defined your managed installers using AppLocker, you can then configure WDAC to trust files installed by a managed installer by adding the "Enabled:Managed Installer" option to your WDAC policy. Once that option is set, WDAC will check for managed installer origin information when determining whether or not to allow a binary to run. As long as there are no deny rules present for the file, WDAC will allow a file to run based on its managed installer origin.
|
||||
|
||||
You should ensure that the WDAC policy allows the system/boot components and any other authorized applications that can't be deployed through a managed installer.
|
||||
|
||||
## Security considerations with managed installer
|
||||
|
||||
Since managed installer is a heuristic-based mechanism, it doesn't provide the same security guarantees that explicit allow or deny rules do.
|
||||
It is best suited for use where each user operates as a standard user and where all software is deployed and installed by a software distribution solution, such as Microsoft Endpoint Configuration Manager (MEMCM).
|
||||
|
||||
Users with administrator privileges, or malware running as an administrator user on the system, may be able to circumvent the intent of Windows Defender Application Control when the managed installer option is allowed.
|
||||
|
||||
If a managed installer process runs in the context of a user with standard privileges, then it is possible that standard users or malware running as standard user may be able to circumvent the intent of Windows Defender Application Control.
|
||||
|
||||
Some application installers may automatically run the application at the end of the installation process. If this happens when the installer is run by a managed installer, then the managed installer's heuristic tracking and authorization will extend to all files created during the first run of the application. This could result in over-authorization for executables that were not intended. To avoid that outcome, ensure that the application deployment solution used as a managed installer limits running applications as part of installation.
|
||||
|
||||
## Known limitations with managed installer
|
||||
|
||||
- Application control, based on managed installer, does not support applications that self-update. If an application deployed by a managed installer later updates itself, the updated application files won't include the managed installer origin information, and may not be able to run. When you rely on managed installers, you must deploy and install all application updates using a managed installer, or include rules to authorize the app in the WDAC policy. In some cases, it may be possible to also designate an application binary that performs self-updates as a managed installer. Proper review for functionality and security should be performed for the application before using this method.
|
||||
|
||||
- [Packaged apps (MSIX)](/windows/msix/) deployed through a managed installer aren't tracked by the managed installer heuristic and will need to be separately authorized in your WDAC policy. See [Manage packaged apps with WDAC](manage-packaged-apps-with-windows-defender-application-control.md).
|
||||
|
||||
- Some applications or installers may extract, download, or generate binaries and immediately attempt to run them. Files run by such a process may not be allowed by the managed installer heuristic. In some cases, it may be possible to also designate an application binary that performs such an operation as a managed installer. Proper review for functionality and security should be performed for the application before using this method.
|
||||
|
||||
- The managed installer heuristic doesn't authorize kernel drivers. The WDAC policy must have rules that allow the necessary drivers to run.
|
||||
|
||||
## Configuring the managed installer
|
||||
|
||||
Setting up managed installer tracking and application execution enforcement requires applying both an AppLocker and WDAC policy, with specific rules and options enabled.
|
||||
There are three primary steps to keep in mind:
|
||||
|
||||
- Specify managed installers, by using the Managed Installer rule collection in AppLocker policy.
|
||||
- Enable service enforcement in AppLocker policy.
|
||||
- Enable the managed installer option in a WDAC policy.
|
||||
|
||||
## Specify managed installers using the Managed Installer rule collection in AppLocker policy
|
||||
|
||||
The identity of the managed installer executable(s) is specified in an AppLocker policy, in a Managed Installer rule collection.
|
||||
|
||||
### Create Managed Installer rule collection
|
||||
|
||||
Currently, neither the AppLocker policy creation UI in GPO Editor nor the PowerShell cmdlets allow for directly specifying rules for the Managed Installer rule collection. However, you can use a text editor to make the simple changes needed to an EXE or DLL rule collection policy, to specify Type="ManagedInstaller", so that the new rule can be imported into a GPO.
|
||||
|
||||
1. Use [New-AppLockerPolicy](/powershell/module/applocker/new-applockerpolicy?view=win10-ps) to make an EXE rule for the file you are designating as a managed installer. Note that only EXE file types can be designated as managed installers. Below is an example using the rule type Publisher with a hash fallback but other rule types can be used as well. You may need to reformat the output for readability.
|
||||
|
||||
```powershell
|
||||
Get-ChildItem <exe filepath> | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Publisher, Hash -User Everyone -Xml > AppLocker_MI_PS_ISE.xml
|
||||
```
|
||||
|
||||
2. Manually rename the rule collection to ManagedInstaller
|
||||
|
||||
Change
|
||||
|
||||
```powershell
|
||||
<RuleCollection Type="Exe" EnforcementMode="NotConfigured">
|
||||
```
|
||||
|
||||
to
|
||||
|
||||
```powershell
|
||||
<RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
|
||||
```
|
||||
|
||||
An example of a valid Managed Installer rule collection using Microsoft Endpoint Config Manager (MEMCM) is shown below.
|
||||
|
||||
```xml
|
||||
<RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
|
||||
<FilePublisherRule Id="6cc9a840-b0fd-4f86-aca7-8424a22b4b93" Name="MEMCM - CCMEXEC.EXE, 5.0.0.0+, Microsoft signed" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
|
||||
<Conditions>
|
||||
<FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="CCMEXEC.EXE">
|
||||
<BinaryVersionRange LowSection="5.0.0.0" HighSection="*" />
|
||||
</FilePublisherCondition>
|
||||
</Conditions>
|
||||
</FilePublisherRule>
|
||||
<FilePublisherRule Id="780ae2d3-5047-4240-8a57-767c251cbb12" Name="MEMCM - CCMSETUP.EXE, 5.0.0.0+, Microsoft signed" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
|
||||
<Conditions>
|
||||
<FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="CCMSETUP.EXE">
|
||||
<BinaryVersionRange LowSection="5.0.0.0" HighSection="*" />
|
||||
</FilePublisherCondition>
|
||||
</Conditions>
|
||||
</FilePublisherRule>
|
||||
</RuleCollection>
|
||||
```
|
||||
|
||||
### Enable service enforcement in AppLocker policy
|
||||
|
||||
Since many installation processes rely on services, it is typically necessary to enable tracking of services.
|
||||
Correct tracking of services requires the presence of at least one rule in the rule collection. So, a simple audit only rule will suffice. This can be added to the policy created above, which specifies your managed installer rule collection.
|
||||
|
||||
For example:
|
||||
|
||||
```xml
|
||||
<RuleCollection Type="Dll" EnforcementMode="AuditOnly" >
|
||||
<FilePathRule Id="86f235ad-3f7b-4121-bc95-ea8bde3a5db5" Name="Dummy Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
|
||||
<Conditions>
|
||||
<FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.dll" />
|
||||
</Conditions>
|
||||
</FilePathRule>
|
||||
<RuleCollectionExtensions>
|
||||
<ThresholdExtensions>
|
||||
<Services EnforcementMode="Enabled" />
|
||||
</ThresholdExtensions>
|
||||
<RedstoneExtensions>
|
||||
<SystemApps Allow="Enabled"/>
|
||||
</RedstoneExtensions>
|
||||
</RuleCollectionExtensions>
|
||||
</RuleCollection>
|
||||
<RuleCollection Type="Exe" EnforcementMode="AuditOnly">
|
||||
<FilePathRule Id="9420c496-046d-45ab-bd0e-455b2649e41e" Name="Dummy Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
|
||||
<Conditions>
|
||||
<FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.exe" />
|
||||
</Conditions>
|
||||
</FilePathRule>
|
||||
<RuleCollectionExtensions>
|
||||
<ThresholdExtensions>
|
||||
<Services EnforcementMode="Enabled" />
|
||||
</ThresholdExtensions>
|
||||
<RedstoneExtensions>
|
||||
<SystemApps Allow="Enabled"/>
|
||||
</RedstoneExtensions>
|
||||
</RuleCollectionExtensions>
|
||||
</RuleCollection>
|
||||
```
|
||||
|
||||
## Enable the managed installer option in WDAC policy
|
||||
|
||||
In order to enable trust for the binaries laid down by managed installers, the "Enabled: Managed Installer" option must be specified in your WDAC policy.
|
||||
This can be done by using the [Set-RuleOption cmdlet](/powershell/module/configci/set-ruleoption) with Option 13.
|
||||
|
||||
Below are steps to create a WDAC policy which allows Windows to boot and enables the managed installer option.
|
||||
|
||||
1. Copy the DefaultWindows_Audit policy into your working folder from "C:\Windows\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml"
|
||||
|
||||
2. Reset the policy ID to ensure it is in multiple policy format, and give it a different GUID from the example policies. Also, give it a friendly name to help with identification.
|
||||
|
||||
For example:
|
||||
|
||||
```powershell
|
||||
Set-CIPolicyIdInfo -FilePath <XML filepath> -PolicyName "<friendly name>" -ResetPolicyID
|
||||
```
|
||||
|
||||
3. Set Option 13 (Enabled:Managed Installer)
|
||||
|
||||
```powershell
|
||||
Set-RuleOption -FilePath <XML filepath> -Option 13
|
||||
```
|
||||
|
||||
## Set the AppLocker filter driver to autostart
|
||||
|
||||
To enable the managed installer, you need to set the AppLocker filter driver to autostart, and start it.
|
||||
|
||||
To do so, run the following command as an Administrator:
|
||||
|
||||
```console
|
||||
appidtel.exe start [-mionly]
|
||||
```
|
||||
|
||||
Specify "-mionly" if you will not use the Intelligent Security Graph (ISG).
|
||||
|
||||
## Enabling managed installer logging events
|
||||
|
||||
Refer to [Understanding Application Control Events](event-id-explanations.md#optional-intelligent-security-graph-isg-or-managed-installer-mi-diagnostic-events) for information on enabling optional managed installer diagnostic events.
|
@ -149,7 +149,7 @@ Alice has defined a policy for Lamna's fully-managed devices that makes some tra
|
||||
Possible mitigations:
|
||||
- Use signed WDAC policies and UEFI BIOS access protection to prevent tampering of WDAC policies.
|
||||
- **Managed installer**<br>
|
||||
See [security considerations with managed installer](use-windows-defender-application-control-with-managed-installer.md#security-considerations-with-managed-installer)
|
||||
See [security considerations with managed installer](configure-authorized-apps-deployed-with-a-managed-installer.md#security-considerations-with-managed-installer)
|
||||
|
||||
Existing mitigations applied:
|
||||
- Limit who can elevate to administrator on the device.
|
||||
|
@ -155,7 +155,7 @@ In order to minimize user productivity impact, Alice has defined a policy that m
|
||||
- Use signed WDAC policies and UEFI BIOS access protection to prevent tampering of WDAC policies.
|
||||
- Limit who can elevate to administrator on the device.
|
||||
- **Managed installer**<br>
|
||||
See [security considerations with managed installer](use-windows-defender-application-control-with-managed-installer.md#security-considerations-with-managed-installer)
|
||||
See [security considerations with managed installer](configure-authorized-apps-deployed-with-a-managed-installer.md#security-considerations-with-managed-installer)
|
||||
|
||||
Possible mitigations:
|
||||
- Create and deploy signed catalog files as part of the app deployment process in order to remove the requirement for managed installer.
|
||||
|
@ -22,23 +22,23 @@ ms.technology: mde
|
||||
|
||||
A Windows Defender Application Control (WDAC) policy logs events locally in Windows Event Viewer in either enforced or audit mode. These events are generated under two locations:
|
||||
|
||||
- Event IDs beginning with 30 appear in Applications and Services logs – Microsoft – Windows – CodeIntegrity – Operational
|
||||
- Event IDs beginning with 30 appear in Applications and Services logs | Microsoft | Windows | CodeIntegrity | Operational
|
||||
|
||||
- Event IDs beginning with 80 appear in Applications and Services logs – Microsoft – Windows – AppLocker – MSI and Script
|
||||
- Event IDs beginning with 80 appear in Applications and Services logs | Microsoft | Windows | AppLocker | MSI and Script
|
||||
|
||||
## Microsoft Windows CodeIntegrity Operational log event IDs
|
||||
|
||||
| Event ID | Explanation |
|
||||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| 3076 | Audit executable/dll file |
|
||||
| 3077 | Block executable/dll file |
|
||||
| 3089 | Signing information event correlated with either a 3076 or 3077 event. One 3089 event is generated for each signature of a file. Contains the total number of signatures on a file and an index as to which signature it is.<br>Unsigned files will generate a single 3089 event with TotalSignatureCount 0. Correlated in the "System" portion of the event data under "Correlation ActivityID". |
|
||||
| 3089 | Signing information event correlated with either a 3076 or 3077 event. One 3089 event is generated for each signature of a file. Contains the total number of signatures on a file and an index as to which signature it is. Unsigned files will generate a single 3089 event with TotalSignatureCount 0. Correlated in the "System" portion of the event data under "Correlation ActivityID". |
|
||||
| 3099 | Indicates that a policy has been loaded |
|
||||
|
||||
## Microsoft Windows Applocker MSI and Script log event IDs
|
||||
|
||||
| Event ID | Explanation |
|
||||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| 8028 | Audit script/MSI file generated by Windows LockDown Policy (WLDP) being called by the scripthosts themselves. Note: there is no WDAC enforcement on 3rd party scripthosts. |
|
||||
| 8029 | Block script/MSI file |
|
||||
| 8038 | Signing information event correlated with either a 8028 or 8029 event. One 8038 event is generated for each signature of a script file. Contains the total number of signatures on a script file and an index as to which signature it is. Unsigned script files will generate a single 8038 event with TotalSignatureCount 0. Correlated in the "System" portion of the event data under "Correlation ActivityID". | |
|
||||
@ -48,7 +48,7 @@ A Windows Defender Application Control (WDAC) policy logs events locally in Wind
|
||||
If either the ISG or MI is enabled in a WDAC policy, you can optionally choose to enable 3090, 3091, and 3092 events to provide additional diagnostic information.
|
||||
|
||||
| Event ID | Explanation |
|
||||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| 3090 | Allow executable/dll file |
|
||||
| 3091 | Audit executable/dll file |
|
||||
| 3092 | Block executable/dll file |
|
||||
@ -60,7 +60,7 @@ If either the ISG or MI is enabled in a WDAC policy, you can optionally choose t
|
||||
Below are the fields which help to diagnose what a 3090, 3091, or 3092 event indicates.
|
||||
|
||||
| Name | Explanation |
|
||||
|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| StatusCode | STATUS_SUCCESS indicates a binary passed the active WDAC policies. If so, a 3090 event is generated. If not, a 3091 event is generated if the blocking policy is in audit mode, and a 3092 event is generated if the policy is in enforce mode. |
|
||||
| ManagedInstallerEnabled | Policy trusts a MI |
|
||||
| PassesManagedInstaller | File originated from a trusted MI |
|
||||
|
@ -27,13 +27,14 @@ Windows Defender Application Control (WDAC) events include a number of fields wh
|
||||
Represents the type of signature which verified the image.
|
||||
|
||||
| SignatureType Value | Explanation |
|
||||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| 0 | Unsigned or verification has not been attempted |
|
||||
| 1 | Embedded signature |
|
||||
| 2 | Cached signature; presence of CI EA shows that file had been previously verified |
|
||||
| 3 | Cached catalog verified via Catalog Database or searching catalog directly |
|
||||
| 4 | Un-cached catalog verified via Catalog Database or searching catalog directly |
|
||||
| 5 | Successfully verified using an EA that informs CI which catalog to try first |
|
||||
|6 | AppX / MSIX package catalog verified |
|
||||
| 6 | AppX / MSIX package catalog verified |
|
||||
| 7 | File was verified |
|
||||
|
||||
## ValidatedSigningLevel
|
||||
@ -41,7 +42,7 @@ Represents the type of signature which verified the image.
|
||||
Represents the signature level at which the code was verified.
|
||||
|
||||
| ValidatedSigningLevel Value | Explanation |
|
||||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| 0 | Signing level has not yet been checked |
|
||||
| 1 | File is unsigned |
|
||||
| 2 | Trusted by WDAC policy |
|
||||
@ -60,16 +61,22 @@ Represents the signature level at which the code was verified.
|
||||
Represents why verification failed, or if it succeeded.
|
||||
|
||||
| VerificationError Value | Explanation |
|
||||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|---|----------|
|
||||
| 0 | Successfully verified signature |
|
||||
| 1 | File has an invalid hash |
|
||||
| 2 | File contains shared writable sections |
|
||||
| 3 | File is not signed|
|
||||
| 4 | Revoked signature |
|
||||
| 5 | Expired signature |
|
||||
| 6 | File is signed using a weak hashing algorithm which does not meet the minimum policy |
|
||||
| 7 | Invalid root certificate |
|
||||
| 8 | Signature was unable to be validated; generic error |
|
||||
| 9 | Signing time not trusted |
|
||||
| 10 | The file must be signed using page hashes for this scenario |
|
||||
| 11 | Page hash mismatch |
|
||||
| 12 | Not valid for a PPL (Protected Process Light) |
|
||||
| 13 | Not valid for a PP (Protected Process) |
|
||||
| 14 | The signature is missing the required ARM EKU |
|
||||
| 15 | Failed WHQL check |
|
||||
| 16 | Default policy signing level not met |
|
||||
| 17 | Custom policy signing level not met; returned when signature doesn't validate against an SBCP-defined set of certs |
|
||||
@ -80,5 +87,35 @@ Represents why verification failed, or if it succeeded.
|
||||
| 22 | Not IUM (Isolated User Mode) signed; indicates trying to load a non-trustlet binary into a trustlet |
|
||||
| 23 | Invalid image hash |
|
||||
| 24 | Flight root not allowed; indicates trying to run flight-signed code on production OS |
|
||||
| 25 | Anti-cheat policy violation |
|
||||
| 26 | Explicitly denied by WADC policy |
|
||||
| 27 | The signing chain appears to be tampered/invalid |
|
||||
| 28 | Resource page hash mismatch |
|
||||
|
||||
## Microsoft Root CAs trusted by Windows
|
||||
|
||||
The rule means trust anything signed by a certificate that chains to this root CA.
|
||||
| Root ID | Root Name |
|
||||
|---|----------|
|
||||
| 0| None |
|
||||
| 1| Unknown |
|
||||
| 2 | Self-Signed |
|
||||
| 3 | Authenticode |
|
||||
| 4 | Microsoft Product Root 1997 |
|
||||
| 5 | Microsoft Product Root 2001 |
|
||||
| 6 | Microsoft Product Root 2010 |
|
||||
| 7 | Microsoft Standard Root 2011 |
|
||||
| 8 | Microsoft Code Verification Root 2006 |
|
||||
| 9 | Microsoft Test Root 1999 |
|
||||
| 10 | Microsoft Test Root 2010 |
|
||||
| 11 | Microsoft DMD Test Root 2005 |
|
||||
| 12 | Microsoft DMDRoot 2005 |
|
||||
| 13 | Microsoft DMD Preview Root 2005 |
|
||||
| 14 | Microsoft Flight Root 2014 |
|
||||
| 15 | Microsoft Third Party Marketplace Root |
|
||||
| 16 | Microsoft ECC Testing Root CA 2017 |
|
||||
| 17 | Microsoft ECC Development Root CA 2018 |
|
||||
| 18 | Microsoft ECC Product Root CA 2018 |
|
||||
| 19 | Microsoft ECC Devices Root CA 2017 |
|
||||
|
||||
For well-known roots, the TBS hashes for the certificates are baked into the code for WDAC. For example, they don’t need to be listed as TBS hashes in the policy file.
|
@ -34,7 +34,7 @@ ms.technology: mde
|
||||
| Per-User and Per-User group rules | Not available (policies are device-wide) | Available on Windows 8+ |
|
||||
| Kernel mode policies | Available on all Windows 10 versions | Not available |
|
||||
| Per-app rules | [Available on 1703+](./use-windows-defender-application-control-policy-to-control-specific-plug-ins-add-ins-and-modules.md) | Not available |
|
||||
| Managed Installer (MI) | [Available on 1703+](./use-windows-defender-application-control-with-managed-installer.md) | Not available |
|
||||
| Managed Installer (MI) | [Available on 1703+](./configure-authorized-apps-deployed-with-a-managed-installer.md) | Not available |
|
||||
| Reputation-Based intelligence | [Available on 1709+](./use-windows-defender-application-control-with-intelligent-security-graph.md) | Not available |
|
||||
| Multiple policy support | [Available on 1903+](./deploy-multiple-windows-defender-application-control-policies.md) | Not available |
|
||||
| Path-based rules | [Available on 1903+.](./select-types-of-rules-to-create.md#more-information-about-filepath-rules) Exclusions are not supported. Runtime user-writeability check enforced by default. | Available on Windows 8+. Exclusions are supported. No runtime user-writeability check. |
|
||||
|
@ -59,7 +59,7 @@ In addition, we recommend using the [Set-CIPolicyVersion](/powershell/module/con
|
||||
|
||||
### Policy rule updates
|
||||
|
||||
As new apps are deployed or existing apps are updated by the software publisher, you may need to make revisions to your rules to ensure that these apps run correctly. Whether policy rule updates are required will depend significantly on the types of rules your policy includes. Rules based on codesigning certificates provide the most resiliency against app changes while rules based on file attributes or hash are most likely to require updates when apps change. Alternatively, if you leverage WDAC [managed installer](use-windows-defender-application-control-with-managed-installer.md) functionality and consistently deploy all apps and their updates through your managed installer, then you are less likely to need policy updates.
|
||||
As new apps are deployed or existing apps are updated by the software publisher, you may need to make revisions to your rules to ensure that these apps run correctly. Whether policy rule updates are required will depend significantly on the types of rules your policy includes. Rules based on codesigning certificates provide the most resiliency against app changes while rules based on file attributes or hash are most likely to require updates when apps change. Alternatively, if you leverage WDAC [managed installer](configure-authorized-apps-deployed-with-a-managed-installer.md) functionality and consistently deploy all apps and their updates through your managed installer, then you are less likely to need policy updates.
|
||||
|
||||
## WDAC event management
|
||||
|
||||
|
@ -63,7 +63,7 @@ You can set several rule options within a WDAC policy. Table 1 describes each ru
|
||||
| **10 Enabled:Boot Audit on Failure** | Used when the WDAC policy is in enforcement mode. When a driver fails during startup, the WDAC policy will be placed in audit mode so that Windows will load. Administrators can validate the reason for the failure in the CodeIntegrity event log. |
|
||||
| **11 Disabled:Script Enforcement** | This option disables script enforcement options. Unsigned PowerShell scripts and interactive PowerShell are no longer restricted to [Constrained Language Mode](/powershell/module/microsoft.powershell.core/about/about_language_modes). NOTE: This option is supported on 1709, 1803, and 1809 builds with the 2019 10C LCU or higher, and on devices with the Windows 10 May 2019 Update (1903) and higher. Using it on versions of Windows 10 without the proper update may have unintended results. |
|
||||
| **12 Required:Enforce Store Applications** | If this rule option is enabled, WDAC policies will also apply to Universal Windows applications. |
|
||||
| **13 Enabled:Managed Installer** | Use this option to automatically allow applications installed by a managed installer. For more information, see [Authorize apps deployed with a WDAC managed installer](use-windows-defender-application-control-with-managed-installer.md) |
|
||||
| **13 Enabled:Managed Installer** | Use this option to automatically allow applications installed by a managed installer. For more information, see [Authorize apps deployed with a WDAC managed installer](configure-authorized-apps-deployed-with-a-managed-installer.md) |
|
||||
| **14 Enabled:Intelligent Security Graph Authorization** | Use this option to automatically allow applications with "known good" reputation as defined by Microsoft’s Intelligent Security Graph (ISG). |
|
||||
| **15 Enabled:Invalidate EAs on Reboot** | When the Intelligent Security Graph option (14) is used, WDAC sets an extended file attribute that indicates that the file was authorized to run. This option will cause WDAC to periodically revalidate the reputation for files that were authorized by the ISG.|
|
||||
| **16 Enabled:Update Policy No Reboot** | Use this option to allow future WDAC policy updates to apply without requiring a system reboot. NOTE: This option is only supported on Windows 10, version 1709, and above.|
|
||||
@ -126,6 +126,19 @@ Wildcards can be used at the beginning or end of a path rule; only one wildcard
|
||||
|
||||
You can also use the following macros when the exact volume may vary: `%OSDRIVE%`, `%WINDIR%`, `%SYSTEM32%`.
|
||||
|
||||
## More information about hashes
|
||||
|
||||
### Why does scan create four hash rules per XML file?
|
||||
|
||||
The PowerShell cmdlet will produce an Authenticode Sha1 Hash, Sha256 Hash, Sha1 Page Hash, Sha256 Page Hash.
|
||||
During validation CI will choose which hashes to calculate depending on how the file is signed. For example, if the file is page-hash signed the entire file would not get paged in to do a full sha256 authenticode and we would just match using the first page hash.
|
||||
|
||||
In the cmdlets, rather than try to predict which hash CI will use, we pre-calculate and use the four hashes (sha1/sha2 authenticode, and sha1/sha2 of first page). This is also resilient, if the signing status of the file changes and necessary for deny rules to ensure that changing/stripping the signature doesn’t result in a different hash than what was in the policy being used by CI.
|
||||
|
||||
### Why does scan create eight hash rules for certain XML files?
|
||||
|
||||
Separate rules are created for UMCI and KMCI. In some cases, files which are purely user-mode or purely kernel-mode may still generate both sets, as CI cannot always precisely determine what is purely user vs. kernel mode and errs on the side of caution.
|
||||
|
||||
## Windows Defender Application Control filename rules
|
||||
|
||||
File name rule levels let you specify file attributes to base a rule on. File name rules provide the same security guarantees that explicit signer rules do, as they are based on non-mutable file attributes. Specification of the file name level occurs when creating new policy rules.
|
||||
|
@ -58,7 +58,7 @@ Organizations with well-defined, centrally-managed app management and deployment
|
||||
|
||||
| Possible answers | Design considerations|
|
||||
| - | - |
|
||||
| All apps are centrally managed and deployed using endpoint management tools like [Microsoft Endpoint Manager](https://www.microsoft.com/microsoft-365/microsoft-endpoint-manager). | Organizations that centrally manage all apps are best-suited for application control. WDAC options like [managed installer](use-windows-defender-application-control-with-managed-installer.md) can make it easy to authorize apps that are deployed by the organization's app distribution management solution. |
|
||||
| All apps are centrally managed and deployed using endpoint management tools like [Microsoft Endpoint Manager](https://www.microsoft.com/microsoft-365/microsoft-endpoint-manager). | Organizations that centrally manage all apps are best-suited for application control. WDAC options like [managed installer](configure-authorized-apps-deployed-with-a-managed-installer.md) can make it easy to authorize apps that are deployed by the organization's app distribution management solution. |
|
||||
| Some apps are centrally managed and deployed, but teams can install additional apps for their members. | [Supplemental policies](deploy-multiple-windows-defender-application-control-policies.md) can be used to allow team-specific exceptions to your core organization-wide WDAC policy. Alternatively, teams can leverage managed installers to install their team-specific apps or admin-only file path rules can be used to allow apps installed by admin users. |
|
||||
| Users and teams are free to download and install apps but the organization wants to restrict that right to prevalent and reputable apps only. | WDAC can integrate with Microsoft's [Intelligent Security Graph](use-windows-defender-application-control-with-intelligent-security-graph.md) (the same source of intelligence that powers Microsoft Defender Antivirus and Windows Defender SmartScreen) to allow only apps and binaries that have positive reputation. |
|
||||
| Users and teams are free to download and install apps without restriction. | WDAC policies can be deployed in audit mode to gain insight into the apps and binaries running in your organization without impacting user and team productivity.|
|
||||
|
@ -31,7 +31,9 @@ Beginning with Windows 10, version 1709, you can set an option to automatically
|
||||
|
||||
## How does the integration between WDAC and the Intelligent Security Graph work?
|
||||
|
||||
The ISG uses the same vast security intelligence and machine learning analytics that power Microsoft Defender SmartScreen and Microsoft Defender Antivirus to help classify applications as having known good, known bad, or unknown reputation. When a binary runs on a system with WDAC enabled with the ISG option, WDAC checks the file's reputation by sending its hash and signing information to the cloud. If the ISG reports that the file has a known good reputation, the $KERNEL.SMARTLOCKER.ORIGINCLAIM kernel Extended Attribute (EA) is written to the file. Every time the binary runs, it is allowed based on its positive reputation unless there is an explicit deny rule set in the WDAC policy. Conversely, a file that has unknown or known bad reputation will be allowed if your WDAC policy explicitly allows it.
|
||||
The ISG uses the same vast security intelligence and machine learning analytics that power Microsoft Defender SmartScreen and Microsoft Defender Antivirus to help classify applications as having "known good," "known bad," or "unknown" reputation. When a binary runs on a system, with WDAC enabled with the ISG option, WDAC checks the file's reputation, by sending its hash and signing information to the cloud. If the ISG reports that the file has a "known good" reputation, the $KERNEL.SMARTLOCKER.ORIGINCLAIM kernel Extended Attribute (EA) is written to the file.
|
||||
|
||||
If your WDAC policy does not have an explicit rule to allow or deny a binary to run, then WDAC will make a call to the cloud to determine whether the binary is familiar and safe. However, if your policy already authorizes or denies the binary, then WDAC will not make a call to the cloud.
|
||||
|
||||
If the file with good reputation is an application installer, its reputation will pass along to any files that it writes to disk. This way, all the files needed to install and run an app inherit the positive reputation data from the installer.
|
||||
|
||||
|
@ -1,59 +0,0 @@
|
||||
---
|
||||
title: Authorize apps installed by a managed installer (Windows 10)
|
||||
description: Explains how to automatically allow applications deployed and installed by a managed installer.
|
||||
keywords: security, malware
|
||||
ms.assetid: 8d6e0474-c475-411b-b095-1c61adb2bdbb
|
||||
ms.prod: m365-security
|
||||
ms.mktglfcycl: deploy
|
||||
ms.sitesec: library
|
||||
ms.pagetype: security
|
||||
ms.localizationpriority: medium
|
||||
audience: ITPro
|
||||
ms.collection: M365-security-compliance
|
||||
author: jsuther1974
|
||||
ms.reviewer: jogeurte
|
||||
ms.author: dansimp
|
||||
manager: dansimp
|
||||
ms.date: 04/20/2021
|
||||
ms.technology: mde
|
||||
---
|
||||
|
||||
# Authorize apps deployed by a managed installer
|
||||
|
||||
**Applies to:**
|
||||
|
||||
- Windows 10
|
||||
- Windows Server 2019
|
||||
|
||||
Windows 10, version 1703 introduced a new option for Windows Defender Application Control (WDAC), called managed installer, that helps balance security and manageability when enforcing application control policies. This option lets you automatically allow applications installed by a designated software distribution solution such as Microsoft Endpoint Configuration Manager.
|
||||
|
||||
## How does a managed installer work?
|
||||
|
||||
A new rule collection in AppLocker specifies binaries that are trusted by the organization as an authorized source for application deployment. When one of these binaries runs, Windows will monitor the binary's process (and processes it launches) and tag all files it writes as having originated from a managed installer. The managed installer rule collection is configured using Group Policy and can be applied with the Set-AppLockerPolicy PowerShell cmdlet. You can't currently set managed installers with the AppLocker CSP through MDM.
|
||||
|
||||
Having defined your managed installers using AppLocker, you can then configure WDAC to trust files installed by a managed installer by adding the Enabled:Managed Installer option to your WDAC policy. Once that option is set, WDAC will check for managed installer origin information when determining whether or not to allow a binary to run. As long as there are no deny rules present for the file, WDAC will allow a file to run based on its managed installer origin.
|
||||
|
||||
You should ensure that the WDAC policy allows the system to boot and any other authorized applications that can't be deployed through a managed installer.
|
||||
|
||||
For an example of a managed installer use case, see [Creating a WDAC policy for fully managed devices](create-wdac-policy-for-fully-managed-devices.md).
|
||||
|
||||
## Security considerations with managed installer
|
||||
|
||||
Since managed installer is a heuristic-based mechanism, it doesn't provide the same security guarantees that explicit allow or deny rules do.
|
||||
It is best suited for use where each user operates as a standard user and where all software is deployed and installed by a software distribution solution, such as Microsoft Endpoint Configuration Manager.
|
||||
|
||||
Users with administrator privileges or malware running as an administrator user on the system may be able to circumvent the intent of Windows Defender Application Control when the managed installer option is allowed.
|
||||
|
||||
If a managed installer process runs in the context of a user with standard privileges, then it is possible that standard users or malware running as standard user may be able to circumvent the intent of Windows Defender Application Control.
|
||||
|
||||
Some application installers may automatically run the application at the end of the installation process. If this happens when the installer is run by a managed installer, then the managed installer's heuristic tracking and authorization will extend to all files created during the first run of the application. This could result in over-authorization for executables that were not intended. To avoid that outcome, ensure that the application deployment solution used as a managed installer limits running applications as part of installation.
|
||||
|
||||
## Known limitations with managed installer
|
||||
|
||||
- Application control based on managed installer does not support applications that self-update. If an application deployed by a managed installer later updates itself, the updated application files won't include the managed installer origin information and may not be able to run. When you rely on managed installers, you must deploy and install all application updates using a managed installer or include rules to authorize the app in the WDAC policy. In some cases, it may be possible to also designate an application binary that performs self-updates as a managed installer. Proper review for functionality and security should be performed for the application before using this method.
|
||||
|
||||
- [Packaged apps (MSIX)](/windows/msix/) deployed through a managed installer aren't tracked by the managed installer heuristic and will need to be separately authorized in your WDAC policy. See [Manage packaged apps with WDAC](manage-packaged-apps-with-windows-defender-application-control.md).
|
||||
|
||||
- Some applications or installers may extract, download, or generate binaries and immediately attempt to run them. Files run by such a process may not be allowed by the managed installer heuristic. In some cases, it may be possible to also designate an application binary that performs such an operation as a managed installer. Proper review for functionality and security should be performed for the application before using this method.
|
||||
|
||||
- The managed installer heuristic doesn't authorize kernel drivers. The WDAC policy must have rules that allow the necessary drivers to run.
|
@ -26,36 +26,36 @@ ms.technology: mde
|
||||
- Windows 10
|
||||
- Windows Server 2016 and above
|
||||
|
||||
Windows 10 includes two technologies that can be used for application control depending on your organization's specific scenarios and requirements: Windows Defender Application Control (WDAC) and AppLocker.
|
||||
Windows 10 includes two technologies that can be used for application control, depending on your organization's specific scenarios and requirements: Windows Defender Application Control (WDAC) and AppLocker.
|
||||
|
||||
## Windows Defender Application Control
|
||||
|
||||
WDAC was introduced with Windows 10 and allows organizations to control which drivers and applications are allowed to run on their Windows 10 clients. WDAC was designed as a security feature under the [servicing criteria](https://www.microsoft.com/msrc/windows-security-servicing-criteria) defined by the Microsoft Security Response Center (MSRC).
|
||||
WDAC was introduced with Windows 10 and allows organizations to control which drivers and applications are allowed to run on their Windows 10 clients. It was designed as a security feature under the [servicing criteria](https://www.microsoft.com/msrc/windows-security-servicing-criteria), defined by the Microsoft Security Response Center (MSRC).
|
||||
|
||||
WDAC policies apply to the managed computer as a whole and affects all users of the device. WDAC rules can be defined based on:
|
||||
|
||||
- Attributes of the codesigning certificate(s) used to sign an app and its binaries
|
||||
- Attributes of the app's binaries that come from the signed metadata for the files, such as Original Filename and version, or the hash of the file
|
||||
- The reputation of the app as determined by Microsoft's [Intelligent Security Graph](use-windows-defender-application-control-with-intelligent-security-graph.md)
|
||||
- The identity of the process that initiated the installation of the app and its binaries ([managed installer](use-windows-defender-application-control-with-managed-installer.md))
|
||||
- The identity of the process that initiated the installation of the app and its binaries ([managed installer](configure-authorized-apps-deployed-with-a-managed-installer.md))
|
||||
- The [path from which the app or file is launched](select-types-of-rules-to-create.md#more-information-about-filepath-rules) (beginning with Windows 10 version 1903)
|
||||
- The process that launched the app or binary
|
||||
|
||||
Note that prior to Windows 10, version 1709, Windows Defender Application Control was known as configurable code integrity (CCI). WDAC was also one of the features which comprised the now-defunct term 'Device Guard'.
|
||||
Note that prior to Windows 10 version 1709, Windows Defender Application Control was known as configurable code integrity (CCI). WDAC was also one of the features that comprised the now-defunct term "Device Guard."
|
||||
|
||||
### WDAC System Requirements
|
||||
|
||||
WDAC policies can be created on any client edition of Windows 10 build 1903+ or on Windows Server 2016 and above.
|
||||
WDAC policies can be created on any client edition of Windows 10 build 1903+, or on Windows Server 2016 and above.
|
||||
|
||||
WDAC policies can be applied to devices running any edition of Windows 10 or Windows Server 2016 and above via a Mobile Device Management (MDM) solution like Intune, a management interface like Configuration Manager, or a script host like PowerShell. Group Policy can also be used to deploy WDAC policies to Windows 10 Enterprise edition or Windows Server 2016 and above, but cannot deploy policies to devices running non-Enterprise SKUs of Windows 10.
|
||||
WDAC policies can be applied to devices running any edition of Windows 10, or Windows Server 2016 and above, via a Mobile Device Management (MDM) solution, for example, Intune; a management interface such as Configuration Manager; or a script host such as PowerShell. Group Policy can also be used to deploy WDAC policies to Windows 10 Enterprise edition, or Windows Server 2016 and above, but cannot deploy policies to devices running non-Enterprise SKUs of Windows 10.
|
||||
|
||||
For more information on which individual WDAC features are available on which WDAC builds, see [WDAC feature availability](feature-availability.md).
|
||||
For more information on which individual WDAC features are available on specific WDAC builds, see [WDAC feature availability](feature-availability.md).
|
||||
|
||||
## AppLocker
|
||||
|
||||
AppLocker was introduced with Windows 7 and allows organizations to control which applications are allowed to run on their Windows clients. AppLocker helps to prevent end users from running unapproved software on their computers, but it does not meet the servicing criteria for being a security feature.
|
||||
AppLocker was introduced with Windows 7, and allows organizations to control which applications are allowed to run on their Windows clients. AppLocker helps to prevent end-users from running unapproved software on their computers but does not meet the servicing criteria for being a security feature.
|
||||
|
||||
AppLocker policies can apply to all users on a computer or to individual users and groups. AppLocker rules can be defined based on:
|
||||
AppLocker policies can apply to all users on a computer, or to individual users and groups. AppLocker rules can be defined based on:
|
||||
|
||||
- Attributes of the codesigning certificate(s) used to sign an app and its binaries
|
||||
- Attributes of the app's binaries that come from the signed metadata for the files, such as Original Filename and version, or the hash of the file
|
||||
@ -68,13 +68,13 @@ AppLocker policies can be deployed using Group Policy or MDM.
|
||||
|
||||
## Choose when to use WDAC or AppLocker
|
||||
|
||||
Generally, it is recommended that customers who are able to implement application control using WDAC rather than AppLocker do so. WDAC is undergoing continual improvements and will be getting added support from Microsoft management platforms. Although AppLocker will continue to receive security fixes, it will not undergo new feature improvements.
|
||||
Generally, it is recommended that customers, who are able to implement application control using WDAC rather than AppLocker, do so. WDAC is undergoing continual improvements, and will be getting added support from Microsoft management platforms. Although AppLocker will continue to receive security fixes, it will not undergo new feature improvements.
|
||||
|
||||
In some cases, however, AppLocker may be the more appropriate technology for your organization. AppLocker is best when:
|
||||
However, in some cases, AppLocker may be the more appropriate technology for your organization. AppLocker is best when:
|
||||
|
||||
- You have a mixed Windows operating system (OS) environment and need to apply the same policy controls to Windows 10 and earlier versions of the OS.
|
||||
- You need to apply different policies for different users or groups on shared computers.
|
||||
- You do not want to enforce application control on application files such as DLLs or drivers.
|
||||
|
||||
AppLocker can also be deployed as a complement to WDAC to add user- or group-specific rules for shared device scenarios where it is important to prevent some users from running specific apps.
|
||||
AppLocker can also be deployed as a complement to WDAC to add user or group-specific rules for shared device scenarios, where it is important to prevent some users from running specific apps.
|
||||
As a best practice, you should enforce WDAC at the most restrictive level possible for your organization, and then you can use AppLocker to further fine-tune the restrictions.
|
||||
|
Loading…
x
Reference in New Issue
Block a user