【PoisonTap対策】USBをセメントでふさがなくていい簡単な対策方法を紹介してみる

あらゆるPC/Macから情報を抜き取れる5ドルのラズパイデバイスが公開 ~対抗手段はUSBポートをセメントで固めること - PC Watch

Samy Kamkar氏はPoisonTapのソースコードをGitHubに公開しているが、PoisonTapへの対抗手段として、Webサーバーを運用しているならHTTPSを使用するように勧めている。また、PCに関してはWebブラウザを閉じておくか、USBポートをセメントで塞ぐように助言している。

原文確認してみた
Samy Kamkar: PoisonTap - exploiting locked computers over USB

Desktop Security

    Adding cement to your USB and Thunderbolt ports can be effective
    Closing your browser every time you walk away from your machine can work, but is entirely impractical
    Disabling USB/Thunderbolt ports is also effective, though also impractical
    Locking your computer has no effect as the network and USB stacks operate while the machine is locked, however, going into an encrypted sleep mode where a key is required to decrypt memory (e.g., FileVault2 + deep sleep) solves most of the issues as your browser will no longer make requests, even if woken up

翻訳:
USBやサンダーボルトポートに セメントを塗っておくのは有効だ
自分のパソコンから離席するたびにブラウザを閉じておく方法もありますが、全く実用的じゃない
USB / Thunderboltポートを無効にすることも効果的ですが、実用的ではない
マシンがロックされていてもネットワークやUSBスタックが動作するため、効果はありませんが、Mac OSX で採用されているような、メモリを復号化するために鍵が必要な暗号化スリープモード(FileVault2 +深いスリープなど)では、復帰してもブラウザは要求を出さなくなります

|。・ω・) ねぇ、知ってる、Samy Kamkarさんや? Windows で USBポートの無効化/有効化はめちゃくちゃ簡単に実行できるんだぜ?


devcon
例えば、このWindows 7の場合、 USBポートが4つあるんだけど、全部
Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller - 1C2D
に繋がってる。だから、これを無効にすればいい。
表示>デバイス【接続別】にすると分かり易いよ

デバイスの有効・無効をプログラムから切り替える方法 – Japan WDK Support Blog

C:\Windows\system32>cd E:\WINDDK\7600.16385.1\tools\devcon\i386

C:\Windows\system32>e:devcon hwids =usb
USB\VID_0B97&PID_7761\6&1D88EE3&0&3
    Name: Generic USB Hub
    Hardware IDs:
        USB\VID_0B97&PID_7761&REV_0110
        USB\VID_0B97&PID_7761
    Compatible IDs:
        USB\Class_09&SubClass_00&Prot_00
        USB\Class_09&SubClass_00
        USB\Class_09
USB\VID_047F&PID_AE11\AE010520150101000000000000004843
    Name: USB Composite Device
    Hardware IDs:
        USB\VID_047F&PID_AE11&REV_0451
        USB\VID_047F&PID_AE11
    Compatible IDs:
        USB\DevClass_00&SubClass_00&Prot_00
        USB\DevClass_00&SubClass_00
        USB\DevClass_00
        USB\COMPOSITE
USB\ROOT_HUB20\4&36F3FE09&0
    Name: USB Root Hub
    Hardware IDs:
        USB\ROOT_HUB20&VID8086&PID1C26&REV0004
        USB\ROOT_HUB20&VID8086&PID1C26
        USB\ROOT_HUB20
USB\ROOT_HUB20\4&65B148&0
    Name: USB Root Hub
    Hardware IDs:
        USB\ROOT_HUB20&VID8086&PID1C2D&REV0004
        USB\ROOT_HUB20&VID8086&PID1C2D
        USB\ROOT_HUB20
USB\VID_8087&PID_0024\5&2122FE29&0&1
    Name: Generic USB Hub
    Hardware IDs:
        USB\VID_8087&PID_0024&REV_0000
        USB\VID_8087&PID_0024
    Compatible IDs:
        USB\Class_09&SubClass_00&Prot_00
        USB\Class_09&SubClass_00
        USB\Class_09
