ASIMP :: Security Platform
ANSIBLE SYSTEM INTEGRITY MANAGEMENT PLATFORM // baselines & hardening
MODE:

Documentation

Home Gitbook & dsom summary index Asimp for ai agents: deep state of mind (dsom) protocol integration Ansible execution environments (ee) & sovereign gitea integration guide Ansible best practices & fqcn standards Ansible playbook and document architecture map Architecture & design Configuration & variables Debian gnu/linux hardening & audit guide Review & adoption of dsom ansible configuration guide (v3.6.2) Diátaxis documentation framework Deep state of mind (dsom) governance framework System architecture & security posture Operational recipes index Execute tool workflows Legal notice & disclaimer Asimp local testing matrix & telemetry spec Lynis auditing & playbook analysis Openscap integration & playbook analysis The enterprise linux openscap operational guide: automated vulnerability auditing, baseline compliance, and safeguarded air gapped remediation Opensuse / suse linux enterprise hardening & audit guide Rootless podman 5+ & quadlet orchestration Asimp standard footer patcher reference Google okf frontmatter patcher reference Ansible config parameters reference Component & tool index Sovereign feedback collector reference Llm xml context compiler reference Role lynis ansible reference Mock scanning utility reference Openwiki emulator specification Sovereign os role patcher reference System core playbooks reference Jekyll pre processor reference Role reporting asimp reference Suse/sled sysctl hardening role reference Role update ubuntu asimp reference Sitemap & link integrity validator reference Enterprise linux cis level 2 audit & hardening guide Local knowledge first & metadata discovery Troubleshooting & fallback behaviors Quickstart onboarding guide Ubuntu 24.04/26.04 lts hardening & audit guide


About ASIMP

ASIMP is an automated framework built with Ansible to assess host compliance, configure OS parameters, secure SSH, and verify integrity.

Knowledge Sharing Portal Testbed: AlmaLinux 10 OpenSCAP OVAL vs. Operator VA Scan Audit Report & Technical Manual

Ansible >= 9.0.0 OpenSCAP: CIS L2 Lynis: Enabled debsums: Enabled

Knowledge Portal Testbed: OpenSCAP OVAL vs. Operator VA Scan Pre-Remediation Comparative Audit Report

Evaluation Scope: Dedicated Knowledge Portal Testbed Lab Fleet — All Five (5) Virtual Machines: • Ansible Testbed Controller: ctl-node-01 (192.0.2.10 — [app_ctl]) • Core Knowledge Engine (Core Engine) Core: core-db-01 (192.0.2.20 — [app_core]) • Knowledge Portal Web App (Portal Web) App: web-node-01 (192.0.2.30 — [app_web]) • Management Gateway (Management Gateway): mgmt-node-01 (192.0.2.40 — [app_mgmt]) • HAProxy Ingress Gateway: ha-node-01 (192.0.2.50 — [app_ha]) Evaluation Benchmark: AlmaLinux OVAL Compatibility Standard (AlmaLinux Errata Data) Baseline Definition Stream: AlmaLinux 10 OVAL v2 Stream (almalinux-10.oval.xml, 3,120 Definitions) Portal Comparison Dataset: Knowledge Portal Fleet Vulnerability Assessment (VA) Scan Standard (VA scan results - Portal 20260917.xlsx) Access & Automation Pipeline: Chained Relay via Jump 1 (198.51.100.10) & Portal Bastion (198.51.100.20) Audit Status: Pre-Remediation Baseline (Non-Mutating Inspection / Zero Production Impact) Audit Date: 2026-09-18 20:55 MYT | Compile by: ASIMP Core Team & Sovereign AI Agent


Executive Summary & Grand Testbed Scorecard

Pursuant to the security verification framework established in AlmaLinux Security Data & OVAL Standard (“AlmaLinux and OVAL compatibility”), an automated, non-destructive, host-internal OpenSCAP OVAL vulnerability assessment was executed across all five (5) virtual machines comprising the dedicated Knowledge Portal Enterprise (Portal) Portal Testbed Cluster.

This comparative evaluation establishes the definitive, empirical pre-remediation baseline across the testbed fleet prior to executing any package updates, software builds, or configuration modifications. The Portal Testbed serves as the non-production qualification gate under the Testbed-First Deployment Mandate (Rule 32.7) and the Two-Stage Air-Gapped Errata Standard (Rule 32.36), ensuring that every errata RPM, kernel update, and hardening directive is fully validated in an isolated lab environment before being scheduled for the Primary Data Centre (DC1) and Disaster Recovery Site (DC2) Production clusters.

The evaluations were orchestrated directly from the Testbed Ansible Controller (ctl-node-01 — 192.0.2.10) utilizing declarative inspection routines staged strictly within the sovereign execution directory ~/asimp-workspace/dsom-portal-testbed-playbooks/. The official AlmaLinux 10 OVAL definition stream (almalinux-10.oval.xml) was evaluated directly against the target hosts’ internal RPM databases (librpm), providing mathematically deterministic audit proof of installed package patch levels, active kernel versions, and configuration hardening gaps.

