Blame SOURCES/scap-security-guide-0.1.61-rear_not_applicable_aarch64-PR_8221.patch

38a2c0
From 622558873703704bd97fde1874a9a782d4cb8b0e Mon Sep 17 00:00:00 2001
38a2c0
From: Gabriel Becker <ggasparb@redhat.com>
38a2c0
Date: Mon, 14 Feb 2022 17:51:50 +0100
38a2c0
Subject: [PATCH] Introduce CPE for aarch64 and make package_rear_installed n/a
38a2c0
 aarch64.
38a2c0
38a2c0
This rule is not applicable for RHEL9 only.
38a2c0
---
38a2c0
 .../package_rear_installed/rule.yml           |  4 +++
38a2c0
 shared/applicability/arch.yml                 | 12 +++++++
38a2c0
 ...proc_sys_kernel_osrelease_arch_aarch64.xml | 33 +++++++++++++++++++
38a2c0
 ..._sys_kernel_osrelease_arch_not_aarch64.xml | 16 +++++++++
38a2c0
 ssg/constants.py                              |  2 ++
38a2c0
 5 files changed, 67 insertions(+)
38a2c0
 create mode 100644 shared/checks/oval/proc_sys_kernel_osrelease_arch_aarch64.xml
38a2c0
 create mode 100644 shared/checks/oval/proc_sys_kernel_osrelease_arch_not_aarch64.xml
38a2c0
38a2c0
diff --git a/linux_os/guide/system/software/system-tools/package_rear_installed/rule.yml b/linux_os/guide/system/software/system-tools/package_rear_installed/rule.yml
38a2c0
index 6e3c11e5749..efb591654a9 100644
38a2c0
--- a/linux_os/guide/system/software/system-tools/package_rear_installed/rule.yml
38a2c0
+++ b/linux_os/guide/system/software/system-tools/package_rear_installed/rule.yml
38a2c0
@@ -25,6 +25,10 @@ ocil: '{{{ ocil_package(package="rear") }}}'
38a2c0
 # The package is not available for s309x on RHEL<8.5
38a2c0
 # platform: not_s390x_arch
38a2c0
 
38a2c0
+{{%- if product == "rhel9" %}}
38a2c0
+platform: not_aarch64_arch
38a2c0
+{{%- endif %}}
38a2c0
+
38a2c0
 template:
38a2c0
     name: package_installed
38a2c0
     vars:
38a2c0
diff --git a/shared/applicability/arch.yml b/shared/applicability/arch.yml
38a2c0
index d2cbd102310..9ac05317a95 100644
38a2c0
--- a/shared/applicability/arch.yml
38a2c0
+++ b/shared/applicability/arch.yml
38a2c0
@@ -12,3 +12,15 @@ cpes:
38a2c0
       check_id: proc_sys_kernel_osrelease_arch_s390x
38a2c0
       bash_conditional: 'grep -q s390x /proc/sys/kernel/osrelease'
38a2c0
 
