diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml index 58a7de295388..8d2d4c4081bb 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/ansible/shared.yml @@ -5,7 +5,7 @@ # disruption = low - name: "{{{ rule_title }}} - Get audit log file from /etc/audit/auditd.conf" - ansible.builtin.command: grep -iw ^log_file /etc/audit/auditd.conf + ansible.builtin.command: grep -iE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf check_mode: False failed_when: false changed_when: false diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh index 0f74bf2767b3..0c4131a73216 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/bash/shared.sh @@ -1,8 +1,8 @@ # platform = multi_platform_all -if LC_ALL=C grep -iw log_file /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^log_file/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') - chown root $FILE* -else - chown root /var/log/audit/audit.log* +if LC_ALL=C grep -iqE '^[[:space:]]*log_file\b' /etc/audit/auditd.conf; then + FILE=$(awk -F "=" '/^[[:space:]]*log_file[[:space:]]*=/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') fi + +FILE=${FILE:-/var/log/audit/audit.log} +chown root "$(dirname "$FILE")"/"${FILE}"* diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml index 15495801308c..7af6c35c5c0b 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/oval/shared.xml @@ -6,7 +6,7 @@ - {{% if "ol" in families or "rhel" in product %}} + {{% if "ol" in families or "rhel" in product or "ubuntu" in product %}} @@ -18,17 +18,31 @@ {{% endif %}} - + + {{% if "ubuntu" in product %}} + + {{% else %}} + {{% endif %}} state_owner_not_root_var_log_audit - - {{% if "ol" in families or "rhel" in product %}} + + + + ^ + + + + .*$ + + + + {{% if "ol" in families or "rhel" in product or "ubuntu" in product %}} @@ -37,7 +51,12 @@ + {{% if "ol" in families or "rhel" in product %}} /var/log/audit/audit.log + {{% else %}} + /var/log/audit + ^audit\.log.*$ + {{% endif %}} state_owner_not_root_var_log_audit {{% else %}} diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh index 4309570778f8..49b42c898a58 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value.pass.sh @@ -1,18 +1,15 @@ #!/bin/bash +# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux,multi_platform_ubuntu # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf echo "log_file = /var/log/audit/audit2.log" >> /etc/audit/auditd.conf -if grep -iwq "log_file" /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^log_file/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') -else - FILE="/var/log/audit/audit.log" -fi - useradd testuser_123 -touch "/var/log/audit/audit2.log" -touch "/var/log/audit/audit.log" +mkdir -p /var/log/audit +touch /var/log/audit/audit2.log +touch /var/log/audit/audit2.log.1 +touch /var/log/audit/audit.log -chown root $FILE* -chown testuser_123 "/var/log/audit/audit.log" +chown root /var/log/audit/audit2.log* +chown testuser_123 /var/log/audit/audit.log diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh index 0c30387f65f3..6d54a15c40b8 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/correct_value_default_file.pass.sh @@ -1,10 +1,14 @@ #!/bin/bash -# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux +# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux,multi_platform_ubuntu # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf + useradd testuser_123 +mkdir -p /var/log/audit +touch /var/log/audit/audit.log +touch /var/log/audit/audit.log.1 touch "/var/log/audit/audit2.log" -chown root "/var/log/audit/audit.log" -chown testuser_123 "/var/log/audit/audit2.log" +chown root /var/log/audit/audit.log* +chown testuser_123 /var/log/audit/audit2.log diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh index d597ca07f139..677dedaba5f0 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value.fail.sh @@ -4,21 +4,17 @@ sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf echo "log_file = /var/log/audit/audit2.log" >> /etc/audit/auditd.conf -if grep -iwq "log_file" /etc/audit/auditd.conf; then - FILE=$(awk -F "=" '/^log_file/ {print $2}' /etc/audit/auditd.conf | tr -d ' ') -else - FILE="/var/log/audit/audit.log" -fi +FILE="/var/log/audit/audit2.log" useradd testuser_123 +mkdir -p /var/log/audit touch "/var/log/audit/audit.log" chown root "/var/log/audit/audit.log" -{{% if product in ["ol8", "rhel8"] %}} -touch $FILE -chown testuser_123 $FILE -{{% else %}} -touch $FILE.1 -chown testuser_123 $FILE.1 +touch "$FILE" +chown testuser_123 "$FILE" +{{% if product not in ["ol8", "rhel8"] %}} +touch "$FILE.1" +chown testuser_123 "$FILE.1" {{% endif %}} diff --git a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh index 681f60bfb066..8269f6d88381 100644 --- a/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh +++ b/linux_os/guide/auditing/auditd_configure_rules/file_ownership_var_log_audit_stig/tests/wrong_value_default_file.fail.sh @@ -1,9 +1,11 @@ #!/bin/bash -# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux +# platform = multi_platform_ol,multi_platform_rhel,multi_platform_almalinux,multi_platform_ubuntu # packages = audit sed -i "/^\s*log_file.*/d" /etc/audit/auditd.conf + useradd testuser_123 +mkdir -p /var/log/audit touch "/var/log/audit/audit2.log" touch "/var/log/audit/audit.log" diff --git a/shared/checks/oval/auditd_conf_log_file_not_set.xml b/shared/checks/oval/auditd_conf_log_file_not_set.xml index dc7a5be9bf30..76e4fb67e96c 100644 --- a/shared/checks/oval/auditd_conf_log_file_not_set.xml +++ b/shared/checks/oval/auditd_conf_log_file_not_set.xml @@ -20,12 +20,12 @@ /etc/audit/auditd.conf - ^(log_file\s*=\s*.*)$ + ^\s*(log_file\s*=\s*.*)$ 1 - +