web-dev-qa-db-ja.com

USBメモリスティックの内容を安全に検査する方法はありますか?

USBメモリが横になっているのを見つけて、その正当な所有者を見つけるためにその内容を調べたいとしましょう。 USBスティック 実際には大容量記憶装置よりも完全に悪質なものである可能性があります を考えると、安全にこれを行う方法はありますか?電気絶縁「コンドーム」は可能ですか? Linux/Windows/OS XでUSBドライバーを手動でロードして、デバイスがUSB大容量ストレージ以外のものとして扱われないようにする方法はありますか?

結局のところ、すべての恐怖を煽ることにもかかわらず、誤って配置されたメモリスティックのように見えるものが実際には単なるメモリスティックである可能性が圧倒的に高いのです。

追加質問:この種の攻撃を防ぐために、写真印刷キオスクはどのような対策をとっていますか?

124
200_success

この問題への興味深いアプローチの1つは CIRClean で、これは LWNの記事 でも説明されています。

信頼できないUSB大容量ストレージと信頼できる空のUSB大容量ストレージを接続する必要があるRaspberry Pi(過電圧やその他の電気的攻撃に直面した場合はかなり使い捨てになっていると思われます)を使用します。他のデバイスは接続されていません。ネットワーク、またはキーボード/マウス/モニターに接続されていません。また、書き込み可能な永続的なストレージや感染するBIOSはありません(そして、本当にパラノイアは、必要に応じて、使用する前にブートSDカードを再フラッシュできます)。

電源を入れると、ファイルが1つから別のファイルに転送され、既知のマルウェアベクトルの自動スクラブが実行されます(例:PDFまたはMSOfficeファイルをより安全なHTMLに変換します)。プロセスが完了し、システムの電源を切ると、信頼できるストレージに元のファイルシステムのややサニタイズされたバージョンが残り、ユーザーのワークステーションに転送できる状態になります。

CIRCleanの使用を計画している場合は、現在の不具合がないか問題トラッカーを確認することをお勧めします。LWNの記事(2014年12月)には、BadUSBキーボード攻撃に対する保護がなかったことが記載されています。それがまだ当てはまるかどうか、私は決定していません。 Gitリポジトリーのカーネル構成ファイルを見ると、確かにそれ以上ロックされる可能性があるように見えます(Magic Sysrq、誰か?)。おそらく、完成した製品ではなく、プロジェクトに参加することになるでしょう。

11
Toby Speight

次のように、ネットワーク接続なしでモデルA/A +のRaspberry Piを使用します。

  • それ(またはむしろLinux)は、USBスティック上のほとんどのタイプのファイルシステムを読み取ることができます。
  • 唯一の不揮発性ストレージはSDカードで、後で再フォーマット(または偏執狂の場合は破棄)できます。
  • USBスティックが電気的に悪意のあるものであることが判明した場合、20ドルのハードウェアしか失われていません。
  • それは非x86プラットフォームでやや主流ではないOSを実行するため、一般的なWindowsマルウェアに対して脆弱である可能性が低くなります。

これでも、見つけたファイルをどうするかという問題が残ります。それらを他のマシンにコピーすると、明らかにそのマシンが危険にさらされることになります。

100%安全なものはありません。ジェームズミッケンスに勝るとも劣らない。「あなたの敵がモサドなら、あなたはゴンナDIEであり、それについてあなたができることは何もない」.

78
Ian H

光絶縁ハブを介して接続した場合、USBキラーはPCを殺しません。それらは存在しますが(検索:「オプトアイソレートUSBハブ」)、私は自分で使用したことがないので、特定のモデルを推奨するつもりはありません。安くはありません。次に例を示します。

usb hub

ハードウェアの側面に対処すると、より一般的な問題に陥ります。あなたはおそらくすでに他の回答でより専門的なアドバイスを得ていますが、私の見方は、PCのハードドライブ(およびその他すべての書き込み可能なストレージ)を取り外し、ライブCDまたはライブUSBスティック(自動ではないもの)から起動することです-もちろんUSBスティックの内容を実行します)。それは、私が始めているところに与えられた努力の最大のリターンだからです。これを習慣にして、ライブCDでもハードウェアの自動マウントや自動インストールを行わないようにしたり、マシンをネットワークから切り離したりするのが賢明でしょう。容疑者のスティックを所定の位置に置いてブートすることも、ブート可能な場合は悪い考えですが、プラグインした直後にイベントログにアクセスしたい場合もあります。

