自宅で信頼できないデバイス(USBポートを介して自分のシステムに接続)を接続すると、私のLinuxシステムがどれだけのリスクにさらされる可能性があるのか疑問に思います。特にudev
、特定のデバイス(ホワイトリストアプローチなど)を除くすべてのデバイスをブロックするルールを作成しても、カーネルがまだ脆弱になる可能性があるという心配があります。
udevには、USBデバイスと対話する方法で一般的にロードされるモジュールをカーネル(モジュラーと仮定)がロードするのを防ぐ機能はありますか?
ベストアンサー1
カーネルには、以下を使用してUSBデバイスから自分自身を保護する機能があります。USB認証フレームワーク。起動時にすべてのホストを無効にできます。
for host in /sys/bus/usb/devices/usb*
do
echo 0 > $host/authorized_default
done
あるいは、デバイスを破棄する前にカーネルコマンドラインを渡して認証を完全に無効にすることもできます。ルールで、キーボードなどの起動に必要なすべてのUSBデバイスを有効にしていることをusbcore.authorized_default=0
確認してください。udev
完了すると、USBデバイスを接続しても新しいモジュールがロードされたり、新しいデバイスは作成されません。新しいUSBデバイスを有効にするには、手動で認証し、ドライバの検出を手動でトリガする必要があります(詳細はマニュアルを参照)。