TMAegisBeta
More rules for linux

Linux distributions

TMA-SLES16-6.2.4.4

Ensure audit log files group owner is configured

LowLevel 2Automatedlinux

Description

Audit log files contain information about the system and system activity.

How it is checked

Audit method: Shell command

shell
alt0() { o=$(bash -c '#!/usr/bin/env bash

{
   l_output="" l_output2=""
   if [ -e "/etc/audit/auditd.conf" ]; then
      l_audit_log_directory="$(dirname "$(awk -F= '"'"'/^\s*log_file\s*/{print $2}'"'"' /etc/audit/auditd.conf | xargs)")"
      l_audit_log_group="$(awk -F= '"'"'/^\s*log_group\s*/{print $2}'"'"' /etc/audit/auditd.conf | xargs)"
      if grep -Pq -- '"'"'^\h*(root|audit)\h*$'"'"' <<< "$l_audit_log_group"; then
         l_output="$l_output\n  - Log file group correctly set to: \"$l_audit_log_group\" in \"/etc/audit/auditd.conf\""
      else
         l_output2="$l_output2\n  - Log file group is set to: \"$l_audit_log_group\" in \"/etc/audit/auditd.conf\"\n     (should be set to group: \"root or audit\")\n"
      fi
      if [ -d "$l_audit_log_directory" ]; then
         while IFS= read -r -d $'"'"'\0'"'"' l_file; do
            l_output2="$l_output2\n  - File: \"$l_file\" is group owned by group: \"$(stat -Lc '"'"'%G'"'"' "$l_file")\"\n     (should be group owned by group: \"root or audit\")\n"
         done < <(find "$l_audit_log_directory" -maxdepth 1 -type f \( ! - group root -a ! -group audit \) -print0)
      else
         l_output2="$l_output2\n  - Log file directory not set in \"/etc/audit/auditd.conf\" please set log file directory"
      fi
   else
      l_output2="$l_output2\n  - File: \"/etc/audit/auditd.conf\" not found.\n  - ** Verify auditd is installed **"
   fi
   if [ -z "$l_output2" ]; then
      l_output="$l_output\n  - All files in \"$l_audit_log_directory\" are group owned by group: \"root or audit\"\n"
      echo -e "\n- Audit Result:\n  ** PASS **\n - * Correctly configured * :$l_output"
   else
      echo -e "\n- Audit Result:\n  ** FAIL **\n - * Reasons for audit failure * :$l_output2\n"
      [ -n "$l_output" ] && echo -e " - * Correctly configured * :\n$l_output\n"
   fi
}' 2>&1); printf '%s\n' "$o" | grep -q '\*\* PASS \*\*' || { echo "step1: script did not report PASS"; return 1; }; }; if alt0; then echo compliant; fi
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Note The following scripts will set the group to either audit or root based on the existence of the group audit. If the group audit doesn't exist, or the log_group parameter is already set to root, the appropriate group is determined to be the group root Run the following script to configure the audit log files to be owned by appropriate group: #!/usr/bin/env bash { l_group=""; grep -Pq '^audit:' /etc/group && l_group="audit" [ -z "$l_group" ] || [ "$(awk -F= '$1~/^\s*log_group\s*$/{print $2}' /etc/audit/auditd.conf | xargs)" = root ] && l_group="root" find $(dirname $(awk -F"=" '/^\s*log_file\s*=\s*/ {print $2}' /etc/audit/auditd.conf | xargs)) -type f \( ! -group root -a ! -group audit \) …

Properties

Operating systems
sles-16
Tags
cis-convertedlinux
Reference
CIS SUSE Linux Enterprise 16 Benchmark v1.0.0 - 6.2.4.4

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target linux --level 2