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.sles12os:def:255915
# The SUSE operating system 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
# OVAL Definition: oval:mil.disa.stig.sles12os:def:255915
if [ ! -x "$(command -v sysctl)" ]; then
echo "FAIL"
exit 1
fi
if [ "$(sysctl -n kernel.dmesg_restrict 2>/dev/null)" != "1" ]; then
echo "FAIL"
exit 1
fi
if [ ! -f "/etc/sysctl.conf" ]; then
echo "PASS"
exit 0
fi
if ! 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; do
if [ -d "$dir" ]; then
for file in "$dir"/*; do
if [ -f "$file" ]; then
if ! grep -q "^\\s*kernel\\.dmesg_restrict\\s*=\\s*1\\s*$" "$file"; then
echo "FAIL"
exit 1
fi
fi
done
fi
done
echo "PASS"
exit 0