Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
43043cb
Add ANSSI-BP-028 minimal profile for Debian 12
a-skr Nov 29, 2023
bb329dc
change defaut root mail alias in postfix client rule
a-skr Nov 29, 2023
49254b7
enable remediation for Debian in postfix client rule
a-skr Nov 29, 2023
ed0ab89
enable bash remediation for Debian in package_installed template
a-skr Nov 29, 2023
e7b2582
enable debian 12 in aide_build_database rule
a-skr Nov 30, 2023
2c2a906
fix package name for debian 12 in service_auditd_enabled rule
a-skr Nov 30, 2023
1eff62e
add debian remediation support in grub2_bootloader_argument template and
a-skr Nov 30, 2023
c5ad145
enable Debian bash remediation for sysctl template
a-skr Nov 30, 2023
5b936c2
enable Debian remediation for sshd_set_keepalive rule
a-skr Nov 30, 2023
3284660
enable debian 12 ansible remediation for accounts_maximum_age_login_d…
a-skr Nov 30, 2023
803982a
Add ANSSI-BP-028 intermediary profile for Debian 12
a-skr Nov 30, 2023
0aec8ca
enable osrelease strings ending with -amd64 to pass prefer_64bit_os c…
a-skr Nov 30, 2023
d270703
enable debian remediation in audit_rules_dac_modification template
a-skr Nov 30, 2023
c2c9eab
enable debian remediation in audit_rules_file_deletion_events template
a-skr Nov 30, 2023
c762b19
enable debian remediation in audit_rules_uncuccessful_file_modification
a-skr Nov 30, 2023
74c08bd
enable debian remediation in audit_rules_login_events
a-skr Nov 30, 2023
be6d8c8
enable debian remediation in audit_rules_time_adjtimex
a-skr Nov 30, 2023
f19e686
enable debian remediation in audit_rules_time_clock_settime
a-skr Nov 30, 2023
587d724
enable debian remediation in audit_rules_sysadmin_actions
a-skr Nov 30, 2023
afbef02
enable debian remediation in audit_rules_immutable
a-skr Nov 30, 2023
130fc3b
enable debian remediation in audit_rules_networkconfig_modification
a-skr Nov 30, 2023
675c656
enable debian remediation in audit_rules_session_events
a-skr Nov 30, 2023
09b5464
enable debian remediation in audit_time_rules
a-skr Nov 30, 2023
e64a47e
escape pipefail for debian in rsyslog_logfiles_attributes_modify
a-skr Nov 30, 2023
e3aba7c
enable debian ansible remediation in audit_rules_kernel_module_loadin…
a-skr Dec 8, 2023
6dd8c65
enable debian ansible remediation in audit_rules_kernel_module_loadin…
a-skr Dec 8, 2023
1c98ac1
enable debian ansible remediation in audit_rules_kernel_module_loadin…
a-skr Dec 8, 2023
afbbc62
enable debian ansible remediation audit_rules_privileged_commands
a-skr Dec 8, 2023
e488314
enable debian ansible remediation in audit_rules_session_events
a-skr Dec 8, 2023
a0e7cb2
enable all_apparmor_profiles_enforced for Debian12
a-skr Dec 8, 2023
d0702fc
enable apparmor_configured for Debian
a-skr Dec 8, 2023
8f596f9
enable package_apparmor_installed for Debian
a-skr Dec 8, 2023
3806bd4
enable grub2_enable_apparmor for Debian
a-skr Dec 8, 2023
551d518
enable package_pam_apparmor_installed for Debian
a-skr Dec 8, 2023
056beeb
add enhanced ANSSI-BP-028 profile for Debian
a-skr Dec 8, 2023
2d92005
add high ANSSI-BP-028 profile for Debian
a-skr Dec 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_debian
# reboot = false
# strategy = configure
# complexity = low
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_debian

