野良ジニアのスクラップブック

野良エンジニアによる雑記帳。技術、本、便利グッズなどを気の向くままに。

仮想通貨取引所のセキュリティ分析をまとめて実行するスクリプト作った

こんにちわ、野良エンジニアです。

こちらのツイートを見て、取引所のセキュリティ分析を定期実行するスクリプト(GAS)を作りました。

Amazon プライムのメリット総まとめ
内村さまぁ~ず 第1〜50回から選ぶオススメ神回10選

ほぼ日Lisk バックナンバー!
初心者向け!Lisk を安く買う方法 徹底解説!
Lisk Hub の使い方 徹底解説
Lisk 買ったら Vote しよう!完全まとめ!
コイン相場 徹底解説!
仮想通貨ウェブフォント 導入方法!

一部表現を訂正

記事公開当初「脆弱性診断」と表現してましたが、「セキュリティ分析」が正しい表現でした。記事やアイキャッチは訂正済です。この訂正文を見かけた方は、周りの RT・イイネ してる方に伝えるためにも、下のツイートを拡散してもらえると幸いです。
※また、これはあくまでも Observatory の評価基準 に基づき機械的に判断した結果です。この結果が全てだと思わないようご注意ください。
僕の記事の書き方やツイートにも説明不足や誤解を招く表現がありました。その点は深くお詫びいたしますとともに、今後このようなことが無いように注意いたします。


作ったものについて

定期的にセキュリティ分析をやるスクリプトを作ったよ

mozilla のセキュリティ分析ツール Observatory毎日早朝4時〜5時ぐらいに実行するスクリプト(GAS)。実行結果をスプレッドシートに記録します。Cryptocoin Junkey(@cryptcoinjunkey)さんや、ロン (Long)(@CEO_loves_tech)さんの調査対象になかった取引所や交換所なども追加してます。

docs.google.com

2017/3/7 現在の結果はこんな感じ。取引所や分析結果ページにも飛べるようにしてるので、気になる方はスプレッドシートを開いてみてください。このスコア的には BITMEXKrakenAidosMarketbitFlyerChangellyPoloniexCryptopiabinanceCoinExchange…と続いています。

f:id:ryota-17:20180307090538p:plain


補足:分析内容について

このセキュリティ分析が全てではない。けど、無視していいってものでもない



Observatory について

想像以上に拡散されてるので、Observatory について記載されてるページを追記。

Mozillaは,Webサイトのセキュリティ分析ツールのObservatoryをローンチした。開発者とシステム管理者による,Webサイトのセキュリティ設定向上の支援を目指している。

使い方は簡単だ - WebサイトのURLを入力すれば,ツールが接続してHTTPヘッダを解析し,数値化されたスコアと調査結果を提供してくれる。サイトはさまざまなプロパティで確認され,問題の重要度に応じて,それぞれに負のスコア因子が課される仕組みだ。

2つ目のページでは、約18時間(実働時間は不明)で個人ブログのスコアをFからA+まで改善したようです。
※個人ブログだからできる話かも。取引所も同じ時間で同じ改善ができるってもんでもないはずなので注意。


解説ページから引用した通り「HTTPヘッダを解析して機械的にスコアを出すツール」の結果まとめです。このツールでチェックできない部分もあると思います。ツールの特性上、2FA や出金処理プロセスが自動か手作業かなどは見てないはずです。具体的な評価基準は こちら(英語)をご確認ください。


Cryptocoin Junkey(@cryptcoinjunkey)さんによるこちらの補足もぜひお読みください。専門用語や技術的な部分など、理解できない部分は読み飛ばしても良いので、途中で投げ出さずに一通り目を通すことをオススメします。

仮想通貨界隈に「サイバーインシデントが無くなるその日」がなかなか来ない遠因 (その1)
仮想通貨界隈に「サイバーインシデントが無くなるその日」がなかなか来ない遠因 (その2)
仮想通貨界隈に「サイバーインシデントが無くなるその日」がなかなか来ない遠因 (その3)
仮想通貨界隈に「サイバーインシデントが無くなるその日」がなかなか来ない遠因 (おまけ)



どうして作ったの?

冒頭に貼った 仮想通貨交換業者は無職業者BOTと今すぐ顧問契約を結ぶべきだというお話 とか 仮想通貨の有名取引所の脆弱性診断したらBitMEXが最強だった を読んで、次のようなことを思ったから。

  • 取引所のセキュリティ対策っぷりは気になる
  • けど毎回サイトに入力するの面倒くさい
  • スクリプトで自動実行して一気に見れると嬉しいよね


イマイチな点

  • スプレッドシートを開かないといけない
  • 改善/改悪 履歴が(スプレッドシート上では)分からない
  • 各項目ごとの結果は取得できてない
  • 突貫で作ったので色々とアレ


改造したいなーと思ってる点(やるとは言っていない

  • サマリや変わった箇所を整理してツイートさせたい
  • 各項目ごとの結果も取得したい
  • 改善/改悪 履歴を残したい
    • グラフ化


ここからは技術者さん向け

読んでも意味分からんって人は おまけまとめ にジャンプ!

ソースコード

普通にスクレイピングしても評価結果が取れない(JS で更新されてる)ので、PhantomJS Cloudを使ってます。無料で1日500回まで実行可能。

スプレッドシートのC列に診断用URLが記載してある前提。
※見えても嬉しくないので非表示にしてます。E列のリンク(https://observatory.mozilla.org/analyze.html?host=www.bitmex.com みたいなやつ)が書かれてます。


参考にしたページ


おまけ:色んなサイトの評価結果

適当にセキュリティ分析やりました。このチョイスに特に意味はないです。調べてみると、世界規模のサービスでも評価が低かったりします。単純に対応が困難(or 面倒)、サービスの特性から対応をあえてしてない、など様々な理由が考えられます。

Amazon

f:id:ryota-17:20180307074329p:plain

Rakuten

f:id:ryota-17:20180307074340p:plain

Facebook

f:id:ryota-17:20180307074349p:plain

Twitter

f:id:ryota-17:20180307074359p:plain

YouTube

f:id:ryota-17:20180307074422p:plain

ニコ動

f:id:ryota-17:20180307074431p:plain

はてなブログ

f:id:ryota-17:20180307074600p:plain

Valu

f:id:ryota-17:20180307074507p:plain

StackOverflow

f:id:ryota-17:20180307074523p:plain

Qiita

f:id:ryota-17:20180307074543p:plain

Teratail

f:id:ryota-17:20180307074537p:plain

ドットインストール

f:id:ryota-17:20180307074551p:plain

GitHub

f:id:ryota-17:20180307074606p:plain

Observatory

f:id:ryota-17:20180307074617p:plain


まとめ

このスプレッドシートで最新のセキュリティ分析結果が一括で見れます。ただし、これはあくまでも Observatory の評価基準 に基づき機械的に判断した結果です。この結果が全てだと思わないようご注意ください。
※僕の記事の書き方やツイートにも説明不足や誤解を招く表現がありました。その点は深くお詫びいたしますとともに、今後このようなことが無いように注意いたします。

docs.google.com

Amazon プライムのメリット総まとめ
内村さまぁ~ず 第1〜50回から選ぶオススメ神回10選

ほぼ日Lisk バックナンバー!
初心者向け!Lisk を安く買う方法 徹底解説!
Lisk Hub の使い方 徹底解説
Lisk 買ったら Vote しよう!完全まとめ!
コイン相場 徹底解説!
仮想通貨ウェブフォント 導入方法!