Skip to main content

JMo Security Audit Tool Suite

JMo Security Audit Tool Suite

Tests codecov PyPI version Python Versions License: MIT OR Apache-2.0 Docker Pulls GitHub Stars

v1.0.1 | A terminal-first security audit toolkit orchestrating 28 scanners with unified CLI, normalized outputs, and interactive HTML dashboard.

Newsletter Ko-fi GitHub Sponsors Discussions


Overview

JMo Security is an automated security audit framework for scanning code repositories, container images, infrastructure-as-code, web applications, GitLab repos, and Kubernetes clusters. It orchestrates multiple industry-standard security tools with unified reporting and cross-tool deduplication.

Origin Story: Built as my capstone project for Institute of Data x Michigan Tech University's Cybersecurity Bootcamp (graduated October 2025). Now a production-grade security platform. Actively seeking cybersecurity/DevSecOps roles - let's connect!


Key Features

  • 28 Security Scanners - Secrets, SAST, SBOM, SCA, IaC, DAST, and more
  • 6 Target Types - Repos, images, IaC files, URLs, GitLab, Kubernetes
  • Unified Output - JSON, SARIF, Markdown, CSV export, dual-mode HTML dashboard
  • Cross-Tool Deduplication - 30-40% noise reduction
  • SQLite Historical Storage - Track security posture over time with persistent history
  • Machine-Readable Diffs - Compare scans, detect regressions
  • Trend Analysis - Mann-Kendall statistical analysis, security scores
  • Policy-as-Code - OPA-based security policies
  • AI Remediation - MCP integration for Copilot/Claude
  • SLSA Attestation - Supply chain security compliance
  • 6 Compliance Frameworks - OWASP, CWE, NIST, PCI DSS, CIS, MITRE

Get Started

Goal Action
Scan now (Docker) docker run --rm -v $(pwd):/scan ghcr.io/jimmy058910/jmo-security:latest scan --repo /scan
Install CLI pip install jmo-security
Guided setup jmo wizard
Full guide QUICKSTART.md

Quick Example

# Install
pip install jmo-security

# Scan a repository
jmo scan --repo ./myapp --profile balanced --human-logs

# View results
cat results/summaries/SUMMARY.md
open results/summaries/dashboard.html

Docker (Zero Installation)

docker pull ghcr.io/jimmy058910/jmo-security:latest
docker run --rm -v "$(pwd):/scan" ghcr.io/jimmy058910/jmo-security:latest \
  scan --repo /scan --results-dir /scan/results --profile balanced --human-logs

Registries: GHCR (primary — ghcr.io/jimmy058910/jmo-security), Docker Hub (replicated — jmogaming/jmo-security), and ECR Public (replicated — public.ecr.aws/m2d8u2k1/jmo-security). See docs/DOCKER_README.md for registry selection guidance.


Security Tools

29 tools across 12 categories:

Category Tools
Secrets TruffleHog (verified), Nosey Parker, Semgrep-Secrets
SAST Semgrep, Bandit, Gosec, Horusec
SBOM Syft, CDXgen, ScanCode
SCA Trivy, Grype, Dependency-Check
IaC Checkov, Checkov-CICD
Cloud/CSPM Prowler, Kubescape
DAST OWASP ZAP, Nuclei, Akto
Dockerfile/Shell Hadolint, ShellCheck
Malware YARA
Mobile MobSF
System Lynis
Policy OPA
Runtime Trivy-RBAC, Falco, AFL++

Tool details: docs/USER_GUIDE.md#tool-overview


Scan Profiles

Profile Tools Time Use Case
fast 9 5-10 min Pre-commit, PR validation
slim 14 12-18 min Cloud/IaC, AWS/Azure/GCP/K8s
balanced 18 18-25 min CI/CD pipelines
deep 29 40-70 min Comprehensive audits

Output Formats

All findings normalized to CommonFinding schema v1.2.0:

Format File Use Case
HTML dashboard.html Interactive visual dashboard
Markdown SUMMARY.md Human-readable overview
JSON findings.json Automation, scripting
SARIF findings.sarif GitHub/GitLab Code Scanning
YAML findings.yaml Alternative data format

Sample outputs: SAMPLE_OUTPUTS.md


Multi-Target Scanning

Scan 6 target types in one unified workflow:

# Repository
jmo scan --repo ./myapp

# Container image
jmo scan --image nginx:latest

# IaC files
jmo scan --terraform-state terraform.tfstate

# Live web app
jmo scan --url https://example.com --tools zap

# GitLab repos
jmo scan --gitlab-group myorg --gitlab-token $TOKEN

# Kubernetes cluster
jmo scan --k8s-context prod --k8s-all-namespaces

# Everything at once
jmo scan --repo . --image myapp:latest --url https://myapp.com

Complete guide: docs/USER_GUIDE.md#multi-target-scanning


Key Commands

# Interactive wizard
jmo wizard

# Scan with profile
jmo scan --repos-dir ~/repos --profile balanced

# CI mode (scan + gate)
jmo ci --repo . --fail-on HIGH

