Coinhive騒動についてどのように考えるべきか

今回は社会的にも大きな話題になっているCoinhiveについて、自分なりの見解を分かりやすくまとめました。

Coinhive設置騒動とは何か

マイニングツール「Coinhive」を閲覧者の同意を得ずに設置したとして、全国の10県警によって不正指令電磁的記録供用容疑などで16人が摘発されているそうです。
この件については、下記のようなサイトで、大変分かりやすくまとめられています。


本件は、Twitter等のSNSでも大きな話題となっており、明らかに警察に反対するような意見が多いです。
前提として、僕の意見も今回の警察の対応は、「訳がわからず不当なもの」と考えています。

そもそもCoinhiveとは何か

Coinhiveとはなんなのかについて、一言で言えば、
「サイト閲覧者に仮想通貨をマイニングしてもらうことでサイト運営者が収益を得ることができるツール」です。
これは、Webサイト閲覧者によって運営者が利益を得ることができるため、Web広告と似た仕組みであると一般的に言われます。
私たちはWeb閲覧する際に、Webサイトにアクセスすると一般的に言いますが、
これは実は目的のWebサーバにあるファイルを取得し、Webブラウザ(Google Chromeなど)を使ってレンダリング処理を実施しているだけです。
その時にhtmlファイル、cssファイル、javaScriptファイルなどが実行され、Webブラウザ上に表示されています。
今このブログを見れているのも、ファイルを取得しそれを実行しているからです
Coinhiveはその中でもJavaScript(一般的にJS)ファイルと呼ばれるものであり、これはクライアント側つまりWeb閲覧者側で実行されるプログラミング言語です。
このJavaScriptファイルの用途は何かと言うと、ちょっとした動的な処理(この表現は語弊あるかも)を実施することです。
例えば、値チェック、広告(GoogleAdsenseなど)、アクセス解析(GoogleAnalysisなど)、ですね。
そして今このJavaScriptが使われていないWebサイトはほとんど存在しないといっていいでしょう。これは重要なので認識しておいてください。
Coinhiveにおいては、これがクライアント側でマイニング(ハッシュ計算処理)を実行するということであり、この挙動自体が不当で不正なものであるとは到底言えないということもポイントです。
ここが一般的なランサムウェア等のマルウェアとは大きく異なる点でしょう。
マイニングについてよく分からない方はググることを推奨します。
またCoinhive自体の導入は容易であり、導入したいWebページに規定のScriptタグを入れるだけです。(導入したことがないため詳しくは知りません。)
GoogleAdsenseやGoogleAnalysisも同様の方法で導入することができます。
僕の記憶では、Coinhiveは昨年から話題になっており、そもそもは視覚的に迷惑でない新たな広告といった考えで誕生しています。


しかし当初からこれはマルウェアではないか?といった意見も多くあり、
TrendMicroやSymantecなどが実際にマルウェアとして検知するようになりました。

Coinhiveの何が犯罪なのか

そんなCoinhiveを使用すると罪に問われるようです。なぜそのようなことが起こり得るのか考えてみます。
まず今回該当した罪は「不正指令電磁的記録に関する罪」と呼ばれるもので下記に該当します。
人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録
上記に掲げるもののほか、上記の不正な指令を記述した電磁的記録その他の記録
Coinhiveが上記の"意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令"に該当したのだと思われます。
ここで疑問が出てきます。
まず先ほど説明したようにCoinhiveが実行する処理はマイニング(ハッシュ計算)であるため、その挙動自体が悪性である一般的なランサムウェアなどのマルウェアと異なります。
つまり実際にCoinhiveを実行した場合に、どの処理が"意図に反する動作"となるのか不明なのです。


例えば、CoinhiveはWeb閲覧者のCPUを消費しハッシュ計算を実施することでマイニングを行います。そしてそれがWeb運営者の利益となる仕組みです。
それは一般的な広告であっても同様のことが言えます。
Web広告もWeb閲覧者のCPUを消費し、広告の表示を行います。そしてそれがWeb運営者の利益となります。
これの何が異なるのでしょうか。
これに対して警視庁は"明示的ではなく社会的コンセンサスがない"と主張しているそうです。
しかし例えばGoogle Analysis等のアクセス解析ツールも多くのWebサイトに導入されていますが、これもほとんどの場合で明示的ではないでしょう。
また社会的コンセンサスがあるかどうかも怪しいです。初めて単語を聞いた方も多いのでは、、、、

やはり逮捕はおかしい

つまりここでの"社会的コンセンサス"の有無自体はとても曖昧なものであり、その曖昧な単語を持ち出す以上は、現状どういったことに社会的なコンセンサスがあり、コンセンサスがないのか明示的に示すべきだと僕は思います。
そして明確に示し、事前にCoinhiveを明示的に示さずに使用することは犯罪であると注意喚起した上で、罪に問うべきではないでしょうか。
またCoinhive自体の挙動が悪性と主張するのであれば、実際にソースコードのどの部分が不正であるかを示して欲しいと思います。
合わせて"明示的"の定義についても教えていただきたいですね。

このブログの人気の投稿

OSINTによるセキュリティ情報調査(参考Webサイト)

Volumeに応じてトレードを実行するBTC-FX botソースコード公開

instagram(インスタグラム)が若者以外にも人気が出ているというお話