49
Chris H

スティックを物理的に変更して最大の美味しさを与えることができると想定する場合、「メモリースティック」と呼ばれるものがコンピューターに挿入されたときに炭疽菌の胞子または酸化プルトニウムの雲を噴出する可能性を考慮する必要があります。あなたの質問への答えは次のようになります:メモリスティックの内容を調べる安全な方法はありません(別の建物でそれを行うだれかの部下にタスクを委任できない限り)。


逆に、攻撃者がそうではないと想定した場合は、本質的に任意の「淫乱のしきい値」を暗黙的に使用しています。生の物理的破壊的影響(ホストコンピュータの電子機器を揚げる試みを含む)を除外する場合、悪意のあるメモリスティックが挿入されたマシンに害を及ぼす可能性のある方法は主に5つあります。

  • メモリスティックは、USBコントローラーハードウェアの脆弱性を悪用しようとする可能性があります。そのコントローラーは独自のファームウェアを備えたチップであり、コンピューターのメインデータレーンにも接続されているため、悪用可能なホールが理論的に存在する可能性があります。これは、コントローラーとそのファームウェアのバージョンに非常に固有であり、そのような穴が実際に存在することは知りません。

  • メモリスティックは、USBダイアログを処理するオペレーティングシステムコードの脆弱性を悪用しようとする可能性があります。これは基本的に PlayStation Jailbreak が行っていたことです。デバイスはUSBレベルで、いくつかのデバイスであり、その1つがUSBデバイスを検出して列挙するOSコードでバッファオーバーフローをトリガーしたわずかに仕様外のメッセージを送信します。

  • メモリスティックは、実際にはメモリスティックではなく、別の種類のデバイスである可能性があります。たとえば、OSの観点から見ると、スティックはキーボードである可能性があり、スティックを挿入すると、何かをタイプし始める可能性があります。 これは実際に発生します。

  • メモリスティックは、ファイルシステムのOSコードの脆弱性を悪用するファイルシステムを備えた、実際のメモリスティックである可能性があります。直接的なバッファオーバーフローとは別に、たとえば自動実行機能にも問題が発生する可能性があります(既存の悪意のないメモリスティックの多くも、仮想CD-ROMドライブを正確にエミュレートして、運動しようとすることは注目に値しますこのような自動実行)。バリアントは、画像レンダリングライブラリの穴を悪用するスティックを含むスティックです(ディレクトリとファイルをグラフィカルに探索して「サムネイル」を表示しようとすると、ホストコンピューターによって呼び出されます)。

  • 最後に重要なことですが、人間のオペレーターが関与しているため、攻撃の可能性が広がります。多くの攻撃は、人間の騙しやすさの底のない井戸を単に利用しています。スティックの内容により、人間のオペレータは無害な実行可能ファイルのように見えるものを不注意に起動するように誘導される可能性があります。または、さらに悪いことに、スティックには不快な性質の文書が含まれている可能性があり(一部は目に見えないこともあります)、それでも「損傷」と見なされます。

スティックの「安全な探索」のための最善の策は、コードの品質に関して高い評価を得ているオペレーティングシステムを備えた基本的なPCを使用し、セキュリティパッチを適用して最新の状態にし、重要なことに、プラグインを最小限に抑えることです。 and-playのサポート。理想的には、しないOSは、新しく挿入されたUSBデバイスで自動的に何かを実行しようとします(つまり、まさにWindowsのような最新のOSであるOS、OS XまたはLinuxはそうではありません)。私は OpenBSD または NetBSD で始めることをお勧めします。これは、USB関連の魔法を無効にするようにカスタマイズされています。珍しいソフトウェアと珍しいハードウェアを使用すると、低グレードの大規模な攻撃者が古いPowerPCベースのMacで実行されているNetBSDシステムなどのエクスプロイトを書く気にならないため、小さな追加の保護も提供されます。

