Skip to main content Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/CyberStrikeus/CyberStrike --skill cis-ubuntu1804-v220-1-1-10The command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... More from this repository Related occupations SOC
Based on SOC occupation classification
name cis-ubuntu1804-v220-1-1-10 description Disable USB Storage category cis-storage version 2.2.0 author cyberstrike-official tags ["cis","ubuntu","linux","ubuntu-18.04","usb","usb-storage","kernel-module"] cis_id 1.1.10 cis_benchmark CIS Ubuntu Linux 18.04 LTS Benchmark v2.2.0 tech_stack ["ubuntu","linux"] cwe_ids [] chains_with [] prerequisites [] severity_boost {}
Disable USB Storage
Profile
Level 1 - Server / Level 2 - Workstation, Assessment: Automated
Description
USB storage provides a means to transfer and store files insuring persistence and availability of the files independent of network connection status. Its popularity and utility has led to USB-based malware being a simple and common means for network infiltration and a first step to establishing a persistent threat within a networked environment.
Rationale
Restricting USB access on the system will decrease the physical attack surface for a device and diminish the possible vectors to introduce malware.
Impact
An alternative snolution to disabling the usb-storage module may be found in USBGuard.
Use of USB storage devices to transfer work files may be disrupted.
Audit Procedure
Command Line
Run the following script to verify the usb-storage module is disabled. If the module is available in the running kernel:
An entry including /bin/true or /bin/false exists in a file within the /etc/modprobe.d/ directory
The module is deny listed in a file within the /etc/modprobe.d/ directory
The module is not loaded in the kernel
#!/usr/bin/env bash
{
l_output="" l_output2="" l_output3="" l_dl=""
l_mname="usb-storage"
l_mtype="drivers"
l_searchloc="/lib/modprobe.d/*.conf /usr/local/lib/modprobe.d/*.conf /run/modprobe.d/*.conf /etc/modprobe.d/*.conf"
l_mpath="/lib/modules/**/kernel/$l_mtype "
l_mpname="$(tr '-' ' ' <<< "$l_mname " ) "
l_mndir="$(tr '-' '/' <<< "$l_mname " ) "
module_loadable_chk ()
{
l_loadable="$(modprobe -n -v "$l_mname " ) "
[ -gt ] && l_loadable=
grep -Pq -- <<< ;
l_output=
l_output2=
}
()
{
! lsmod | grep > /dev/null 2>&1;
l_output=
l_output2=
}
()
{
l_dl=
modprobe --showconfig | grep -Pq -- ;
l_output=
l_output2=
}
l_mdir ;
[ -d ] && [ -n ];
l_output3=
[ != ] && module_deny_chk
[ = ];
module_loadable_chk
module_loaded_chk
l_output=
[ -n ] && -e
[ -z ];
-e
-e
[ -n ] && -e
}
"$(wc -l <<< "$l_loadable " ) "
"1"
"$(grep -P -- "(^\h*install|\b$l_mname )\b" <<< "$l_loadable " ) "
if
'^\h*install \/bin\/(true|false)'
"$l_loadable "
then
"$l_output \n - module: \"$l_mname \" is not loadable: \"$l_loadable \""
else
"$l_output2 \n - module: \"$l_mname \" is loadable: \"$l_loadable \""
fi
module_loaded_chk
if
"$l_mname "
then
"$l_output \n - module: \"$l_mname \" is not loaded"
else
"$l_output2 \n - module: \"$l_mname \" is loaded"
fi
module_deny_chk
"y"
if
'^\h*blacklist\h+'
"$l_mpname "
'\b'
then
"$l_output \n - module: \"$l_mname \" is deny listed in: \"$(grep -Pls -- "^\h*blacklist\h+$l_mname \b" $l_searchloc) \""
else
"$l_output2 \n - module: \"$l_mname \" is not deny listed"
fi
for
in
$l_mpath
do
if
"$l_mdir /$l_mndir "
"$(ls -A $l_mdir/$l_mndir) "
then
"$l_output3 \n - \"$l_mdir \""
"$l_dl "
"y"
if
"$l_mdir "
"/lib/modules/$(uname -r) /kernel/$l_mtype "
then
fi
else
"$l_output \n - module: \"$l_mname \" doesn't exist in \"$l_mdir \""
fi
done
"$l_output3 "
echo
"\n\n -- INFO --\n - module: \"$l_mname \" exists in:$l_output3 "
if
"$l_output2 "
then
echo
"\n- Audit Result:\n ** PASS **\n$l_output \n"
else
echo
"\n- Audit Result:\n ** FAIL **\n - Reason(s) for audit failure:\n$l_output2 \n"
"$l_output "
echo
"\n- Correctly set:\n$l_output \n"
fi
Expected Result
module: "usb-storage" is not loadable
module: "usb-storage" is not loaded
module: "usb-storage" is deny listed
Remediation
Command Line If the module is available in the running kernel:
Create a file with install usb-storage /bin/false in the /etc/modprobe.d/ directory
Create a file with blacklist usb-storage in the /etc/modprobe.d/ directory
Unload usb-storage from the kernel
If available in ANY installed kernel:
Create a file with blacklist usb-storage in the /etc/modprobe.d/ directory
If the kernel module is not available on the system or pre-compiled into the kernel:
No remediation is necessary
Default Value
References
NIST SP 800-53 Rev. 5: CM-7
CIS Controls v8 - 4.8 Uninstall or Disable Unnecessary Services on Enterprise Assets and Software (IG 2, IG 3)
v7 - 9.2 Ensure Only Approved Ports, Protocols and Services Are Running (IG 2, IG 3)
MITRE ATT&CK Mappings: T1005, T1005.000 (TA0005) - M1050