# Tool management (native installs)
jmo tools check --profile balanced  # Check tool status
jmo tools install --profile balanced  # Install missing tools
jmo tools update --critical-only  # Update critical tools
jmo tools outdated  # Show outdated tools

# Compare scans
jmo diff baseline/ current/ --format md

# View history
jmo history list

# Analyze trends
jmo trends analyze --days 30

# Generate reports
jmo report ./results

Full CLI reference: docs/USER_GUIDE.md


CI/CD Integration

GitHub Actions

- name: Security Scan
  run: |
    docker run --rm -v ${{ github.workspace }}:/scan \
      ghcr.io/jimmy058910/jmo-security:latest \
      ci --repo /scan --fail-on HIGH --profile balanced

- name: Upload SARIF
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: results/summaries/findings.sarif

GitLab CI

security_scan:
  image: ghcr.io/jimmy058910/jmo-security:latest
  script:
    - jmo ci --repo . --fail-on HIGH --profile balanced
  artifacts:
    reports:
      sast: results/summaries/findings.sarif

More examples: docs/examples/


Documentation

Getting Started

Document Purpose
QUICKSTART.md 5-minute installation guide
docs/DOCKER_README.md Docker usage guide
docs/USER_GUIDE.md Comprehensive reference

Features

Document Purpose
docs/RESULTS_GUIDE.md Understanding findings
docs/POLICY_AS_CODE.md OPA security policies
docs/SCHEDULE_GUIDE.md Automated scheduling
docs/MCP_SETUP.md AI remediation setup

Reference

Document Purpose
docs/RESULTS_GUIDE.md Results and output formats
docs/API_REFERENCE.md Python API docs
CHANGELOG.md Version history
ROADMAP.md Future plans

Contributing

Document Purpose
CONTRIBUTING.md Development setup
TEST.md Testing guide
docs/RELEASE.md Release process

Documentation hub: docs/index.md


Results Structure

results/
├── individual-repos/      # Repository scans
├── individual-images/     # Container scans
├── individual-iac/        # IaC scans
├── individual-web/        # DAST scans
├── individual-gitlab/     # GitLab scans
├── individual-k8s/        # K8s scans
└── summaries/             # Unified reports
    ├── findings.json
    ├── SUMMARY.md
    ├── dashboard.html
    └── findings.sarif

Severity Levels

Level Meaning Action
CRITICAL Verified secrets, RCE Fix immediately
HIGH SQL injection, XSS Fix within 1 week
MEDIUM Weak crypto, misconfig Fix within 1 month
LOW Info disclosure Fix when convenient

Compliance Frameworks

All findings auto-enriched with 6 frameworks:

  • OWASP Top 10 2021 - Web security categories
  • CWE Top 25 2024 - Common weakness types
  • NIST CSF 2.0 - Risk management
  • PCI DSS 4.0 - Payment security
  • CIS Controls v8.1 - Security best practices
  • MITRE ATT&CK - Attack techniques

Troubleshooting

Issue Solution
Tools not found jmo tools check then jmo tools install
Tool outdated jmo tools update
Permission denied chmod +x scripts/**/*.sh
Docker issues docs/DOCKER_README.md#troubleshooting
CI failures CONTRIBUTING.md#ci-troubleshooting

Contributing

Contributions welcome! See CONTRIBUTING.md for setup and standards.

git clone https://github.com/jimmy058910/jmo-security-repo.git
cd jmo-security-repo
pip install -e .
make dev-deps
make pre-commit-install
make test

Support

If this toolkit saves you time, consider supporting development:


License

Dual licensed under MIT OR Apache 2.0.


Related Resources


Author: James Moceri Project: https://jmotools.com | GitHub Last Updated: March 2026

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jmo_security-1.0.8.tar.gz (655.5 kB view details)

Uploaded Source

Built Distribution

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

jmo_security-1.0.8-py3-none-any.whl (772.3 kB view details)

Uploaded Python 3

File details

Details for the file jmo_security-1.0.8.tar.gz.

File metadata

  • Download URL: jmo_security-1.0.8.tar.gz
  • Upload date:
  • Size: 655.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for jmo_security-1.0.8.tar.gz
Algorithm Hash digest
SHA256 fb6a09ee9b01761bac221d247cc5e08fef260a7fc77c6a651e9855cc6ad0e459
MD5 95c5bc17b2e15583b537a237fd4df45b
BLAKE2b-256 a90ec8ce113ede6ca9b64dc02cd041b4bf1d82069aed782cc4310f1a923f73ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for jmo_security-1.0.8.tar.gz:

Publisher: release.yml on jimmy058910/jmo-security-repo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jmo_security-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: jmo_security-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 772.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for jmo_security-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 48637d408ae2df47f51d2069917d0079cbba65a38318b696d6aefc54454a34d1
MD5 e8aa0958be1479787457bf9c30b26187
BLAKE2b-256 28851906b220453145a152c607b6e2010bdb4084b91fed804cc125ecfabc5fb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for jmo_security-1.0.8-py3-none-any.whl:

Publisher: release.yml on jimmy058910/jmo-security-repo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.8 This release

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.1

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

Supported by

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