Googleのオープンソース開発者が、USBデバイスを使ったキーストロークインジェクション攻撃を回避するための新しいLinux用ツールをリリースした。
このオープンソースツール「USB Keystroke Injection Protection」は攻撃の妨害を目指すもので、必ずしも攻撃を完全に防ぐものではない。USBデバイスを介した不正な入力は、ユーザーの一瞬の隙を突いて行われるため、気づかれにくい。
キーストロークインジェクション攻撃は、たとえコンピューターの前に人が座っていたとしても、画面から目をそらす時間が一瞬でもあれば成立する。
Googleの情報セキュリティエンジニアリングチームに所属するSebastian Neuner氏は、USBを介したキーストローク攻撃は、もともとはシステム管理者の仕事を楽にするために考えられたテクノロジーを悪用したものだと説明する。
攻撃に使用されるのはシンプルなUSBメモリーのみだ。これをPCに差し込むと自動的にコードが実行される。
キーストロークインジェクト攻撃はUSBデバイスによる攻撃の一種であり、最もよく知られているのは「Stuxnet」だ。米国政府が開発したとも言われるこのマルウェアは、2008年にイランの核燃料施設でネットワークに接続していないコンピューターをUSBデバイス経由で感染させるために使われた。これを機に、セキュリティ研究者たちは「BadUSB」と呼ばれる脆弱性を利用した攻撃の存在を明らかにした。
これまで、無線機器との通信に利用されるUSBドングルにも、キーストロークインジェクション攻撃に悪用できるバグが発見された。
Neuner氏によれば、今回発表された新しいツールは、接続されたUSBデバイスからのキーストロークのタイミングを測定するもので、キーストロークが人間を介さずに行われたものかどうか、つまりNeuner氏の言葉を借りれば、「所定の経験則(ヒューリスティックス)」に基づくものかどうかを判断する。
重要なのは、Neuner氏も指摘しているように、このツールはUSB経由のキーストローク攻撃を困難にはしても、完璧な防御策にはならないということだ。しかし、ユーザーが気づく程度にまでキー入力のスピードを落とすことで、ユーザーが違和感を持てるよう支援する。ただし、攻撃が行われているときにユーザーが画面を見ていることが前提だ。
「このツールは、USB経由の攻撃、つまりキーストロークインジェクション攻撃に対する特効薬ではない。(USBデバイスを介した攻撃の前提として)ユーザーのマシンにアクセスできる攻撃者は、もしマシンがロックされないまま放置されていれば、もっと悪いこともできるからだ」とNeuner氏は説明する。
「このツールは、新たな保護レイヤーを提供するものだ。ロックされていないマシンの前に座っているユーザーが、攻撃をリアルタイムで目撃できるようにすることで、ユーザーを保護することを目指す。ユーザーが攻撃を目撃できるように、ツールのロジックを回避できる程度にまでキーストロークを遅らせるか、検知できる程度の速さにする、つまり、ドライバーをアンバインドし、情報をシステムログに記録することで、デバイスをブロックする」
このツールに関するGoogleのGitHubページによると、このデーモン(プロセス)はLinuxシステム上のキーストロークインジェクションデバイスをブロックする。monitoringモードとhardeningモードがあり、「USBGuard」といったUSBデバイスの保護ツールと組み合わせることができる。
「monitoringモードでは、攻撃に用いられる可能性のあるUSBデバイスに関する情報を収集し、システムログに記録する。hardeningモードでは、ドライバーをアンバインドすることで、攻撃しているUSBデバイスをOSから切り離す」と同ページには書かれている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。