Verify that Shared Library Directories Have Restrictive Permissions
Description
System-wide shared library directories, which contain are linked to executables
during process load time or run time, are stored in the following directories
by default:
/lib
/lib64
/usr/lib
/usr/lib64
Kernel modules, which can be added to the kernel during runtime, are
stored in /lib/modules
. All sub-directories in these directories
should not be group-writable or world-writable. If any file in these
directories is found to be group-writable or world-writable, correct
its permission with the following command:
Rationale
If the operating system were to allow any user to make changes to software libraries,
then those changes might be implemented without undergoing the appropriate testing
and approvals that are part of a robust change management process.
This requirement applies to operating systems with software libraries that are accessible
and configurable, as in the case of interpreted languages. Software libraries also include
privileged programs which execute with escalated privileges. Only qualified and authorized
individuals must be allowed to obtain access to information system components for purposes
of initiating changes, including upgrades and modifications.
Shell script
The following script can be run on the host to remediate the issue.
#!/bin/bash
find -H /lib/ -perm /g+w,o+w -type d -exec chmod g-w,o-w {} \;
find -H /lib64/ -perm /g+w,o+w -type d -exec chmod g-w,o-w {} \;
find -H /usr/lib/ -perm /g+w,o+w -type d -exec chmod g-w,o-w {} \;
find -H /usr/lib64/ -perm /g+w,o+w -type d -exec chmod g-w,o-w {} \;
Ansible playbook
The following playbook can be run with Ansible to remediate the issue.
- name: Find /lib/ file(s) recursively
command: 'find -H /lib/ -perm /g+w,o+w -type d '
register: files_found
changed_when: false
failed_when: false
check_mode: false
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Set permissions for /lib/ file(s)
file:
path: '{{ item }}'
mode: g-w,o-w
state: directory
with_items:
- '{{ files_found.stdout_lines }}'
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Find /lib64/ file(s) recursively
command: 'find -H /lib64/ -perm /g+w,o+w -type d '
register: files_found
changed_when: false
failed_when: false
check_mode: false
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Set permissions for /lib64/ file(s)
file:
path: '{{ item }}'
mode: g-w,o-w
state: directory
with_items:
- '{{ files_found.stdout_lines }}'
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Find /usr/lib/ file(s) recursively
command: 'find -H /usr/lib/ -perm /g+w,o+w -type d '
register: files_found
changed_when: false
failed_when: false
check_mode: false
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Set permissions for /usr/lib/ file(s)
file:
path: '{{ item }}'
mode: g-w,o-w
state: directory
with_items:
- '{{ files_found.stdout_lines }}'
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Find /usr/lib64/ file(s) recursively
command: 'find -H /usr/lib64/ -perm /g+w,o+w -type d '
register: files_found
changed_when: false
failed_when: false
check_mode: false
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed
- name: Set permissions for /usr/lib64/ file(s)
file:
path: '{{ item }}'
mode: g-w,o-w
state: directory
with_items:
- '{{ files_found.stdout_lines }}'
tags:
- DISA-STIG-UBTU-20-010427
- NIST-800-53-CM-5
- NIST-800-53-CM-5(6)
- NIST-800-53-CM-5(6).1
- configure_strategy
- dir_permissions_library_dirs
- low_complexity
- low_disruption
- medium_severity
- no_reboot_needed