Skip to content

Commit 72e9da6

Browse files
authored
Merge pull request #14059 from jan-cerny/issue14055
Group system calls in audit_rules_kernel_module_loading template
2 parents 7ebdd60 + df8dde0 commit 72e9da6

File tree

9 files changed

+65
-9
lines changed

9 files changed

+65
-9
lines changed

docs/templates/template_reference.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757

5858
- **key** - audit key. If this isn't specified then the default value `perm_mod` is used.
5959

60+
- **syscall_grouping** - a list of syscalls that can be grouped together in a single audit rule
61+
6062
- Languages: Ansible, Bash, OVAL, Kubernetes
6163

6264
#### audit_rules_file_deletion_events
@@ -66,6 +68,8 @@
6668

6769
- **name** - value of `-S` argument in Audit rule, eg. `unlink`
6870

71+
- **syscall_grouping** - a list of syscalls that can be grouped together in a single audit rule
72+
6973
- Languages: Ansible, Bash, OVAL
7074

7175
#### audit_rules_kernel_module_loading
@@ -75,6 +79,8 @@
7579

7680
- **name** - value of `-S` argument in Audit rule, eg. `create_module`
7781

82+
- **syscall_grouping** - a list of syscalls that can be grouped together in a single audit rule
83+
7884
- Languages: Ansible, Bash, Kubernetes, OVAL
7985

8086
#### audit_rules_path_syscall
@@ -134,6 +140,8 @@
134140

135141
- **name** - name of the unsuccessful system call, eg. `creat`
136142

143+
- **syscall_grouping** - a list of syscalls that can be grouped together in a single audit rule
144+
137145
- Languages: Ansible, Bash, OVAL
138146

139147
#### audit_rules_unsuccessful_file_modification_o_creat

linux_os/guide/auditing/auditd_configure_rules/audit_kernel_module_loading/audit_rules_kernel_module_loading_create/rule.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,9 @@ template:
3636
name: audit_rules_kernel_module_loading
3737
vars:
3838
name: create_module
39+
syscall_grouping:
40+
- create_module
41+
- delete_module
42+
- finit_module
43+
- init_module
44+
- query_module

linux_os/guide/auditing/auditd_configure_rules/audit_kernel_module_loading/audit_rules_kernel_module_loading_delete/rule.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,9 @@ template:
5454
name: audit_rules_kernel_module_loading
5555
vars:
5656
name: delete_module
57+
syscall_grouping:
58+
- create_module
59+
- delete_module
60+
- finit_module
61+
- init_module
62+
- query_module

linux_os/guide/auditing/auditd_configure_rules/audit_kernel_module_loading/audit_rules_kernel_module_loading_finit/rule.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,9 @@ template:
5252
name: audit_rules_kernel_module_loading
5353
vars:
5454
name: finit_module
55+
syscall_grouping:
56+
- create_module
57+
- delete_module
58+
- finit_module
59+
- init_module
60+
- query_module

linux_os/guide/auditing/auditd_configure_rules/audit_kernel_module_loading/audit_rules_kernel_module_loading_init/rule.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,9 @@ template:
5353
name: audit_rules_kernel_module_loading
5454
vars:
5555
name: init_module
56+
syscall_grouping:
57+
- create_module
58+
- delete_module
59+
- finit_module
60+
- init_module
61+
- query_module

linux_os/guide/auditing/auditd_configure_rules/audit_kernel_module_loading/audit_rules_kernel_module_loading_query/rule.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,9 @@ template:
3232
name: audit_rules_kernel_module_loading
3333
vars:
3434
name: query_module
35+
syscall_grouping:
36+
- create_module
37+
- delete_module
38+
- finit_module
39+
- init_module
40+
- query_module

shared/templates/audit_rules_kernel_module_loading/ansible.template

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@
2828
action_arch_filters="-a always,exit -F arch=b32",
2929
other_filters="",
3030
auid_filters=auid_filters,
31-
syscalls=[NAME],
31+
syscalls=NAME,
3232
key="modules",
33-
syscall_grouping=[],
33+
syscall_grouping=SYSCALL_GROUPING,
3434
)|indent(4) }}}
3535
{{{ ansible_audit_auditctl_add_syscall_rule(
3636
action_arch_filters="-a always,exit -F arch=b32",
3737
other_filters="",
3838
auid_filters=auid_filters,
39-
syscalls=[NAME],
39+
syscalls=NAME,
4040
key="modules",
41-
syscall_grouping=[],
41+
syscall_grouping=SYSCALL_GROUPING,
4242
)|indent(4) }}}
4343

4444
- name: {{{ rule_title }}} - Perform remediation of Audit rules for {{{ NAME }}} for 64bit platform
@@ -47,16 +47,16 @@
4747
action_arch_filters="-a always,exit -F arch=b64",
4848
other_filters="",
4949
auid_filters=auid_filters,
50-
syscalls=[NAME],
50+
syscalls=NAME,
5151
key="modules",
52-
syscall_grouping=[],
52+
syscall_grouping=SYSCALL_GROUPING,
5353
)|indent(4) }}}
5454
{{{ ansible_audit_auditctl_add_syscall_rule(
5555
action_arch_filters="-a always,exit -F arch=b64",
5656
other_filters="",
5757
auid_filters=auid_filters,
58-
syscalls=[NAME],
58+
syscalls=NAME,
5959
key="modules",
60-
syscall_grouping=[],
60+
syscall_grouping=SYSCALL_GROUPING,
6161
)|indent(4) }}}
6262
when: audit_arch == "b64"

shared/templates/audit_rules_kernel_module_loading/bash.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ do
1919
{{% endif %}}
2020
SYSCALL="{{{ NAME }}}"
2121
KEY="modules"
22-
SYSCALL_GROUPING="{{{ NAME }}}"
22+
SYSCALL_GROUPING="{{{ SYSCALL_GROUPING }}}"
2323
# Perform the remediation for both possible tools: 'auditctl' and 'augenrules'
2424
{{{ bash_fix_audit_syscall_rule("augenrules", "$ACTION_ARCH_FILTERS", "$OTHER_FILTERS", "$AUID_FILTERS", "$SYSCALL", "$SYSCALL_GROUPING", "$KEY") }}}
2525
{{{ bash_fix_audit_syscall_rule("auditctl", "$ACTION_ARCH_FILTERS", "$OTHER_FILTERS", "$AUID_FILTERS", "$SYSCALL", "$SYSCALL_GROUPING", "$KEY") }}}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
def _audit_rules_kernel_module_loading(data, lang):
2+
if lang == "bash":
3+
if "syscall_grouping" in data:
4+
# Make it easier to transform the syscall_grouping into a Bash array
5+
data["syscall_grouping"] = " ".join(data["syscall_grouping"])
6+
elif lang == "ansible":
7+
if "name" in data:
8+
# Transform the syscall into a Ansible list
9+
# The syscall is under 'name'
10+
data["name"] = [data["name"]]
11+
if "syscall_grouping" not in data:
12+
# Ensure that syscall_grouping is a list
13+
data["syscall_grouping"] = []
14+
return data
15+
16+
17+
def preprocess(data, lang):
18+
return _audit_rules_kernel_module_loading(data, lang)

0 commit comments

Comments
 (0)