Skip to main content

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.

License: MIT Python 3.10+


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

  1. Create a new file in e8mate/collectors/ (e.g., patch_apps.py)
  2. Extend BaseCollector and implement collect()
  3. Register it in e8mate/scanner.py COLLECTOR_REGISTRY
  4. Add ML1 rules in rules/ml1.yaml
  5. 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

e8mate-0.1.0.tar.gz (63.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

e8mate-0.1.0-py3-none-any.whl (64.9 kB view details)

Uploaded Python 3

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

Hashes for e8mate-0.1.0.tar.gz
Algorithm Hash digest
SHA256 59a496716fccdfc5817122febf6eb5faf551cdb88d97bb7727e66a63e4cf72cc
MD5 03de67d8eb828c536b8356b661630f1b
BLAKE2b-256 e477303516bfc406b641f1d3ea82297eb2db52d5d5251dff0e86a084c083beab

See more details on using hashes here.

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

Hashes for e8mate-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea797e219070c142adfe0f2f4edf4cb869f7d8e7fa5a0324ec99491873e2c8be
MD5 4e927ecea0d4ce71d178f8d4081d50ce
BLAKE2b-256 302a8c1f3f4f1d1aaca72cf976a43d189a9f670e5aaab960beb7daf3357a050b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page