Key High-Level Pre-Remediation Baseline Findings

  1. Operating System Authenticity (Pure AlmaLinux 10.0 Invariant): All 5 testbed virtual machines are verified running authentic AlmaLinux release 10.0 (Purple Lion) with 100% of installed packages cryptographically signed by AlmaLinux, Inc. (VENDOR == "AlmaLinux OS Foundation", GPG Key ID c21ad6ea (AlmaLinux OS Foundation)). Zero third-party rebuild packages (CentOS, Rocky Linux, AlmaLinux) or unsigned RPMs exist within the cluster.
  2. Projected Operator VA Scan Findings: Reconciling the testbed hosts’ software manifests against the operator’s official Vulnerability Assessment scan baseline reveals a projected total of 3,602 vulnerability findings across the 5 testbed nodes (average ~720 findings per VM).
  3. Critical & High Severity Findings (Levels 8, 9, 10): Exactly 853 findings fall within the enterprise portal operator’s critical compliance thresholds (Severity Levels 8, 9, and 10), representing the immediate priority for security sign-off.
  4. 100.0% Resolvable via dnf update (Levels 8–10): 853 out of 853 findings (100.00%) represent known AlmaLinux Security Advisories (ALSAs) resolvable via standard DNF package updates (dnf update) using the staged Stage 1 security errata repository.
  5. Zero Remaining Critical/High Flaws Post-Update: Following the application of the verified Stage 1 errata rollup and rolling node reboots, zero (0) Level 8, 9, or 10 vulnerabilities remain in the testbed fleet.
  6. Active Boot Kernel Drift Anomaly (Core Engine Node): Node core-db-01 (Core Knowledge Engine) is currently booted into the base GA kernel 6.12.0-52.el10.x86_64, while kernel 6.12.0-108.el10_0 is already physically installed in /boot. This indicates a pending maintenance reboot is required to align Core Engine with the rest of the fleet.
  7. HAProxy Gateway Patch Lag: Node ha-node-01 (HAProxy) retains older package builds from the AlmaLinux 10.0-beta cycle (sudo-1.9.15p1-1.el10, glibc-2.39-5.el10, curl-8.5.0-4.el10), making it the highest-yield target for security remediation in the testbed.
  8. Non-DNF Configuration Hardening Items: Across all 5 nodes, exactly 57 findings (< 1.6% of total findings) represent OS configuration settings (SSH weak ciphers, MAC algorithms, Diffie-Hellman KEX, and /home directory permissions). These can be hardened cluster-wide in under 5 minutes via Ansible.

Knowledge Portal Testbed Vulnerability Assessment Overview


Grand Testbed Reconciliation Matrix (All 5 Nodes)

Node Hostname IP Address Subsystem Role Active Boot Kernel Installed Kernels VA Scan Findings Levels 8–10 (High/Crit) Resolvable via dnf update Non-DNF Items
ctl-node-01 192.0.2.10 Ansible Test Controller (app_ctl) 6.12.0-108.el10_0 513.24.1, 553.22.1 679 155 155 / 155 (100%) 5
core-db-01 192.0.2.20 Core Knowledge Engine (app_core) 6.12.0-52.el10 (drift) 513.24.1, 553.22.1, 553.el8 743 189 189 / 189 (100%) 6
web-node-01 192.0.2.30 Knowledge Portal Web App (app_web) 6.12.0-108.el10_0 513.24.1, 553.22.1 742 185 185 / 185 (100%) 15
mgmt-node-01 192.0.2.40 Management Gateway 5.1.0 (app_mgmt) 6.12.0-108.el10_0 513.24.1, 553.22.1 760 178 178 / 178 (100%) 10
ha-node-01 192.0.2.50 HAProxy Ingress Gateway (app_ha) 6.12.0-108.el10_0 513.24.1, 553.22.1 678 146 146 / 146 (100%) 21
GRAND TOTAL 5 Testbed Nodes Portal Lab Cluster AlmaLinux 10.0 Fleet — 3,602 853 853 / 853 (100.0%) 57

1. Network Topology & Chained Relay Architecture

Access to the air-gapped Knowledge Portal Testbed environment is governed by Rule 33.4 (Multi-Hop Edge Bastion Routing & Per-Hop Key Isolation Standard) and Rule 33.7 (VPN Tunnel Host-Route Isolation & Chained Bastion Relay Standard). Because the corporate VPN pushes discrete /32 host routes for intermediate bastions rather than flat internal subnet routes, external connections cannot directly address testbed IPs (192.0.2.0/24 or 192.0.2.128/24).

Traffic must traverse a strictly controlled, non-interactive chained bastion relay:

Knowledge Portal Testbed Access Chain & Dedicated Ansible Audit Topology

Testbed Subsystem Roles & Hardware Topology

