diff --git a/components/filesystem.yml b/components/filesystem.yml index b2c0d2300c5..0b1f4f652d3 100644 --- a/components/filesystem.yml +++ b/components/filesystem.yml @@ -40,8 +40,20 @@ rules: - file_groupowner_etc_shells - file_groupowner_systemmap - file_groupowner_var_log +- file_groupowner_var_log_apt +- file_groupowner_var_log_auth +- file_groupowner_var_log_cloud_init +- file_groupowner_var_log_gdm +- file_groupowner_var_log_gdm3 +- file_groupowner_var_log_journal +- file_groupowner_var_log_lastlog +- file_groupowner_var_log_localmessages - file_groupowner_var_log_messages +- file_groupowner_var_log_secure +- file_groupowner_var_log_sssd - file_groupowner_var_log_syslog +- file_groupowner_var_log_waagent +- file_groupowner_var_log_wbtmp - file_groupownership_audit_binaries - file_groupownership_system_commands_dirs - file_owner_backup_etc_group @@ -58,8 +70,19 @@ rules: - file_owner_etc_shadow - file_owner_systemmap - file_owner_var_log +- file_owner_var_log_auth +- file_owner_var_log_cloud_init +- file_owner_var_log_gdm +- file_owner_var_log_gdm3 +- file_owner_var_log_journal +- file_owner_var_log_lastlog +- file_owner_var_log_localmessages - file_owner_var_log_messages +- file_owner_var_log_secure +- file_owner_var_log_sssd - file_owner_var_log_syslog +- file_owner_var_log_waagent +- file_owner_var_log_wbtmp - file_ownership_audit_binaries - file_ownership_binary_dirs - file_ownership_library_dirs @@ -89,8 +112,20 @@ rules: - file_permissions_unauthorized_world_writable - file_permissions_ungroupowned - file_permissions_var_log +- file_permissions_var_log_apt +- file_permissions_var_log_auth +- file_permissions_var_log_cloud-init +- file_permissions_var_log_gdm +- file_permissions_var_log_gdm3 +- file_permissions_var_log_lastlog +- file_permissions_var_log_localmessages - file_permissions_var_log_messages +- file_permissions_var_log_secure +- file_permissions_var_log_sssd - file_permissions_var_log_syslog +- file_permissions_var_log_waagent +- file_permissions_var_log_wbtmp +- groupowner_local_var_log - mount_option_boot_efi_nosuid - mount_option_boot_noauto - mount_option_boot_nodev @@ -132,6 +167,7 @@ rules: - mount_option_var_tmp_noexec - mount_option_var_tmp_nosuid - no_files_unowned_by_user +- owner_local_var_log - partition_for_boot - partition_for_dev_shm - partition_for_home diff --git a/controls/cis_ubuntu2404.yml b/controls/cis_ubuntu2404.yml index 4f282614315..7efa9ba8fdc 100644 --- a/controls/cis_ubuntu2404.yml +++ b/controls/cis_ubuntu2404.yml @@ -2433,10 +2433,52 @@ controls: levels: - l1_server - l1_workstation - related_rules: + rules: + - file_groupowner_var_log_apt + - file_groupowner_var_log_auth + - file_groupowner_var_log_cloud_init + - file_groupowner_var_log_gdm + - file_groupowner_var_log_gdm3 + - file_groupowner_var_log_journal + - file_groupowner_var_log_lastlog + - file_groupowner_var_log_localmessages + - file_groupowner_var_log_messages + - file_groupowner_var_log_secure + - file_groupowner_var_log_sssd + - file_groupowner_var_log_syslog + - file_groupowner_var_log_waagent + - file_groupowner_var_log_wbtmp + - file_owner_var_log_auth + - file_owner_var_log_cloud_init + - file_owner_var_log_gdm + - file_owner_var_log_gdm3 + - file_owner_var_log_journal + - file_owner_var_log_lastlog + - file_owner_var_log_localmessages + - file_owner_var_log_messages + - file_owner_var_log_secure + - file_owner_var_log_sssd + - file_owner_var_log_syslog + - file_owner_var_log_waagent + - file_owner_var_log_wbtmp + - file_permissions_var_log_apt + - file_permissions_var_log_auth + - file_permissions_var_log_cloud-init + - file_permissions_var_log_gdm + - file_permissions_var_log_gdm3 + - file_permissions_var_log_lastlog + - file_permissions_var_log_cloud-init + - file_permissions_var_log_localmessages + - file_permissions_var_log_messages + - file_permissions_var_log_secure + - file_permissions_var_log_sssd + - file_permissions_var_log_syslog + - file_permissions_var_log_waagent + - file_permissions_var_log_wbtmp + - groupowner_local_var_log + - owner_local_var_log - permissions_local_var_log - status: planned - notes: TODO. Partial/incorrect implementation exists.See related rules. Analogous to ubuntu2204/4.2.3. + status: automated - id: 6.2.1.1 title: Ensure auditd packages are installed (Automated) diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/bash/shared.sh b/linux_os/guide/system/permissions/files/groupowner_local_var_log/bash/shared.sh new file mode 100644 index 00000000000..7446a00b8f6 --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/bash/shared.sh @@ -0,0 +1,13 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low + +if getent group "adm" >/dev/null 2>&1; then + group="adm" +else + group="root" +fi + +find -L /var/log/ -maxdepth 1 -regextype posix-extended ! -group root ! -group adm -name '*' ! -path '/var/log/apt/*' ! -name 'auth.log' ! -path '/var/log/[bw]tmp*' ! -path '/var/log/cloud-init.log*' ! -name 'gdm' ! -name 'gdm3' ! -regex '.*\.journal[~]?' ! -regex '.*lastlog(\.[^\/]+)?$' ! -regex '.*localmessages(.*)' ! -name 'messages' ! -regex '.*secure(.*)' ! -name 'sssd' ! -name 'syslog' ! -regex '.*waagent.log(.*)' -regex '.*' -exec chgrp $group {} \; diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/oval/shared.xml b/linux_os/guide/system/permissions/files/groupowner_local_var_log/oval/shared.xml new file mode 100644 index 00000000000..20c91db17aa --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/oval/shared.xml @@ -0,0 +1,87 @@ + + + {{{ oval_metadata("Group owner of /var/log/* should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log + .* + exclude_files_apt + exclude_files_auth_log + exclude_files_bwtmp + exclude_files_cloudinit + exclude_files_gdm + exclude_files_journal + exclude_files_lastlog + exclude_files_localmessages + exclude_files_messages + exclude_files_secure + exclude_files_sssd + exclude_files_syslog + exclude_files_waagent + + + + + + 0 + + + ^.*apt + + + auth.log + + + ^.*[bw]tmp((\.|-).*)?$ + + + ^.*cloud-init\.log.* + + + ^.*gdm|gdm3 + + + ^.*\.journal.*$ + + + ^.*lastlog.*$ + + + ^.*localmessages.*$ + + + messages + + + ^.*secure.*$ + + + ^.*(sssd|SSSD)$ + + + syslog + + + ^.*waagent\.log.*$ + + diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/rule.yml b/linux_os/guide/system/permissions/files/groupowner_local_var_log/rule.yml new file mode 100644 index 00000000000..ac9dc0da084 --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/rule.yml @@ -0,0 +1,33 @@ +documentation_complete: true + + +title: 'Verify ownership of log files' + +description: |- + Any operating system providing too much information in error messages + risks compromising the data and security of the structure, and content + of error messages needs to be carefully considered by the organization. + + Organizations carefully consider the structure/content of error messages. + The extent to which information systems are able to identify and handle + error conditions is guided by organizational policy and operational + requirements. Information that could be exploited by adversaries includes, + for example, erroneous logon attempts with passwords entered by mistake + as the username, mission/business information that can be derived from + (if not stated explicitly by) information recorded, and personal + information, such as account numbers, social security numbers, and credit + card numbers. + +rationale: |- + The {{{ full_name }}} must generate error messages that provide information + necessary for corrective actions without revealing information that could + be exploited by adversaries. + +severity: medium + +ocil_clause: 'not all log files owned by root or syslog' + +ocil: |- + Verify the operating system has all system log files under the +
/var/log
directory, that are not excluded, with a group owner set to root | adm, + diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/excluded_files.pass.sh b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/excluded_files.pass.sh new file mode 100644 index 00000000000..8cfdf05e84f --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/excluded_files.pass.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +chgrp root /var/log/* +mkdir -p /var/log/apt +chgrp nogroup /var/log/apt +touch /var/log/auth.log +chgrp nogroup /var/log/auth.log +touch /var/log/btmp.log +touch /var/log/btmp.log.1 +touch /var/log/btmp.log-1 +chgrp nogroup /var/log/btmp* +touch /var/log/wtmp.log +touch /var/log/wtmp.log.1 +touch /var/log/wtmp.log-1 +chgrp nogroup /var/log/wtmp* +touch /var/log/cloud-init.log +touch /var/log/cloud-init.log.1 +chgrp nogroup /var/log/cloud-init.log* +mkdir -p /var/log/gdm +chgrp nogroup /var/log/gdm +mkdir -p /var/log/gdm3 +chgrp nogroup /var/log/gdm3 +touch /var/log/test.journal +touch /var/log/test.journal~ +chgrp nogroup /var/log/*.journal* +touch /var/log/lastlog +touch /var/log/lastlog.1 +chgrp nogroup /var/log/lastlog* +touch /var/log/localmessages +touch /var/log/localmessages.1 +chgrp nogroup /var/log/localmessages* +touch /var/log/messages +chgrp nogroup /var/log/messages +touch /var/log/secure +chgrp nogroup /var/log/secure* +mkdir -p /var/log/sssd +chgrp nogroup /var/log/sssd +touch /var/log/syslog +chgrp nogroup /var/log/syslog +touch /var/log/waagent.log +touch /var/log/waagent.log.1 +chgrp nogroup /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..9589f5fdde4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/test.log +chgrp adm /var/log/test.log diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..ac052d18dfd --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/test.log +chgrp nogroup /var/log/test.log diff --git a/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..89bd07ab748 --- /dev/null +++ b/linux_os/guide/system/permissions/files/groupowner_local_var_log/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/test.log +chgrp root /var/log/test.log diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/bash/shared.sh b/linux_os/guide/system/permissions/files/owner_local_var_log/bash/shared.sh new file mode 100644 index 00000000000..749384310e1 --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/bash/shared.sh @@ -0,0 +1,13 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low + +if id "syslog" >/dev/null 2>&1; then + username="syslog" +else + username="root" +fi + +find -L /var/log/ -maxdepth 1 -regextype posix-extended ! -user root ! -user syslog ! -path '/var/log/apt/*' ! -name 'auth.log' ! -path '/var/log/[bw]tmp*' ! -path '/var/log/cloud-init.log*' ! -name 'gdm' ! -name 'gdm3' ! -regex '.*\.journal[~]?' ! -regex '.*lastlog(\.[^\/]+)?$' ! -regex '.*localmessages(.*)' ! -name 'messages' ! -regex '.*secure(.*)' ! -name 'sssd' ! -name 'syslog' ! -regex '.*waagent.log(.*)' -regex '.*' -exec chown $username {} \; diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/oval/shared.xml b/linux_os/guide/system/permissions/files/owner_local_var_log/oval/shared.xml new file mode 100644 index 00000000000..82a453d5508 --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/oval/shared.xml @@ -0,0 +1,84 @@ + + + {{{ oval_metadata("Owner of /var/log/* should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log + .* + exclude_files_apt + exclude_files_auth_log + exclude_files_bwtmp + exclude_files_cloudinit + exclude_files_gdm + exclude_files_journal + exclude_files_lastlog + exclude_files_localmessages + exclude_files_messages + exclude_files_secure + exclude_files_sssd + exclude_files_syslog + exclude_files_waagent + + + + + + 0 + + + ^.*apt + + + auth.log + + + ^.*[bw]tmp((\.|-).*)?$ + + + ^.*cloud-init\.log.* + + + ^.*gdm|gdm3 + + + ^.*\.journal.*$ + + + ^.*lastlog.*$ + + + ^.*localmessages.*$ + + + messages + + + ^.*secure.*$ + + + ^.*(sssd|SSSD)$ + + + syslog + + + ^.*waagent\.log.*$ + + diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/rule.yml b/linux_os/guide/system/permissions/files/owner_local_var_log/rule.yml new file mode 100644 index 00000000000..dc899f97aa6 --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/rule.yml @@ -0,0 +1,33 @@ +documentation_complete: true + + +title: 'Verify ownership of log files' + +description: |- + Any operating system providing too much information in error messages + risks compromising the data and security of the structure, and content + of error messages needs to be carefully considered by the organization. + + Organizations carefully consider the structure/content of error messages. + The extent to which information systems are able to identify and handle + error conditions is guided by organizational policy and operational + requirements. Information that could be exploited by adversaries includes, + for example, erroneous logon attempts with passwords entered by mistake + as the username, mission/business information that can be derived from + (if not stated explicitly by) information recorded, and personal + information, such as account numbers, social security numbers, and credit + card numbers. + +rationale: |- + The {{{ full_name }}} must generate error messages that provide information + necessary for corrective actions without revealing information that could + be exploited by adversaries. + +severity: medium + +ocil_clause: 'not all log files owned by root or syslog' + +ocil: |- + Verify the operating system has all system log files under the +
/var/log
directory, that are not excluded, with an owner set to root | syslog, + diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/tests/excluded_files.pass.sh b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/excluded_files.pass.sh new file mode 100644 index 00000000000..78c18db16cd --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/excluded_files.pass.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +chown root /var/log/* +mkdir -p /var/log/apt +chown nobody /var/log/apt +touch /var/log/auth.log +chown nobody /var/log/auth.log +touch /var/log/btmp.log +touch /var/log/btmp.log.1 +touch /var/log/btmp.log-1 +chown nobody /var/log/btmp* +touch /var/log/wtmp.log +touch /var/log/wtmp.log.1 +touch /var/log/wtmp.log-1 +chown nobody /var/log/wtmp* +touch /var/log/cloud-init.log +touch /var/log/cloud-init.log.1 +chown nobody /var/log/cloud-init.log* +mkdir -p /var/log/gdm +chown nobody /var/log/gdm +mkdir -p /var/log/gdm3 +chown nobody /var/log/gdm3 +touch /var/log/test.journal +touch /var/log/test.journal~ +chown nobody /var/log/*.journal* +touch /var/log/lastlog +touch /var/log/lastlog.1 +chown nobody /var/log/lastlog* +touch /var/log/localmessages +touch /var/log/localmessages.1 +chown nobody /var/log/localmessages* +touch /var/log/messages +chown nobody /var/log/messages +touch /var/log/secure +chown nobody /var/log/secure* +mkdir -p /var/log/sssd +chown nobody /var/log/sssd +touch /var/log/syslog +chown nobody /var/log/syslog +touch /var/log/waagent.log +touch /var/log/waagent.log.1 +chown nobody /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..5e849fbb808 --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/test.log +chown nobody /var/log/test.log diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..3f045ec704c --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/test.log +chown root /var/log/test.log diff --git a/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..e032ab3cf24 --- /dev/null +++ b/linux_os/guide/system/permissions/files/owner_local_var_log/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/test.log +chown syslog /var/log/test.log diff --git a/linux_os/guide/system/permissions/files/permissions_local_var_log/rule.yml b/linux_os/guide/system/permissions/files/permissions_local_var_log/rule.yml index 45e90dfb3a6..2dceab60fc0 100644 --- a/linux_os/guide/system/permissions/files/permissions_local_var_log/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_local_var_log/rule.yml @@ -61,6 +61,7 @@ template: excluded_files@slmicro5: ['*[bw]tmp', '*lastlog'] excluded_files@ubuntu2004: ['history.log', 'eipp.log.xz', '*[bw]tmp', '*lastlog'] excluded_files@ubuntu2204: ['history.log', 'eipp.log.xz', '*[bw]tmp', '*lastlog'] + excluded_files@ubuntu2404: ['*[bw]tmp', '*lastlog', '*cloud-init', '*localmessages', '*waagent', '*sssd|*SSSD', '*gdm', '*apt/*'] file_regex: '.*' filemode: '0640' filepath: /var/log/ diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/bash/shared.sh new file mode 100644 index 00000000000..83fadb8c36c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type d -regextype posix-extended -name 'apt' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/oval/shared.xml new file mode 100644 index 00000000000..44ef6802a54 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/oval/shared.xml @@ -0,0 +1,35 @@ + + + {{{ oval_metadata("Group owner of /var/log/apt should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/apt + + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/rule.yml new file mode 100644 index 00000000000..b414256c4cf --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/apt Directory' + +description: '{{{ describe_file_group_owner(file="/var/log/apt", group="root|adm") }}}' + +rationale: |- + The /var/log/apt directory contains information about APT + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/apt", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/apt", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..d01c42a961d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +mkdir -p /var/log/apt +chgrp adm /var/log/apt diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..b117e976162 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +mkdir -p /var/log/apt +chgrp nogroup /var/log/apt diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..3988f2d423f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_apt/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +mkdir -p /var/log/apt +chgrp root /var/log/apt diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/bash/shared.sh new file mode 100644 index 00000000000..065457bdcd1 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -name 'auth.log' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/oval/shared.xml new file mode 100644 index 00000000000..ba493980396 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/auth should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/auth.log + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/rule.yml new file mode 100644 index 00000000000..d4adc023d7f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/rule.yml @@ -0,0 +1,17 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/auth.log File' + +description: '{{{ describe_file_group_owner(file="/var/log/auth.log", group="root|adm") }}}' + +rationale: |- + The /var/log/auth.log file contains records information about user + login attempts and authentication processes and should only be accessed by + authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/auth.log", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/auth.log", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..1b523c68fb5 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/auth.log +chgrp adm /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..2aa944fbf66 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/auth.log +chgrp nogroup /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..518a2ad404d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_auth/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/auth.log +chgrp root /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/bash/shared.sh new file mode 100644 index 00000000000..8ded9fb24c0 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -regex '.*cloud-init.log(.*)' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/oval/shared.xml new file mode 100644 index 00000000000..1130e282962 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/cloud-init.log should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/cloud-init.log(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/rule.yml new file mode 100644 index 00000000000..806de152a55 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/cloud-init.log File' + +description: '{{{ describe_file_group_owner(file="/var/log/cloud-init.log", group="root|adm") }}}' + +rationale: |- + The /var/log/cloud-init.log file contains detailed debugging information that + helps users troubleshoot cloud-init and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/cloud-init.log", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/cloud-init.log", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..0931f657de4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/cloud-init.log +chgrp adm /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..02858735fd2 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/cloud-init.log +chgrp nogroup /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..23cbd33649d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_cloud_init/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/cloud-init.log +chgrp root /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/bash/shared.sh new file mode 100644 index 00000000000..af9234cd665 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group gdm -type d -regextype posix-extended -name 'gdm' -exec chgrp gdm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/oval/shared.xml new file mode 100644 index 00000000000..fd017094d14 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/oval/shared.xml @@ -0,0 +1,35 @@ + + + {{{ oval_metadata("Group owner of /var/log/gdm should be root or gdm.") }}} + + + + + + + /etc/group + ^gdm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/gdm + + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/rule.yml new file mode 100644 index 00000000000..24f30c350ea --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/gdm Directory' + +description: '{{{ describe_file_group_owner(file="/var/log/gdm", group="root|gdm") }}}' + +rationale: |- + The /var/log/gdm directory contains information about the GDM daemon + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/gdm", group="root|gdm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/gdm", group="root|gdm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_gdm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_gdm.pass.sh new file mode 100644 index 00000000000..eb4a13eb4ed --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_gdm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = gdm + +mkdir -p /var/log/gdm +chgrp gdm /var/log/gdm diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..edd8cec8f48 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = gdm + +mkdir -p /var/log/gdm +chgrp nogroup /var/log/gdm diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..1491b301906 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = gdm + +mkdir -p /var/log/gdm +chgrp root /var/log/gdm diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/bash/shared.sh new file mode 100644 index 00000000000..7cdcd09fa9f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group gdm -type d -regextype posix-extended -name 'gdm3' -exec chgrp gdm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/oval/shared.xml new file mode 100644 index 00000000000..ffb6d779b5e --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/oval/shared.xml @@ -0,0 +1,35 @@ + + + {{{ oval_metadata("Group owner of /var/log/gdm3 should be root or gdm.") }}} + + + + + + + /etc/group + ^gdm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/gdm3 + + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/rule.yml new file mode 100644 index 00000000000..7e074ef4286 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/gdm3 Directory' + +description: '{{{ describe_file_group_owner(file="/var/log/gdm3", group="root|gdm") }}}' + +rationale: |- + The /var/log/gdm3 directory stores information about the GNOME Display Manager (GDM) + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/gdm3", group="root|gdm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/gdm3", group="root|gdm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_gdm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_gdm.pass.sh new file mode 100644 index 00000000000..8605f999cc0 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_gdm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = gdm3 + +mkdir -p /var/log/gdm3 +chgrp gdm /var/log/gdm3 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..049ab198cb9 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = gdm3 + +mkdir -p /var/log/gdm3 +chgrp nogroup /var/log/gdm3 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..151e0d68a3d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_gdm3/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = gdm3 + +mkdir -p /var/log/gdm3 +chgrp root /var/log/gdm3 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/bash/shared.sh new file mode 100644 index 00000000000..fffcdaf40b9 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group systemd-journal -type f -regextype posix-extended -regex ".*\.journal[~]?" -exec chgrp systemd-journal {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/oval/shared.xml new file mode 100644 index 00000000000..d76b924f00d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/*.journal-* should be root or systemd-journal.") }}} + + + + + + + /etc/group + ^systemd-journal:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/.*\.journal(~)?$ + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/rule.yml new file mode 100644 index 00000000000..c73b60a6310 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/rule.yml @@ -0,0 +1,15 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/*.journal(~) File' + +description: '{{{ describe_file_group_owner(file="/var/log/*.journal(~)", group="root|systemd-journal") }}}' + +rationale: |- + The /var/log/*.journal(~) files are system logs managed by the "systemd" service. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/*.journal(~)", group="root|systemd-journal") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/*.journal(~)", group="root|systemd-journal") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..deface5d857 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = systemd + + +touch /var/log/test.journal +touch /var/log/test.journal~ +chgrp nogroup /var/log/test.journal +chgrp nogroup /var/log/test.journal~ + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..bb55e34be81 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_root.pass.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = systemd + + +touch /var/log/test.journal +touch /var/log/test.journal~ +chgrp root /var/log/test.journal +chgrp root /var/log/test.journal~ + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_systemd-journal.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_systemd-journal.pass.sh new file mode 100644 index 00000000000..b8a45e2f9ce --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_journal/tests/owned_by_systemd-journal.pass.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = systemd + +touch /var/log/test.journal +touch /var/log/test.journal~ +chgrp systemd-journal /var/log/test.journal +chgrp systemd-journal /var/log/test.journal~ diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/bash/shared.sh new file mode 100644 index 00000000000..5034dd2a90e --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/bash/shared.sh @@ -0,0 +1,12 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +# platform = multi_platform_all +# reboot = false +# strategy = configure +# complexity = low +# disruption = low + +find -L /var/log/ -maxdepth 1 ! -group root ! -group utmp -type f -regextype posix-extended -regex '.*lastlog(\.[^\/]+)?$' -exec chgrp utmp {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/oval/shared.xml new file mode 100644 index 00000000000..99a6eead756 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/lastlog should be root or utmp.") }}} + + + + + + + /etc/group + ^utmp:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/lastlog(\.[^\/]+)? + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/rule.yml new file mode 100644 index 00000000000..abc4793f805 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/lastlog File' + +description: '{{{ describe_file_group_owner(file="/var/log/lastlog", group="root|utmp") }}}' + +rationale: |- + The /var/log/lastlog file contains logs of reports the most recent login of all users + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/lastlog", group="root|utmp") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/lastlog", group="root|utmp") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..1fa2f5abce4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 + +touch /var/log/lastlog +touch /var/log/lastlog.1 +chgrp utmp /var/log/lastlog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..14ffe4e8841 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 + +touch /var/log/lastlog +touch /var/log/lastlog.1 +chgrp nogroup /var/log/lastlog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..b3888368b0a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_lastlog/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 + +touch /var/log/lastlog +touch /var/log/lastlog.1 +chgrp root /var/log/lastlog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/bash/shared.sh new file mode 100644 index 00000000000..1c816c1ce52 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -regex '.*localmessages(.*)' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/oval/shared.xml new file mode 100644 index 00000000000..e75cff2d965 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/localmessages should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/localmessages(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/rule.yml new file mode 100644 index 00000000000..54ad36f500a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/localmessages File' + +description: '{{{ describe_file_group_owner(file="/var/log/localmessages", group="root|adm") }}}' + +rationale: |- + The /var/log/localmessages file contains log messages from certain boot scripts, + including the DHCP client, and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/localmessages", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/localmessages", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..72f5d23263c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/localmessages +chgrp adm /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..e656311f137 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/localmessages +chgrp nogroup /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..440c038a322 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_localmessages/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/localmessages +chgrp root /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/bash/shared.sh new file mode 100644 index 00000000000..6dde84531a2 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -name 'messages' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/oval/ubuntu.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/oval/ubuntu.xml new file mode 100644 index 00000000000..c7952557706 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/oval/ubuntu.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/messages should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/messages + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/rule.yml index 68849bd25df..0b9cd58bed4 100644 --- a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/rule.yml @@ -2,7 +2,11 @@ documentation_complete: true title: 'Verify Group Who Owns /var/log/messages File' -description: '{{{ describe_file_group_owner(file="/var/log/messages", group="root") }}}' +{{% if 'ubuntu2404' not in product %}} +description: '{{{ describe_file_group_owner(file="/var/log/messages", group="adm") }}}' +{{%- else %}} +description: '{{{ describe_file_group_owner(file="/var/log/messages", group="root|adm") }}}' +{{%- endif %}} rationale: |- The /var/log/messages file contains logs of error messages in @@ -21,6 +25,7 @@ references: stigid@ol8: OL08-00-010230 stigid@rhel8: RHEL-08-010230 +{{% if 'ubuntu2404' not in product %}} ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/messages", group="root") }}}' ocil: |- @@ -35,3 +40,9 @@ fixtext: |- {{{ describe_file_group_owner(file="/var/log/messages", group="root") }}} srg_requirement: '{{{ srg_requirement_file_group_owner("/var/log/messages", group="root") }}}' +{{%- else %}} +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/messages", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/messages", group="root|adm") }}} +{{%- endif %}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..0bcc2765271 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/messages +chgrp adm /var/log/messages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..04532205dff --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/messages +chgrp nogroup /var/log/messages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..d5d151d517d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_messages/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/messages +chgrp root /var/log/messages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/bash/shared.sh new file mode 100644 index 00000000000..e079aae6c86 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -regex '.*secure(.*)' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/oval/shared.xml new file mode 100644 index 00000000000..28d96dc29e3 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/secure should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/secure(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/rule.yml new file mode 100644 index 00000000000..9e92f99ec8c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/secure File' + +description: '{{{ describe_file_group_owner(file="/var/log/secure", group="root|adm") }}}' + +rationale: |- + The /var/log/secure file contains information related to authentication + and authorization privileges and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/secure", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/secure", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..aa72bebff3d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/secure +chgrp adm /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..7b4b7f90bce --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/secure +chgrp nogroup /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..8c4bb95dc07 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_secure/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/secure +chgrp root /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/bash/shared.sh new file mode 100644 index 00000000000..ce5a7b13585 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group sssd -type d -regextype posix-extended -name 'sssd' -exec chgrp sssd {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/oval/shared.xml new file mode 100644 index 00000000000..876ffb6080c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/oval/shared.xml @@ -0,0 +1,35 @@ + + + {{{ oval_metadata("Group owner of /var/log/sssd should be root or sssd.") }}} + + + + + + + /etc/group + ^sssd:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/sssd + + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/rule.yml new file mode 100644 index 00000000000..b414256c4cf --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/apt Directory' + +description: '{{{ describe_file_group_owner(file="/var/log/apt", group="root|adm") }}}' + +rationale: |- + The /var/log/apt directory contains information about APT + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/apt", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/apt", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..4997c82d993 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = sssd + +mkdir -p /var/log/sssd +chgrp nogroup /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..0999ea8a180 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = sssd + +mkdir -p /var/log/sssd +chgrp root /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_sssd.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_sssd.pass.sh new file mode 100644 index 00000000000..569631f39df --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_sssd/tests/owned_by_sssd.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = sssd + +mkdir -p /var/log/sssd +chgrp sssd /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/bash/shared.sh new file mode 100644 index 00000000000..9da1e04856e --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -name 'syslog' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/oval/ubuntu.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/oval/ubuntu.xml new file mode 100644 index 00000000000..8878927a621 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/oval/ubuntu.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/syslog should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/syslog + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/rule.yml index 6b323f5b81e..c3e4097ee79 100644 --- a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/rule.yml @@ -2,7 +2,11 @@ documentation_complete: true title: 'Verify Group Who Owns /var/log/syslog File' +{{% if 'ubuntu2404' not in product %}} description: '{{{ describe_file_group_owner(file="/var/log/syslog", group="adm") }}}' +{{%- else %}} +description: '{{{ describe_file_group_owner(file="/var/log/syslog", group="root|adm") }}}' +{{%- endif %}} rationale: |- The /var/log/syslog file contains logs of error messages in @@ -16,6 +20,7 @@ references: stigid@ubuntu2004: UBTU-20-010420 stigid@ubuntu2204: UBTU-22-232135 +{{% if 'ubuntu2404' not in product %}} ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/syslog", group="adm") }}}' ocil: |- @@ -26,3 +31,9 @@ template: vars: filepath: /var/log/syslog gid_or_name: '4' +{{%- else %}} +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/syslog", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/syslog", group="root|adm") }}} +{{%- endif %}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..90f0d646603 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/syslog +chgrp adm /var/log/syslog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..f2419e3d1c6 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/syslog +chgrp nogroup /var/log/syslog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..98504afbb03 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_syslog/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/syslog +chgrp root /var/log/syslog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/bash/shared.sh new file mode 100644 index 00000000000..ed67ab6765e --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +find -L /var/log/ -maxdepth 1 ! -group root ! -group adm -type f -regextype posix-extended -regex '.*waagent.log(.*)' -exec chgrp adm {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/oval/shared.xml new file mode 100644 index 00000000000..f32be3f576f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/waagent.log should be root or adm.") }}} + + + + + + + /etc/group + ^adm:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/waagent.log(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/rule.yml new file mode 100644 index 00000000000..9cc8041bce4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/secure File' + +description: '{{{ describe_file_group_owner(file="/var/log/secure", group="root|adm") }}}' + +rationale: |- + The /var/log/waagent.log file contains Azure Linux Guest Agent records + events that can be used for troubleshooting and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/secure", group="root|adm") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/secure", group="root|adm") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_adm.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_adm.pass.sh new file mode 100644 index 00000000000..e6bc5561c4d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_adm.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/waagent.log +chgrp adm /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..330581a573a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/waagent.log +chgrp nogroup /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..74e4fab27e4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_waagent/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/waagent.log +chgrp root /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/bash/shared.sh new file mode 100644 index 00000000000..65d70ced901 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/bash/shared.sh @@ -0,0 +1,12 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +# platform = multi_platform_all +# reboot = false +# strategy = configure +# complexity = low +# disruption = low + +find -L /var/log/ -maxdepth 1 ! -group root ! -group utmp -type f -regextype posix-extended -regex '.*(b|w)tmp((\.|-)[^\/]+)?$' -exec chgrp utmp {} \; diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/oval/shared.xml new file mode 100644 index 00000000000..8c09df3f958 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/oval/shared.xml @@ -0,0 +1,34 @@ + + + {{{ oval_metadata("Group owner of /var/log/(w|b)tmp should be root or utmp.") }}} + + + + + + + /etc/group + ^utmp:\w+:(\w+):.* + 1 + + + + + + + + + + + + /var/log/(b|w)tmp((\.|-)[^\/]+)? + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/rule.yml new file mode 100644 index 00000000000..bf06139cf82 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify Group Who Owns /var/log/(b|w)tmp(.*|-*) File' + +description: '{{{ describe_file_group_owner(file="/var/log/(b|w)tmp(.*|-*)", group="root|utmp") }}}' + +rationale: |- + The /var/log/(b|w)tmp(.*|-*) file contains logs of reports the most recent login of all users + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_group_owner(file="/var/log/(b|w)tmp(.*|-*)", group="root|utmp") }}}' + +ocil: |- + {{{ ocil_file_group_owner(file="/var/log/(b|w)tmp(.*|-*)", group="root|utmp") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_nogroup.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_nogroup.fail.sh new file mode 100644 index 00000000000..18e6abb02ca --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_nogroup.fail.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# platform = Ubuntu 24.04 + +touch /var/log/btmp +touch /var/log/btmp.1 +touch /var/log/btmp-1 +chgrp nogroup /var/log/btmp* +touch /var/log/wtmp +touch /var/log/wtmp.1 +touch /var/log/wtmp-1 +chgrp nogroup /var/log/wtmp* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..c447f5ce18a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_root.pass.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# platform = Ubuntu 24.04 + +touch /var/log/btmp +touch /var/log/btmp.1 +touch /var/log/btmp-1 +chgrp root /var/log/btmp* +touch /var/log/wtmp +touch /var/log/wtmp.1 +touch /var/log/wtmp-1 +chgrp root /var/log/wtmp* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_utmp.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_utmp.pass.sh new file mode 100644 index 00000000000..5e7c4299fb1 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_groupowner_var_log_wbtmp/tests/owned_by_utmp.pass.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# platform = Ubuntu 24.04 + +touch /var/log/btmp +touch /var/log/btmp.1 +touch /var/log/btmp-1 +chgrp utmp /var/log/btmp* +touch /var/log/wtmp +touch /var/log/wtmp.1 +touch /var/log/wtmp-1 +chgrp utmp /var/log/wtmp* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/bash/shared.sh new file mode 100644 index 00000000000..301bd7c9bdc --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/oval/shared.xml new file mode 100644 index 00000000000..afb0b338038 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/oval/shared.xml @@ -0,0 +1,31 @@ + + + {{{ oval_metadata("Owner of /var/log/auth.log should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/auth.log + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/rule.yml new file mode 100644 index 00000000000..b08e6b2d107 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/rule.yml @@ -0,0 +1,17 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/auth.log File' + +description: '{{{ describe_file_owner(file="/var/log/auth.log", owner="root|syslog") }}}' + +rationale: |- + The /var/log/auth.log file contains records information about user + login attempts and authentication processes and should only be accessed by + authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/auth.log", owner="root|syslog") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/auth.log", owner="root|syslog") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..bd7114a7a1d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/auth.log +chown nobody /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..346c96c2bc1 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/auth.log +chown root /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..a692887109f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_auth/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/auth.log +chown syslog /var/log/auth.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/bash/shared.sh new file mode 100644 index 00000000000..72bc353445a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/oval/shared.xml new file mode 100644 index 00000000000..39d489043b0 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/oval/shared.xml @@ -0,0 +1,31 @@ + + + {{{ oval_metadata("Owner of /var/log/cloud-init.log should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/cloud-init.log(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/rule.yml new file mode 100644 index 00000000000..6f483f9af48 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/cloud-init.log File' + +description: '{{{ describe_file_owner(file="/var/log/cloud-init.log", owner="root|syslog") }}}' + +rationale: |- + The /var/log/cloud-init.log file contains detailed debugging information that + helps users troubleshoot cloud-init and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/cloud-init.log", owner="root|syslog") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/cloud-init.log", owner="root|syslog") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..170c11beeed --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/cloud-init.log +chown nobody /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..cd249ebdd4c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/cloud-init.log +chown root /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..13000086bc3 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_cloud_init/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/cloud-init.log +chown syslog /var/log/cloud-init.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_gdm/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_gdm/rule.yml new file mode 100644 index 00000000000..7d8af2f1e58 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_gdm/rule.yml @@ -0,0 +1,28 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/gdm directory' + +description: '{{{ describe_file_owner(file="/var/log/gdm", owner="root") }}}' + +rationale: |- + The /var/log/gdm directory contains information about the GDM daemon + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/gdm", owner="root") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/gdm", owner="root") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/gdm", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/gdm", owner="root") }}}' + +template: + name: file_owner + vars: + filepath: /var/log/gdm/ + fileuid: '0' + recursive: 'true' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_gdm3/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_gdm3/rule.yml new file mode 100644 index 00000000000..c2802dabf91 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_gdm3/rule.yml @@ -0,0 +1,28 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/gdm3 directory' + +description: '{{{ describe_file_owner(file="/var/log/gdm3", owner="root") }}}' + +rationale: |- + The /var/log/gdm3 directory stores information about the GNOME Display Manager (GDM) + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/gdm3", owner="root") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/gdm3", owner="root") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/gdm3", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/gdm3", owner="root") }}}' + +template: + name: file_owner + vars: + filepath: /var/log/gdm3/ + fileuid: '0' + recursive: 'true' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/rule.yml new file mode 100644 index 00000000000..ee71754c7ef --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/rule.yml @@ -0,0 +1,27 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/*.journal(~) Files' + +description: '{{{ describe_file_owner(file="/var/log/*.journal(~)", owner="root") }}}' + +rationale: |- + The /var/log/*.journal(~) files are system logs managed by the "systemd" service. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/*.journal(~)", owner="root") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/*.journal(~)", owner="root") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/*.journal(~)", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/*.journal(~)", owner="root") }}}' + +template: + name: file_owner + vars: + filepath: /var/log/ + file_regex: .*\.journal(~)?$ + fileuid: '0' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/incorrect_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/incorrect_owner.fail.sh new file mode 100644 index 00000000000..bac2945af55 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/incorrect_owner.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/my.journal +chown nobody /var/log/my.journal diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/invalid_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/invalid_owner.fail.sh new file mode 100644 index 00000000000..ee3954a2dcd --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/invalid_owner.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/my.journal~ +chown nobody /var/log/my.journal~ diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..5175f6bf6b5 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_journal/tests/valid_permissions.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +touch touch /var/log/my.journal~ +chown root /var/log/my.journal~ + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/rule.yml new file mode 100644 index 00000000000..a382289466a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/rule.yml @@ -0,0 +1,28 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/lastlog File' + +description: '{{{ describe_file_owner(file="/var/log/lastlog", owner="root") }}}' + +rationale: |- + The /var/log/lastlog file contains logs of reports the most recent login of all users + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/lastlog", owner="root") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/lastlog", owner="root") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/lastlog", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/lastlog", owner="root") }}}' + +template: + name: file_owner + vars: + filepath: /var/log/ + file_regex: .*lastlog(\.[^\/]+)?$ + fileuid: '0' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/incorrect_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/incorrect_owner.fail.sh new file mode 100644 index 00000000000..a0fe9e9cd3b --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/incorrect_owner.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/lastlog +chown syslog /var/log/lastlog diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/invalid_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/invalid_owner.fail.sh new file mode 100644 index 00000000000..d2136f32f41 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/invalid_owner.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/lastlog.1 +chown syslog /var/log/lastlog.1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..17ea28ed0c8 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_lastlog/tests/valid_permissions.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +touch /var/log/lastlog.1 +chown root /var/log/lastlog.1 + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/bash/shared.sh new file mode 100644 index 00000000000..da1f1bde5ef --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/oval/shared.xml new file mode 100644 index 00000000000..08e07c8713a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/oval/shared.xml @@ -0,0 +1,31 @@ + + + {{{ oval_metadata("Owner of /var/log/localmessages should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/localmessages(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/rule.yml new file mode 100644 index 00000000000..4c19485abcb --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/localmessages File' + +description: '{{{ describe_file_owner(file="/var/log/localmessages", owner="root|syslog") }}}' + +rationale: |- + The /var/log/localmessages file contains log messages from certain boot scripts, + including the DHCP client, and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/localmessages", owner="root|syslog") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/localmessages", owner="root|syslog") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..c76e43d18ee --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/localmessages +chown nobody /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..312c1c676ef --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/localmessages +chown root /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..a7f286faf49 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_localmessages/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/localmessages +chown syslog /var/log/localmessages* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/bash/shared.sh new file mode 100644 index 00000000000..5d60d1953e7 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/messages diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/oval/ubuntu.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/oval/ubuntu.xml new file mode 100644 index 00000000000..dd05122751d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/oval/ubuntu.xml @@ -0,0 +1,33 @@ +{{% if 'ubuntu2404' in product %}} + + + {{{ oval_metadata("Owner of /var/log/messages should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/messages + + + + + + 0 + + + {{%- endif %}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/rule.yml index b17311a2418..f646e9419fd 100644 --- a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/rule.yml @@ -2,7 +2,11 @@ documentation_complete: true title: 'Verify User Who Owns /var/log/messages File' +{{% if 'ubuntu2404' not in product %}} description: '{{{ describe_file_owner(file="/var/log/messages", owner="root") }}}' +{{%- else %}} +description: '{{{ describe_file_owner(file="/var/log/messages", owner="root|syslog") }}}' +{{%- endif %}} rationale: |- The /var/log/messages file contains logs of error messages in @@ -21,18 +25,25 @@ references: stigid@ol8: OL08-00-010220 stigid@rhel8: RHEL-08-010220 +{{% if 'ubuntu2404' not in product %}} ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/messages", owner="root") }}}' ocil: |- {{{ ocil_file_owner(file="/var/log/messages", owner="root") }}} +fixtext: |- + {{{ describe_file_owner(file="/var/log/messages", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/messages", owner="root") }}}' + template: name: file_owner vars: filepath: /var/log/messages fileuid: '0' +{{%- else %}} +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/messages", owner="root|syslog") }}}' -fixtext: |- - {{{ describe_file_owner(file="/var/log/messages", owner="root") }}} - -srg_requirement: '{{{ srg_requirement_file_owner("/var/log/messages", owner="root") }}}' +ocil: |- + {{{ ocil_file_owner(file="/var/log/messages", owner="root|syslog") }}} +{{%- endif %}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..094050a536c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/messages +chown nobody /var/log/messages diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..98d3997bcf4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/messages +chown root /var/log/messages diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..91b51f1a10a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_messages/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/messages +chown syslog /var/log/messages diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/bash/shared.sh new file mode 100644 index 00000000000..c14f8f061e4 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/oval/shared.xml new file mode 100644 index 00000000000..4b617acd5a8 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/oval/shared.xml @@ -0,0 +1,31 @@ + + + {{{ oval_metadata("Owner of /var/log/secure should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/secure + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/rule.yml new file mode 100644 index 00000000000..f2b8ec83a0c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/secure File' + +description: '{{{ describe_file_owner(file="/var/log/secure", owner="root|syslog") }}}' + +rationale: |- + The /var/log/secure file contains information related to authentication + and authorization privileges and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/secure", owner="root|syslog") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/secure", owner="root|syslog") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..44fce586c11 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/secure +chown nobody /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..f12891701e8 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/secure +chown root /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..8d44722bd63 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_secure/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/secure +chown syslog /var/log/secure* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/bash/shared.sh new file mode 100644 index 00000000000..7da51141a01 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown sssd /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/oval/shared.xml new file mode 100644 index 00000000000..9e98adceaf7 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/oval/shared.xml @@ -0,0 +1,32 @@ + + + {{{ oval_metadata("Owner of /var/log/sssd should be root or sssd.") }}} + + + + + + + sssd + + + + + + + + + + + + /var/log/sssd + + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/rule.yml new file mode 100644 index 00000000000..a8ed4a8fa1d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/rule.yml @@ -0,0 +1,22 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/sssd Files' + +description: '{{{ describe_file_owner(file="/var/log/sssd", owner="root|sssd") }}}' + +rationale: |- + The /var/log/sssd directory contains debug logs for the System + Security Services Daemon (SSSD) and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/sssd", owner="root|sssd") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/sssd", owner="root|sssd") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/sssd", owner="root|sssd") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/sssd", owner="root|sssd") }}}' + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..9f6b9b0c99a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_nobody.fail.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = sssd + +chown nobody /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..6e9b2befb43 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_root.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = sssd + +chown root /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_sssd.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_sssd.pass.sh new file mode 100644 index 00000000000..7c373361009 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_sssd/tests/owned_by_sssd.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = sssd + +chown sssd /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/bash/shared.sh new file mode 100644 index 00000000000..2399d21bfeb --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/syslog diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/oval/ubuntu.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/oval/ubuntu.xml new file mode 100644 index 00000000000..469c6d9eb0f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/oval/ubuntu.xml @@ -0,0 +1,33 @@ +{{% if 'ubuntu2404' in product %}} + + + {{{ oval_metadata("Owner of /var/log/syslog should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/syslog + + + + + + 0 + + +{{%- endif %}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/rule.yml index 40cfa5dfd93..7ea7cc2458a 100644 --- a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/rule.yml @@ -2,7 +2,11 @@ documentation_complete: true title: 'Verify User Who Owns /var/log/syslog File' -description: '{{{ describe_file_owner(file="/var/log/syslog", owner="syslog") }}}' +{{% if 'ubuntu2404' not in product %}} +description: '{{{ describe_file_owner(file="/var/log/syslog", owner="root") }}}' +{{%- else %}} +description: '{{{ describe_file_owner(file="/var/log/syslog", owner="root|syslog") }}}' +{{%- endif %}} rationale: |- The /var/log/syslog file contains logs of error messages in @@ -16,13 +20,26 @@ references: stigid@ubuntu2004: UBTU-20-010421 stigid@ubuntu2204: UBTU-22-232130 -ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/syslog", owner="syslog") }}}' +{{% if 'ubuntu2404' not in product %}} +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/syslog", owner="root") }}}' ocil: |- - {{{ ocil_file_owner(file="/var/log/syslog", owner="syslog") }}} + {{{ ocil_file_owner(file="/var/log/syslog", owner="root") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/syslog", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/syslog", owner="root") }}}' template: name: file_owner vars: filepath: /var/log/syslog - fileuid: '104' + fileuid: '0' +{{%- else %}} +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/syslog", owner="root|syslog") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/syslog", owner="root|syslog") }}} +{{%- endif %}} + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..d611478699b --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/syslog +chown nobody /var/log/syslog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..1c475efcbd0 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/syslog +chown root /var/log/syslog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..6f476cad3f3 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_syslog/tests/owned_by_syslog.pass.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/syslog +chown syslog /var/log/syslog* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/bash/shared.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/bash/shared.sh new file mode 100644 index 00000000000..564d047ec94 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/bash/shared.sh @@ -0,0 +1,6 @@ +# platform = Ubuntu 24.04 +# reboot = false +# strategy = configure +# complexity = low +# disruption = low +chown syslog /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/oval/shared.xml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/oval/shared.xml new file mode 100644 index 00000000000..783a6a5dcf8 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/oval/shared.xml @@ -0,0 +1,31 @@ + + + {{{ oval_metadata("Owner of /var/log/waagent.log should be root or syslog.") }}} + + + + + + + syslog + + + + + + + + + + + + /var/log/waagent.log(.*) + + + + + + 0 + + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/rule.yml new file mode 100644 index 00000000000..7d1c643b6b7 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/rule.yml @@ -0,0 +1,16 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/waagent.log File' + +description: '{{{ describe_file_owner(file="/var/log/waagent.log", owner="root|syslog") }}}' + +rationale: |- + The /var/log/waagent.log file contains Azure Linux Guest Agent records + events that can be used for troubleshooting and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/waagent.log", owner="sroot|yslog") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/waagent.log", owner="root|syslog") }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_nobody.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_nobody.fail.sh new file mode 100644 index 00000000000..617bc6e7ee6 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_nobody.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/waagent.log +chown nobody /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_root.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_root.pass.sh new file mode 100644 index 00000000000..00907355056 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_root.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/waagent.log +chown root /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_syslog.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_syslog.pass.sh new file mode 100644 index 00000000000..9a0830294f9 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_waagent/tests/owned_by_syslog.pass.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# platform = Ubuntu 24.04 +# packages = rsyslog + +touch /var/log/waagent.log +chown syslog /var/log/waagent.log* diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/rule.yml new file mode 100644 index 00000000000..b9f49726f57 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/rule.yml @@ -0,0 +1,28 @@ +documentation_complete: true + +title: 'Verify User Who Owns /var/log/(b|w)tmp(.*|-*) File' + +description: '{{{ describe_file_owner(file="/var/log/(b|w)tmp(.*|-*)", owner="root") }}}' + +rationale: |- + The /var/log/(b|w)tmp(.*|-*) file contains logs of reports the most recent login of all users + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_owner(file="/var/log/(b|w)tmp(.*|-*)", owner="root") }}}' + +ocil: |- + {{{ ocil_file_owner(file="/var/log/(b|w)tmp(.*|-*)", owner="root") }}} + +fixtext: |- + {{{ describe_file_owner(file="/var/log/(b|w)tmp(.*|-*)", owner="root") }}} + +srg_requirement: '{{{ srg_requirement_file_owner("/var/log/(b|w)tmp(.*|-*)", owner="root") }}}' + +template: + name: file_owner + vars: + filepath: /var/log/ + file_regex: .*(b|w)tmp((\.|-)[^\/]+)?$ + fileuid: '0' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/incorrect_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/incorrect_owner.fail.sh new file mode 100644 index 00000000000..9cc4c19aafc --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/incorrect_owner.fail.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +touch /var/log/wtmp +chown syslog /var/log/wtmp + +touch /var/log/btmp +chown syslog /var/log/btmp diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/invalid_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/invalid_owner.fail.sh new file mode 100644 index 00000000000..a510b8e3bef --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/invalid_owner.fail.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +touch /var/log/wtmp.1 +chown syslog /var/log/wtmp.1 +touch /var/log/btmp.1 +chown syslog /var/log/btmp.1 +touch /var/log/wtmp-1 +chown syslog /var/log/wtmp-1 +touch /var/log/btmp-1 +chown syslog /var/log/btmp-1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..da2997e9250 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_owner_var_log_wbtmp/tests/valid_permissions.pass.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +touch /var/log/wtmp.1 +chown root /var/log/wtmp.1 +touch /var/log/btmp.1 +chown root /var/log/btmp.1 +touch /var/log/wtmp-1 +chown root /var/log/wtmp-1 +touch /var/log/btmp-1 +chown root /var/log/btmp-1 + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_apt/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_apt/rule.yml new file mode 100644 index 00000000000..8288782d22d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_apt/rule.yml @@ -0,0 +1,24 @@ +documentation_complete: true + +title: 'Verify Permissions on files in the /var/log/apt/.* directory' + +description: |- + {{{ describe_file_permissions(file="/var/log/apt/.*", perms="0644") }}} + +rationale: |- + The /var/log/apt directory contains information about APT + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/apt/.*", perms="-rw-r--r--") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/apt/.*", perms="-rw-r--r--") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/apt/ + file_regex: ^.*$ + filemode: '0644' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_apt/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_apt/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..3c1da015d2c --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_apt/tests/lenient_permissions.fail.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +mkdir -p /var/log/apt +touch /var/log/apt/history.log +chmod 777 /var/log/apt/history.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_auth/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_auth/rule.yml new file mode 100644 index 00000000000..3daeb64a9b8 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_auth/rule.yml @@ -0,0 +1,24 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/auth.log File' + +description: |- + {{{ describe_file_permissions(file="/var/log/auth.log", perms="0640") }}} + +rationale: |- + The /var/log/auth.log file contains records information about user + login attempts and authentication processes and should only be accessed by + authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/auth.log", perms="-rw-r-----") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/auth.log", perms="-rw-r-----") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/auth.log + filemode: '0640' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/rule.yml new file mode 100644 index 00000000000..097e92040c3 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/rule.yml @@ -0,0 +1,29 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/cloud-init.log(.*) Files' + +description: |- + {{{ describe_file_permissions(file="/var/log/cloud-init.log", perms="0664") }}} + +rationale: |- + The /var/log/cloud-init.log file contains detailed debugging information that + helps users troubleshoot cloud-init and should only be accessed by authorized personnel. + +severity: medium + + + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/cloud-init.log", perms="-rw-r--r--") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/cloud-init.log", perms="-rw-r--r--") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/ + file_regex: .*cloud-init.log([^\/]+)?$ + filemode: '0644' + +fixtext: |- + {{{ fixtext_file_permissions("/var/log/cloud-init.log", "0664") | indent(4) }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/invalid_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/invalid_permissions.fail.sh new file mode 100644 index 00000000000..efa83a4367f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/invalid_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/cloud-init.log1 +chmod a+x /var/log/cloud-init.log1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..15bf2856b20 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/cloud-init.log +chmod 777 /var/log/cloud-init.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..a932439cfb5 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_cloud-init/tests/valid_permissions.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +touch /var/log/cloud-init.log1 +chmod u+rw-x,g+r-wx,o+r-wx /var/log/cloud-init.log1 + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm/rule.yml new file mode 100644 index 00000000000..7b509c4d7d9 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm/rule.yml @@ -0,0 +1,23 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/gdm directory' + +description: |- + {{{ describe_file_permissions(file="/var/log/gdm", perms="0770") }}} + +rationale: |- + The /var/log/gdm directory contains information about the GDM daemon + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/gdm", perms="-rwxrwx---") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/gdm", perms="-rwxrwx---") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/gdm/ + filemode: '0770' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..11883bdf5b6 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +mkdir -p /var/log/gdm +chmod 777 /var/log/gdm diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm3/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm3/rule.yml new file mode 100644 index 00000000000..3a80a1f429a --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm3/rule.yml @@ -0,0 +1,23 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/gdm File' + +description: |- + {{{ describe_file_permissions(file="/var/log/gdm3", perms="0770") }}} + +rationale: |- + The /var/log/gdm3 directory stores information about the GNOME Display Manager (GDM) + and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/gdm3", perms="-rwxrwx---") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/gdm3", perms="-rwxrwx---") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/gdm3/ + filemode: '0770' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm3/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm3/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..251a92f8944 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_gdm3/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +mkdir -p /var/log/gdm3 +chmod 777 /var/log/gdm3 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/rule.yml new file mode 100644 index 00000000000..3c2136fa000 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/rule.yml @@ -0,0 +1,29 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/lastlog(.*) Files' + +description: |- + {{{ describe_file_permissions(file="/var/log/lastlog", perms="0664") }}} + +rationale: |- + The /var/log/lastlog file contains logs of reports the most recent login of all users + and should only be accessed by authorized personnel. + +severity: medium + + + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/lastlog", perms="-rw-rw-r--") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/lastlog", perms="-rw-rw-r--") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/ + file_regex: .*lastlog(\.[^\/]+)?$ + filemode: '0664' + +fixtext: |- + {{{ fixtext_file_permissions("/var/log/lastlog", "0664") | indent(4) }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/invalid_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/invalid_permissions.fail.sh new file mode 100644 index 00000000000..d24bcef8f50 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/invalid_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/lastlog.1 +chmod a+x /var/log/lastlog.1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..8335fa99e5f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/lastlog +chmod 777 /var/log/lastlog diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..d58ef645824 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_lastlog/tests/valid_permissions.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +touch /var/log/lastlog.1 +chmod u+rw-x,g+rw-x,o+r-wx /var/log/lastlog.1 + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/rule.yml new file mode 100644 index 00000000000..fbad701233d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/rule.yml @@ -0,0 +1,29 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/localmessages(.*) Files' + +description: |- + {{{ describe_file_permissions(file="/var/log/localmessages", perms="0664") }}} + +rationale: |- + The /var/log/localmessages file contains log messages from certain boot scripts, + including the DHCP client, and should only be accessed by authorized personnel. + +severity: medium + + + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/localmessages", perms="-rw-r--r--") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/localmessages", perms="-rw-r--r--") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/ + file_regex: .*localmessages([^\/]+)?$ + filemode: '0644' + +fixtext: |- + {{{ fixtext_file_permissions("/var/log/localmessages", "0664") | indent(4) }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/invalid_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/invalid_permissions.fail.sh new file mode 100644 index 00000000000..fc1064e0624 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/invalid_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/localmessages1 +chmod a+x /var/log/localmessages1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..3034b0a236f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/localmessages +chmod 777 /var/log/localmessages diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..76c37145629 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_localmessages/tests/valid_permissions.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +touch /var/log/localmessages1 +chmod u+rw-x,g+r-wx,o+r-wx /var/log/localmessages1 + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_messages/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_messages/rule.yml index a764107f578..13a69c60ed7 100644 --- a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_messages/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_messages/rule.yml @@ -2,8 +2,16 @@ documentation_complete: true title: 'Verify Permissions on /var/log/messages File' +{{% if 'ubuntu2404' not in product %}} + {{% set target_perms_octal="0600" %}} + {{% set target_perms="-rw-------" %}} +{{% else %}} + {{% set target_perms_octal="0640" %}} + {{% set target_perms="-rw-r-----" %}} +{{% endif %}} + description: |- - {{{ describe_file_permissions(file="/var/log/messages", perms="0600") }}} + {{{ describe_file_permissions(file="/var/log/messages", perms=target_perms_octal) }}} rationale: |- The /var/log/messages file contains logs of error messages in @@ -22,18 +30,18 @@ references: stigid@ol8: OL08-00-010210 stigid@rhel8: RHEL-08-010210 -ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/messages", perms="-rw-------") }}}' +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/messages", perms=target_perms) }}}' ocil: |- - {{{ ocil_file_permissions(file="/var/log/messages", perms="-rw-------") }}} + {{{ ocil_file_permissions(file="/var/log/messages", perms=target_perms) }}} template: name: file_permissions vars: filepath: /var/log/messages - filemode: '0600' + filemode: '{{{ target_perms_octal }}}' fixtext: |- - {{{ fixtext_file_permissions("/var/log/messages", "0640") | indent(4) }}} + {{{ fixtext_file_permissions("/var/log/messages", target_perms_octal) | indent(4) }}} -srg_requirement: '{{{ srg_requirement_file_permission("/var/log/messages", "0600") }}}' +srg_requirement: '{{{ srg_requirement_file_permission("/var/log/messages", target_perms_octal) }}}' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_secure/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_secure/rule.yml new file mode 100644 index 00000000000..1190d1c1e14 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_secure/rule.yml @@ -0,0 +1,23 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/secure File' + +description: |- + {{{ describe_file_permissions(file="/var/log/secure", perms="0640") }}} + +rationale: |- + The /var/log/secure file contains information related to authentication + and authorization privileges and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/secure", perms="-rw-r-----") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/secure", perms="-rw-r-----") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/secure + filemode: '0640' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_sssd/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_sssd/rule.yml new file mode 100644 index 00000000000..d35496a1d18 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_sssd/rule.yml @@ -0,0 +1,23 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/sssd File' + +description: |- + {{{ describe_file_permissions(file="/var/log/sssd", perms="0770") }}} + +rationale: |- + The /var/log/sssd directory contains debug logs for the System + Security Services Daemon (SSSD) and should only be accessed by authorized personnel. + +severity: medium + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/sssd", perms="-rwxrwx---") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/sssd", perms="-rwxrwx---") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/sssd/ + filemode: '0770' diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_sssd/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_sssd/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..b35c9294d85 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_sssd/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +mkdir -p /var/log/sssd +chmod 777 /var/log/sssd diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/rule.yml new file mode 100644 index 00000000000..daf04b74b51 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/rule.yml @@ -0,0 +1,29 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/waagent.log(.*) Files' + +description: |- + {{{ describe_file_permissions(file="/var/log/waagent.log", perms="0664") }}} + +rationale: |- + The /var/log/waagent.log file contains Azure Linux Guest Agent records + events that can be used for troubleshooting and should only be accessed by authorized personnel. + +severity: medium + + + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/waagent.log", perms="-rw-r--r--") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/waagent.log", perms="-rw-r--r--") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/ + file_regex: .*waagent.log([^\/]+)?$ + filemode: '0644' + +fixtext: |- + {{{ fixtext_file_permissions("/var/log/waagent.log", "0664") | indent(4) }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/invalid_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/invalid_permissions.fail.sh new file mode 100644 index 00000000000..35f0c7d904b --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/invalid_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/waagent.log1 +chmod a+x /var/log/waagent.log1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..28a021e2a59 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/lenient_permissions.fail.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +touch /var/log/waagent.log +chmod 777 /var/log/waagent.log diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..e7f12d3e38f --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_waagent/tests/valid_permissions.pass.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +touch /var/log/waagent.log1 +chmod u+rw-x,g+r-wx,o+r-wx /var/log/waagent.log1 + diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/rule.yml b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/rule.yml new file mode 100644 index 00000000000..44a1470cf47 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/rule.yml @@ -0,0 +1,29 @@ +documentation_complete: true + +title: 'Verify Permissions on /var/log/wtmp(.*) Files' + +description: |- + {{{ describe_file_permissions(file="/var/log/(b|w)tmp(.*|-*)", perms="0664") }}} + +rationale: |- + The /var/log/(b|w)tmp(.*|-*) files contains logs of reports the most recent login of all users + and should only be accessed by authorized personnel. + +severity: medium + + + +ocil_clause: '{{{ ocil_clause_file_permissions(file="/var/log/(b|w)tmp(.*|-*)", perms="-rw-rw-r--") }}}' + +ocil: |- + {{{ ocil_file_permissions(file="/var/log/(b|w)tmp(.*|-*)", perms="-rw-rw-r--") }}} + +template: + name: file_permissions + vars: + filepath: /var/log/ + file_regex: .*(b|w)tmp((\.|-)[^\/]+)?$ + filemode: '0664' + +fixtext: |- + {{{ fixtext_file_permissions("/var/log/(b|w)tmp(.*|-*)", "0664") | indent(4) }}} diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/invalid_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/invalid_permissions.fail.sh new file mode 100644 index 00000000000..2632d45c612 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/invalid_permissions.fail.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +touch /var/log/wtmp.1 +touch /var/log/wtmp-1 +touch /var/log/btmp.1 +touch /var/log/btmp-1 +chmod a+x /var/log/wtmp.1 +chmod a+x /var/log/wtmp-1 +chmod a+x /var/log/btmp.1 +chmod a+x /var/log/btmp-1 diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/lenient_permissions.fail.sh new file mode 100644 index 00000000000..6fb3f3096a7 --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/lenient_permissions.fail.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +touch /var/log/wtmp +touch /var/log/btmp +chmod 777 /var/log/wtmp +chmod 777 /var/log/btmp diff --git a/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/valid_permissions.pass.sh b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/valid_permissions.pass.sh new file mode 100644 index 00000000000..bece801ab4d --- /dev/null +++ b/linux_os/guide/system/permissions/files/permissions_var_log_dir/file_permissions_var_log_wbtmp/tests/valid_permissions.pass.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +touch /var/log/wtmp.s +chmod u+rw-x,g+rw-x,o+r-wx /var/log/wtmp.1 +touch /var/log/wtmp-1 +chmod u+rw-x,g+rw-x,o+r-wx /var/log/wtmp-1 +touch /var/log/btmp.1 +chmod u+rw-x,g+rw-x,o+r-wx /var/log/btmp.1 +touch /var/log/btmp-1 +chmod u+rw-x,g+rw-x,o+r-wx /var/log/btmp-1 + diff --git a/shared/templates/file_owner/oval.template b/shared/templates/file_owner/oval.template index be4949fd8df..da9348c2e81 100644 --- a/shared/templates/file_owner/oval.template +++ b/shared/templates/file_owner/oval.template @@ -27,6 +27,11 @@ {{{ filepath[:-1] }}} {{%- if FILE_REGEX %}} {{{ FILE_REGEX[loop.index0] }}} + {{%- if EXCLUDED_FILES %}} + {{%- for excluded_file in EXCLUDED_FILES %}} + exclude_files_{{{ FILEID }}}_{{{ loop.index0 }}} + {{%- endfor %}} + {{%- endif %}} {{%- else %}} {{%- endif %}} @@ -45,4 +50,11 @@ symbolic link + {{%- if EXCLUDED_FILES %}} + {{%- for excluded_file in EXCLUDED_FILES %}} + + ^{{{ excluded_file|replace("*", ".*") }}}$ + + {{%- endfor %}} + {{%- endif %}}