🚨 CMMC Phase One started November 10! Here's everything you need to know →

How to Automate Required Risk Assessment Workflows for Ongoing Compliance — Essential Cybersecurity Controls (ECC – 2 : 2024) - Control - 1-5-3: Tools, Scripts, and Implementation Steps

Step-by-step guide to automate required risk-assessment workflows for ongoing Compliance Framework adherence (ECC 2:2024 Control 1-5-3), including tools, sample scripts, and small-business implementation patterns.

April 07, 2026
6 min read

Share:

Schedule Your Free Compliance Consultation

Feeling overwhelmed by compliance requirements? Not sure where to start? Get expert guidance tailored to your specific needs in just 15 minutes.

Personalized Compliance Roadmap
Expert Answers to Your Questions
No Obligation, 100% Free

Limited spots available!

Automating the recurring risk-assessment workflows required by the Compliance Framework under Essential Cybersecurity Controls (ECC – 2 : 2024) Control 1-5-3 reduces manual effort, improves evidence consistency, and ensures your small business can demonstrate continuous compliance with auditable artifacts.

Why automation matters for Control 1-5-3

Control 1-5-3 expects organizations to use tools and scripts to carry out required risk assessments and to implement them as repeatable workflows. For small businesses with limited security staff, automation converts periodic, subjective checks into scheduled, verifiable procedures that produce structured outputs (JSON, CSV, PDF) suitable for audits, trending, and escalation. Automation enforces cadence (daily/weekly/quarterly), consistently applies risk thresholds (e.g., CVSS >= 7), and captures metadata (who ran the check, timestamps, asset IDs) required by the Compliance Framework for evidence and chain-of-custody.

Core components to automate

A robust automated risk-assessment pipeline for Compliance Framework should include: an authoritative asset source (CMDB/asset inventory), discovery and scanning engines (vulnerability scanners, configuration auditors), a workflow/orchestration layer (Rundeck, Jenkins, GitHub Actions, Airflow), a ticketing or remediation engine (Jira, ServiceNow, Trello for small teams), a results store (S3/bucket or a database), and a reporting/audit module that stamps each result with control IDs and evidence references. Each component must expose or accept machine-friendly APIs so the pipeline can chain steps, log outcomes, and attach evidence to the Compliance Framework control 1-5-3 records.

Recommended tools (practical picks for small businesses)

Cost-conscious, effective stack examples: Trivy (containers & filesystems), Nmap (network discovery), OpenVAS/GVM or Nessus (vuln scanning), osquery (host telemetry), Chef InSpec/OpenSCAP (configuration/compliance checks), GitHub Actions or Jenkins for scheduling, and a simple S3-compatible bucket for results. For ticketing use a light-weight Jira Cloud project or GitHub Issues. For a one-person shop, Rundeck or Cron + shell scripts + GitHub Actions can provide sufficient orchestration.

Real-world small-business scenario

Example: a 20-person SaaS company needs to demonstrate quarterly risk assessments for web apps, docker images, and company laptops. Implement a nightly discovery job (Nmap + CMDB sync), weekly container and image scan (Trivy via GitHub Actions on push and a scheduled weekly pipeline), monthly host audits using osquery + InSpec, and automatic creation of remediation tickets when severity thresholds are exceeded. The pipeline writes JSON scan results to a dated S3 prefix like s3://company-evidence/ecc-1-5-3/YYYY-MM-DD/, and the orchestration layer creates a manifest.json that includes control_id: 1-5-3, assessor: automated, and evidence paths. This manifest is what auditors will request.

Implementation steps (practical, step-by-step)

  1. Define the assessment scope and cadence for Control 1-5-3 (e.g., discovery: daily, vuln scans: weekly, config checks: monthly).
  2. Inventory authoritative assets into a CMDB and expose an API or export (CSV/JSON). Tag each asset with a control owner and environment (prod/dev).
  3. Select the scanning and compliance tools that can produce machine-readable output (JSON/CSV) and support automation.
  4. Build or configure an orchestration layer (GitHub Actions / Jenkins / Airflow / Cron + scripts) to sequence: get assets → filter by tag → run scans → collect outputs → store results → create remediation tickets if thresholds exceeded → log a manifest for the audit.
  5. Create parsing and normalization scripts that translate tool outputs into a Compliance Framework evidence format: include asset_id, timestamp, control_id=1-5-3, severity counts, CVEs list, and remediation links.
  6. Automate evidence retention and access controls: results go to an encrypted bucket, retention policy matches compliance needs, and access logged via object ACL or central logstore.
  7. Test the pipeline end-to-end and perform table-top audits: run the pipeline, retrieve the manifest, and verify an auditor could validate that Control 1-5-3 requirements were met.

Below are two practical script examples: a small Bash pipeline that runs a Trivy container scan and pushes JSON to S3, and a Python poller that reads CMDB assets and triggers scan jobs via an HTTP API. Replace placeholders (BUCKET, JIRA, API_TOKENS) before use.

# Bash: container image scan -> upload to S3 -> create Jira if high severity
IMAGE="my-registry.example.com/app:latest"
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
OUTPUT="/tmp/trivy-${DATE}.json"

# run Trivy (assumes trivy installed)
trivy image --quiet --format json -o "${OUTPUT}" "${IMAGE}"

# count high/critical CVEs
HIGH_COUNT=$(jq '[.Results[].Vulnerabilities[]? | select(.Severity=="HIGH" or .Severity=="CRITICAL")] | length' "${OUTPUT}")