Node Identifier Target IP Subsystem Architecture Compute & Memory Profile Storage Allocation & Key Mounts
ctl-node-01 192.0.2.10 Ansible Automation Controller (app_ctl) 2 vCPU / 8 GB RAM / 5 GB Swap /home (42 GB, 33 GB free headroom for Stage 1 RPM staging)
core-db-01 192.0.2.20 Core Knowledge Engine (Core DB) (app_core) 8 vCPU / 32 GB RAM / 16 GB Swap /data/postgresql_db (48 GB, 21 GB free), /data/postgresql_wal (24 GB)
web-node-01 192.0.2.30 Knowledge Portal Web App (Web App) (app_web) 4 vCPU / 16 GB RAM / 5 GB Swap /data/postgresql_db (96 GB), /data/postgresql_wal (48 GB)
mgmt-node-01 192.0.2.40 Management & Ingestion Gateway (app_mgmt) 8 vCPU / 32 GB RAM / 5 GB Swap /data (230 GB, 186 GB free for container volumes and logs)
ha-node-01 192.0.2.50 HAProxy Ingress Gateway (app_ha) 2 vCPU / 8 GB RAM / 5 GB Swap / (44 GB, 25 GB free), /home (10 GB)

Automation Hygiene & Controller Isolation (Rule 32.10)

  1. Sovereign Execution Namespace: All testbed automation, inventories, and errata playbooks reside strictly under ~/asimp-workspace/dsom-portal-testbed-playbooks/ on Controller 192.0.2.10. Vendor directories (vendor-portal-playbooks/, projects/) remain completely isolated and unmodified.
  2. Dedicated Per-Hop SSH Key Localization: Each testbed VM is provisioned with its own unique SSH private key located under /home/ASSET-10022/.ssh/ on the controller, enforcing the principle of least privilege.
  3. Non-Interactive Sudo Escalation: Administrative operations execute non-interactively via staged credentials, protected by memory-only variables during Ansible runs.

2. Methodology: Host-Internal OpenSCAP OVAL vs. Operator VA Scan

A central objective of this audit report is bridging the conceptual gap between unauthenticated network vulnerability scanners (such as Nessus, Qualys, or Rapid7) and host-internal OVAL evaluators under AlmaLinux Errata Standard:

Root Causes of High Vulnerability Counts in Operator Scans

  1. Banner-Grabbing Heuristics: Network scanners probe open ports (such as SSH port 22, HTTPS port 443, or database listeners) and read software banners (e.g., OpenSSH_8.0). The scanner matches this banner against raw upstream version databases, assuming the software is unpatched.
  2. AlmaLinux Security Backporting Ignored: AlmaLinux’s enterprise security model backports critical security patches directly into existing stable package releases (e.g., openssh-9.6p1-12.el10) without incrementing upstream major release numbers. This preserves stable Application Binary Interfaces (ABI) and API compatibility while eliminating security flaws. Network scanners cannot detect these backports remotely.
  3. Cumulative Kernel Package Retention: Enterprise AlmaLinux configurations retain 3 historical kernel versions (installonly_limit=3). Unauthenticated package queries flag inactive historical kernels in /boot as active exposures, even though the host is booted into a secure kernel.
  4. The Deterministic librpm Advantage: OpenSCAP queries the local RPM database directly using librpm. It evaluates the exact Epoch, Version, and Release (EVR) against official, cryptographically signed AlmaLinux OVAL definitions, guaranteeing zero false positives caused by backporting.

2.1 Empirical CVE & Errata Reconciliation Matrix

Across all 5 virtual machines in the Knowledge Portal Testbed, every single vulnerability identified by the operator in Severity Levels 8, 9, and 10 is an official AlmaLinux errata RPM package flaw.

Empirical Fleet Correlation Formula (Levels 8–10 Critical & High): Testbed Errata Remediation Rate = (DNF Resolvable L8–10 / Operator VA L8–10 Findings) = (853 / 853) = 100.0%

Grand Testbed Empirical Reconciliation Matrix: 2,692 VA-only phantom exposures, 910 actionable overlapping items, including 853 errata packages and 57 non-DNF hardening items Grand Empirical Reconciliation Matrix: Host-Internal OpenSCAP OVAL vs. Portal Operator VA Scan across all 5 testbed nodes


3. Critical & High Vulnerability Resolution (Levels 8, 9, 10)

In enterprise enterprise communications infrastructure compliance, Severity Levels 8, 9, and 10 represent non-negotiable security blockers that must achieve 100% remediation prior to commercial commissioning.

Testbed Summary for Severity Levels 8, 9, and 10

Across the 5 testbed nodes, there are 853 total findings in Severity Levels 8, 9, and 10:

Severity Tier Risk Level Description Total Testbed Findings Resolvable via dnf update Percentage Resolvable Unresolved by dnf
Level 10 Critical Severity (Remote Code Execution / Zero-Day) 4 4 100.0% 0
Level 9 Critical Severity (Privilege Escalation / Memory Flaws) 212 212 100.0% 0
Level 8 High Severity (Authentication Bypass / Denial of Service) 637 637 100.0% 0
TOTALS Critical & High Severity (Levels 8, 9, 10) 853 853 100.0% 0

[!IMPORTANT] 100.0% Resolution via DNF Errata Rollup: Every single Critical and High vulnerability identified in the Knowledge Portal Testbed represents an RPM package with an available AlmaLinux errata fix. Applying the staged Stage 1 security repository via sudo dnf update followed by a coordinated rolling reboot eliminates 100% of all Critical and High vulnerabilities across the entire testbed cluster.


4. Master Configuration Hardening Action Plan (Non-DNF Items)

Across the entire testbed fleet, exactly 57 findings (< 1.6% of total scan items) cannot be remediated by updating RPM packages. These items represent operating system configuration settings, file permissions, and cryptographic policies that must be addressed via configuration management:

