違法マイニングとされたcoinhiveの法と技術のはなし


情けなさ過ぎてちょっまじかよっ!?と思う事件があったので、ちょっと真面目に書いとかないといけない気分になっている。日本は法治国家として中世だの、情治国家と揶揄されるが、ほんと程度がひどくなっている。

自身が管理する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

 

岡崎市立中央図書館事件

ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6

 

不正広告により、仮想通貨発掘ツールが拡散される
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で支援しよう
coinhive.jp/

 

それな。この話、法律家と技術者の考え方の違いが明確で面白いと思う。

anond.hatelabo.jp/20180615192108


世の中の大半はプログラミングを理解できない人間ばかりだ


商店街みたいなオールドエコノミーの飲み会でうっかり「プログラミング言語」と言ったら、「FAXみたいにピーヒョロロロロってやつ?」と言われたことがある。冗談半分にだけれどもたぶん半分は真剣だ。世の中にはプログラミングを理解できない人間が存在するというが、そもそも世の趨勢はプログラミングどころか、コンピューターに系統指示をするなんてことに触れたことがない人のほうが是である。ギーク界隈は忘れがちだが、プログラミングがもつ論理構造が理解できない以前にその機会に触れられないない人達のほうが依然多い。

世の中にはプログラミングを理解できない人間が存在する
cpplover.blogspot.com/2018/05/blog-post_29.html
人間には、それらしくでっち上げられた偽物と、本質を理解した上で作られた本物を判別するのが難しい。一方コンピューターは違う。コンパイラーはソースコードがいかに本物のソースコードらしい見た目をしていようとも、文法違反のソースコードを判別できる。

就職適正試験を抜けプログラマーとして職を得るような人でも、採用後に真に適正があるとおもうような人は20人に一人もいないんじゃないのかなとのが体感だが、これは小学生が分数を理解できるかどうかで躓く「9歳の壁」に似たものがあるように感じる。抽象化という概念を獲得していないと、何をやりたいのかという要求定義できないし、仮説の設定ができないの機能設計に必要な共役化ができない。冗長なプログラムでも書ければまだましなほうで、そもそも、先のブログで指摘されるようにsyntaxの壁を越えられない。

 

「AI vs 教科書が読めない子どもたち」での調査でも話題になったが、文字は読めているけれども文意が拾えない子たちがかなりの割合で存在するそうだ。意思疎通のプロトコル変更に対応できる人類の割合は、さらに少ないだろう。「赤信号だったがいけると思った」という、重大な認知過誤をのぞけば、言語による意思疎通の齟齬をある程度は互いに許容しあって成立しているのが現代社会である。

 


cf.平成29年版 情報通信白書:情報通信機器の普及状況
www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/html/nc262110.html

日本のパソコン普及率は75%程度あるが、ごらんの通り日本は情報通信関係の教育においては圧倒的後進国であり、また、22歳以上の大学への入学率もOECD加盟諸国で最低である。つまり、一度大学などを卒業してしまうと、再教育を得る機会がないままに老人になっていく。新しい技術や技能を習得する機会がないのである。

 

今後、社会の制度設計などを担う現在40歳以上に、一体誰がプログラミングを教えるというのか。教師には強制的なファカルティ・ディベロップメントがあるかもしれないが、それ以外の人への教育は?

 

スマホの使い方がわからず、ドコモのサービスセンターに並ぶ老人はまだ向上心がある。しかし、同じような道具の進歩においてけぼりなっては、深刻なデジタルデバイドで社会全体が機能不全におちいることは目にみえる。

セキュリティや社会機能はそれを構成する要素の一番低いところが最低水面になる。厳重な鍵がいくつもついたドアの横に空けっぱなしの窓があれば、それがその家のセキュリティレベルだ。

人間の足の速さや頭の良さなどは、道具や機械をつかうことで、個体差など誤差の範囲にするほどに平準化できる。
弱視であってもメガネがあればいいし、デスクレシアであっても補助器具を使えばいい。
計算が遅くても電卓を使えばいいし、字が汚くても口述筆記や印刷ができれば機能は満たせる。

こうすると道具を使っても乗り越えられないものを障害し、介助を必要なものとも言い換えるこができるのではないか。

 

移動速度という観点かれみれば自転車や自動車や電車の前に、個人の足の速さや自走持久力はあまり関係がないが、なにがしかの理由があって乗り物を利用できない場合にはそれはが障害になる。

記憶力の多寡はネットにつながった端末が利用な人とそうでないの前では、足の速さのように生体機能を競う程度のものであろうが、これも、情報端末がそもそも利用できないのであればこれももはや障害だ。

 

生体機能などは成長や加齢、傷病によって変化する程度のものだ。道具の利用によって向上した機能は、その性能差によってその分布は分散を取るが、その分散に、道具を利用できない人たちの群があると、それはとても離れた二項分布になるだろう。

 

道具が機械になってそれが結果に寄与する影響が大きいほど、深刻な問題となる。どんなに片方がドリブンして先にすすんだところで、結局のところ社会の基準水面は低い方に合わさるのである。

 

公共情報網無き都市は、地上に如何なる文化施設を持つも、それはスラムである

三鷹市が公共下水道普及率100パーセントを達成したのは昭和48(1973)年。当時の市長、鈴木平三郎は公衆衛生を専門とする医学博士でもあり「公共下水道無き都市は、地上に如何なる文化施設を持つも、それはスラムである」として、受益者負担金制度や市政運営への企業性の導入など大胆な手法で、全国初の下水道完備都市を達成した。
www.city.mitaka.tokyo.jp/c_service/011/011729.html

