The reconstructed evaluation script behind this rule's OVAL check(s) — every module a compound check combines, with this rule's own concrete values and DISA's SCC tool's real per-module mechanism curated from static teardown of SCC releases.
#!/bin/bash
# Reconstructed from oval:mil.disa.stig.ubuntu2404os:def:270749
# Ubuntu 24.04 LTS must restrict access to the kernel message buffer.
# Per-module read mechanism curated from static teardown of DISA's SCC tool
# (SCAP Compliance Checker) -- see the SCC Automation Reference above.
#
# MANUAL REVIEW REQUIRED -- the module(s) below could not be reconstructed
# into working code from curated SCC reference data, and are excluded from
# the automated result:
# - textfilecontent54_object (textfilecontent54_test) -- kernel.dmesg_restrict setting in sysctl configuration files is set to 1: <set> composition (base object oval:mil.disa.stig.ind:obj:23026900, oval:mil.disa.stig.ind:obj:23026901): member unresolved -- no extractor for field "subexpression"
# kernel.dmesg_restrict setting in kernel is 1
# sysctl_object (sysctl_test)
test_1() {
[ "$(cat /proc/sys/kernel/dmesg_restrict)" -eq 1 ]
}
if test_1; then
echo "PASS (automated portion only -- MANUAL REVIEW still required, see notes above)"
else
echo "FAIL (or see MANUAL REVIEW note above)"
fi Assessment Script Powered by AISandbox-executed
A standalone Shell script to assess this control automatically. Review before running it in your environment.
Syntax-checked and actually executed in an isolated sandbox (not the real system this checks) — confirmed to run without errors.
#!/bin/sh
# DISA STIG / SCAP compliance check for Ubuntu 24.04 LTS kernel message buffer access restriction
if [ ! -x "$(command -v sysctl)" ]; then echo "FAIL"; exit 1; fi
if [ ! $(sysctl -n kernel.dmesg_restrict 2>/dev/null | grep -q '^1$') ]; then echo "FAIL"; exit 1; fi
if [ ! -e /etc/sysctl.conf ] || ! grep -q '^\\s*kernel\\.dmesg_restrict\\s*=\\s*1\\s*$' /etc/sysctl.conf; then echo "FAIL"; exit 1; fi
for dir in /run/sysctl.d /etc/sysctl.d /usr/local/lib/sysctl.d /usr/lib/sysctl.d /lib/sysctl.d /etc; do
for file in "$dir"/*; do
if [ -e "$file" ] && ! grep -q '^\\s*kernel\\.dmesg_restrict\\s*=\\s*1\\s*$' "$file"; then echo "FAIL"; exit 1; fi
done
done
echo "PASS"; exit 0