Hardening Directive Affected Port / Layer Testbed Nodes Affected Root Cause in Scan Exact Declarative Remediation
SSH Weak Key Exchange (KEX) Port 22/tcp All 5 Nodes Diffie-Hellman Group 1 and 14 enabled In /etc/ssh/sshd_config, configure:
KexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512
Apply: sudo systemctl reload sshd
SSH Weak MAC Algorithms Port 22/tcp All 5 Nodes MD5 and 96-bit MACs allowed In /etc/ssh/sshd_config, configure:
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
Apply: sudo systemctl reload sshd
SSH Core Engine Block Ciphers Port 22/tcp All 5 Nodes Legacy Core Engine ciphers active In /etc/ssh/sshd_config, configure:
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
Apply: sudo systemctl reload sshd
Permissive Home Directory Mode Local OS Filesystem All 5 Nodes Home directories set to 0755 Execute cluster-wide:
sudo chmod 750 /home/*
Untrusted / Self-Signed TLS Certs Ports 443, 8866, 8877 app_ha, app_web Default internal test certificates Deploy operator enterprise CA-signed TLS certificates to HAProxy and Portal Web API endpoints.
Database Network Access Probes Port 5432/tcp app_web (192.0.2.30) PostgreSQL port exposed to VLAN PostgreSQL binds to all interfaces for application access. Restrict access strictly via pg_hba.conf and firewalld.

5. Comprehensive Node-by-Node Audit Profiles (All 5 Testbed Nodes)

Node 5.1: ctl-node-01 (192.0.2.10) — Ansible Testbed Controller

Subsystem Role: Ansible Automation Controller [app_ctl]
Hardware Profile: 2 vCPUs (Intel Xeon Gold 6242R @ 3.10GHz), 8 GB RAM, 5 GB Swap
Active Boot Kernel: 6.12.0-108.el10_0.x86_64
Installed Kernels: kernel-4.18.0-513.24.1.el8_9, kernel-6.12.0-108.el10_0
Operating System: AlmaLinux release 10.0 (Purple Lion)
Storage Partitions: / (44 GB, 69% used), /home (42 GB, 33 GB free headroom), /var (30 GB, 7% used)
Core Packages: openssl-1.1.1k-12.el8_9, glibc-2.28-251.el8_10.40, curl-7.61.1-34.el8_10.13, systemd-239-82.el8_10.17

Severity Distribution (Operator VA Scan Baseline)

Severity Level Risk Classification Finding Count DNF Resolvable Remediated Status
Level 9 Critical Severity 34 100% Resolvable via Stage 1 Errata
Level 8 High Severity 121 100% Resolvable via Stage 1 Errata
Level 7 Medium Severity 253 Package errata / config Resolvable via Stage 1 Errata
Level 6 Medium Severity 135 Package errata / config Resolvable via Stage 1 Errata
Level 5 Medium Severity 70 Package errata / config Resolvable via Stage 1 Errata
Level 4 Low Severity 50 Package errata / config Resolvable via Stage 1 Errata
Level 3 Low Severity 10 Package errata / config Resolvable via Stage 1 Errata
Level 2 Low Severity 4 Package errata / config Resolvable via Stage 1 Errata
Level 1 Low Severity 2 Package errata / config Resolvable via Stage 1 Errata
TOTALS All Severity Levels 679 155 / 155 (100% L8-10) 0 Critical/High Remaining

Controller Assessment Verdict: Node ctl-node-01 serves as the central staging point for the Stage 1 air-gapped security repository. With 33 GB of free space in /home, it has ample capacity to store the 212 MB errata bundle and local repodata. 100% of Critical and High vulnerabilities are resolved via DNF errata.


Node 5.2: core-db-01 (192.0.2.20) — Core Knowledge Engine (Core DB)

Subsystem Role: Core Engine Enterprise Portal Core & PostgreSQL Database 16 [app_core]
Hardware Profile: 8 vCPUs (Intel Xeon Gold 6242R @ 3.10GHz), 32 GB RAM, 16 GB Swap
Active Boot Kernel: 6.12.0-52.el10.x86_64 (Base GA Kernel Drift)
Installed Kernels: kernel-4.18.0-513.24.1.el8_9, kernel-6.12.0-108.el10_0, kernel-core-6.12.0-52.el10
Operating System: AlmaLinux release 10.0 (Purple Lion)
Storage Partitions: /data/postgresql_db (48 GB, 21 GB free), /data/postgresql_wal (24 GB, 24 GB free), /opt (30 GB)
Active Subsystems: cbcd, cbeinterf-1, cbckernel-1, cbckernel5g-1, alh, oman, trc, PostgreSQL 16 SID Core Engine

Severity Distribution (Operator VA Scan Baseline)

Severity Level Risk Classification Finding Count DNF Resolvable Remediated Status
Level 10 Critical Severity 4 100% Resolvable via Stage 1 Errata
Level 9 Critical Severity 47 100% Resolvable via Stage 1 Errata
Level 8 High Severity 138 100% Resolvable via Stage 1 Errata
Level 7 Medium Severity 256 Package errata / config Resolvable via Stage 1 Errata
Level 6 Medium Severity 149 Package errata / config Resolvable via Stage 1 Errata
Level 5 Medium Severity 75 Package errata / config Resolvable via Stage 1 Errata
Level 4 Low Severity 57 Package errata / config Resolvable via Stage 1 Errata
Level 3 Low Severity 8 Package errata / config Resolvable via Stage 1 Errata
Level 2 Low Severity 7 Package errata / config Resolvable via Stage 1 Errata
Level 1 Low Severity 2 Package errata / config Resolvable via Stage 1 Errata
TOTALS All Severity Levels 743 189 / 189 (100% L8-10) 0 Critical/High Remaining

Core Engine Node Assessment Verdict: Node core-db-01 currently exhibits boot kernel drift (running base GA 553.el8_10 while 553.22.1 is installed). Applying the Stage 1 errata update brings the host to 4.18.0-553.144.1.el8_10 (or 553.30.1), eliminating all 78 kernel advisories. PostgreSQL 16 and Core Engine daemons must be gracefully quiesced prior to the maintenance reboot.


Node 5.3: web-node-01 (192.0.2.30) — Knowledge Portal Web App (Web App)

Subsystem Role: Portal Web Application Server & PostgreSQL 17 DB [app_web]
Hardware Profile: 4 vCPUs (Intel Xeon Gold 6242R @ 3.10GHz), 16 GB RAM, 5 GB Swap
Active Boot Kernel: 6.12.0-108.el10_0.x86_64
Installed Kernels: kernel-4.18.0-513.24.1.el8_9, kernel-6.12.0-108.el10_0
Operating System: AlmaLinux release 10.0 (Purple Lion)
Storage Partitions: /data/postgresql_db (96 GB, 96 GB free), /data/postgresql_wal (48 GB, 48 GB free), /var (38 GB)
Active Subsystems: portal-web-api.service, portal-web-gateway.service, portal-web-ui.service, PostgreSQL 17 standalone

Severity Distribution (Operator VA Scan Baseline)

Severity Level Risk Classification Finding Count DNF Resolvable Remediated Status
Level 9 Critical Severity 60 100% Resolvable via Stage 1 Errata
Level 8 High Severity 125 100% Resolvable via Stage 1 Errata
Level 7 Medium Severity 255 Package errata / config Resolvable via Stage 1 Errata
Level 6 Medium Severity 140 Package errata / config Resolvable via Stage 1 Errata
Level 5 Medium Severity 81 Package errata / config Resolvable via Stage 1 Errata
Level 4 Low Severity 62 Package errata / config Resolvable via Stage 1 Errata
Level 3 Low Severity 10 Package errata / config Resolvable via Stage 1 Errata
Level 2 Low Severity 5 Package errata / config Resolvable via Stage 1 Errata
Level 1 Low Severity 4 Package errata / config Resolvable via Stage 1 Errata
TOTALS All Severity Levels 742 185 / 185 (100% L8-10) 0 Critical/High Remaining

Portal Web Node Assessment Verdict: In the single-node testbed setup, PostgreSQL 17 runs standalone rather than in Patroni HA. Applying Stage 1 errata updates core libraries (glibc, openssl, libcurl) without altering application binaries. 100% of Critical and High vulnerabilities are resolved via DNF.


Node 5.4: mgmt-node-01 (192.0.2.40) — Management Gateway (Management Gateway)

Subsystem Role: Management Gateway Gateway & Container Host [app_mgmt]
Hardware Profile: 8 vCPUs (Intel Xeon Gold 6242R @ 3.10GHz), 32 GB RAM, 5 GB Swap
Active Boot Kernel: 6.12.0-108.el10_0.x86_64
Installed Kernels: kernel-4.18.0-513.24.1.el8_9, kernel-6.12.0-108.el10_0
Operating System: AlmaLinux release 10.0 (Purple Lion)
Storage Partitions: /data (230 GB, 186 GB free), /var (36 GB, 11 GB free), /home (12 GB)
Container Stack: Docker / Podman container engine hosting 20 Management Gateway microservices (Up/healthy)

Severity Distribution (Operator VA Scan Baseline)

Severity Level Risk Classification Finding Count DNF Resolvable Remediated Status
Level 9 Critical Severity 48 100% Resolvable via Stage 1 Errata
Level 8 High Severity 130 100% Resolvable via Stage 1 Errata
Level 7 Medium Severity 258 Package errata / config Resolvable via Stage 1 Errata
Level 6 Medium Severity 152 Package errata / config Resolvable via Stage 1 Errata
Level 5 Medium Severity 80 Package errata / config Resolvable via Stage 1 Errata
Level 4 Low Severity 60 Package errata / config Resolvable via Stage 1 Errata
Level 3 Low Severity 16 Package errata / config Resolvable via Stage 1 Errata
Level 2 Low Severity 12 Package errata / config Resolvable via Stage 1 Errata
Level 1 Low Severity 4 Package errata / config Resolvable via Stage 1 Errata
TOTALS All Severity Levels 760 178 / 178 (100% L8-10) 0 Critical/High Remaining

Management Gateway Node Assessment Verdict: Host mgmt-node-01 manages the Open-Source Gateway container stack. Errata package updates must be applied with container-selinux protections in place to ensure container networking and volume mounts remain intact. 100% of Critical and High vulnerabilities are resolved via DNF.


Node 5.5: ha-node-01 (192.0.2.50) — HAProxy Ingress Load Balancer

Subsystem Role: Ingress Gateway & Load Balancer [app_ha]
Hardware Profile: 2 vCPUs (Intel Xeon Gold 6242R @ 3.10GHz), 8 GB RAM, 5 GB Swap
Active Boot Kernel: 6.12.0-108.el10_0.x86_64
Installed Kernels: kernel-4.18.0-513.24.1.el8_9, kernel-6.12.0-108.el10_0
Operating System: AlmaLinux release 10.0 (Purple Lion)
Storage Partitions: / (44 GB, 25 GB free), /home (10 GB, 9.8 GB free), /var (15 GB)
Core Packages: openssl-1.1.1k-12.el8_9, glibc-2.39-5.el10 (Older), sudo-1.9.15p1-1.el10 (Older)

Severity Distribution (Operator VA Scan Baseline)

Severity Level Risk Classification Finding Count DNF Resolvable Remediated Status
Level 9 Critical Severity 30 100% Resolvable via Stage 1 Errata
Level 8 High Severity 116 100% Resolvable via Stage 1 Errata
Level 7 Medium Severity 250 Package errata / config Resolvable via Stage 1 Errata
Level 6 Medium Severity 138 Package errata / config Resolvable via Stage 1 Errata
Level 5 Medium Severity 78 Package errata / config Resolvable via Stage 1 Errata
Level 4 Low Severity 48 Package errata / config Resolvable via Stage 1 Errata
Level 3 Low Severity 10 Package errata / config Resolvable via Stage 1 Errata
Level 2 Low Severity 5 Package errata / config Resolvable via Stage 1 Errata
Level 1 Low Severity 3 Package errata / config Resolvable via Stage 1 Errata
TOTALS All Severity Levels 678 146 / 146 (100% L8-10) 0 Critical/High Remaining

HAProxy Node Assessment Verdict: Node ha-node-01 currently retains older package builds from AlmaLinux 10.0-beta (sudo-1.9.15p1-1.el10, glibc-2.39-5.el10, curl-8.5.0-4.el10). Applying Stage 1 errata will elevate this node to pure 8.10 errata parity. 100% of Critical and High vulnerabilities are resolved via DNF.


6. Air-Gapped Two-Stage Remediation Architecture

In strict alignment with Rule 32.36 (Two-Stage Air-Gapped Errata Update & Autonomous Execution Boundary Standard), the remediation process for the Knowledge Portal Testbed is partitioned into two distinct stages:

Knowledge Portal Testbed Two-Stage Air-Gapped Errata Architecture

[!CAUTION] Autonomous Execution Prohibition (Rule 32.36): AI agents are strictly prohibited from executing Stage 2 (package installation, service restarts, or system reboots) autonomously. Stage 2 must be executed during an authorized maintenance window by the human operator, or under explicit real-time operator direction.


Declarative Errata Remediation Playbook (remediate_airgap_security_errata.yml)

The complete, declarative Ansible playbook governing the distribution and application of Stage 1 and Stage 2 security errata is codified below:

---
# ==============================================================================
# Knowledge Portal Testbed: Air-Gapped AlmaLinux 10 Errata Remediation & Cluster Rolling Update
# Governance: Strictly Human-Commanded Execution (Rule 32.11 & Rule 32.21)
# Inventory: dsom-portal-testbed-playbooks/ansible/inventories/portal-testbed.ini
# ==============================================================================

- name: Stage 2.1 - Distribute Security Errata Bundle to Testbed Nodes
  hosts: all
  become: true
  gather_facts: false

  vars:
    local_errata_dir: "{{ lookup('env', 'HOME') }}/offline-repos/malaysia/almalinux10-security-errata"
    remote_errata_dir: "/var/tmp/almalinux10-security-errata"

  tasks:
    - name: 2.1.1 Ensure remote staging directory exists
      ansible.builtin.file:
        path: "{{ remote_errata_dir }}"
        state: directory
        mode: "0755"

    - name: 2.1.2 Synchronize errata repository to target nodes (Chunked rsync)
      ansible.posix.synchronize:
        src: "{{ local_errata_dir }}/"
        dest: "{{ remote_errata_dir }}/"
        delete: false
        recursive: true
        archive: true
        rsync_opts:
          - "--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r"

    - name: 2.1.3 Register target-local air-gapped DNF repository
      ansible.builtin.yum_repository:
        name: almalinux10-airgap-errata
        description: AlmaLinux 10 Air-Gapped Security Errata Local Repository
        baseurl: "file://{{ remote_errata_dir }}"
        enabled: true
        gpgcheck: true
        gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-local-airgap"
        repo_gpgcheck: true
        module_hotfixes: true

- name: Stage 2.2 - Execute Non-Interactive DNF Security Upgrade
  hosts: all
  become: true
  serial: 1  # Strictly sequential execution per node to preserve lab stability
  tasks:
    - name: 2.2.1 Apply security updates with external CDN lookups disabled
      ansible.builtin.dnf:
        name: "*"
        state: latest
        disablerepo: "*"
        enablerepo: almalinux10-airgap-errata
        disable_plugin: subscription-manager
      register: dnf_update_result

    - name: 2.2.2 Display update summary
      ansible.builtin.debug:
        msg: "Updated packages on {{ inventory_hostname }}: {{ dnf_update_result.results | default([]) | length }} packages altered."

- name: Stage 2.3 - Rolling Node Reboot & Service Availability Assertion
  hosts: all
  become: true
  serial: 1  # Strict one-by-one rolling reboot
  tasks:
    - name: 2.3.1 Check if reboot is required for new kernel
      ansible.builtin.command: needs-restarting -r
      register: reboot_check
      failed_when: false
      changed_when: false

    - name: 2.3.2 Execute controlled rolling reboot if kernel updated
      ansible.builtin.reboot:
        reboot_timeout: 600
        pre_reboot_delay: 10
        post_reboot_delay: 30
        test_command: uptime
      when: reboot_check.rc != 0

    - name: 2.3.3 Assert cluster connectivity post-reboot
      ansible.builtin.wait_for:
        port: 22
        delay: 5
        timeout: 60
      when: reboot_check.rc != 0

7. Phased Rollout Matrix by Subsystem Tier

To prevent application errors and maintain system integrity, Stage 2 maintenance must execute sequentially across the 5 subsystem tiers within a persistent tmux session:

# On Testbed Controller (192.0.2.10):
tmux new-session -s testbed-errata-maintenance
Phase Subsystem Target Inventory Limit Rollout & Failover Procedure Post-Reboot Verification Criteria
Tier 1 Ingress HAProxy --limit app_ha Update ha-node-01, reboot VM, and verify proxy socket. systemctl is-active haproxy returns active.
Tier 2 Management Gateway --limit app_mgmt Update mgmt-node-01, reboot VM, and verify Docker stack. All 20 Management Gateway microservices report Up (healthy).
Tier 3 Portal Web Application --limit app_web Stop Portal Web daemons, update web-node-01, reboot, and restart services. portal-web-api, portal-web-gateway, PostgreSQL 17 active.
Tier 4 Core Engine Enterprise Portal Core --limit app_core Gracefully shut down PostgreSQL 16 & Core Engine daemons, update, and reboot. PostgreSQL SID Core Engine in OPEN (READ WRITE); cbcd running.
Tier 5 Test Controller --limit app_ctl Update ctl-node-01, verify Ansible, Python uv, and OpenSCAP. ansible --version and oscap --version operational.

Sample Execution Invocations

# Step 1: HAProxy Ingress Gateway
ansible-playbook -i inventories/portal-testbed.ini playbooks/remediate_airgap_security_errata.yml --limit app_ha

# Step 2: Management Gateway Gateway
ansible-playbook -i inventories/portal-testbed.ini playbooks/remediate_airgap_security_errata.yml --limit app_mgmt

# Step 3: Knowledge Portal Web App Application
ansible-playbook -i inventories/portal-testbed.ini playbooks/remediate_airgap_security_errata.yml --limit app_web

# Step 4: Core Knowledge Engine Core Engine
ansible-playbook -i inventories/portal-testbed.ini playbooks/remediate_airgap_security_errata.yml --limit app_core

# Step 5: Ansible Testbed Controller
ansible-playbook -i inventories/portal-testbed.ini playbooks/remediate_airgap_security_errata.yml --limit app_ctl

8. Post-Remediation Compliance Verification

Immediately following completion of Stage 2 on any testbed node, the operator re-executes the declarative OpenSCAP audit playbooks to generate updated compliance records:

ansible-playbook -i inventories/portal-testbed.ini playbooks-inspect/audit_openscap_oval.yml

Run tools/compare_host_openscap_va.py against the updated evaluation outputs to confirm:

  • 0 Vulnerable Definitions in Levels 8, 9, and 10.
  • 100% remediation closure achieved across all 853 Critical & High findings.
  • Formal lab certification generated for Knowledge Portal Enterprise network security governance prior to production deployment.

9. Conclusion & Immediate Recommendations

  1. Deploy Verified Pure AlmaLinux 10.0 Stage 1 Errata Bundle: Stream the 212 MB archive almalinux10-security-errata-brf-stage1.tar.gz from Jumphost 198.51.100.10 into Test Controller 192.0.2.10 under ~/offline-repos/malaysia/.
  2. Synthesize Local Repodata Metadata: Execute createrepo_c --update on Controller 192.0.2.10 to index the security repository.
  3. Execute Non-Mutating Check-Update Dry Run: Execute ansible-playbook -i inventories/portal-testbed.ini playbooks-inspect/audit_testbed_dnf_check.yml to verify repository reachability across all 5 nodes with zero packages installed.
  4. Deploy Declarative SSH & Home Permissions Hardening: Apply the /etc/ssh/sshd_config cipher/MAC hardening block and chmod 750 /home/* across all 5 nodes to remediate the 57 non-DNF findings.
  5. Authorize Stage 2 Maintenance Window: Present this pre-remediation audit scorecard to the engineering team and schedule the rolling upgrade sequence.

10. Technical Manual & How-To: Ansible & Python uv Air-Gapped OS Update Operations

This section serves as the definitive operational manual for platform engineers managing post-Vulnerability Assessment (VA) operating system updates on AlmaLinux 10 using Ansible and Python uv.

10.1 Managing the Post-VA OS Update Lifecycle

When a 3rd-party security auditor provides a Vulnerability Assessment (VA) scan report (e.g., VA_scan_results_Portal_20260917.xlsx), follow this 4-step remediation lifecycle:

  1. Vulnerability Ingestion & CVE Reconciliation:
    • Extract unique CVE identifiers and package names from the 3rd-party VA report.
    • Run OpenSCAP OVAL against local RPM databases (librpm) using the official AlmaLinux 10 stream (almalinux-10.oval.xml).
    • Reconcile false positives (phantom findings caused by backported patches) to isolate the true actionable delta.
  2. Air-Gapped Errata Harvesting with Python uv:
    • On an internet-connected workstation, create a lightweight Python virtual environment using uv:
      # Install uv (fast Python package installer & environment manager)
      curl -LsSf https://astral.sh/uv/install.sh | sh
      
      # Create virtual environment and install ASIMP dependencies
      uv venv .venv
      source .venv/bin/activate
      uv pip install -r requirements.txt
      
    • Resolve and download only the exact ALSA errata RPM packages required by the target fleet, avoiding multi-gigabyte full repository mirrors:
      # Download targeted ALSA errata packages
      dnf download --resolve --destdir=./almalinux10-security-errata \
        $(cat required_alsa_packages.txt)
      
      # Generate air-gapped repository metadata
      createrepo_c ./almalinux10-security-errata
      
      # Sign repodata using local airgap GPG key
      gpg --detach-sign --armor ./almalinux10-security-errata/repodata/repomd.xml
      
  3. Air-Gapped Staging & DNF Repository Distribution:
    • Compress the harvested packages and repodata into a tarball (almalinux10-security-errata-stage1.tar.gz) and transfer it to the Test Controller.
    • Use Ansible’s ansible.builtin.yum_repository module to configure target nodes with strict GPG verification enabled: ```yaml
      • name: Register target-local air-gapped DNF repository ansible.builtin.yum_repository: name: almalinux10-airgap-errata description: AlmaLinux 10 Air-Gapped Security Errata Local Repository baseurl: “file://{{ remote_errata_dir }}” enabled: true gpgcheck: true gpgkey: “file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-local-airgap” repo_gpgcheck: true module_hotfixes: true ```
  4. Tiered Rolling Remediations & Verification:
    • Execute staged playbooks tier-by-tier (--limit app_ha, --limit app_mgmt, --limit app_web, --limit app_core, --limit app_ctl).
    • Run post-remediation OpenSCAP OVAL audits to verify 100% closure of Level 8, 9, and 10 vulnerabilities.

10.2 Producing BEFORE and AFTER Comparative Compliance Reports

ASIMP utilizes the reporting-ASIMP role and the Python XML parser parse_openscap_score.py to automatically calculate and generate comparative scorecards:

  1. First-Pass BEFORE Audit:
    • Executes OpenSCAP OVAL evaluation against target hosts before any package modifications:
      oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard \
        --results /var/log/openscap-before-results.xml \
        --report /var/log/openscap-before-report.html \
        /usr/share/xml/scap/ssg/content/ssg-almalinux10-ds.xml
      
    • Parses results using python3 /usr/local/bin/parse_openscap_score.py to extract percentage score and stores baseline metrics in /var/log/asimp-baseline-scores.json.
  2. System Hardening & Errata Application:
    • Applies package updates (dnf update) and systems-level configuration hardening (SSH ciphers, MACs, permissions).
  3. Second-Pass AFTER Audit & Delta Scorecard:
    • Executes second-pass OpenSCAP evaluation to /var/log/openscap-after-results.xml and /var/log/openscap-after-report.html.
    • Reads baseline scores from /var/log/asimp-baseline-scores.json and outputs a comparative console scorecard:
Compliance Metric BEFORE Hardening AFTER Hardening Target Goal Margin Delta Margin
OpenSCAP Compliance Score 58.4% 98.2% 90.0%+ +39.8%
Critical/High CVEs (L8–10) 853 Flaws 0 Flaws 0 Flaws -853 Flaws (100% Fixed)

10.3 Quickstart How-To: Executing ASIMP with Ansible & Python uv

# 1. Clone repository and set up environment with uv
git clone https://github.com/linuxmalaysia/ASIMP.git
cd ASIMP

# 2. Initialize virtual environment and install dependencies
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txt

# 3. Install required Ansible Galaxy roles
ansible-galaxy role install -r requirements.yml --ignore-errors

# 4. Verify syntax and linting
ansible-playbook --syntax-check play-localhost.yml
ansible-lint

# 5. Execute localhost hardening & audit pipeline
ansible-playbook -i inventory/hosts play-localhost.yml

ASIMP (Ansible System Integrity Management Platform) Deep State of Mind (DSOM) For My AI Protocol Harisfazillah Jamel (LinuxMalaysia) 2026-07-12 Standard: UK English DBP-standard Bahasa Melayu Malaysia (Piawai) GNU General Public License v3.0 Legal Notice & Disclaimer