0
0

はじめに

 USBポートのセキュリティ対策のために、USBGuardを使った方法を紹介する。USBGuardは、不要なUSBデバイスをPCにつながせないためのツールである。ホワイトリスト形式で、記載のあるデバイスのみを利用可能とすることができる。

動作確認環境

  • Ubuntu 20.04 (arm64)
    • Jetson Jetpack 5.1.1

インストール

下記コマンドでインストールする。

sudo apt update
sudo apt install usbguard
  • インストール時に接続されているUSBのみが許可されるようになる
    • インストール時とは、別のUSBマウスやキーボードは利用できくなる(後述の許可設定が必要)
  • USB Guardインストールは、USBデバイスを利用するには、都度許可が必要

方法

接続デバイスの設定

 接続されているデバイスを確認して、デバイスの設定(許可・禁止・削除)する。

確認

sudo usbguard list-devices

 allowになっているのが、許可されているデバイス。デフォルトでは、インストール時に認識されていたUSBデバイスが、allowになっている。左端に表示されている番号がデバイス番号で、設定に使う番号となる。

7: allow id 1d6b:0002 serial "3610000.xhci" name "xHCI Host Controller" hash "..." via-port "usb1" with-interface 09:00:00 with-connect-type ""
8: allow id 1d6b:0003 serial "3610000.xhci" name "xHCI Host Controller" hash "..." via-port "usb2" with-interface 09:00:00 with-connect-type ""
9: allow id 2109:2812 serial "" name "USB2.0 Hub" hash "..." via-port "1-2" with-interface 09:00:00 with-connect-type "unknown"
10: allow id 1a40:0101 serial "" name "USB 2.0 Hub" hash "..." via-port "1-4" with-interface 09:00:00 with-connect-type "unknown"
11: allow id 2109:0812 serial "" name "USB3.0 Hub" hash "..." parent-hash "..." via-port "2-3" with-interface 09:00:00 with-connect-type "unknown"
12: allow id 1a81:1004 serial "" name "Wireless Dongle" hash "..." parent-hash "..." via-port "1-2.2" with-interface { 03:01:01 03:01:02 } with-connect-type "unknown"

許可

USBデバイスの利用を許可する。

sudo usbguard allow-device -p {device_no}
  • -p: 恒久化オプション(設定を永続化するオプション)
  • {device_no}: list-devicesで表示される左端の数字
    下記の場合は、「7」を指定する
    7: allow id 1d6b:0002 serial ....
    

禁止

リストには表示されるが、USBデバイスを利用できなくする。

sudo usbguard block-device -p {device_no}
  • -p: 恒久化オプション(設定を永続化するオプション)
  • {device_no}: list-devicesで表示される左端の数字

USBキーボード、マウスを禁止にすると操作不能になるので注意する。

例:デバイス番号17を禁止

sudo usbguard block-device -p 17

確認

sudo usbguard list-devices

blockが表示されていればOK。

...
17: block id 2109:0812 serial "" name "USB3.0 Hub" hash "..." parent-hash "..." via-port "2-3" with-interface 09:00:00 with-connect-type "unknown"

削除

デバイス認証を解除してシステムから削除する。blockとの違いは以下(RedHatドキュメント 4.12. USBGuardの使用より引用)。

USBGuard では、block および reject は以下の意味で使用されます。
block - 今は、このデバイスとはやりとりしない
reject - このデバイスは存在しないものとして無視する

sudo usbguard reject-device -p {device_no}
  • -p: 恒久化オプション(設定を永続化するオプション)
  • {devide_no}: list-devicesで表示される左端の数字

ルール

 ベンダIDなどルールを追加または削除する。デバイスが接続されていなくても設定可能。

確認

sudo usbguard list-rules

左側のIDが、list-devicesの時のNoとは異なりルールNoとなっている。

1: allow id 1d6b:0002 serial "3610000.xhci" name "xHCI Host Controller" hash "..." parent-hash "..." with-interface 09:00:00 with-connect-type ""
2: allow id 1d6b:0003 serial "3610000.xhci" name "xHCI Host Controller" hash "..." parent-hash "..." with-interface 09:00:00 with-connect-type ""
3: allow id 2109:2812 serial "" name "USB2.0 Hub" hash "..." parent-hash "..." via-port "1-2" with-interface 09:00:00 with-connect-type "unknown"
4: allow id 1a40:0101 serial "" name "USB 2.0 Hub" hash "..." parent-hash "..." via-port "1-4" with-interface 09:00:00 with-connect-type "unknown"
5: block id 2109:0812 serial "" name "USB3.0 Hub" hash "..." with-interface 09:00:00 with-connect-type "unknown"
6: allow id 1a81:1004 serial "" name "Wireless Dongle" hash "..." parent-hash "..." with-interface { 03:01:01 03:01:02 } with-connect-type "unknown"
20: allow id 0bda:0409 serial "" name "USB3.2 Hub" hash "..." parent-hash "..." with-interface 09:00:00 with-connect-type "unknown"

追加

ベンダIDなどで追加する。

例:許可ルールの追加 (allow id xxxx:xxxx)

sudo usbguard append-rule "allow id xxxx:xxxx"

確認

sudo usbguard list-rules 

正常に追加されると以下のようになる。

...
24: allow id 1a81:1004

削除

例:ルールの削除

sudo usbguard remove-rule {rule_no}
  • {rule_no}: list-rulesで表示される左端の番号

まとめ

 USB Guardを使って、USBデバイスの利用制限をすることができた。簡単に設定可能なので不要なUSBデバイスを繋がれたくない場合に使える。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0