35
Tom Leek

すべての場合において、100%感染を防ぐことができる完全にサンドボックス化されたシステム(ハードウェア/電気、ソフトウェア)は存在しないことに注意してください。

一方、あなたの状況は、あなたが誰で、どこで見つけたのかによります。

有資格の労働者であるとしましょう。たとえば、自動車会社で、職場の横または居住地の横(ターゲットになっている)の横にスティックを見つけた場合、そのUSBスティックを破壊するのが最善の方法です。問題は、見つかったUSBスティックにファームウェアが埋め込まれたマルウェアが含まれているかどうかを事前に知る方法がないためです。この場合、何も役に立たないようです( 「BadUSB」マルウェアは検出されず、修正不能のままです )。そのようなマルウェアは、BIOSの感染につながる可能性があり、これは(不可能ではないにしても)取り除くのが非常に困難な場合があります。

あなたがX氏またはY氏であり、USBスティックがランダムな公共の場所で見つかった場合、USKスティックが(目的であるかどうかにかかわらず)感染していても、マルウェアはそれほど劇的ではない可能性があり、その場合Linux Live-CDを使用してコンピューターを起動し、USBの内容を起動して確認することは、合理的な措置である可能性があります。

19
user45139

上記の電気的側面はカバーされていましたが、多くはBIOSに感染するマルウェアに関係しています。それでは、BIOSがなく、スティック上で何も実行しないマシンにプラグインします。SPARC machineを使用します。eBayのSunfire V100マシンは50〜60ドルです。不確実な状況では、いわゆる「販売店が改造したもの」は200ドル未満です。USBを搭載していた古い、したがってさらに安価なものがあった可能性があります。覚えていないだけです。V100には確実にUSBポートがあります。3文字の場合、代理店は、SPARCを使用していることを認識しています。SPARC$ ===彼らはUSBスティックで何か厄介なことをすることができますが、方法について独自の調査を行う必要があるため、非常にコストのかかる攻撃になります。これが SolarisでのUSBスティックのマウントに関するOracleの公式ページ です。

このフォーラムのトピックでは、 SBをUltra 5/10に追加する について話していますが、それを気にしたいのですが、Sunfire V100よりはるかに安いとは思えません。

11
chx

OPは、 SBキラー デバイスによるリスクのため、電気的絶縁について言及しています。

報告によると、デバイスはUSBポートから電力を引き出し、負の電圧が得られるまでコンバーターを使用して動作します。その後、電源はコンピューターに戻され、マシンの回路が機能するまでプロセスがループします。

残念ながら、この攻撃から身を守る方法はありません。独自のカスタマイズされたUSBポートを構築しない限り、電気回路が関係しているためですが、veryのようですありそうもない。

最近の最も一般的な攻撃の方法は、USBドライブを挿入したときにWindowsウイルスが自動実行されることです。したがって、LinuxマシンのUSBドライブの内容を調べることは比較的安全だと思います。理論的には安全ではありませんが、実際には、誰かがあなたやあなたの会社をターゲットにしていない限り、それほど危険を冒すことはありません(ランダムな通りにあるUSBドライブとあなたの会社の駐車場にあるUSBドライブには違いがあります) )。

8
dr_

技術的にLinuxでは、udevを停止して、usb-storageを除くすべてのUSB関連のカーネルモジュールをアンロードするのは非常に簡単です。ただし、2つの実際的な問題があります。

  1. ストックカーネルにはhidモジュールが組み込まれている場合があるため、カーネルを再コンパイルしてロード可能にする必要があります。

  2. hidモジュールをアンロードすると、正規のUSBキーボードとマウスも機能しなくなります。古いPS/2キーボードを見つけるか、タッチパッド/タッチスクリーンで仮想キーボードを使用します(USBでない場合にのみ機能します)。

4

tl; dr:「バーナー」PCやUSBスティックを読み取るために一度使用するデバイスを使用するなど、根本的なことを行うと、 (ほとんど)スティックの内容を完全に防弾する方法。しかし、調査中に実際にそのような極端に行くことはやりすぎであり、少しばかげています。そうでないところを除いて。


