[Forgot Password]
Login  Register Subscribe

30479

 
 

423868

 
 

248392

 
 

909

 
 

195452

 
 

282

Paid content will be excluded from the download.


Download | Alert*
CCE
view XML

CCE-55036-8

Platform: cpe:/o:redhat:enterprise_linux:8,cpe:/o:oracle:linux:7,cpe:/o:oracle:linux:8,cpe:/o:amazon:linux:2,cpe:/o:redhat:enterprise_linux:9,cpe:/o:redhat:enterprise_linux:7,cpe:/o:centos:centos:7Date: (C)2024-01-08   (M)2024-04-23



Title: Ensure events that modify the sudo log file are collected Description: Monitor the sudo log file. If the system has been properly configured to disable the use of the su command and force all administrators to have to log in first and then use sudo to execute privileged commands, then all administrator commands will be logged to /var/log/sudo.log . Any time a command is executed, an audit event will be triggered as the /var/log/sudo.log file will be opened for write and the executed administration command will be written to the log. Rationale: Changes in /var/log/sudo.log indicate that an administrator has executed a command or the log file itself has been tampered with. Administrators will want to correlate the events written to the audit trail with the records written to /var/log/sudo.log to verify if unauthorized commands have been executed. Audit: On disk configuration Run the following command to check the on disk rules: # SUDO_LOG_FILE_ESCAPED=$(grep -r logfile /etc/sudoers* | sed -e 's/.*logfile=//;s/,? .*//' -e 's/"//g' -e 's|/|\\/|g') # [ -n "${SUDO_LOG_FILE_ESCAPED}" ] && awk "/^ * -w/ \ &&/"${SUDO_LOG_FILE_ESCAPED}"/ \ &&/ +-p *wa/ \ &&(/ key= *[! -~]* *$/||/ -k *[!-~]* *$/)" /etc/audit/rules.d/*.rules \ || printf "ERROR: Variable 'SUDO_LOG_FILE_ESCAPED' is unset. \n" Verify output of matches: -w /var/log/sudo.log -p wa -k sudo_log_file Running configuration Run the following command to check loaded rules: # SUDO_LOG_FILE_ESCAPED=$(grep -r logfile /etc/sudoers* | sed -e 's/.*logfile=//;s/,? .*//' -e 's/"//g' -e 's|/|\\/|g') # [ -n "${SUDO_LOG_FILE_ESCAPED}" ] && auditctl -l | awk "/^ * -w/ \ &&/"${SUDO_LOG_FILE_ESCAPED}"/ \ &&/ +-p *wa/ \ &&(/ key= *[! -~]* *$/||/ -k *[!-~]* *$/)" \ || printf "ERROR: Variable 'SUDO_LOG_FILE_ESCAPED' is unset. \n" Verify output matches: -w /var/log/sudo.log -p wa -k sudo_log_file Remediation: Edit or create a file in the /etc/audit/rules.d/ directory, ending in .rules extension, with the relevant rules to monitor events that modify the sudo log file. Example: # SUDO_LOG_FILE=$(grep -r logfile /etc/sudoers* | sed -e 's/.*logfile=//;s/,? .*//' -e 's/"//g') # [ -n "${SUDO_LOG_FILE_ESCAPED}" ] && printf " -w ${SUDO_LOG_FILE} -p wa -k sudo_l og_file " >> /etc/audit/rules.d/50 -sudo.rules \ || printf "ERROR: Variable 'SUDO_LOG_FILE_ESCAPED' is unset. \n" Merge and load the rules into active configuration: # augenrules --load Check if reboot is required. # if [[ $(auditctl -s | grep "enabled") =~ "2" ]]; then printf "Reboot required to load rules \n"; fi Additional Information: Potential reboot required If the auditing configuration is locked ( -e 2), then augenrules will not warn in any way that rules could not be loaded into the running configuration. A system reboot will be required to load the rules into the running configuration. System call structure For performance ( man 7 audit.rules ) reasons it is preferable to have all the system calls on one line. However, your configuration may have them on one line each or some other combination. This is important to understand for both the auditing and remediation sections as the examples given are optimized for performance as per the man page.


Parameter:

[yes/no]


Technical Mechanism:

Remediation: Edit or create a file in the /etc/audit/rules.d/ directory, ending in .rules extension, with the relevant rules to monitor events that modify the sudo log file. Example: # SUDO_LOG_FILE=$(grep -r logfile /etc/sudoers* | sed -e s/.*logfile=//;s/,? .*// -e s/ //g ) # [ -n ${SUDO_LOG_FILE_ESCAPED} ] && printf -w ${SUDO_LOG_FILE} -p wa -k sudo_l og_file >> /etc/audit/rules.d/50 -sudo.rules \\ || printf ERROR: Variable SUDO_LOG_FILE_ESCAPED is unset. \\n Merge and load the rules into active configuration: # augenrules --load Check if reboot is required. # if [[ $(auditctl -s | grep enabled ) =~ 2 ]]; then printf Reboot required to load rules \\n ; fi Additional Information: Potential reboot required If the auditing configuration is locked ( -e 2), then augenrules will not warn in any way that rules could not be loaded into the running configuration. A system reboot will be required to load the rules into the running configuration. System call structure For performance ( man 7 audit.rules ) reasons it is preferable to have all the system calls on one line. However, your configuration may have them on one line each or some other combination. This is important to understand for both the auditing and remediation sections as the examples given are optimized for performance as per the man page.

CCSS Severity:CCSS Metrics:
CCSS Score : 6.6Attack Vector: LOCAL
Exploit Score: 1.8Attack Complexity: LOW
Impact Score: 4.7Privileges Required: LOW
Severity: MEDIUMUser Interaction: NONE
Vector: AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:LScope: UNCHANGED
 Confidentiality: HIGH
 Integrity: LOW
 Availability: LOW
  

References:
Resource IdReference
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:97461
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:97429
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:97494
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:96236
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:97198
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:97166
SCAP Repo OVAL Definitionoval:org.secpod.oval:def:97229


OVAL    7
oval:org.secpod.oval:def:97429
oval:org.secpod.oval:def:96236
oval:org.secpod.oval:def:97229
oval:org.secpod.oval:def:97461
...
XCCDF    7
xccdf_org.secpod_benchmark_general_CENTOS_7
xccdf_org.secpod_benchmark_general_RHEL_8
xccdf_org.secpod_benchmark_general_OEL_8
xccdf_org.secpod_benchmark_general_Amazon_Linux_2
...

© SecPod Technologies