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.

PyPI Python 3.10+ License: MIT Security Score


Why E8Mate?

The Essential Eight is Australia's baseline cybersecurity framework — mandatory for Commonwealth agencies, increasingly required by cyber insurers and government supply chains.

The problem: No open-source tool to automatically assess Essential Eight compliance. Existing options are expensive commercial products or manual Excel checklists.

E8Mate fixes this. Free, open-source, and supports three frameworks:

  • 🇦🇺 Essential Eight — ASD Maturity Model (Australia)
  • 🇸🇬 Cyber Essentials — CSA SS 712:2025 (Singapore)
  • 🌏 CIS Controls v8 — Global best practices

Quick Start

# Install from PyPI
pip install e8mate

# Scan the local Windows machine
e8mate scan

# Generate HTML audit report
e8mate scan --format html --output report.html

# Scan with mock data (for testing on Linux/macOS)
e8mate scan --transport mock --scenario partial

Web Scanner

Try it now at security8.work — free external scan of any domain against all three frameworks. No signup required.

Essential Eight Controls

All 8 controls implemented at Maturity Level 1 with 28 checks:

# Control Checks Status
1 Application Control 3
2 Patch Applications 3
3 Configure MS Office Macros 3
4 User Application Hardening 4
5 Restrict Admin Privileges 4
6 Patch Operating Systems 5
7 Multi-Factor Authentication 3
8 Regular Backups 3

How It Works

Collectors (28 checks)  -->  Scoring (ML0-ML3)  -->  Reporters (JSON/HTML)
       |
  Transport Layer
  +-- LocalPS      Windows PowerShell (direct)
  +-- WinRM        Remote Windows scanning
  +-- Mock         Dev/demo (3 scenarios)

SaaS Dashboard

Multi-tenant MSP dashboard at security8.work/dashboard:

  • Client management with per-org framework selection
  • One-click external scans with grade tracking
  • Branded printable reports (PDF via print)
  • Scheduled scans (daily/weekly/monthly)
  • Remediation tracker with auto-resolve on re-scan
  • User management and audit logging

Nuclei Templates

Companion Nuclei templates for Essential Eight:

nuclei -t nuclei-templates/ -u https://target.example.com -tags essential-eight

Development

git clone https://github.com/boonchuan/e8mate.git
cd e8mate
pip install -e ".[dev]"
pytest
ruff check .

Roadmap

  • v0.1 — All 8 controls at ML1, 28 checks, JSON/HTML reports
  • v0.1 — Web scanner at security8.work (14 external checks)
  • v0.1 — Multi-framework support (AU/SG/Global)
  • v0.1 — SaaS dashboard for MSPs
  • v0.1 — Published on PyPI
  • v0.2 — ML2/ML3 rule definitions
  • v0.3 — Microsoft Graph API (MFA, Conditional Access)
  • v0.4 — Branded PDF report generation
  • v0.5 — Client portal (client-facing login)

Disclaimer

E8Mate is an assessment tool, not a certification body. Only ASD-approved assessors can formally certify Essential Eight maturity levels.

Contributing

Contributions welcome! Priority areas: ML2/ML3 rule definitions, Nuclei templates, test coverage, documentation.

License

MIT License — see LICENSE for details.


Built with 🇦🇺🤝🇸🇬 by Boon for the Australian and Singaporean cybersecurity community.

security8.work · PyPI · GitHub

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.2.1.tar.gz (65.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.2.1-py3-none-any.whl (63.4 kB view details)

Uploaded Python 3

File details

Details for the file e8mate-0.2.1.tar.gz.

File metadata

  • Download URL: e8mate-0.2.1.tar.gz
  • Upload date:
  • Size: 65.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.2.1.tar.gz
Algorithm Hash digest
SHA256 724b1e468f0b782323e34cbe42fba692cf09031b2a59640bf1e9c15252662c18
MD5 846df0c38d39f2a26f6c4e3e95b2dc64
BLAKE2b-256 d648bd32ab31af0915610ce4b7063342678d75bfa246f5a37b38a0c02024b74e

See more details on using hashes here.

File details

Details for the file e8mate-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: e8mate-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 63.4 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 be2cddcf792dc4381562491c0281b56e67aa8a15a32b827cd410dbcd129d1168
MD5 45bd0b128081e54a2f381008d7c48b14
BLAKE2b-256 bcd23af66f0c72d3d5e2246df4e4edfc0db30c2265f31d71e0048f5d0e2892d3

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