카테고리 없음

Deploying App Control for Business (WDAC) via Intune

Pepuri Ver.Eng 2026. 4. 18. 23:04
반응형

Before We Start

Third-party device control and DLP solutions often provide features to block program execution.

These days, asking an AI about how each feature works usually gives you a decent understanding of the underlying logic.

When I looked into this, the three native Windows options most commonly recommended were:

  • IFEO (Image File Execution Options)
  • AppLocker
  • WDAC (Windows Defender Application Control)

Among these, WDAC has been rebranded as App Control for Business and is now used under that name.

In this post, I'll walk through how to deploy an App Control for Business policy through Intune.


1. What Is App Control for Business (WDAC)?

App Control for Business is still commonly referred to as WDAC in the field. It's frequently compared with AppLocker. Here's how they differ:

App Control for Business vs. AppLocker

Item App Control for Business (WDAC) AppLocker

  App Control for Business (WDAC) AppLocker
Introduced Windows 10+ Windows 7+
Enforcement layer Kernel / boot stage User mode
Bypass difficulty Very high Relatively low
Controlled objects EXE, DLL, scripts, drivers, etc. EXE, DLL, scripts
Trust criteria Signature, hash, path, ISG Signature, hash, path
Managed Installer Supported Not supported
ISG Supported Not supported
Management tools Intune, SCCM, PowerShell, etc. GPO-centric
Microsoft recommendation Preferred for new deployments Secondary use

Key Difference

While AppLocker operates as a user-mode policy, WDAC supports kernel-level enforcement based on Code Integrity. That's the most significant distinction.


2. Creating a Policy

WDAC requires you to create policies in XML format. Microsoft provides a dedicated tool for this.

Installing the App Control Policy Wizard

You can download the Microsoft App Control Wizard

 

 

and use the Policy Creator to build XML-based policies.

 

 

Operationally, the workflow is: deploy a Base Policy → supplement it with Supplemental Policies.

 

Note that Supplemental Policies can only add Allow rules — they cannot lift blocks defined in the Base Policy, nor can they add new deny rules.


Operational Structure

The typical flow is:

Deploy Base Policy
↓ Add exceptions via Supplemental Policy

Notes on Supplemental Policies

  • Can add Allow rules
  • Cannot remove existing Block rules
  • Cannot add new Deny rules

In other words, all blocking (Deny) must be designed at the Base Policy level.

This post does not cover Supplemental Policy deployment.


2.1 The Three Base Templates

The wizard provides three templates out of the box:

 

Template Allowed scope Security Flexibility

Templates Boundaries Security Flexible
DefaultWindows Only essential Windows binaries High Low
AllowMicrosoft + All Microsoft-signed apps Medium Medium
SignedAndReputable (ISG) + Reputable third-party apps Lower High

 

Think of these three as a spectrum — stricter on the left (DefaultWindows), more flexible on the right (SignedAndReputable). Pick the balance that fits your organization's security requirements and operational flexibility.

Strict
DefaultWindows
↓ AllowMicrosoft
↓ SignedAndReputable
Flexible


3. Testing Default Windows Mode

Applying Default Windows Mode

Select Default Windows Mode in the wizard.

Disabling Audit Mode

To verify actual enforcement behavior, disable Audit Mode.

 

 

Proceed with Next.

 

Generating the Policy

Complete the wizard to generate the XML.


4. Deploying the Policy

Intune Admin Center

Navigate to Endpoint Security → App Control for Business.

After creating a policy:

  • Name the policy

 

  • Upload the XML

 

  • Assign targets and create the policy


Verifying Policy Application

Check the applied policy files at:

C:\Windows\System32\CodeIntegrity\CIPolicies\Active

You can compare the folder contents before and after application.

Before
After


Testing

Try launching Chrome.

 

Result: Blocked.


Checking Policies via PowerShell

CiTool.exe -lp

You can also verify the applied policies using this PowerShell command.


5. Designing a Real-World Policy

In practice, most enterprise environments start with AllowMicrosoft or SignedAndReputable as the Base Policy, then layer in Allow rules for LOB applications and Deny rules for risky binaries as needed.

DefaultWindows is theoretically the most secure, but the exception-management overhead is usually too high for general office environments. It tends to be reserved for regulated industries or fixed-function devices.


5.1 Designing an AllowMicrosoft Policy

Template Creation

Select Allow Microsoft Mode.

 

Confirming Chrome Is Blocked

Out of the box, Chrome execution is blocked.

 

Checking the Event Log

You can review enforcement events at:

Applications and Services Logs → Microsoft → Windows → CodeIntegrity → Operational

The log will show that chrome.exe failed to meet the conditions required by the applied Policy ID and was therefore blocked.


For whitelist operation, I chose not to modify the template itself — instead, I added only the necessary exception paths. Below is an example of how I configured those exceptions.

Adding Whitelisted Path Exceptions

Use Add Custom.

 

 

Rather than creating rules path-by-path, I registered the main exception paths using wildcards (*) for broader coverage. This dramatically reduces maintenance overhead — you don't need to update the policy every time a subfolder or new file is added.

 

 

That said, overly permissive wildcards can become bypass points for malware, so it's essential to limit wildcards to the narrowest scope actually needed.

Once the Allow rules are complete, deploy the policy.


Result

Chrome now launches successfully.


Any files outside the allowed paths are still blocked. For example, running a Chrome installer from the desktop will be blocked. This effectively prevents users from installing arbitrary applications. If needed, you can add paths like Downloads to the Allow rules to permit installation.

 

 

You can confirm in the event log that execution was blocked by policy.


What This Achieves

This structure delivers:

  • Prevention of arbitrary application installation
  • Execution limited to approved paths only

5.2 Designing a SignedAndReputable Policy

Finally, let's look at Signed and Reputable Mode.

Template Selection

Select Signed and Reputable Mode.

 

Confirming Policy Application

Check the applied policy files and review the event log.

Testing Chrome Execution

Chrome runs successfully — allowed based on ISG reputation.


6. ISG (Intelligent Security Graph)

ISG is a reputation-based allow mechanism that leverages Microsoft's global security signals to determine whether an application can be trusted.

For organizations with no prior experience running whitelist-based policies, starting with this template is usually the most realistic option.

Most IT environments operate on the principle of "allow broadly by default, block only specific problematic applications" — and the SignedAndReputable mode fits this pattern best.


7. SignedAndReputable Operational Design Flow

Step 1

Deploy the SignedAndReputable Base Policy.

 

Step 2

Enable Managed Installer — this automatically trusts applications deployed via Intune.

 

Step 3

Add Allow rules for key execution paths.

 

Step 4

Add Deny rules for specific risky applications (for example, WinRAR).


Result

  • Chrome → Allowed

 

  • WinRAR → Denied


Important

Deny rules take precedence over Allow rules.


Monitoring via Advanced Hunting

If your devices are onboarded, you can monitor enforcement events through Advanced Hunting:

DeviceEvents
| where ActionType in ("AppControlCodeIntegrityPolicyAudited",
                       "AppControlCodeIntegrityPolicyBlocked")
| summarize
    AuditCount = countif(ActionType endswith "Audited"),
    BlockCount = countif(ActionType endswith "Blocked"),
    LastSeen = max(Timestamp)
    by DeviceName, FileName, FolderPath
| sort by AuditCount + BlockCount desc


Final Thoughts

In my opinion, the most practical starting point is the combination:

SignedAndReputable + Allow rules for key execution paths + Deny rules for specific risky applications

This strikes the best balance between security and operational feasibility for most enterprise environments.

반응형