cis-dil-benchmark icon indicating copy to clipboard operation
cis-dil-benchmark copied to clipboard

Kernel checks fail when the kernel module doesn't exist

Open bendres97 opened this issue 1 year ago • 0 comments

Description

If a Kernel module isn't installed on a machine, the check to confirm it is disabled fails due to the way that the kernel_module resource operates. If the module isn't found on the machine, be_disabled, be_loaded and be_blacklisted will all return false (as in, they technically don't meet the criteria because they don't exist).

Reproduction steps

inspec> describe kernel_module('cramfs') do
inspec>   it {should be_disabled}
inspec> end

Profile:   inspec-shell
Version:   (not specified)
Target ID:

  Kernel Module cramfs
     ×  is expected to be disabled
     expected `Kernel Module cramfs.disabled?` to be truthy, got false

Test Summary: 0 successful, 1 failure, 0 skipped
inspec> describe file('/proc/modules') do
inspec>   its('content') { should_not match (/^cramfs\s/) }
inspec> end

Profile:   inspec-shell
Version:   (not specified)
Target ID:

  File /proc/modules
     ✔  content is expected not to match /^cramfs\s/

Test Summary: 1 successful, 0 failures, 0 skipped
inspec>

Current Behavior

... False positives for kernel modules that are expected to be disabled but don't exist on the target system.

Expected Behavior

... If a module isn't installed on the target system, these checks should pass.

OS / Environment

... Linux (Tested on Ubuntu 22.04 LTS)

Inspec Version

... 5.21.29

Baseline Version

... 0.4.12

Additional information

...

bendres97 avatar Mar 17 '23 22:03 bendres97