信じられないかもしれませんが、そのようなUSBスティックを調べるには、ほぼ間違いなく方法があります。ステップバイステップ:

  1. 超古く、超安く、まだ機能しているノートパソコン/ネットブックをインターネットで見つけて購入します。 (フルサイズのUSBポートを持つのに十分な大きさで、そのUSBポートで外部ストレージを使用できるOSを備えたタブレットも機能します。)

    • 代替#1:ただし、USBスティックに感染する可能性がないことにも本当に関心がある場合は、以前に所有していたセキュリティ履歴が不明なデバイスに差し込むことで、同様に対処できます。たとえば、フルUSBポートを備えた60ドルから70ドルのような新しいWindowsタブレット。 (Newegg、Amazon、eBayなど、Dealnewsなどのサイトで見つけるのは難しくありません。)最も安価な商品のハードウェアがあります。

    • 代替案#2:少しの現金を節約したいが、古い、安っぽい、または古くて安っぽいデバイスを既に持っている場合は、そのUSBスティックの内容を確認する目的で犠牲にして喜んで、代わりにそのルートに行くことができます。ただし、明らかに、そうする前に、あらゆる種類の個人(または専門家のデータ)が絶対に、確実に残っていないことを確認する必要があります。クラシックハードドライブを搭載したPCでは、ランダムなデータでディスク上のすべての領域を何度も上書きするブートプログラムでそれをワイプし、必要なOSを再インストールすることで、それを達成できる可能性が非常に高くなります。多分。一方、デバイスを使用する場合 ソリッドステートストレージ ....

  2. デバイスが入っているパッケージが届いたら、それを手に入れて、犠牲にしても差し支えない適切な充電ケーブルを手に入れて(理由はすぐにわかります)、電源プラグがある場所に移動しますが、(a)ワイヤレスではありません。ネットワークの可用性、または(b)以前に接続したことがあり、将来的に接続する可能性のあるワイヤレスネットワークが少なくともないこと。 (町の反対側にあるパネラまたはスターバックスは、通常の方法とはかけ離れています。) USBスティック上に存在する超超高度なNSAレベルのマルウェアがデバイスに感染し、無線を使用して周囲のWi-Fi、Bluetoothなどのネットワークに違反しようとするという架空のケースを説明します。パラノイアボーナス:ワイヤレス接続が可能な他のすべての電子機器も自宅に置いておきます。 (はい、あなたのスマートフォンを含みます。私は離れることが難しいことを知っていますが、これは一度だけです。)

  3. 場所に到着したら、開梱して新しいデバイスを接続します。少し充電されるのを待ちます。

  4. デバイスの電源を入れ、起動するのを待ち、疑わしいUSBドライブをプラグインします。その上にあるもの、ファイル構造、好きな特性を見てください。公共のwifiがある場所にいる場合は、インターネットからいくつかのツールを接続して取得し(古いジャンクがインストールして実行する場合)、詳しく調べます。 文字通りデバイスで何もしません。

  5. 好奇心が満たされたら、デバイスと充電器を手に取り、近くのどこかのフィールドに行って、素敵な最後の見送りをします Officespaceからそのシーンを再現することによって 。 (アラート:おそらくNSFW言語での自動再生YouTube vid。まあ。)

  6. USBスティックとその中のデータを使用して、決定したことをすべて実行します。

(大丈夫です。無駄になったり、環境に無責任だったりしないことを誇りに思うなら、「焼けた」デバイス/ PCを楽しい方法で破壊するのではなく、リサイクルしたり、慈善団体に寄付したり、売りに出してください。後者の2つのルートのどちらかを使用する場合、デバイスを取り除く理由を受信側に正確に伝える必要がありますか?さて、多分それを別の日にサイバーモラルの質問としましょう。)

終わり。

さて、さて、私は少し面白くしています。しかし、多少だけ。セキュリティリスクが(ほぼ)ゼロのUSBデバイスの調査について話している場合、実際の唯一の選択肢は、(a)自分の機密情報がまったく含まれていないシステムに接続することです(b)喜んでUSBが電気的に悪意のあるアイテムであることが判明した場合に犠牲にするため(c)そのセキュリティに何らかの種類の信頼を置く必要のある目的で二度と使用しないこと、および(d)物理的に接続できないことネットワークまたはその他のデバイスを使用して、疑わしいUSBドライブから取得する可能性のあるマルウェア感染を拡散します。 (または、それらのデバイスやネットワークに存在する可能性のある機密情報を探すため。)