# upload result to S3-compatible store
aws s3 cp "${OUTPUT}" "s3://company-evidence/ecc-1-5-3/${DATE}/trivy-$(basename ${OUTPUT})" --acl private

# create a manifest record - minimal example
cat > /tmp/manifest-${DATE}.json <<EOF
{
  "control_id": "ECC-1-5-3",
  "assessment_type": "container_scan",
  "timestamp": "${DATE}",
  "asset": "${IMAGE}",
  "evidence": "s3://company-evidence/ecc-1-5-3/${DATE}/$(basename ${OUTPUT})",
  "high_count": ${HIGH_COUNT}
}
EOF
aws s3 cp /tmp/manifest-${DATE}.json "s3://company-evidence/ecc-1-5-3/${DATE}/manifest.json" --acl private

# if threshold exceeded, create Jira ticket (replace placeholders)
if [ "${HIGH_COUNT}" -ge 1 ]; then
  curl -X POST -H "Content-Type: application/json" -u "jira_user:${JIRA_API_TOKEN}" \
    --data "{\"fields\": {\"project\": {\"key\": \"SEC\"},\"summary\": \"High vuln in ${IMAGE}\",\"description\": \"Automated scan found ${HIGH_COUNT} high/critical vulns. Evidence: s3://company-evidence/ecc-1-5-3/${DATE}/trivy-$(basename ${OUTPUT})\",\"issuetype\": {\"name\": \"Bug\"}}}" \
    https://yourcompany.atlassian.net/rest/api/2/issue/
fi
# Python: poll CMDB for assets and enqueue scans via a scanner API
import requests, os, time

CMDB_URL = "https://cmdb.example.com/api/assets"
SCANNER_API = "https://scanner.example.com/api/v1/scan"
API_TOKEN = os.getenv("SCANNER_API_TOKEN")
HEADERS = {"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"}

def get_assets():
    r = requests.get(CMDB_URL, timeout=10)
    r.raise_for_status()
    return r.json()  # expect list of assets

def enqueue_scan(asset):
    payload = {
        "asset_id": asset["id"],
        "ip": asset.get("ip"),
        "scan_types": ["vuln", "config"],
        "meta": {"control_id": "ECC-1-5-3", "requested_by": "automation"}
    }
    r = requests.post(SCANNER_API, json=payload, headers=HEADERS, timeout=10)
    r.raise_for_status()
    return r.json()

if __name__ == "__main__":
    assets = get_assets()
    for a in assets:
        if a.get("type") == "server" and a.get("environment") == "prod":
            try:
                resp = enqueue_scan(a)
                print("Enqueued", a["id"], "-> job", resp.get("job_id"))
                time.sleep(0.2)  # throttle
            except Exception as e:
                print("Failed to enqueue", a["id"], e)

Compliance tips and best practices

Map each automated job to a Compliance Framework artifact: include control_id=ECC-1-5-3, assessor (automation user), and evidence path in every result. Use immutable storage (object store with versioning) so auditors can see the historical outputs. Enforce access control and logging on both the orchestration host and the evidence store. Use semantic versioning for your scripts and keep them in source control so you can show change history during an audit. Define acceptance criteria up front (e.g., critical CVEs must be remediated within 7 days) and encode that policy into your automation so escalation is consistent.

Risk of not implementing Control 1-5-3 automation

Failing to automate required risk-assessment workflows increases human error, reduces evidence quality, and makes meeting the Compliance Framework's continuous evidence requirements time-consuming and inconsistent. Common consequences include missed vulnerabilities, inconsistent remediation timelines, inability to produce repeatable evidence during audit, and higher likelihood of breaches due to delayed detection. For small businesses, the cost of manual efforts (person-hours, inconsistent runbooks) often outweighs the modest investment in automation tooling and scripting.

Summary: Implementing Control 1-5-3 for ECC – 2 : 2024 means treating risk assessments as repeatable, API-driven workflows that produce auditable evidence. Start small: connect your CMDB, schedule discovery and scanning with tools that output JSON, store results in a versioned evidence store, and wire in ticketing for remediation. Use the sample scripts and the implementation steps above to build a defensible pipeline that scales with your organization while giving auditors the artifacts they expect for Compliance Framework verification.

 

Quick & Simple

Discover Our Cybersecurity Compliance Solutions:

Whether you need to meet and maintain your compliance requirements, help your clients meet them, or verify supplier compliance we have the expertise and solution for you

 CMMC Level 1 Compliance App

CMMC Level 1 Compliance

Become compliant, provide compliance services, or verify partner compliance with CMMC Level 1 Basic Safeguarding of Covered Contractor Information Systems requirements.
 NIST SP 800-171 & CMMC Level 2 Compliance App

NIST SP 800-171 & CMMC Level 2 Compliance

Become compliant, provide compliance services, or verify partner compliance with NIST SP 800-171 and CMMC Level 2 requirements.
 HIPAA Compliance App

HIPAA Compliance

Become compliant, provide compliance services, or verify partner compliance with HIPAA security rule requirements.
 ISO 27001 Compliance App

ISO 27001 Compliance

Become compliant, provide compliance services, or verify partner compliance with ISO 27001 requirements.
 FAR 52.204-21 Compliance App

FAR 52.204-21 Compliance

Become compliant, provide compliance services, or verify partner compliance with FAR 52.204-21 Basic Safeguarding of Covered Contractor Information Systems requirements.
 
Hello! How can we help today? 😃

Chat with Lakeridge

We typically reply within minutes