Blame SOURCES/scap-security-guide-0.1.58-RHEL_08_010420-PR_7227.patch

889f2b
From 278f3b476291d69e45da4dcdfca5a308646224f2 Mon Sep 17 00:00:00 2001
889f2b
From: Matthew Burket <mburket@redhat.com>
889f2b
Date: Mon, 19 Jul 2021 09:49:57 -0500
889f2b
Subject: [PATCH 1/2] Add more checks for bios_enable_execution_restrictions to
889f2b
 ensure we don't miss anything
889f2b
889f2b
---
889f2b
 .../oval/shared.xml                            | 18 ++++++++++++++++++
889f2b
 .../rule.yml                                   |  3 ++-
889f2b
 products/rhel8/profiles/stig.profile           |  1 +
889f2b
 .../data/profile_stability/rhel8/stig.profile  |  1 +
889f2b
 .../profile_stability/rhel8/stig_gui.profile   |  1 +
889f2b
 5 files changed, 23 insertions(+), 1 deletion(-)
889f2b
 create mode 100644 linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml
889f2b
889f2b
diff --git a/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml b/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml
889f2b
new file mode 100644
889f2b
index 00000000000..622a183f99f
889f2b
--- /dev/null
889f2b
+++ b/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml
889f2b
@@ -0,0 +1,18 @@
889f2b
+<def-group>
889f2b
+    <definition class="compliance" id="bios_enable_execution_restrictions" version="2">
889f2b
+        {{{ oval_metadata("The NX (no-execution) bit flag should be set on the system.") }}}
889f2b
+        <criteria>
889f2b
+            <criterion comment="NX bit is set" test_ref="test_NX_cpu_support" />
889f2b
+        </criteria>
889f2b
+    </definition>
889f2b
+
889f2b
+    <ind:textfilecontent54_test check="all" check_existence="all_exist" comment="CPUs support for NX bit" id="test_NX_cpu_support" version="1">
889f2b
+        <ind:object object_ref="obj_NX_cpu_support" />
889f2b
+    </ind:textfilecontent54_test>
889f2b
+
889f2b
+    <ind:textfilecontent54_object id="obj_NX_cpu_support" version="1">
889f2b
+        <ind:filepath>/proc/cpuinfo</ind:filepath>
889f2b
+        <ind:pattern operation="pattern match">^flags[\s]+:.*[\s]+nx[\s]+.*$</ind:pattern>
889f2b
+        <ind:instance datatype="int">1</ind:instance>
889f2b
+    </ind:textfilecontent54_object>
889f2b
+</def-group>
889f2b
diff --git a/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/rule.yml b/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/rule.yml
889f2b
index 4ca003520ac..b037e374f5b 100644
889f2b
--- a/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/rule.yml
889f2b
+++ b/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/rule.yml
889f2b
@@ -14,7 +14,7 @@ rationale: |-
889f2b
     Computers with the ability to prevent this type of code execution frequently put an option in the BIOS that will
889f2b
     allow users to turn the feature on or off at will.
889f2b
 
889f2b
-severity: unknown
889f2b
+severity: medium
889f2b
 
889f2b
 identifiers:
889f2b
     cce@rhel7: CCE-27099-1
889f2b
@@ -31,5 +31,6 @@ references:
889f2b
     iso27001-2013: A.12.1.2,A.12.5.1,A.12.6.2,A.14.2.2,A.14.2.3,A.14.2.4
889f2b
     nist: SC-39,CM-6(a)
889f2b
     nist-csf: PR.IP-1
889f2b
+    stig@rhel8: RHEL-08-010420
889f2b
 
889f2b
 platform: machine
889f2b
diff --git a/products/rhel8/profiles/stig.profile b/products/rhel8/profiles/stig.profile
889f2b
index 5a0a520ee0a..6372d13cfc9 100644
889f2b
--- a/products/rhel8/profiles/stig.profile
889f2b
+++ b/products/rhel8/profiles/stig.profile
889f2b
@@ -260,6 +260,7 @@ selections:
889f2b
     - package_opensc_installed
889f2b
 
889f2b
     # RHEL-08-010420
889f2b
+    - bios_enable_execution_restrictions
889f2b
 
889f2b
     # RHEL-08-010421
889f2b
     - grub2_page_poison_argument
889f2b
diff --git a/tests/data/profile_stability/rhel8/stig.profile b/tests/data/profile_stability/rhel8/stig.profile
889f2b
index 4be3cf93c25..32f1a24a7a4 100644
889f2b
--- a/tests/data/profile_stability/rhel8/stig.profile
889f2b
+++ b/tests/data/profile_stability/rhel8/stig.profile
889f2b
@@ -74,6 +74,7 @@ selections:
889f2b
 - auditd_log_format
889f2b
 - auditd_name_format
889f2b
 - banner_etc_issue
