キモブロ

Please spy check please, Fucking retard

Dropboxで自作の実行ファイルを公開すべきでない理由とその対策について思考メモ

さていろいろ勉強して理解出来てきたので、改めてdropboxで実行ファイルを公開すべきでない理由について考えてみた。しかし対策はある。

Dropboxについて考える

  • SSLで通信系路上での改ざんはないことは保障されている
  • しかし誰がアップロードしたのかユーザーにはわかりにくい。
  • サーバー上のファイルが本当にアップロード者の設置したものかどうかわからない。攻撃者のアカウントでアップロードされたファイルかもしれない。
  • なぜか。それはURLから得られる情報が少なすぎるから (URLの数値はユーザーID? で、そのユーザーIDから何がわかるの? )

実際のシナリオを考える

httpsで保護されているTwitter上のツイートでdropboxのURLを公開した場合を考える。

  • twitterのツイートはhttpsでないいろんなところに貼付けられる可能性がある。そこが書き換えられていたら悪意ある攻撃者にdropboxのURL自体を改ざんされる可能性がある。

(※まぁそんな状況だったらそもそもそのサイトで悪意あるファイルをダウンロードさせられちゃうと思うけどね)

2chdropboxのURLを公開した場合を考える
以下の二点で危険

  • 2chはhttpであるということなので経路上に置ける改ざんが可能 (dropboxへのリンク書き換え)
  • 誰が書き込みしたかそもそもわからない (トリップがあれば別)

後者はトリップによって安全性はある程度確保出来そうだけど前f者がある時点でそれがあったとしてもまったく意味がない。危険であると言える.

じゃあどうすりゃいいか

  • 実行ファイルを公開するのではなく、PGP電子署名付きの実行ファイルを作成する
    • 電子署名ファイルと実行ファイルを分けてdropbox上にアップロードすると、ユーザーは電子署名ファイルの存在に気づかずに検証をせずに実行してしまう可能性が高いから1つのファイルにする

やり方

gpgコマンドを使う場合

$ echo "help me" > ./test.txt

$ gpg -s ./test.txt
# 秘密鍵で暗号化する。普通はパスフレーズ聞かれる。test.txt.gpg が生成される

$ rm ./test.txt
# オリジナルファイルいらないので消す

$ gpg ./test.txt.gpg
# 公開鍵で複合化する

$ cat test.txt
help me

このtest.txt.gpgをdropboxにアップロードし、公開鍵を安全な場所に公開すれば良い。