これを現代風に言い換えるならば、「公共情報網無き都市は、地上に如何なる文化施設を持つも、それはスラムである」ともいうことができる。というか積極的に言っていきたい気分。

ちなみに、三鷹市は世界情報先進都市とか表彰されたそうだが公共施設でwifi利用可能なところは一個もない。なんたるちあ。

プログラミングは反復継続することを処理するのにはとても便利なものだ。

税務署上の定義で商売というのは反復継続するもののことを言うそうであるが、であるならば、プログラミングは経済にも大きく効いてくるはずなのだ。だが、そもそもプログラマー界隈以外でプログラミングの重要性を訴える人をなかなか目にしない。

そりゃそうだ。世の中はプログラムがなにものであるかを理解する機会もなく、ワードやエクセルを教えてくれだとか、ホームページをつくってくれだとかはまだ可愛いほうで、パソコン直してだとか、スマホの使い方がわからないだとかの、ちょっとパソコンに詳しい便利屋さんになってしまうのである。

 

でも、まあまずは隗より始めよ。ってことで、みなさん草の根でがんばりましょう。草が生えすぎて、草葉の陰になるまえに、なんとかなるといいねww


科学技術週間国立4研究施設の一般公開


JR中央線沿いの三鷹と京王線沿いの調布は電車などがつながっておらず南北の行き来が困難である。その交通の空白地とも揶揄されるエリアになかなかおもしろい研究施設などが集まっていて4月22日、科学技術週間の恒例行事として、海上技術安全研究所(NMRI)、交通安全環境研究所(NTSEL)、電子航法研究所(ENRI)、そして、宇宙航空研究開発機構(JAXA)の4研究施設の一般公開がおこなわれた。

このエリアは武蔵野台地のヘリとなっていて崖地となっている。そのため井の頭や深大寺のように掘らずとも自然と湧き水が出て綺麗な川が流れ出る地域である。青森についで日本で二番目に古い土器は井の頭公園でみつかったものだそうで、縄文時代には湧水が文化揺籃に重要だったことが推測できる。

湧水と緑豊かなのでわさび田などがいまだにあり、昔の人がここに国立の天文台を立てようと考えたぐらいには空がよくみえた山の稜線なのである。江戸期は一泊ぐらいでいける行楽地として、明治後期には別荘地として開拓され、その後、中島飛行機などの軍需工場として住民の流入が相次いだ。江戸の大火や、東京大空襲のときの疎開地として街が興った。

東京と八王子を結ぶといっておきながら三鷹と府中で終わっている東八道路は通称30メートル道路とも呼ばれ、比較的道幅が広くまっすぐな道路だ。真偽は定かではないのだが、一説によると、戦時緊急時に滑走路としても転用可能なように考慮されているとかなんだとか。本当のことはわからないけれども、多分転用はできるようにはなっている。

上記の4つの国立研究所はその30メートル道路沿いにある。滑走路をそこにつくるなら、駐機場にするにはこれくらいの土地は必要だってくらいバカ広い。

なぜ三鷹みたいな内陸に海の研究所や、宇宙の研究所があるんだよ!?と思うかもしれないけれども、おそらく戦中戦後、まだ人口密度が高くなかったころの名残だろう。現在、学園研究都市といえば、筑波だが、それくらいの郊外感覚で、電気通信大学や国際基督教大学、そして国立の研究所がたてられたんじゃないかなと推測する。全部推測だ。あはは。

 

毎年、商店街に科学技術週間のポスター貼ってと送られてくるので存在はしっていたのだが、今回始めて見に行ってきた。これはいいものだよ。うん。前置き長くなりまくってしまったけれども、写真でもアップしようとおもう。

 

海上技術安全研究所(NMRI)

この馬鹿長い建物は、長さ400m×幅18m×水深8mもある水槽がはいっている建物。いっそあと600m足して東京オリンピックのカヌー会場にしよう。

高校生時分水泳部だった自分らは、この近くの25mプールでせこせこ泳いでたので、一度でよいからこの400mプール泳いでみたかった。

 

波の発生装置とかがある。お魚ロボットとか。

極地の氷の上をどうやって進むかとか、氷が貼られているプールとかがあった。めちゃめちゃ暑い夏日だったが、圧扉のなかは寒い。宇宙よりも遠い場所だ。

 

交通安全環境研究所(NTSEL)

時速60キロ相当の風洞体験とか、交通シミュレーターとか。こちらも、鉄道運転体験装置とかあったのだけれども、子どもたちが写り込んでいるので、後ろ姿だけのこの写真だけ。

電子航法研究所(ENRI)

管制系とかシミュレーター系は子どもたちに大人気で、長いことならばいないといけなかったので残念ながら、駆け足にてちら見。

 

宇宙航空研究開発機構(JAXA)

宇宙より遠い場所から、宇宙へ。

みんな大好き。スパコン。

みんな大好き大きなタービン。

みんな大好きばかでか風洞。

まあ、他にも機体とかいろいろあったけれども、まあこんな所で。

 

あんま人がはいらないからか、よくわからない植生になっていて、雑草の一本から楽しかった。

背高泡立草の群生とか、やたら茎の細い酸葉(すぱんぽ)の群生とか、15cmも背丈がない菖蒲だかあやめだかあからない紫の花とか、で、この紫のこいつは何者だろう。あんま見かけたことがない気がするので、パシャリ。

 

 

まあ、そんなわけでみんなも来年はいけばいいとおもうよ!