diff --git a/benchmarks/services/3.26-disable-usb-storage.md b/benchmarks/services/3.26-disable-usb-storage.md new file mode 100644 index 0000000000000000000000000000000000000000..9798409b6426ff4d2793234c46baec5c3ace3b15 --- /dev/null +++ b/benchmarks/services/3.26-disable-usb-storage.md @@ -0,0 +1,56 @@ +# 3.26 禁用 USB 存储 + +## 安全等级 + +- level 1 + +## 描述 + +`USB`存储是一种传输和存储文件的方式,它与网络连接状态无关,能够确保文件的持久性和可用性。它的流行和实用性导致基于`USB`的恶意软件成为进行网络渗透的简单常见手段,并使它成为在网络环境中建立持久威胁的第一步。限制系统上的`USB`访问能够有效地缩小设备的物理攻击面,降低恶意软件的引入可能性。 + +通过在模块装载程序`modprobe`读取并加载内核模块时,修改系统上的`usb-storage`内核模块的安装指向,使其指向`/bin/true`,可使该内核模块成功装载但实际上不执行任何实际操作,由此可以禁用`USB`存储。 + +禁用`usb-storage`模块的另一种方案可以在`USBGuard`中找到。使用`USBGuard`并制定`USB`设备策略应遵循站点政策。 + +## 修复建议 + +修改`usb-storage`模块安装指向,并卸载`usb-storage`模块。 + +1. 在` /etc/modprobe.d/`目录下创建(或编辑)一个`.conf`文件(文件可任意命名,示例:`usb_storage.conf`),并在其中输入以下内容,以将`usb-storage`模块安装指向`/bin/true`: + +创建/编辑文件: + +```bash +# vim /etc/modprobe.d/usb_storage.conf +``` + +输入如下内容并保存: + +```bash +install usb-storage /bin/true +``` + +2. 执行以下命令,以立即卸载`usb-storage`模块: + +```bash +# rmmod usb-storage +``` + +## 扫描检测 + +确保`usb-storage`模块已经卸载。 + +1. 执行以下命令,验证`usb-storage`模块的安装指向并验证`usb-storage`模块是否已经卸载: + +```bash +# modprobe -n -v usb-storage +install /bin/true +# lsmod | grep usb-storage + +``` + +如果第一条命令执行后返回`install /bin/true`,且第二条命令执行后,没有返回任何结果,则视为通过此项检查。 + +## 参考 + +- cis: diff --git a/docs/summary-of-rules.md b/docs/summary-of-rules.md index 37816b3b085685d68098306d90e6a09a8e453742..ea5640dd4d097580bea109406098c60a37b3bdef 100644 --- a/docs/summary-of-rules.md +++ b/docs/summary-of-rules.md @@ -103,6 +103,7 @@ | 3.23 | 3.23-disable-rsh.md | 3.23 禁用rsh | benchmarks/services | 1 | | 3.24 | 3.24-disable-ntalk.md | 3.24 禁用ntalk | benchmarks/services | 1 | | 3.25 | 3.25-ensure-xinetd-is-not-installed.md | 3.25 确保xinetd被卸载 | benchmarks/services | 1 | +| 3.26 | 3.26-disable-usb-storage.md | 3.26 禁用USB存储 | benchmarks/services | 1 | | 4.1 | 4.1-ensure-message-of-the-day-is-configured-properly.md | 4.1 确保登录提示消息的内容符合要求 | benchmarks/system-configurations | 1 | | 4.2 | 4.2-ensure-local-login-warning-banner-is-configured-properly.md | 4.2 确保本地登录提示消息的内容符合要求 | benchmarks/system-configurations | 1 | | 4.3 | 4.3-ensure-remote-login-warning-banner-is-configured-properly.md | 4.3 确保远程登录提示消息的内容符合要求 | benchmarks/system-configurations | 1 | diff --git a/remediation-kits/services/3.26-disable-usb-storage.sh b/remediation-kits/services/3.26-disable-usb-storage.sh new file mode 100644 index 0000000000000000000000000000000000000000..567e1a4bbef55e059352e9db1a6e2da75190e405 --- /dev/null +++ b/remediation-kits/services/3.26-disable-usb-storage.sh @@ -0,0 +1,2 @@ +grep -Psq "^install\s+usb\-storage\s+\/bin\/true$" /etc/modprobe.d/*.conf || echo "install usb-storage /bin/true" >> /etc/modprobe.d/usb_storage.conf +rmmod usb-storage diff --git a/scanners/services/3.26-disable-usb-storage.sh b/scanners/services/3.26-disable-usb-storage.sh new file mode 100644 index 0000000000000000000000000000000000000000..848eb82580af9c613b5f794acd76df06a6e404c5 --- /dev/null +++ b/scanners/services/3.26-disable-usb-storage.sh @@ -0,0 +1,9 @@ +result=true +echo $(modprobe -n -v usb-storage) | grep -Psq "^install\s+\/bin\/true$" || result=false +lsmod | grep -q "usb-storage" && result=false + +if [ "$result" = true ]; then + echo "pass" +else + echo "fail" +fi