Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

USBデバイススキャン

sd scan-usbコマンドは接続されたリムーバブルUSBストレージデバイスを検出し、その内容のマルウェアをスキャンします。これはUSBドライブがマルウェア配布の一般的なベクターである環境(エアギャップネットワーク、共有ワークステーション、産業制御システムなど)にとって不可欠です。

仕組み

呼び出されると、sd scan-usbは以下の手順を実行します:

  1. デバイス検出 -- /sys/block/を通じてブロックデバイスを列挙し、リムーバブルデバイス(USBマスストレージ)を識別します。
  2. マウント検出 -- デバイスがすでにマウントされているかを確認します。されていない場合は、スキャンのために一時ディレクトリに読み取り専用モードでオプションとしてマウントできます。
  3. 完全スキャン -- デバイス上のすべてのファイルに対して完全な検出パイプライン(ハッシュマッチング、YARAルール、ヒューリスティック分析)を実行します。
  4. レポート -- ファイルごとの判定を含むスキャンレポートを生成します。

自動マウント

デフォルトでは、sd scan-usbはすでにマウントされているデバイスをスキャンします。マウントされていないUSBデバイスをスキャンのために自動的に読み取り専用モードでマウントするには--auto-mountを使用してください。

基本的な使い方

接続されているすべてのUSBストレージデバイスをスキャン:

bash
sd scan-usb

出力例:

PRX-SD USB Scan
===============
Detected USB devices:
  /dev/sdb1 → /media/user/USB_DRIVE (vfat, 16 GB)

Scanning /media/user/USB_DRIVE...
Scanned: 847 files (2.1 GB)
Threats: 1

  [MALICIOUS] /media/user/USB_DRIVE/autorun.exe
    Layer:   YARA rule
    Rule:    win_worm_usb_spreader
    Details: USB worm with autorun.inf exploitation

Duration: 4.2s

コマンドオプション

オプションショートデフォルト説明
--auto-quarantine-qオフ検出された脅威を自動的に隔離
--auto-mountオフマウントされていないUSBデバイスを読み取り専用モードでマウント
--device-dすべて特定のデバイスのみスキャン(例:/dev/sdb1
--json-jオフJSON形式で結果を出力
--eject-afterオフスキャン後にデバイスを安全に排出
--max-size-mb100このサイズより大きいファイルをスキップ

自動隔離

USBデバイスで見つかった脅威を自動的に隔離:

bash
sd scan-usb --auto-quarantine
Scanning /media/user/USB_DRIVE...
  [MALICIOUS] /media/user/USB_DRIVE/autorun.exe → Quarantined (QR-20260321-012)
  [MALICIOUS] /media/user/USB_DRIVE/.hidden/payload.bin → Quarantined (QR-20260321-013)

Threats quarantined: 2
Safe to use: Review remaining files before opening.

重要

--auto-quarantineをUSBスキャンで使用すると、悪意のあるファイルはUSBデバイスから削除されるのではなく、ホストマシンのローカル隔離ボールトに移動されます。--remediateも使用しない限り、USB上の元のファイルはそのまま残ります。

特定のデバイスのスキャン

複数のUSBデバイスが接続されている場合、特定のものをスキャン:

bash
sd scan-usb --device /dev/sdb1

スキャンせずに検出されたUSBデバイスを一覧表示:

bash
sd scan-usb --list
Detected USB storage devices:
  1. /dev/sdb1  Kingston DataTraveler  16 GB  vfat  Mounted: /media/user/USB_DRIVE
  2. /dev/sdc1  SanDisk Ultra          64 GB  exfat Not mounted

JSON出力

bash
sd scan-usb --json
json
{
  "scan_type": "usb",
  "timestamp": "2026-03-21T17:00:00Z",
  "devices": [
    {
      "device": "/dev/sdb1",
      "label": "USB_DRIVE",
      "filesystem": "vfat",
      "size_gb": 16,
      "mount_point": "/media/user/USB_DRIVE",
      "files_scanned": 847,
      "threats": [
        {
          "path": "/media/user/USB_DRIVE/autorun.exe",
          "verdict": "malicious",
          "layer": "yara",
          "rule": "win_worm_usb_spreader"
        }
      ]
    }
  ]
}

一般的なUSBの脅威

USBデバイスは以下の種類のマルウェアの配布によく使用されます:

脅威タイプ説明検出レイヤー
AutorunワームWindowsでの実行にautorun.infを悪用YARAルール
USBドロッパー偽装された実行可能ファイル(例:document.pdf.exeヒューリスティック + YARA
BadUSBペイロードHIDエミュレーション攻撃を標的にしたスクリプトファイル分析
ランサムウェアキャリアコピー時に起動する暗号化されたペイロードハッシュ + YARA
データ漏洩ツールデータを収集して抽出するように設計されたユーティリティヒューリスティック分析

リアルタイム監視との統合

USB監視とsd monitorデーモンを組み合わせて、USBデバイスが接続されたときに自動的にスキャンできます:

bash
sd monitor --watch-usb /home /tmp

これはリアルタイムファイルモニターを起動し、USB自動スキャン機能を追加します。新しいUSBデバイスがudevで検出されると、自動的にスキャンされます。

キオスクモード

公共端末や共有ワークステーションでは、--watch-usb--auto-quarantineを組み合わせて、ユーザーの介入なしにUSBデバイスからの脅威を自動的に中和します。

次のステップ

Released under the Apache-2.0 License.