Latest evidence-based health information
Vision

研究者がJavaScriptを使ってボットネットを利用した分散ファイルストレージシステムを構築

研究者がJavaScriptを使ってボットネットを利用した分散ファイルストレージシステムを構築
研究者がJavaScriptを使ってボットネットを利用した分散ファイルストレージシステムを構築

最新のウェブ技術を使えば、ユーザーに知られることなくJavaScriptコードをユーザーのウェブブラウザにロードすることで、安全な分散ファイルストレージシステムを構築できる。これを、日曜日にラスベガスで開催されたセキュリティカンファレンス「Defcon」で研究者が実演した。

このボットネット型システムは「HiveMind」と呼ばれ、侵入テスト会社 FusionX の主席セキュリティコンサルタントである Sean T. Malone 氏によって構築されました。

HiveMind は、正規の Web アプリケーションでも使用されている HTML5 WebSocket や Web Storage などのテクノロジーを使用します。

グレーゾーン

マローン氏は、悪意のあるエクスプロイトは使用されていないため、パッチを当てて防ぐことはできないと述べた。しかし、他人のブラウザにJavaScriptコードを読み込ませ、そのコンピュータにデータを保存することでボットネットを構築することは、法的にグレーゾーンに該当すると同氏は述べた。

「これは研究プロジェクトであり、製品版ソフトウェアではありません」と彼は述べた。「私は弁護士ではないので、この件に関して法的助言を与えるつもりはありません」と彼は言い、今週後半にリリース予定のソフトウェアをどう扱うかは各自の責任だと付け加えた。

HiveMind JavaScript コードは、正当な Web サイトまたは侵害された Web サイトで JavaScript コードをホストしたり、複数の Web サイトにコードを配置する広告ネットワークを通じてコードを配布するなど、いくつかの方法でブラウザーに配布される可能性があります。

ジャワ

マローン氏は研究のために匿名のウェブプロキシサーバーを構築しました。このサーバーは後にプロキシリストに追加され、人々に利用されるようになりました。誰かがこのプロキシサーバーを使ってウェブページを閲覧するたびに、サーバーはHiveMindのJavaScriptコードをそのページに挿入しました。

研究者によれば、彼のプロキシ サーバーは 10 分ごとに 20,000 個の固有のインターネット プロトコル (IP) アドレスからの接続を受けており、それがボットネットのノードになったという。

HiveMind には、SQL データベースを使用して、すべてのファイルとそれらが分散されているノード (JavaScript コードを実行するブラウザー) の記録を保持するコマンド アンド コントロール (C&C) サーバーがあります。

ファイルがサーバーにアップロードされると、アップロード者が指定したパスワードを使用して、Advanced Encryption Standard(AES)で暗号化されます。暗号化されたファイルは複数のブロックに分割され、複数のノードに分散されます。

マローン氏によると、ファイルごとに異なるパスワードを設定できるという。

ボットネットは非常に動的であり、ユーザーがブラウザを閉じるとノードが絶えず消えるため、冗長性を実現するためにすべてのファイル ブロックが複数のノードに分散されます。

ノードは自身の存在と保有するブロックのリストを常にサーバーに通知します。そのため、特定のブロックを格納しているノードの数が一定のしきい値を下回った場合、そのブロックを新しいノードに再配布できます。

ファイルがアップロードされ、暗号化され、ノードに配布されると、サーバー上には保存されなくなります。ファイルの再構築に必要なため、異なるブロックを含むノードの記録のみが保存されます、とマローン氏は述べています。

広がる泡立ちシステム

マローン氏によると、政府機関がサーバーを押収して持ち去った場合、ノードがオフラインになりブロック複製プロセスが失敗し、ファイルが復元不可能になるという。データを復元する方法はいくつかあるが、非常に困難で、多数のノードを押収するか、サーバーがオンライン状態のまま侵入し、所有者にファイルの復号に必要なパスワードを強要する必要がある。

所有者に「もっともらしい否認」を提供する方法は存在し、それはランダムなデータを含むダミーファイルを最初にサーバーに大量に投入することを伴うが、この機能はまだシステムに組み込まれていないとマローン氏は述べた。

ユーザーは、システムを作成したが、ダミーファイルと一緒に実際のファイルもアップロードしたにもかかわらず、実際のデータをシステムに入力していないと主張することができます。

ダミーファイル内のランダムデータは暗号化されたファイル内のランダムデータと同じように見えるため、ファイルを復元する際に、ユーザーが入力したパスワードが正しくてダミーが復号化されたのか、それともパスワードが間違っていたのかを判別する方法はない、と研究者は述べた。

この方法では、ユーザーは本物だとわかっているファイルに対して間違ったパスワードを入力することができ、相手側はパスワードが正しいか間違っているかを証明する方法がなくなります。

このようなボットネットを構築することの合法性は疑問視されているが、このシステムは、ユーザーが自らブラウザを提供し、システムにファイルをアップロードできる共同作業として構築することもできるとマローン氏は述べた。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.