PCI\VEN_8086&DEV_1C26&SUBSYS_160F10CF&REV_04\3&11583659&0&E8
    Name: Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller - 1C26
    Hardware IDs:
        PCI\VEN_8086&DEV_1C26&SUBSYS_160F10CF&REV_04
        PCI\VEN_8086&DEV_1C26&SUBSYS_160F10CF
        PCI\VEN_8086&DEV_1C26&CC_0C0320
        PCI\VEN_8086&DEV_1C26&CC_0C03
    Compatible IDs:
        PCI\VEN_8086&DEV_1C26&REV_04
        PCI\VEN_8086&DEV_1C26
        PCI\VEN_8086&CC_0C0320
        PCI\VEN_8086&CC_0C03
        PCI\VEN_8086
        PCI\CC_0C0320
        PCI\CC_0C03
USB\VID_8087&PID_0024\5&365C0B90&0&1
    Name: Generic USB Hub
    Hardware IDs:
        USB\VID_8087&PID_0024&REV_0000
        USB\VID_8087&PID_0024
    Compatible IDs:
        USB\Class_09&SubClass_00&Prot_00
        USB\Class_09&SubClass_00
        USB\Class_09
PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF&REV_04\3&11583659&0&D0
    Name: Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller - 1C2D
    Hardware IDs:
        PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF&REV_04
        PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF
        PCI\VEN_8086&DEV_1C2D&CC_0C0320
        PCI\VEN_8086&DEV_1C2D&CC_0C03
    Compatible IDs:
        PCI\VEN_8086&DEV_1C2D&REV_04
        PCI\VEN_8086&DEV_1C2D
        PCI\VEN_8086&CC_0C0320
        PCI\VEN_8086&CC_0C03
        PCI\VEN_8086
        PCI\CC_0C0320
        PCI\CC_0C03
8 matching device(s) found.

発見

管理権限で実行してバッチファイルで無効にしてみよう

C:\Windows\system32>e:devcon disable "@PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF&REV_04\3&11583659&0&D0"
PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF&REV_04\3&11583659&0&D0: Disabled
1 device(s) disabled.

無効になった
devcon2
ちゃんとデバイスマネージャーで無効になってるし、USBに何をさしても反応しない

C:\Windows\system32>e:devcon enable "@PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF&REV_04\3&11583659&0&D0"
PCI\VEN_8086&DEV_1C2D&SUBSYS_160F10CF&REV_04\3&11583659&0&D0: Disabled
1 device(s) enabled.

有効にするのも簡単。

これを、画面ロックの設定/解除 をトリガにして設定しておくだけでいいわけだ
どうじゃ、(上級者には)簡単じゃろ?・ω・

ちなみに、6.1.7600.16385 の i386版 devcon.exe なら 拡張カーネルの入った Windows 2000でも動作するゾイ。
注: x64環境の場合 x64版の devcon.exe 使わないとダメらしい
Windows 7 , 8 x64 環境で DevCon.exe を使用する - Windows - Project Group

おすすめ

4件のフィードバック

  1. ななし より:

    該当記事がないのでここに書きますが、WLU(WindowsLegacyUpdate)がNot Foundになってます。

  2. sato より:

    素朴な疑問なのですがUSBホストコントローラーを丸ごと無効にするとUSBキーボードやマウスが使えなくなって画面ロックを解除できなくなりませんか?

  3.   より:

    「俺はSamy Kamkarよりも技術があるぜ」アピール乙
    技術情報は本当に参考にさせて頂きますが、隙あらばこういうマウンティングとってくるのが正直…

  4. 黒翼猫 より:

    >「俺はSamy Kamkarよりも技術があるぜ」アピール乙
    >技術情報は本当に参考にさせて頂きますが、隙あらばこういうマウンティングとってくるのが正直…
    技術力の誇示が目的であれば、ブロック動画でも撮影して、Youtubeにでもアップしたりい
    海外メディアにアプローチすればいいんじゃないんですかね対策をいくつか挙げて実際にアプリ公開したりしてるのは善意のつもりなんですが、
    どういうアプローチをするのが正解なのか模範を書いていただけるとありがたいです。
    あと、Samy Kamkarよりも技術があるなんて証明にはならず、
    彼らの考えた攻撃方法が完璧ではない証明をしたにすぎないことは少し考えれば
    分かるのではないでしょうか?
    そもそも、私は攻撃に関してはエキスパートじゃないですからね・ω・

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です