情けなさ過ぎてちょっまじかよっ!?と思う事件があったので、ちょっと真面目に書いとかないといけない気分になっている。日本は法治国家として中世だの、情治国家と揶揄されるが、ほんと程度がひどくなっている。
自身が管理するWEBサイトに、Coinhiveなるマイニングツールを設置した複数のサイト運営者が、不正指令電磁的記録に関する罪(通称ウイルス作成罪)の容疑で16名ほどが相次いで摘発されているそうだ。もしかしたらまだ増えるかもしれない。
マイニングツールをアフェリエイト広告気分でサイトに埋め込むのには、個人的には反対だけれども、だからといって公権力が設置者の身柄を拘束するなんて何考えているのかわからないぐらいとんでもない話しだ。
警察や検察などの介入で国民の財産権や人権を制限する場合、厳密に法律に規定されていることで運用されるべきで、法に触れる可能性があるかもしれないというようなあやふやな態度でその行使をおこなうなんてことはあってはならない。罪刑法定主義の原則は厳に守られるべきだ。
法律と技術の観点でつらつら書く。
法そのものの制度疲労
日本の法体系は大陸法とよばれるやっていいことが書かれている許認可制度、ホワイトリスト方式だ。ひるがえって英米法では、やっちゃだめなことが書かれているブラックリスト方式。
どちらも一長一短があるのだが、日本の法体系の問題点をあげるなら、新しいことができないこと。
再生医療のような新しい技術が登場しても、それが法で規定されるまで時間がかかるし、いちど成立してしまった許認可発行権はそののち既得権益になってしまうので侵すことができなくなるのが難点だ。
まだ発明もされていない技術や発明を予見して法律で用意しておくことはできない。だから、どうしても技術がある程度普及し工業規格などができてから、今更なタイミングで法律が成立したりする。
法にかかれていないことはやっちゃダメというスタンスのもとだと、新しいことはたいていはやっちゃだめなことで、もしやったとしてもなにかしらの法律で絡め取って違法状態に据えることができる。例えば最近話題の民泊新法の前は、民泊は旅館業法に触れるとか、建築基準法だとか、消防法だとか、まあ、とにかくなんらかの角度でいろんな監督省庁からケチはつけられるのが今の日本。
民法の改正なんて120年ぶりなのだから、情報技術なんていう新しいポット出のジャンルに対応できるようになっているわけがない。あと240年ぐらいかかっても驚きやしないだろう。
世に言う岩盤規制
法に触れないでなにかをしようとした場合は前例踏襲的にならざるを得ない。法が通してくれた道の上を歩く時のみ我々は適法に存在することができる。ホワイトリストにつけられた但し書きは増える一方だ。リファクタリング(構造の再構築)もできなくなってお互いに矛盾したままデッドロックしたり循環参照しているような法律がいくつもあり、片方の法の規定どおりに運用すると別の法律に違反することになるような既存不適格に挟まれながら、生活や業務がまわされている。
論理的にはやっていいことの悉皆列挙なんてできやしない。だから、監督官庁の通達や裁判所の判例などが実質法として隙間を埋める。
ここで勘違いが生まれたのか「社会的コンセンサスがとれている状況ではないから」というような曖昧な不文律で家宅捜索や逮捕がおこなわれるようになってきた。こんなことは罪刑法定主義の原理原則に反する。逮捕が先にきて法律がついてくるのではなく、法律での規定が先だ。
順番を間違えちゃならねぇよ。
近代法治国家と言うのがもう恥ずかしいレベルのことが平気でおこなわれるのに恐怖を覚える。
逮捕と代用監獄
捜査官や担当検察官や判事も人間なので間違ってしまうことぐらいはあるだろう。だけれども刑事補償法が抑留・拘禁1日当たり1,000円以上12,500円以下っていうのは、大人に対する保証の額じゃないよね・・・。
桁が2つぐらい違うんじゃないかな。個人事業主がイレギュラーに一日とか拘束されたら一日10万の営業保証でも難しいでしょう。代用監獄なんてもっての他。ほんとなんとかしたほうがいいと思うよ。
不正指令電磁的記録に関する罪
今回の不法マイニングなるものがなんの法に触れるかというと、ウイルス作成罪になるのだそうな。閲覧者の意図しないプログラムの実行があったという理路だと考えられる。
1.人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録
2.前号に掲げるもののほか、同号の不正な指令を記述した電磁的記録その他の記録
ウェブサイトを表示させたいというユーザーの意図があり、それに対しマイニングの処理でユーザーのCPUを使うのは使用者の意図に反する動作ということなのだろう。だが、その建て付けでいくと、サイトを提供するにあたり経済的な合理からマイニングが必要なことであると於けば、サイト表示の処理の一環であることを否定するのは難しいんじゃなかろうか?
例えば同じようなものにWEB広告やそれらの広告を表示するためにcookieなどのセッション情報の取得や送信がおこなわれていたり、結果として動画や音声などが再生されたりする。youtubeの動画を見てて割り込まれる広告動画はユーザーの意図に反するもののはずだ。しかし、WEB広告は社会的にコンセンサスを得ているからオッケーで、マイニングはだめというのはただのダブルスタンダードでしかない。
Librahack事件再び
かつてLibrahack事件(岡崎市立中央図書館事件)では、しょぼすぎる公共図書館のシステムを便利に利用しようと比較的礼儀正しい自作クローラーを作成したところ、相手の市立図書館がシステムが想像を絶するしょぼさでぶっ壊れてしまったため逮捕にいたるというとても痛ましい事件が2010年ごろあった。
今回の事件はそれに相当するレベルのお粗末なお話しのようにみえる。プログラムの処理速度は常識的なものから過負荷をあたえるものにまで調整することができる。クラッシュなどを目的とした悪意があるものと、悪意はないけれども過失として過負荷をあたえてしまうものがあるが、負荷の度合いについてはそんなものは作成者や設定者のさじ加減次第でしかない。
略式起訴された人の報告ブログによれば、取り調べの過程で「反省しています」などと言わさせられたと書いているが、これは犯意を立証するのに必要な要件なのだろう。
マイニングは動画広告などと比較してCPUの使用量はどうなのか?そういう定量的な比較調査を抜きに今回のケースを判断するのはナンセンスだ。
サイト上に法定処理速度なるものがあって制限速度をオーバーしたのでスピード違反として取締りをしている感じ。でもそんな法律はないよね。だから、法律にのっとって取り締まってね。
法律にもないことで身体の自由を奪ったりしちゃだめだよ・・・。何やってるの!???
技術的な負荷の問題
パフォーマンス測定はおそらくそう遠くないうちにセキュリティ界隈なギークな子達がやってくれるだろうからおまかせするとして、もしかしたらと思ったのが、捜査などに入った技官のJavaScriptなどへの理解がECMAScript6以前で止まっているのかもしれないななどと思った。
2015年のECMAScript6、特に2017以降は非同期関数 (async/await)が実装されたわけだけれども、これのおかげでsleepとかDoEvents書き忘れた無限ループなプログラムのように、処理に制御をもっていかれっぱなしになることがなくなった。JavaScriptレベルが並列の非同期処理を書けるようになったことで、よっぽど下手な書き方をしないかぎり、負荷の度合いを下げ、かなり上品にかけるようになっているはずである。
非同期処理ができることを知らなくて、サイトの閲覧にマイニング用のJsなんか埋め込まれたらハングってしまうじゃないか!という技術判断がIE6ぐらいを使っている人が判断しているのだとしたらそれもまたいたし方ないことなのかもしれない。
ウイルスバスターを提供しているトレンドマイクロのセキュリティブログによれば、coinhiveをベースとしたお行儀の悪い亜種スクリプトも出回ってはいるようだ。だが、それでもその脅威カテゴリはグレイウェアでしかない。いったい、どんな捜査をしたんだろうか。うん。やっぱり本当によくわからない。
競合サイト潰すためとかに被害通報して、それに警察が釣られたのかな?
最近はマルチコアじゃないPCとかノートとかあまりないと思うので、サイトのJsで応答がなくなるほど制御がもっていかれるなんてことはまずないと思うけれども、先のしょぼすぎる問題のように担当者が10数年落ちのマシンとかを使わされていた場合、まあなんていうか重たくなったとか感じるかもしれないよね。
まあなんていうかだめだよね。まったくだめ。
まだ、資金決済法とか仮想通貨法に触れたとかのほうが、そうかもしれないなとか思うかもしれない。
追記
その後の報道のされ方などをみると、パソコンが遠隔操作され不正にマイニングされたとする報道があった。
オンラインゲームを有利に進められるよう改ざんしたプログラムの中に、仮想通貨を得られるソフトを組み込み
なるほど、説明に騙りがあった場合はマルウエアかもしれない。これが摘発されるのはわかる。
他方webサイトというのはユーザーがサーバー側にリクエストを投げて取得して、それをユーザー側のブラウザに持ってきて実行するものだ。そもそもが、クライアントサイドスクリプトと呼ばれるものなので、クライアント側で動くもので技術的に遠隔操作と呼ばれるたぐいのものではない。
ウイルスを潜伏して悪さをするという定義におけば、オプトインをとらないマイニングスクリプトは確かに視認できる状態になく暗黙的で許可を得ていない状態といえるのかもしれない。が、技術的にこれが潜伏して状態かというと、これはしていないと言える。
技術的にはそれを実行してくださいというリクエストを投げているのはユーザー側でそれを実行するのもユーザーなのである。無理強いされ送りつけられたわけでも、遠隔操作され実行されたわけでもない。
その応答をブラウザ任せにしているオートマだから気が付けないだけで、手動でやればマニュアルで蹴ったり、ルーターで予めそこへのアクセスを拒否しておくこともできる。実行前の段階で自分がリクエストをだすかはわかる状態にあり、実行にも自分の意思の介在余地があるわけだ。同意できなければそっとページを閉じればそれで関係も終わりになる。
広告ネットワーク経由でこれらを改ざんしたお行儀の悪いスクリプトを埋め込まれたり、サイト改ざんや、コメント欄でjsを実行できる状態だったりするだけでマネタイズができてしまうので、将来悪用されたり、この技術を利用し悪意を持った振る舞いをする人たちは多くでるだろう。マナーの問題もある。だが、それと自身の管理するサイトに設置するのとではまるで問題が別で、はたまたそれが逮捕要件になってしまうのは本当情けない限りである。
CPU使用状況をみてみる
人任せにしないでちょっと低スペなwindows10マシン(数年前のNEC製量販品ノートLaVie)でCPU使用率をみてみることにした。
@satoruさんのサイトでCPU50%でcoinhiveをぶんまわした図。javascriptでもCPUのアクセス率をスタックするまで食うことなく、設置者の任意の指定でそれを設置できることがわかる。問題はこの使用率がサイトを閲覧中はずっと続くことだが、お行儀よく実装するならオプトイン用の確認画面や、設置していることを明示するバナー。滞在時間でタイムアウトとかを設けたほうがいいかもしれない。
こちらはcoinhiveの件を報道する毎日新聞社のニュースページのCPU可動遷移率。(参考の欄にURL)
こちらは同じく朝日新聞(ログインしない状態で)の閲覧状況。(参考の欄にURL)
こちらはNHK。広告がないのでCPUはあまり使用していないことがわかる。(参考の欄にURL)
広告ベースで成り立っているサイトのCPUは新聞社のニュースサイトでさえこの程度のパワーを食っている。(アクセスごとにプレーンな環境で観測したわけではないので、スレッド数とかは積算。)通信帯域を考えれば動画や画像のほうが、故障率がどうこうと言うならばファイルI/O分ある分あがるだろう。一般的な動画広告が流れるようなページはもっとひどいが、まあ、サイト設置型マイニングスクリプトがお行儀がいいかといえば、滞在時間でCPUくいっぱなしになるのでお行儀がいいとは言えないが、なにがしかの不法要件を構成するとは私は考えられないことであるとおもう。
追ってみたところ世の中には明らかに違法だと認識する人も散見されたので、ぜひ踏み込んで所感をうかがってみたいところである。
参考
仮想通貨マイニング(Coinhive)で家宅捜索を受けた話
doocts.com/3403
Coinhive設置で家宅捜索受けたデザイナー、経緯をブログ公開 「他の人に同じ経験して欲しくない」
www.itmedia.co.jp/news/articles/1806/12/news078.html
コインハイブ採掘「そんなに悪い?」 サイト運営者憤る:朝日新聞デジタル
www.asahi.com/articles/ASL6H10SFL6GULZU012.html
仮想通貨獲得するための「マイニング」全国で摘発 議論呼ぶ
www3.nhk.or.jp/news/html/20180614/k10011478131000.html
違法マイニングで16人摘発 10県警、仮想通貨獲得で不正アクセス – 産経ニュース
www.sankei.com/affairs/news/180614/afr1806140035-n1.html
「何が違法なのか」=摘発デザイナーが反論会見―不正マイニング
headlines.yahoo.co.jp/hl?a=20180614-00000124-jij-soci
仮想通貨を採掘するツール(マイニングツール)に関する注意喚起
www.npa.go.jp/cyber/policy/180614.html
岡崎市立中央図書館事件
不正広告により、仮想通貨発掘ツールが拡散される
blog.trendmicro.co.jp/archives/16904
仮想通貨をマイニングする機能なし、ただCPU使用量がもりもり上がるだけのJavaScript公開中
internet.watch.impress.co.jp/docs/yajiuma/1127708.html
追記参考
仮想通貨マイニングツール事案をまとめてみたhttp://d.hatena.ne.jp/Kango/20180615/1529094423
懸念されていた濫用がついに始まった刑法19章の2「不正指令電磁的記録に関する罪」
序章 高木浩光@自宅の日記
takagi-hiromitsu.jp/diary/20180610.html
仮想通貨 マイニング初立件 「不正採掘」真っ向対立 警察「PC無断使用」/弁護側「合法」
mainichi.jp/articles/20180615/dde/001/040/057000c
他人のPCを遠隔操作し仮想通貨
www3.nhk.or.jp/tohoku-news/20180614/0001607.html
Coinhiveで支援しよう
それな。この話、法律家と技術者の考え方の違いが明確で面白いと思う。
anond.hatelabo.jp/20180615192108