イントロダクション
セキュリティ関係の情報は、日々新しい情報が飛び込んできます。世の中が便利になることで、その”便利にするための仕組み”を利用して、新しい攻撃手法が考案されるからです。
USB機器は、攻撃者からの任意のキー入力を実行する装置となる
さて、日々の生活を豊かにする機器として、パソコンなどに接続する USB 機器があります。USB キーボード、USB マウス、USB メモリ、USB ハードディスク... などを、USB という統一の規格により、パソコンなどの様々な装置へ接続できるものです。
私も、今メインで使用しているノートPC では、USB ポートに USB マウス、USB キーボード、USB 切替機、USB ディスプレイ増設アダプター、USB ハブ、Andriod スマートフォン・iPad などの機器など、様々なUSB 機器・USBを経由して接続する機器を利用しています。
さて、そのように USB 機器を使用して出来ることが多くなってくると、それを悪用して本来は許可されていない操作を行えてしまう環境が意図せず生まれてきてしまうことになります。
最近見た中で、感心させられたのは次の記事です。
記者の眼 - 着実に忍び寄るBadUSBの脅威、「数秒でPC乗っ取り可能」の怖さにおののいた:ITpro
http://itpro.nikkeibp.co.jp/atcl/watcher/14/334361/032400225/
http://itpro.nikkeibp.co.jp/atcl/watcher/14/334361/032400225/
BadUSB の脅威、どのようにして PC を乗っ取るのか?
上記の記事では、次のことが語られています。- BadUSB と呼ばれる、攻撃者が攻撃用のプログラム(任意の操作を実行するなど)をUSB 機器へ仕込むことが出来る攻撃手法が登場している
- 従来の BadUSB であれば、既製品のUSBメモリなどのファームウェアを書き換えなければならないため、ハードルが高かった
- USB機器の自作キットを用いれば、従来よりも攻撃のハードルが低くなる
なぜ、USB 機器を接続することで、攻撃者がパソコンに対して任意の操作を行えるのか、不思議に思うと思います。
私も初めは、何故任意の操作を行えるのか分かりませんでした。
従来からある攻撃としては、USB メモリ内に、攻撃者が用意した実行プログラムをデータとして保存しておき、
- USB メモリがパソコンと接続されたときに、USB メモリ内の実行プログラムを自動実行する仕組み
- USB メモリ内の実行プログラムを、操作者がうっかり実行してしまう
といったことを利用して、任意のプログラムを実行させる攻撃はありました。
それらの攻撃に対しては、
- USB メモリ内のプログラムを自動実行させない
- USB メモリ内のプログラムは実行できないように設定する
などの対策で、攻撃を防げるようになってきました。
(そもそも、不審なUSBは接続しないというのも大切な対策です。)
最近では、USB メモリに偽装して、物理的にパソコンを破壊するような攻撃手法もあります。
ポートに挿すとPCを物理的に破壊してしまう驚異のUSBメモリ「USB Killer」 - GIGAZINE
http://gigazine.net/news/20150316-usb-killer/
http://gigazine.net/news/20150316-usb-killer/
そのため、パソコンの電気・電子回路が物理的に破壊されてしまうというものです。
(いわゆる、雷に打たれたようなものと考えることができます。)
この任意のプログラムをファームウェアとして仕込まれたUSB機器では、それらの攻撃手法とは異なります。
任意のプログラムをファームウェアとして仕込まれたUSB機器では、攻撃用の USB 機器を、USB キーボードなどに成りすますことで、任意の操作を実行するのです。
USB キーボードへの偽造
例えば、攻撃用の USB 機器が、USB キーボードに成りすましたケースを考えてみましょう。本来、通常の USB キーボードであれば、ユーザが手を動かしてキーをたたかなければ、パソコンに対してキーが押されたというキー入力情報が送信されません。
一方、任意のプログラムをファームウェアとして仕込まれたUSB機器では、ユーザが何もしなくても、任意のプログラムをファームウェアとして仕込まれたUSB機器内に記録された攻撃用の任意のキー操作の手順に従って、それを接続したパソコンなどの機器へキー入力情報が送信されます。
つまり、任意のプログラムをファームウェアとして仕込まれたUSB機器は、ユーザがキーボードを操作するのと同じように、パソコンに対してキー情報を送信しているのです。
まさに、パソコンに対しては、ユーザに成りすましていると言えるでしょう。
この攻撃に対して、従来のセキュリティソフトウェアは無力です。
なぜなら、従来のセキュリティソフトウェア(ウィルス対策ソフトウェアなど)では、記録媒体に記録されたプログラムや、パソコンのメモリ上で実行されているプログラムに対しては、セキュリティの検査を行うことができますが、USB 機器のファームウェアとして動作している場合には、パソコン上で動作しているセキュリティソフトウェアでは認知することのできません。
このような攻撃に対して、我々はどう対処していけばよいのでしょうか?
対処法
(1) そもそもUSBポートの無いパソコンを使用する
やはり、USB ポートの無いパソコンが最も安全です。万が一、うっかり 任意のプログラムをファームウェアとして仕込まれたUSB機器を接続してしまう心配もありません。
しかし、それではあまりに不便です。
(2) パソコンのUSB ポートへ機器を接続しない
機器の製造から、手元へ届くまでの流通経路の安全性が証明されていない機器は、USB ポートへは接続しないという対策があります。不明な USB 機器は、絶対にパソコンの USB ポートへは接続しないという対策です。
ただし、どうしても、不明な USB 機器を見なければならないという機会が出てきてしまうかもしれません。
その時には、次の対策をとります。
(3) 不正な操作を実行されても問題の無いパソコンを用意しておく
中に何のデータも保存されていない、ネットワークからも隔離されたテスト用のパソコンを 1 台用意しておきます。そして、そのパソコンで、"機器の製造から、手元へ届くまでの流通経路の安全性が証明されていない機器"(知り合いなどから渡された USB 機器も含みます)の動作をチェックしたり、中身の確認をしたりします。
ただし、普通に動作をチェックしても、そこに不正な動作や不正なデータがあるのかを見極めるのは難しいと考えられます。
そのため、基本的に、日々の作業・業務に使っているパソコンには、そのような危険なUSB機器は接続しないという対策をとります。
しかし、せっかくテスト用のパソコンを用意して、安全な機器かどうかをチェックしていても、そのテスト用パソコンにコンピュータウィルスが感染してしまうと、次からそのパソコンへ接続した機器へウィルスが感染(USB メモリなどのデータの書き換え、ファームウェアの書き換えなど)させる、感染源として動作してしまう可能性があります。
そのため、テスト用のパソコンのデータやプログラム、内蔵機器・外部機器のファームウェア、BIOS などのデータ・プログラムを極力書き換え不可能な状態にしておく必要があります。
また、接続する方の機器も、USB メモリなどであれば、書き換えをロックする物理的なスイッチがついていれば、それをON状態(書き換えロック状態)にして、差し込む必要があります。
また、そのパソコンで任意のタイミング(再起動時など)で、動作中に変更された設定・ファイルが初期化(任意のセキュリティが強化された設定であることを担保する)されるようにしておく必要があります。
可能ならば、OS やそれ以上のレベルで初期化されると、なお安全です。しかし、OS やそれ以上のレベルで初期化・再設定を行うとなると、数時間~十数時間程度の時間が必要になるため、頻繁に行うには現実的には無いかもしれません。ただし、定期的にクリーンな環境へと戻す必要はあるでしょう。定期的にクリーンな環境へと戻すことで、万が一セキュリティを突破されてシステムなどに感染した、検出できない不正プログラムなどを消去する狙いがあります。
しかし、別のテスト用のパソコンなどを用意するのは、いろいろとあって難しいという場合には、次の対策だけでもしておきましょう。
(4) 権限が制限されたユーザで操作を行う
任意のプログラムをファームウェアとして仕込まれたUSB機器が USB 機器として振る舞い、ユーザの操作を偽装するのであれば、ユーザであっても操作が行えない状態を作り上げる必要があります。Windows などの最近のパソコンであれば、同じ OS を使っていても、制限ユーザ(標準ユーザ)という形で、OS の管理者とは別のアカウントを作成することができます。
そして、基本的な作業はパソコンへの変更を制限した制限ユーザ(標準ユーザ)にて行います。
特に、通常の操作を行う制限ユーザ(標準ユーザ)とは別に、外部の USB 機器を操作するための制限ユーザ(標準ユーザ)を用意しておくと良いでしょう。
ここで大事なのは、他のユーザにログインするには認証が必要なように設定することと、その時に使用する認証手段として十分な強度を持たせる(十分な強度を持ったパスワードを設定するなど)ようにしておくことです。
キーボードの入力を偽装すれば、ユーザを切り替えることや管理者権限でプログラムを実行することすらたやすく行えてしまいます。
そのため、それを阻止するために容易に管理者としてプログラムを実行できないようにしておきます。
ただし、この (4) の方法では、USB 機器を普段のパソコンに接続してしまうため、セキュリティ上対策が万全とは言えないでしょう。
しかし、何もやらないよりかは、明らかにセキュリティ上の安全性は向上します。
まとめ
このように、とても便利なUSB機器ですが、便利な仕組みには、それを使って悪事を働くものが現れるものです。安全・快適に過ごせるように、USB関係のセキュリティ対策も十分に行っていきましょう。
コメントを投稿
コメント投稿機能について