|
| 1 | +# Application Control Bot — App Control, Macros & Hardening Agent |
| 2 | + |
| 3 | +## Role |
| 4 | +Autonomous policy engineer. Manages what's allowed to execute on endpoints — applications (WDAC/AppLocker), Office macros, and browser/PDF hardening settings. Covers three E8 controls: Application Control (ML2), Configure MS Office Macro Settings (ML2), and User Application Hardening (ML2). |
| 5 | + |
| 6 | +## What It Actually Does |
| 7 | + |
| 8 | +### Application Control (WDAC/AppLocker) |
| 9 | +1. **Policy baseline deployment** — Creates and deploys WDAC policies based on customer's approved software inventory |
| 10 | +2. **Audit mode first** — Deploys in audit mode, monitors for blocked apps, refines policy before enforcing |
| 11 | +3. **Exception workflow:** |
| 12 | + - User/IT requests "I need app X" |
| 13 | + - Agent evaluates: Is it signed? Known publisher? Reputation? |
| 14 | + - Creates ticket with recommendation (approve/deny) |
| 15 | + - On approval: updates policy, deploys, verifies |
| 16 | +4. **Policy maintenance** — As software updates, agent updates WDAC rules (new hashes, publisher cert changes) |
| 17 | +5. **Violation monitoring** — Detects and reports policy violations (blocked executions) |
| 18 | +6. **Evidence:** Policy exports, deployment status, exception records with approvals |
| 19 | + |
| 20 | +### Office Macro Settings |
| 21 | +1. **Macro restriction deployment** — Configures Intune policies to block macros from the internet, restrict to trusted locations |
| 22 | +2. **Exception management** — Business-critical macros get documented exceptions with justification |
| 23 | +3. **Drift detection** — Monitors for policy changes or loosening |
| 24 | +4. **Evidence:** Policy exports, exception records |
| 25 | + |
| 26 | +### User Application Hardening |
| 27 | +1. **Browser hardening** — Configures Edge/Chrome policies: disable Flash, block Java in browser, restrict ads/extensions |
| 28 | +2. **PDF reader hardening** — Disable JavaScript in PDF readers |
| 29 | +3. **Office hardening** — Disable OLE, restrict ActiveX |
| 30 | +4. **Monitoring** — Detects configuration drift, re-applies hardening |
| 31 | +5. **Evidence:** Configuration exports, compliance reports |
| 32 | + |
| 33 | +## Open Source Tool Stack |
| 34 | + |
| 35 | +### Application Control |
| 36 | +- **WDAC Wizard** (Microsoft, open source) — GUI/CLI for creating WDAC policies |
| 37 | +- **AaronLocker** (Microsoft, open source PowerShell) — AppLocker policy generation framework |
| 38 | +- **AppControl Manager** (open source) — WDAC policy management tool (see attached screenshot from Richard) |
| 39 | +- **Microsoft Intune** — Policy deployment and compliance monitoring via Graph API |
| 40 | + |
| 41 | +### Macro & Hardening |
| 42 | +- **Microsoft Intune** — Configuration profiles for macro/browser/Office hardening |
| 43 | +- **Group Policy** (fallback) — For orgs not fully Intune-managed |
| 44 | + |
| 45 | +## OpenClaw Agent Architecture |
| 46 | + |
| 47 | +### SOUL.md |
| 48 | +```markdown |
| 49 | +You are the Application Control Operator — an autonomous policy engineer. |
| 50 | + |
| 51 | +Your job: Control what executes on endpoints. Manage WDAC policies, macro restrictions, and application hardening. Be the gatekeeper. |
| 52 | + |
| 53 | +Principles: |
| 54 | +- Start restrictive, loosen only with justification. Default deny. |
| 55 | +- Audit mode before enforcement. Always. Breaking production apps is unacceptable. |
| 56 | +- Every exception needs a business justification and an expiry date. No permanent exceptions without explicit approval. |
| 57 | +- Application control is the #1 most effective E8 control. Treat it with the seriousness it deserves. |
| 58 | +- Document everything. Assessors want to see the process, not just the policy. |
| 59 | +``` |
| 60 | + |
| 61 | +### Skills Required |
| 62 | +1. **wdac-manage** — Create, merge, deploy, audit WDAC policies |
| 63 | +2. **intune-config** — Deploy configuration profiles for macros, browser hardening, Office hardening |
| 64 | +3. **exception-workflow** — Manage exception requests (intake, evaluate, approve/deny, deploy) |
| 65 | +4. **compliance-monitor** — Track policy deployment status, detect drift |
| 66 | +5. **evidence-export** — Policy exports, compliance reports, exception records |
| 67 | + |
| 68 | +### Operational Cadence |
| 69 | +- **Continuous:** Monitor for WDAC violations, new exception requests |
| 70 | +- **Daily:** Review blocked execution events, check for new software deployments needing policy updates |
| 71 | +- **Weekly:** Policy compliance report, exception review |
| 72 | +- **Monthly:** Full policy audit, stale exception cleanup, evidence snapshot |
| 73 | + |
| 74 | +## MVP |
| 75 | +1. Connect to Intune via Graph API, pull current application control policy status |
| 76 | +2. Pull WDAC event logs from endpoints (blocked executions) |
| 77 | +3. Basic exception workflow (intake request, create ticket, track approval) |
| 78 | +4. Compliance report: which devices have WDAC enforced, which don't |
| 79 | +5. Evidence export: policy snapshots + deployment status |
| 80 | + |
| 81 | +## ML2 Specific Requirements |
| 82 | + |
| 83 | +**Application Control — ML2:** |
| 84 | +- Application control is implemented on workstations |
| 85 | +- Application control restricts execution to an approved set |
| 86 | +- Microsoft's recommended block rules are implemented |
| 87 | +- Application control rulesets are validated annually or more frequently |
| 88 | + |
| 89 | +**Configure MS Office Macro Settings — ML2:** |
| 90 | +- Macros from the internet are blocked |
| 91 | +- Macros are only allowed in trusted locations or with trusted publishers |
| 92 | +- Win32 API access from macros is blocked |
| 93 | + |
| 94 | +**User Application Hardening — ML2:** |
| 95 | +- Web browsers don't process Java from the internet |
| 96 | +- Web browsers don't process web advertisements from the internet |
| 97 | +- Internet Explorer 11 is disabled or removed |
| 98 | +- .NET Framework 3.5 is disabled or removed (if not needed) |
| 99 | +- PowerShell 2.0 is disabled or removed |
0 commit comments