mirror of
https://github.com/optim-enterprises-bv/secureblue.git
synced 2025-11-17 18:45:08 +00:00
fix: Add check for sysctl runtime state (#469)
* Add check for sysctl runtime state * improve variable naming
This commit is contained in:
@@ -409,10 +409,33 @@ audit-secureblue:
|
|||||||
done
|
done
|
||||||
|
|
||||||
SYSCTL_TEST_STRING="Ensuring no sysctl overrides"
|
SYSCTL_TEST_STRING="Ensuring no sysctl overrides"
|
||||||
if diff /usr/etc/sysctl.d/hardening.conf /etc/sysctl.d/hardening.conf > /dev/null; then
|
readarray -t sysctl_hardening_conf < <(grep -v -E -e "^#" -e "^$" </usr/etc/sysctl.d/hardening.conf)
|
||||||
|
declare -A sysctl_hardening
|
||||||
|
for line in "${sysctl_hardening_conf[@]}"; do
|
||||||
|
parameter="$(sed -E -e "s/(.*) = .*/\1/" <<<"$line")"
|
||||||
|
value="$(sed -E "s/.* = (.*)/\1/" <<<"$line")"
|
||||||
|
sysctl_hardening["$parameter"]+="$value"
|
||||||
|
done
|
||||||
|
sysctl_results="$(sysctl -a 2> >(grep -v "sysctl: permission denied on key "))"
|
||||||
|
sysctl_errors=()
|
||||||
|
for sysctl_parameter in "${!hardening[@]}"; do
|
||||||
|
hardened_parameter_value="${hardening["$sysctl_parameter"]}"
|
||||||
|
parameter_name="$(sed -E -e "s/\./\\\./g" -e "s/\*/\.\*/" <<<"$sysctl_parameter")"
|
||||||
|
readarray -t sysctl_parameter_values < <(grep -E "^$key = " <<<"$sysctl_results")
|
||||||
|
for parameter_value in "${sysctl_parameter_values[@]}"; do
|
||||||
|
parameter_value="$(sed -E -e "s/.* = (.*)/\1/" -e "s/\t/ /g" <<<"$result" | tr -s " " )"
|
||||||
|
if [[ "$parameter_value" != "$hardened_parameter_value" && ("$hardened_parameter_value" != 0 && "$parameter_value" != disabled) ]]; then
|
||||||
|
sysctl_errors+=("$sysctl_parameter should be $hardened_parameter_value, found $parameter_value")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
if [[ "${#sysctl_errors}" == 0 ]] && diff /usr/etc/sysctl.d/hardening.conf /etc/sysctl.d/hardening.conf > /dev/null; then
|
||||||
print_status "$SYSCTL_TEST_STRING" "$STATUS_SUCCESS"
|
print_status "$SYSCTL_TEST_STRING" "$STATUS_SUCCESS"
|
||||||
else
|
else
|
||||||
print_status "$SYSCTL_TEST_STRING" "$STATUS_FAILURE"
|
print_status "$SYSCTL_TEST_STRING" "$STATUS_FAILURE"
|
||||||
|
for error in "${sysctl_errors[@]}"; do
|
||||||
|
echo "> $error"
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MODPROBE_TEST_STRING="Ensuring no modprobe overrides"
|
MODPROBE_TEST_STRING="Ensuring no modprobe overrides"
|
||||||
|
|||||||
Reference in New Issue
Block a user