889f2b
+- bios_enable_execution_restrictions
889f2b
 - chronyd_client_only
889f2b
 - chronyd_no_chronyc_network
889f2b
 - chronyd_or_ntpd_set_maxpoll
889f2b
diff --git a/tests/data/profile_stability/rhel8/stig_gui.profile b/tests/data/profile_stability/rhel8/stig_gui.profile
889f2b
index 20b8a54861e..d6a27c67dc0 100644
889f2b
--- a/tests/data/profile_stability/rhel8/stig_gui.profile
889f2b
+++ b/tests/data/profile_stability/rhel8/stig_gui.profile
889f2b
@@ -85,6 +85,7 @@ selections:
889f2b
 - auditd_log_format
889f2b
 - auditd_name_format
889f2b
 - banner_etc_issue
889f2b
+- bios_enable_execution_restrictions
889f2b
 - chronyd_client_only
889f2b
 - chronyd_no_chronyc_network
889f2b
 - chronyd_or_ntpd_set_maxpoll
889f2b
889f2b
From dac8111b4d89a31cbaa5648f876bd58575a93e86 Mon Sep 17 00:00:00 2001
889f2b
From: Matthew Burket <mburket@redhat.com>
889f2b
Date: Mon, 19 Jul 2021 09:51:34 -0500
889f2b
Subject: [PATCH 2/2] Add oval check for bios_enable_execution_restrictions
889f2b
889f2b
---
889f2b
 .../oval/shared.xml                           | 24 ++++++++++++++++++-
889f2b
 1 file changed, 23 insertions(+), 1 deletion(-)
889f2b
889f2b
diff --git a/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml b/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml
889f2b
index 622a183f99f..7cc448f8cce 100644
889f2b
--- a/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml
889f2b
+++ b/linux_os/guide/system/permissions/restrictions/enable_nx/bios_enable_execution_restrictions/oval/shared.xml
889f2b
@@ -1,8 +1,10 @@
889f2b
 <def-group>
889f2b
     <definition class="compliance" id="bios_enable_execution_restrictions" version="2">
889f2b
         {{{ oval_metadata("The NX (no-execution) bit flag should be set on the system.") }}}
889f2b
-        <criteria>
889f2b
+        <criteria operator="AND">
889f2b
             <criterion comment="NX bit is set" test_ref="test_NX_cpu_support" />
889f2b
+            <criterion comment="No log messages about NX being disabled" test_ref="test_messages_nx_active" />
889f2b
+            <criterion comment="NX is not disabled in the kernel command line" test_ref="test_noexec_cmd_line" />
889f2b
         </criteria>
889f2b
     </definition>
889f2b
 
889f2b
@@ -10,9 +12,29 @@
889f2b
         <ind:object object_ref="obj_NX_cpu_support" />
889f2b
     </ind:textfilecontent54_test>
889f2b
 
889f2b
+    <ind:textfilecontent54_test check="all" check_existence="none_exist" id="test_messages_nx_active" version="1" comment="No log messages about NX being disabled">
889f2b
+        <ind:object object_ref="obj_messages_nx_active" />
889f2b
+    </ind:textfilecontent54_test>
889f2b
+
889f2b
+    <ind:textfilecontent54_test check="all" check_existence="none_exist" id="test_noexec_cmd_line" version="1" comment="NX is not disabled in the kernel command line">
889f2b
+        <ind:object object_ref="obj_noexec_cmd_line" />
889f2b
+    </ind:textfilecontent54_test>
889f2b
+
889f2b
     <ind:textfilecontent54_object id="obj_NX_cpu_support" version="1">
889f2b
         <ind:filepath>/proc/cpuinfo</ind:filepath>
889f2b
         <ind:pattern operation="pattern match">^flags[\s]+:.*[\s]+nx[\s]+.*$</ind:pattern>
889f2b
         <ind:instance datatype="int">1</ind:instance>
889f2b
     </ind:textfilecontent54_object>
889f2b
+
889f2b
+    <ind:textfilecontent54_object id="obj_messages_nx_active" version="1">
889f2b
+        <ind:filepath>/var/log/messages</ind:filepath>
889f2b
+        <ind:pattern operation="pattern match">^.+protection: disabled.+</ind:pattern>
889f2b
+        <ind:instance datatype="int">1</ind:instance>
889f2b
+    </ind:textfilecontent54_object>
889f2b
+
889f2b
+    <ind:textfilecontent54_object id="obj_noexec_cmd_line" version="1">
889f2b
+        <ind:filepath>/proc/cmdline</ind:filepath>
889f2b
+        <ind:pattern operation="pattern match">.+noexec[0-9]*=off.+</ind:pattern>
889f2b
+        <ind:instance datatype="int">1</ind:instance>
889f2b
+    </ind:textfilecontent54_object>
889f2b
 </def-group>