USBデバイススキャン
sd scan-usbコマンドは接続されたリムーバブルUSBストレージデバイスを検出し、その内容のマルウェアをスキャンします。これはUSBドライブがマルウェア配布の一般的なベクターである環境(エアギャップネットワーク、共有ワークステーション、産業制御システムなど)にとって不可欠です。
仕組み
呼び出されると、sd scan-usbは以下の手順を実行します:
- デバイス検出 --
/sys/block/を通じてブロックデバイスを列挙し、リムーバブルデバイス(USBマスストレージ)を識別します。 - マウント検出 -- デバイスがすでにマウントされているかを確認します。されていない場合は、スキャンのために一時ディレクトリに読み取り専用モードでオプションとしてマウントできます。
- 完全スキャン -- デバイス上のすべてのファイルに対して完全な検出パイプライン(ハッシュマッチング、YARAルール、ヒューリスティック分析)を実行します。
- レポート -- ファイルごとの判定を含むスキャンレポートを生成します。
自動マウント
デフォルトでは、sd scan-usbはすでにマウントされているデバイスをスキャンします。マウントされていないUSBデバイスをスキャンのために自動的に読み取り専用モードでマウントするには--auto-mountを使用してください。
基本的な使い方
接続されているすべてのUSBストレージデバイスをスキャン:
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-mb | 100 | このサイズより大きいファイルをスキップ |
自動隔離
USBデバイスで見つかった脅威を自動的に隔離:
sd scan-usb --auto-quarantineScanning /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デバイスが接続されている場合、特定のものをスキャン:
sd scan-usb --device /dev/sdb1スキャンせずに検出されたUSBデバイスを一覧表示:
sd scan-usb --listDetected 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 mountedJSON出力
sd scan-usb --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デバイスが接続されたときに自動的にスキャンできます:
sd monitor --watch-usb /home /tmpこれはリアルタイムファイルモニターを起動し、USB自動スキャン機能を追加します。新しいUSBデバイスがudevで検出されると、自動的にスキャンされます。
キオスクモード
公共端末や共有ワークステーションでは、--watch-usbと--auto-quarantineを組み合わせて、ユーザーの介入なしにUSBデバイスからの脅威を自動的に中和します。
次のステップ
- ファイル&ディレクトリスキャン --
sd scanの完全リファレンス - メモリスキャン -- 実行中のプロセスメモリをスキャン
- ルートキット検出 -- システムレベルの脅威をチェック
- 検出エンジン -- 多層パイプラインの仕組み