2025-09-02 16:42:12 +02:00
2025-09-02 16:42:12 +02:00
2025-09-02 16:42:12 +02:00
2025-09-02 16:42:12 +02:00
2025-09-02 16:42:12 +02:00
2025-09-02 13:31:02 +00:00
2025-09-02 16:42:12 +02:00

E8-CAT Essential Eight Compliance Assessment Tool

E8-CAT is a lightweight PowerShell-based compliance scanner, similar in spirit to CIS-CAT, designed to check Windows workstations and servers against the ACSC Essential Eight hardening strategies.

This build includes rules for Maturity Levels 13 and can report on all levels in a single run.


Features

  • Profiles: Run checks for a specific level (ML1, ML2, ML3) or all at once (All).
  • All-level mode: With -Profile All, the scanner evaluates ML13 in one pass and reports per-level results and scores.
  • Per-rule applicability: Rules know their minimum level. If they dont apply to a level, theyre marked N/A.
  • Evidence-based: Each rule outputs evidence showing registry values, feature state, or script results.
  • Skip logic: If a product isnt installed (e.g., Chrome, Edge, Firefox, IE on Win11), the rule reports SKIPPED.
  • Cross-scope checks: Registry policies are checked under both HKLM and HKCU.
  • Output formats: JSON, CSV, and HTML reports saved under .\out\.
  • PowerShell 5.1 compatible: Works on standard Windows builds (no modern operators like ??).

Usage

Set-ExecutionPolicy Bypass -Scope Process -Force

# Navigate into the E8-CAT folder
Set-Location .\E8-CAT

# Run all levels in one pass
.\E8-CAT.ps1 -Profile All

# Run a specific maturity level
.\E8-CAT.ps1 -Profile ML1
.\E8-CAT.ps1 -Profile ML2
.\E8-CAT.ps1 -Profile ML3

Outputs

Results are written to .\out with timestamped filenames:

  • CSV Easy import into Excel or SIEM tools
  • JSON Machine-readable for pipelines and dashboards
  • HTML Human-friendly report with tables and score summaries

Example output files:

.\out\E8CAT-ML1-20250902-153936.csv
.\out\E8CAT-ML1-20250902-153936.json
.\out\E8CAT-ML1-20250902-153936.html

Rule Coverage

Rules are organised by strategy:

  • RM Restrict Macros:

    • Office macro settings (Word/Excel/PowerPoint/Outlook, Office 15.0 & 16.0)
    • Block macros from the Internet
    • Macro runtime AV scanning
    • Trusted Publisher enforcement (ML3)
  • AH Application Hardening:

    • Internet Explorer 11 feature disabled (skips on Win11)
    • Java browser plugin absent
    • Microsoft Edge SmartScreen + download restrictions
    • Chrome SafeBrowsing, download restrictions, extension blocklist
    • Firefox enterprise policy presence
    • Windows SmartScreen (multiple policy keys)
  • AC Application Control:

    • AppLocker policy present and enforced (not AuditOnly)
    • Windows Defender Application Control (WDAC) policy present
    • Software Restriction Policies present
  • RA Restrict Admin Privileges:

    • Built-in Administrator account disabled
    • UAC (EnableLUA) enabled
    • Local Administrator Password Solution (LAPS) policy present (Windows or legacy)

Rule Semantics

Rules are defined in .\rules\*.json. Each rule specifies:

  • id, title, strategy, type, script (or registry/command parameters)
  • minLevel (ML1, ML2, ML3)

Return values in rules:

  • $truePASS
  • $falseFAIL
  • $nullSKIPPED

Profiles

Profiles are stored under .\profiles\ml1.json, ml2.json, ml3.json. They contain the rule IDs included at each level.
When running -Profile All, these profiles are ignored and all rules are checked, with results shown for each level.


Example Run

PS C:\E8-CAT> .\E8-CAT.ps1 -Profile All
E8-CAT ML1 score: 78.9% (PASS=15 / FAIL=4 / Total=19)
E8-CAT ML2 score: 65.0% (PASS=13 / FAIL=7 / Total=20)
E8-CAT ML3 score: 42.9% (PASS=9 / FAIL=12 / Total=21)
Saved: .\out\E8CAT-All-20250902-161413.json
Saved: .\out\E8CAT-All-20250902-161413.csv
Saved: .\out\E8CAT-All-20250902-161413.html
Description
Essential Eight compliance assessment tool
Readme MIT 34 KiB
Languages
PowerShell 100%