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.0.tar.gz (66.0 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.0-py3-none-any.whl (67.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: e8mate-0.2.0.tar.gz
  • Upload date:
  • Size: 66.0 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.0.tar.gz
Algorithm Hash digest
SHA256 f7d0b712be337fda236750e684a6f216939546235dda7bfd04f1c465b83331fa
MD5 243b7f48652fd7e14ed20b11fb1dac9a
BLAKE2b-256 bcba6d75bf3b0ac1bc374b42894f9ff0f1dae1bb1698eae53fd40c1efa072b36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: e8mate-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 67.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a487abeae01f5a58b3580e843e16f4896180bfa51e9c51c0320ecac95140fc9
MD5 f4e9981d62224283c5aaf62a4b3dc3a8
BLAKE2b-256 5b895eacdfd8cb9c8afc350a8d11237082215ed34a1d3aaccc38877e7411d7e8

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