38a2c0
+  - not_aarch64_arch:
38a2c0
+      name: "cpe:/a:not_aarch64_arch"
38a2c0
+      title: "System architecture is not AARCH64"
38a2c0
+      check_id: proc_sys_kernel_osrelease_arch_not_aarch64
38a2c0
+      bash_conditional: "! grep -q aarch64 /proc/sys/kernel/osrelease"
38a2c0
+
38a2c0
+  - aarch64_arch:
38a2c0
+      name: "cpe:/a:aarch64_arch"
38a2c0
+      title: "System architecture is AARCH64"
38a2c0
+      check_id: proc_sys_kernel_osrelease_arch_aarch64
38a2c0
+      bash_conditional: 'grep -q aarch64 /proc/sys/kernel/osrelease'
38a2c0
+
38a2c0
diff --git a/shared/checks/oval/proc_sys_kernel_osrelease_arch_aarch64.xml b/shared/checks/oval/proc_sys_kernel_osrelease_arch_aarch64.xml
38a2c0
new file mode 100644
38a2c0
index 00000000000..3d54f81e6d4
38a2c0
--- /dev/null
38a2c0
+++ b/shared/checks/oval/proc_sys_kernel_osrelease_arch_aarch64.xml
38a2c0
@@ -0,0 +1,33 @@
38a2c0
+<def-group>
38a2c0
+  
38a2c0
+  version="1">
38a2c0
+    <metadata>
38a2c0
+      <title>Test that the architecture is aarch64</title>
38a2c0
+      <affected family="unix">
38a2c0
+        <platform>multi_platform_all</platform>
38a2c0
+      </affected>
38a2c0
+      <description>Check that architecture of kernel in /proc/sys/kernel/osrelease is aarch64</description>
38a2c0
+    </metadata>
38a2c0
+    <criteria>
38a2c0
+      
38a2c0
+      test_ref="test_proc_sys_kernel_osrelease_arch_aarch64" />
38a2c0
+    </criteria>
38a2c0
+  </definition>
38a2c0
+  
38a2c0
+      comment="proc_sys_kernel is for aarch64 architecture"
38a2c0
+      id="test_proc_sys_kernel_osrelease_arch_aarch64"
38a2c0
+  version="1">
38a2c0
+    <ind:object object_ref="object_proc_sys_kernel_osrelease_arch_aarch64" />
38a2c0
+    <ind:state state_ref="state_proc_sys_kernel_osrelease_arch_aarch64" />
38a2c0
+  </ind:textfilecontent54_test>
38a2c0
+
38a2c0
+  <ind:textfilecontent54_object id="object_proc_sys_kernel_osrelease_arch_aarch64" version="1">
38a2c0
+    <ind:filepath>/proc/sys/kernel/osrelease</ind:filepath>
38a2c0
+    <ind:pattern operation="pattern match">^.*\.(.*)$</ind:pattern>
38a2c0
+    <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
38a2c0
+  </ind:textfilecontent54_object>
38a2c0
+
38a2c0
+  <ind:textfilecontent54_state id="state_proc_sys_kernel_osrelease_arch_aarch64" version="1">
38a2c0
+    <ind:subexpression datatype="string" operation="pattern match">^aarch64$</ind:subexpression>
38a2c0
+  </ind:textfilecontent54_state>
38a2c0
+</def-group>
38a2c0
diff --git a/shared/checks/oval/proc_sys_kernel_osrelease_arch_not_aarch64.xml b/shared/checks/oval/proc_sys_kernel_osrelease_arch_not_aarch64.xml
38a2c0
new file mode 100644
38a2c0
index 00000000000..3fce66ee00a
38a2c0
--- /dev/null
38a2c0
+++ b/shared/checks/oval/proc_sys_kernel_osrelease_arch_not_aarch64.xml
38a2c0
@@ -0,0 +1,16 @@
38a2c0
+<def-group>
38a2c0
+  
38a2c0
+  version="1">
38a2c0
+    <metadata>
38a2c0
+      <title>Test for different architecture than aarch64</title>
38a2c0
+      <affected family="unix">
38a2c0
+        <platform>multi_platform_all</platform>
38a2c0
+      </affected>
38a2c0
+      <description>Check that architecture of kernel in /proc/sys/kernel/osrelease is not aarch64</description>
38a2c0
+    </metadata>
38a2c0
+    <criteria>
38a2c0
+      
38a2c0
+      definition_ref="proc_sys_kernel_osrelease_arch_aarch64" negate="true"/>
38a2c0
+    </criteria>
38a2c0
+  </definition>
38a2c0
+</def-group>
38a2c0
diff --git a/ssg/constants.py b/ssg/constants.py
38a2c0
index 64d7d36c989..92cc2f8de34 100644
38a2c0
--- a/ssg/constants.py
38a2c0
+++ b/ssg/constants.py
38a2c0
@@ -424,6 +424,8 @@
38a2c0
   "non-uefi": None,
38a2c0
   "not_s390x_arch": None,
38a2c0
   "s390x_arch": None,
38a2c0
+  "not_aarch64_arch": None,
38a2c0
+  "aarch64_arch": None,
38a2c0
   "ovirt": None,
38a2c0
   "no_ovirt": None,
38a2c0
 }