Open-source Essential Eight compliance scanner for Australian organisations
Project description
๐ก๏ธ E8Mate โ Open Source Essential Eight Compliance Scanner
Automated assessment of your organisation's cybersecurity posture against Australia's ASD Essential Eight framework.
Why E8Mate?
The Essential Eight is Australia's baseline cybersecurity framework. It's mandatory for Commonwealth government agencies and increasingly expected across the private sector, government supply chains, and cyber insurance applications.
The problem: There is no open-source tool to automatically assess Essential Eight compliance. Existing options are either expensive commercial products or manual Excel checklists.
E8Mate fixes this. It's a free, open-source scanner that:
- ๐ Scans Windows/M365 environments against all 8 controls
- ๐ Scores maturity levels (ML0โML3) per ASD's official methodology
- ๐ Generates audit-ready reports with evidence packages
- ๐ง Prioritises remediation steps to reach your target maturity level
Quick Start
# Install
pip install e8mate
# Scan the local machine
e8mate scan --local
# Scan specific controls
e8mate scan --local --controls patch-os,mfa,admin
# Target a specific maturity level
e8mate scan --local --maturity-level 2
# Output HTML report
e8mate scan --local --output report.html --format html
Essential Eight Controls
| # | Control | ML1 Status |
|---|---|---|
| 1 | Application Control | ๐ In Progress |
| 2 | Patch Applications | ๐ In Progress |
| 3 | Configure MS Office Macros | ๐ In Progress |
| 4 | User Application Hardening | ๐ In Progress |
| 5 | Restrict Admin Privileges | ๐ In Progress |
| 6 | Patch Operating Systems | โ Implemented |
| 7 | Multi-Factor Authentication | ๐ In Progress |
| 8 | Regular Backups | ๐ In Progress |
How It Works
E8Mate runs PowerShell commands (locally or via WinRM) to collect evidence about your system's configuration, then scores each finding against ASD's maturity model rules.
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โ Collectors โโโโโโถโ Scoring โโโโโโถโ Reporters โ
โ (8 controls) โ โ (ML0โML3) โ โ (JSON/HTML) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โ
โโโโโโดโโโโโโ
โTransport โ
โLayer โ
โโโโโโโโโโโโค
โโข Local PS โ
โโข WinRM โ
โโข Graph APIโ
โโโโโโโโโโโโ
Development
# Clone
git clone https://github.com/e8mate/e8mate.git
cd e8mate
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check .
Adding a New Collector
- Create a new file in
e8mate/collectors/(e.g.,patch_apps.py) - Extend
BaseCollectorand implementcollect() - Register it in
e8mate/scanner.pyCOLLECTOR_REGISTRY - Add ML1 rules in
rules/ml1.yaml - Write tests in
tests/test_collectors/
See e8mate/collectors/patch_os.py for a complete example.
Nuclei Templates
E8Mate includes companion Nuclei templates for network-side Essential Eight checks. These test internet-facing services for common misconfigurations.
# Run E8 Nuclei templates
nuclei -t nuclei-templates/ -u https://target.example.com
Roadmap
- v0.1 โ MVP: All 8 collectors at ML1, JSON/HTML reports
- v0.2 โ ML2/ML3 rule definitions, WinRM remote scanning
- v0.3 โ Microsoft Graph API integration (MFA, Conditional Access)
- v0.4 โ Web dashboard for MSPs (multi-tenant)
- v0.5 โ Singapore Cyber Essentials (SS 712:2025) dual-framework support
Important Disclaimer
E8Mate is an assessment tool, not a certification body. Only ASD-approved assessors can formally certify Essential Eight maturity levels. E8Mate helps you prepare for and track compliance, but its results should not be represented as official certification.
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Priority areas:
- Collector implementations for remaining controls
- ML2/ML3 rule definitions
- HTML report template design
- Test coverage
- Documentation
License
MIT License โ see LICENSE for details.
Built with ๐ฆ๐บ๐ค๐ธ๐ฌ by Boon for the Australian and Singaporean cybersecurity community.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file e8mate-0.1.0.tar.gz.
File metadata
- Download URL: e8mate-0.1.0.tar.gz
- Upload date:
- Size: 63.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59a496716fccdfc5817122febf6eb5faf551cdb88d97bb7727e66a63e4cf72cc
|
|
| MD5 |
03de67d8eb828c536b8356b661630f1b
|
|
| BLAKE2b-256 |
e477303516bfc406b641f1d3ea82297eb2db52d5d5251dff0e86a084c083beab
|
File details
Details for the file e8mate-0.1.0-py3-none-any.whl.
File metadata
- Download URL: e8mate-0.1.0-py3-none-any.whl
- Upload date:
- Size: 64.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea797e219070c142adfe0f2f4edf4cb869f7d8e7fa5a0324ec99491873e2c8be
|
|
| MD5 |
4e927ecea0d4ce71d178f8d4081d50ce
|
|
| BLAKE2b-256 |
302a8c1f3f4f1d1aaca72cf976a43d189a9f670e5aaab960beb7daf3357a050b
|