つまり、「バーナー」コンピュータが最善の策です。あなたが本当に、本当に、本当に、ほぼ*完璧な安全性/セキュリティでドライブを調べたいのであれば、それはです。

ここで、USBスティックを「実用的な考慮事項を考慮して、十分に可能性が高い」程度の安全性/セキュリティで検査することについて話している場合、@ Chris Hの上記の提案は適切です。デスクトップPCまたはラップトップマシン(プロのツールなしで実際に開いたりサービスしたりできること)、ストレージドライブを取り出し、好みのライブCD/USB OSフレーバーから起動して、疑わしい/興味をそそるUSBスティックを差し込みます。 USBスティックにプラグインしてマシンのBIOS/UEFIをフラッシュしたり、ビデオカード、ネットワークカード、ネットワークカードなどに含まれている他の書き込み可能なファームウェアをフラッシュしたりすると実行できる高度なマルウェアがUSBに含まれる可能性はまだありますか? USBコントローラーなど?はい。 (現在のところ、BIOS/UEFI攻撃以外のすべてのものは一般に非常にまれです。さらに、BIOSまたはUEFIマルウェアでさえ、ターゲットマシンで使用されるメーカー/バージョンの実装用に特別に作成する必要があります。) USBメモリスティックは、実際にはマザーボードを電気的に揚げるUSBキラーですか?ええと...理論的にはそうです。しかし、これらのいずれかが真である確率(特にUSBキラーの確率)は非常に有利です。質問で述べた良い点を言い換えると、ほとんどの場合、普通のUSBスティックは単なる普通のUSBスティックです。

あなた、あなたの雇用者、あなたが所属している別のエンティティでは、高度な攻撃者は非常に価値の高いターゲットと見なすことができます。その後、すべての賭けはオフです。そして、その場合、上記のような複雑な安全よりも上の方法が実際に適切な唯一の方法かもしれません。

*もちろん、「完全な」セキュリティなどというものはありません。しかし、「ほぼ完全な」セキュリティは、ここでの目的にとって十分に近いものです。

4
mostlyinformed

他の回答は悪意のあるフラッシュドライブをカバーしています。リンクされた回答で言及されているUSBキラーについてお話します。 (編集-私がこれを入力し始めたときに彼らはしました)

仮想マシンはこれらの問題を解決することはできません。それでも、電源が入り、接続されているものは何でも揚げようとします。私の知る限り、3つのオプションがあります。

  1. ドライブを開けて、それが合法に見えるか、または大きなコンデンサーの負荷で覆われているかどうかを確認します。
  2. それを古いマシンやrPiなどに差し込みます(揚げてもかまわないもの)
  3. 逆電圧が高い、まともなダイオードをいくつか組み込んだUSB拡張機能を構築します。

何をするかは、ドライブをどこで見つけ、どれだけ好奇心が強いかに依存します。個人的には、外部の仕事を見つけてそれを絶対にチェックしなければならない場合は、rPiに接続します。路上で見つけたら、そこにあります。

3
Jay

いわゆる「コンドーム」として機能する仮想マシンを作成できます。人気のあるハイパーバイザーには、 VMware PlayerVirtual Box があります。 VMがクラッシュした場合は、新しいVMを作成して再試行するだけです。あなたはそれらを作るためにウェブ上でISOファイルを見つけることができます。使用するハイパーバイザーに応じて、ウォークスルーが必要な場合は、いくつかのチュートリアルをググってみてください。

Linuxマシンを使用している場合は、ディスクを読み取り専用にすることができます。これは、使用しているものによってはより簡単になる場合があります。ターミナルでdiskutilを使用してこれを行うことができます。

経路に応じて、コメントするだけです。この回答を編集することで、さらに詳しく説明できます。これによりいくつかのアイデアが得られ、目標に近づくことを願っています。

1
Vandal