{{{ bash_instantiate_variables("var_postfix_root_mail_alias") }}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ operator: equals
interactive: true

options:
default: system.administrator@mail.mil
default: change_me@localhost
mil_sysadmin: system.administrator@mail.mil
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian
# reboot = false
# strategy = restrict
# complexity = low
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

{{{ bash_instantiate_variables("var_sshd_set_keepalive") }}}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_debian
# reboot = false
# strategy = restrict
# complexity = low
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
# platform = multi_platform_sle
# platform = multi_platform_sle,multi_platform_debian
# reboot = false
# strategy = restrict
# complexity = low
# disruption = low

{{% if 'debian' in product %}}
- name: Ensure apparmor-utils is installed
package:
name: "apparmor-utils"
state: present
{{% endif %}}

- name: {{{ rule_title }}} - Ensure all AppArmor Profiles are reloaded
ansible.builtin.command: apparmor_parser -q -r /etc/apparmor.d/

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_sle,multi_platform_ubuntu
# platform = multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# make sure apparmor-utils is installed for aa-complain and aa-enforce
{{{ bash_package_install("apparmor-utils") }}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
documentation_complete: true

prodtype: sle12,sle15,ubuntu2004,ubuntu2204
prodtype: debian12,sle12,sle15,ubuntu2004,ubuntu2204

title: 'Enforce all AppArmor Profiles'

Expand All @@ -9,7 +9,7 @@ description: |-
To set all profiles to enforce mode run the following command:
<pre>$ sudo aa-enforce /etc/apparmor.d/*</pre>
To list unconfined processes run the following command:
{{% if 'ubuntu' in product %}}
{{% if 'ubuntu' in product or 'debian' in product %}}
<pre>$ sudo apparmor_status | grep processes</pre>
{{% else %}}
<pre>$ sudo aa-unconfined</pre>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# platform = multi_platform_ubuntu
# platform = multi_platform_ubuntu,multi_platform_debian
# check-import = stdout

# If apparmor or apparmor-utils are not installed, then this test fails.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_sle
# platform = multi_platform_sle,multi_platform_debian

- name: Start apparmor.service
systemd:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_sle,multi_platform_ubuntu
# platform = multi_platform_sle,multi_platform_ubuntu,multi_platform_ubuntu

# Enable apparmor
{{{ bash_service_command("enable", "apparmor") }}}
3 changes: 2 additions & 1 deletion linux_os/guide/system/apparmor/apparmor_configured/rule.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
documentation_complete: true

prodtype: sle12,sle15,ubuntu2004,ubuntu2204
prodtype: debian12,sle12,sle15,ubuntu2004,ubuntu2204

title: 'Ensure AppArmor is Active and Configured'

Expand Down Expand Up @@ -62,3 +62,4 @@ template:
packagename@ubuntu1604: apparmor
packagename@ubuntu1804: apparmor
packagename@ubuntu2004: apparmor
packagename@debian12: apparmor
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# platform = multi_platform_ubuntu
# platform = multi_platform_ubuntu,multi_platform_debian

{{{ update_etc_default_grub_manually('apparmor', 'apparmor=1') }}}
{{{ update_etc_default_grub_manually('security', 'security=apparmor') }}}

{{% if 'ubuntu' in product %}}
{{% if 'ubuntu' in product or 'debian' in product %}}
update-grub
{{% else %}}
grub2-mkconfig -o /boot/grub2/grub.cfg
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
documentation_complete: true

prodtype: ubuntu2004,ubuntu2204
prodtype: debian12,ubuntu2004,ubuntu2204

title: 'Ensure AppArmor is enabled in the bootloader configuration'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
documentation_complete: true

prodtype: ubuntu2004,ubuntu2204
prodtype: debian12,ubuntu2004,ubuntu2204

title: 'Ensure AppArmor is installed'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
documentation_complete: true

prodtype: sle12,sle15
prodtype: debian12,sle12,sle15

title: 'Install the pam_apparmor Package'

Expand Down Expand Up @@ -34,3 +34,4 @@ template:
name: package_installed
vars:
pkgname: pam_apparmor
pkgname@debian12: libpam-apparmor
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_ol,multi_platform_ubuntu
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_ol,multi_platform_ubuntu,multi_platform_debian
# reboot = false
# complexity = low
# disruption = low
# strategy = configure

{{% if "ol" in product or 'rhel' in product or 'ubuntu' in product %}}
{{% if "ol" in product or 'rhel' in product or 'ubuntu' in product or 'debian' in product %}}
{{% set auid_filters = "-F auid>=" ~ auid ~ " -F auid!=unset" %}}
{{% else %}}
{{% set auid_filters = "" %}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# platform = multi_platform_rhel,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu
# platform = multi_platform_rhel,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian
# reboot = false
# complexity = low
# disruption = low
# strategy = configure

{{% if "ol" in product or 'rhel' in product or 'ubuntu' in product %}}
{{% if "ol" in product or 'rhel' in product or 'ubuntu' in product or 'debian' in product %}}
{{% set auid_filters = "-F auid>=" ~ auid ~ " -F auid!=unset" %}}
{{% else %}}
{{% set auid_filters = "" %}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_ol,multi_platform_ubuntu
# platform = multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_ol,multi_platform_ubuntu,multi_platform_debian
# reboot = false
# complexity = low
# disruption = low
# strategy = configure

{{% if "ol" in product or 'rhel' in product or 'ubuntu' in product %}}
{{% if "ol" in product or 'rhel' in product or 'ubuntu' in product or 'debian' in product %}}
{{% set auid_filters = "-F auid>=" ~ auid ~ " -F auid!=unset" %}}
{{% else %}}
{{% set auid_filters = "" %}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_debian
# reboot = false
# strategy = configure
# complexity = low
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# Traverse all of:
#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_debian
# reboot =false
# strategy = restrict
# complexity = low
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# First perform the remediation of the syscall rule
# Retrieve hardware architecture of the underlying system
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle
# platform = multi_platform_rhel,multi_platform_fedora,multi_platform_ol,multi_platform_rhv,multi_platform_sle,multi_platform_debian
# reboot = true
# strategy = restrict
# complexity = low
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# Perform the remediation for both possible tools: 'auditctl' and 'augenrules'
{{{ bash_fix_audit_watch_rule("auditctl", "/var/run/utmp", "wa", "session") }}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu
# platform = multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_rhv,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# Perform the remediation for both possible tools: 'auditctl' and 'augenrules'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

{{{ bash_perform_audit_adjtimex_settimeofday_stime_remediation() }}}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# First perform the remediation of the syscall rule
# Retrieve hardware architecture of the underlying system
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu
# platform = Red Hat Virtualization 4,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_debian

# Perform the remediation for both possible tools: 'auditctl' and 'augenrules'
{{{ bash_fix_audit_watch_rule("auditctl", "/etc/localtime", "wa", "audit_time_rules") }}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ template:
packagename: audit
packagename@debian10: auditd
packagename@debian11: auditd
packagename@debian12: auditd
packagename@ubuntu1604: auditd
packagename@ubuntu1804: auditd
packagename@ubuntu2004: auditd
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# platform = multi_platform_debian
# reboot = false
# strategy = restrict
# complexity = low
# disruption = low

- name: "{{{ rule_title }}} - Ensure AIDE Is Installed"
ansible.builtin.apt:
name: aide
state: present

- name: "{{{ rule_title }}} - Check if DB Path in /etc/aide/aide.conf Is Already Set"
ansible.builtin.lineinfile:
path: /etc/aide/aide.conf
regexp: ^#?(\s*)(database=)(.*)$
state: absent
check_mode: true
changed_when: false
register: database_replace

- name: "{{{ rule_title }}} - Check if DB Out Path in /etc/aide/aide.conf Is Already Set"
ansible.builtin.lineinfile:
path: /etc/aide/aide.conf
regexp: ^#?(\s*)(database_out=)(.*)$
state: absent
check_mode: true
changed_when: false
register: database_out_replace

- name: "{{{ rule_title }}} - Fix DB Path in Config File if Necessary"
ansible.builtin.lineinfile:
path: /etc/aide/aide.conf
regexp: ^#?(\s*)(database)(\s*)=(\s*)(.*)$
line: \2\3=\4file:/var/lib/aide/aide.db
backrefs: true
when: database_replace.found > 0

- name: "{{{ rule_title }}} - Fix DB Out Path in Config File if Necessary"
ansible.builtin.lineinfile:
path: /etc/aide/aide.conf
regexp: ^#?(\s*)(database_out)(\s*)=(\s*)(.*)$
line: \2\3=\4file:/var/lib/aide/aide.db.new
backrefs: true
when: database_out_replace.found > 0

- name: "{{{ rule_title }}} - Ensure the Default DB Path is Added"
ansible.builtin.lineinfile:
path: /etc/aide/aide.conf
line: database=file:/var/lib/aide/aide.db
create: true
when: database_replace.found == 0

- name: "{{{ rule_title }}} - Ensure the Default Out Path is Added"
ansible.builtin.lineinfile:
path: /etc/aide/aide.conf
line: database_out=file:/var/lib/aide/aide.db.new
create: true
when: database_out_replace.found == 0

- name: "{{{ rule_title }}} - Build and Test AIDE Database"
ansible.builtin.command: /usr/sbin/aideinit -y -f
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# platform = multi_platform_debian

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OVAL checks and Ansible and Bash remediations for Debian 12 that you introduce are quite different from the existing ones that are there for other products. Consequently, the description and other texts in the rule.yml file of this rule aren't properly aligned with the actual check and remediation. Please update the linux_os/guide/system/software/integrity/software-integrity/aide/aide_build_database/rule.yml in a way so that it better describes the actual situation on Debian 12.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The debian description explains an interactive aide database update (through the aideinit wrapper) which, I think, is fitting.

The remedation (non interactive) uses options -y -f to automatically create then deploy the new database.

As per aideinit manpage, the user should ideally check the database content before deploying it, so I prefer a description that doesn't automatically force the deployment of the new DB.

{{{ bash_package_install("aide") }}}

AIDE_CONFIG=/etc/aide/aide.conf
DEFAULT_DB_PATH=/var/lib/aide/aide.db

# Fix db path in the config file, if necessary
if ! grep -q '^database=file:' ${AIDE_CONFIG}; then
# replace_or_append gets confused by 'database=file' as a key, so should not be used.
#replace_or_append "${AIDE_CONFIG}" '^database=file' "${DEFAULT_DB_PATH}" '@CCENUM@' '%s:%s'
echo "database=file:${DEFAULT_DB_PATH}" >> ${AIDE_CONFIG}
fi

# Fix db out path in the config file, if necessary
if ! grep -q '^database_out=file:' ${AIDE_CONFIG}; then
echo "database_out=file:${DEFAULT_DB_PATH}.new" >> ${AIDE_CONFIG}
fi

/usr/sbin/aideinit -y -f
Loading