我想知道,如果假设我附加了一个不受信任的设备(通过usb端口到我的系统),我的Linux系统会面临多少风险?特别是,我担心,即使我会编写udev规则来阻止任何东西,除非(即白名单方法)某个设备,内核无论如何都是脆弱的?
udev有能力阻止内核(假设它是模块化的)加载通常作为与usb设备交互的方式加载的模块吗?
发布于 2017-12-21 10:31:20
内核能够使用USB授权框架保护自己不受USB设备的影响。您可以在引导时禁用所有主机:
for host in /sys/bus/usb/devices/usb*
do
echo 0 > $host/authorized_default
done甚至在设备被处理之前,通过在内核命令行上传递usbcore.authorized_default=0来完全禁用授权(只需确保您的udev规则启用您需要启动的任何USB设备,比如键盘)。
一旦完成,连接USB设备就不会加载任何新模块或创建任何新设备。要启用新的USB设备,您必须手动授权它,然后手动触发驱动程序探测(有关详细信息,请参阅文档)。
https://unix.stackexchange.com/questions/412221
复制相似问题