Coinhive,不正指令電磁的記録罪

ずっと注目していたCoinhive事件、12月9日に最高裁第1小法廷で上告審弁論が開かれた。

「技術開発を萎縮させる」「無断利用は明らかに違法」 Coinhive事件上告審弁論 – ITmedia NEWS
https://www.itmedia.co.jp/news/articles/2112/10/news067.html

Coinhiveとは何か、Coinhive事件とは何か、まずおさらいしておこう。
まず、Webサイトの運営者がCoinhiveをWebページに埋め込む。そのWebページを訪問した閲覧者のPCで暗号資産(仮想通貨)のマイニング(採掘)が行われ、運営者がマイニングの利益の7割を受け取ることができる、というものであった。現在はすでにCoinhiveのサービスは終了している。

広告を表示させることなく、Webページが閲覧されることで利益が発生するということで、Coinhiveに注目していた人もいた。そして、Coinhiveを設置していた21人が全国の警察に検挙されたのが、Coinhive事件である。

この事件での罪名は、不正指令電磁的記録に関する罪(刑法168条の2および168条の3)。

検挙されたうちの一人のWebデザイナーの男性が裁判を受けている。男性は、2018年3月に横浜簡易裁判所で罰金10万円の略式命令を受け、これを不服として異議を申し立てる刑事裁判を起こした。2019年3月、横浜地方裁判所で無罪判決が言い渡された。しかし、横浜地方検察庁が判決を不服として東京高等裁判所に控訴。東京高等裁判所では罰金10万円の逆転有罪判決。男性が上告、という流れだ。

弁論の内容に関する記事やツイートを読んで、感じたことを以下に挙げる。

検察「常識でわかりませんか?」
→常識で判断すれば、法律は要らなくなるんじゃない?

検察「自分が利益を得るために他人のPCを無断利用する行為が違法なのは、常識に照らし明らかだ」
→PCは、どんな処理でも電力を利用する。興味もない広告を表示するのにも電力を使う。検察側の言い分によれば、表示させることで利益を得ている広告も違法、ということになるんじゃないか?

検察「たとえ被告人が社会のためになるような情報を発信するWebサイトを運営していたとしても、社会のために他人の家を勝手に使っていいわけがない」
→Webサイトを表示させるのに電力を使うけど?この言い分によれば、Webサイトは全てアウトということになると思うが?

検察「マイニングは社会問題である」
→本件とは関係のない話だよね?

検察「coinhiveはcryptojacking(クリプトジャッキング)と言われ世界各国で問題になっている」
→cryptojackingは、「他人のWebサイトを不正に改竄して、マイニングツールを埋め込む行為」というのが正確な定義だと思う。今回の事件は、自分でマイニングツールを設置しているよね?
あらゆるサイトでcryptojackingの説明がされているが、「他人のWebサイトを不正に改竄して」という部分がなかったりする

検察「これが無罪になっては日本は格好の草刈り場になる!」
→これが有罪になっては日本から新技術が生まれなくなる!

検察「人々は、怖くてインターネットに繋げなくなってしまう」
→新技術開発者は逮捕されるのが怖くて、新技術を開発しなくなってしまう

検察「Coinhiveは通常表示されない言語で記述されており、ユーザーの同意も得ていない。被告人はCoinhiveの使用を隠そうとしていた」
→ソースコードは通常表示されない。表示されて目に見える部分だけが全てではない。バックグラウンドで動くプログラミングなどいくらでもある。

日本が世界から取り残されないよう、正しい判決を願う!

不正指令電磁的記録罪

ここ最近、不正指令電磁的記録に関する罪による家宅捜索や逮捕、書類送検などが話題になっているが、不正指令電磁的記録に関する罪はもともとウィルスなどを取り締まるための法律であったはずだ。

そこで、マルウェアの定義とは何か、改めて勉強してみよう。

マルウェアの定義

マルウェア

不正かつ有害に動作させる意図で作成された悪意あるソフトウェアや悪質なコードの総称。コンピュータウィルスやワーム、スパイウェアなどを含む。

コンピュータウィルス

他のプログラムやファイルの一部を書き換え(寄生、感染)、自己増殖する機能を持つ。

ワーム

プログラム単体で存在し、自己増殖する。

トロイの木馬

一見無害なファイルやプログラムに偽装した上でコンピュータに侵入した後、外部からの命令でその端末を自由に操る。

スパイウェア

情報収集を主な目的とし、コンピュータの内部情報を外部へ勝手に送信する。

キーロガー

キーボードからの入力を記録するプログラム。キーロガーそれ自体はマルウェアではないが、パスワードや個人情報、機密情報などを奪取する目的で仕掛けるなどマルウェア(スパイウェア)として用いられることがある。

ボット

ボットそのものは、常駐してチャットで会話するなどといった機能を持つプログラムであり、必ずしもマルウェアではない。マルウェアとしてのボットとは、攻撃者から命令を受け取り、命令に応じてDDoS攻撃やスパムメール送信などを行うものを指す。

ランサムウェア

コンピュータをロックしたり、ファイルを暗号化して読めなくしたりするなどして、身代金を支払えば元に戻す、と脅迫する。

法律改定案

以上を踏まえて、不正指令電磁的記録に関する罪の法律の改定案を検討してみる。
そのためには、次のことを考慮しなければいけないだろう。

  • キーロガーの善用と悪用
    • ソフトウェアのデバッグ目的や端末の不正使用のログ収集目的であれば、善用目的とみなされる。
    • パスワードや個人情報、機密情報などの個人データを収集し、外部サーバへ送信する目的であれば、悪用目的とみなされる。
    • 悪用目的の場合、その目的を隠していると思われる。
  • OneDrive、Dropboxなどのオンラインストレージとスパイウェア
    • オンラインストレージは、ユーザーはファイルが自動的にサーバに送信されることを了承している。
    • スパイウェアは、ユーザーはファイルが自動的にサーバに送信されることを了承していない。
    • ユーザーが、情報が自動的にサーバに送信されることを了承しているかどうかがポイント。
  • 広告、ウェブ解析とスパイウェア
    • 広告、ウェブ解析は、利用目的を明示し、情報を収集し、外部サーバへ送信する。
    • スパイウェアは、利用目的を明示することなく、パスワードや個人情報、機密情報などの個人データを収集し、外部サーバへ送信する。
    • 利用目的を明示しているかどうか、または、プログラムの目的に沿って情報を収集しているかどうかがポイント。
  • ジョークプログラムの存在
    • ジョークプログラムは、ユーザを驚かす目的で作成されており、破壊活動やワーム活動を行うものではない。
  • マルウェア対策のために、マルウェアを取得する行為
    • マルウェア対策を行うためには、マルウェアが必要となる。マルウェアを取得することを禁止すれば、マルウェアへの対策を行うことができなくなってしまう。
  • ソースコードを載せているだけのケース
    • ソースコードを載せているだけでは、それが動作することはない。解説などのためにソースコードを掲載していることもある。

以上を踏まえて、不正指令電磁的記録に関する罪の法律を以下のように改正することを提案する。現在の法律にある、「その意図に反する動作をさせるべき不正な指令」とは何かを具体化した点がポイントだ。

  • 第十九章の二 不正指令電磁的記録に関する罪
    • (不正指令電磁的記録作成等)
      • 第百六十八条の二 人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、○年以下の懲役又は〇〇万円以下の罰金に処する。
        • 一 その目的を人に示すことなく、またその目的に沿わず、次のいずれかの動作を行う電磁的記録
          • イ 電磁的記録を作成または書き換える動作
          • ロ 電磁的記録を収集し、送信する動作
          • ハ 命令を受信し、それを実行する動作
      • 2 前項第一号に掲げる電磁的記録を人の電子計算機における実行の用に供した者も、同項と同様とする。
      • 3 前項の罪の未遂は、罰する。
    • (不正指令電磁的記録取得等)
      • 第百六十八条の三 前条第一項の目的で、同項各号に掲げる電磁的記録を取得し、又は保管した者は、○年以下の懲役又は○○万円以下の罰金に処する。
      • 2 研究の目的で前条第一項各号に掲げる電磁的記録を取得し、又は通信の遮断された環境内で保管する場合は、この限りでない。

こんな文面にした方が良いのではないかというような意見のある方からのコメントを受け付けたい。

参考までに、現在の法律も以下に記載する。

  • 第十九章の二 不正指令電磁的記録に関する罪
    • (不正指令電磁的記録作成等)
      • 第百六十八条の二 正当な理由がないのに、人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、三年以下の懲役又は五十万円以下の罰金に処する。
        • 一 人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録
        • 二 前号に掲げるもののほか、同号の不正な指令を記述した電磁的記録その他の記録
      • 2 正当な理由がないのに、前項第一号に掲げる電磁的記録を人の電子計算機における実行の用に供した者も、同項と同様とする。
      • 3 前項の罪の未遂は、罰する。
    • (不正指令電磁的記録取得等)
      • 第百六十八条の三正当な理由がないのに、前条第一項の目的で、同項各号に掲げる電磁的記録その他の記録を取得し、又は保管した者は、二年以下の懲役又は三十万円以下の罰金に処する。

不正指令電磁的記録罪

日本の開発者にとって懸念すべき案件が相次いでいる。

例えば、Coinhive事件。2018年6月に、サイトにスクリプトを埋め込んで、閲覧者のPCでマイニングすることでサイト公開者が仮想通貨を得ることができるCoinhiveを導入した者が全国各地で相次いで逮捕、書類送検される事件だ。今も地裁で裁判が続いており、3月27日に判決が言い渡される。

もっと最近でいうと、無限アラート事件。今年3月4日、中学生、無職男性、建設作業員の3人が、同じメッセージが無限に表示されるページへのリンクを貼ったことで補導や家宅捜索された事件である。

これについて、自身の考えで述べたい。もちろん様々な意見があると思う。

この2つの事件で関わってくる法律というのが、刑法第六十八条の二、第六十八条の三の不正指令電磁的記録に関する罪。
以下がその法律だ。

第十九章の二 不正指令電磁的記録に関する罪 (不正指令電磁的記録作成等)
第百六十八条の二 正当な理由がないのに、人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、三年以下の懲役又は五十万円以下の罰金に処する。
一 人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録
二 前号に掲げるもののほか、同号の不正な指令を記述した電磁的記録その他の記録
2 正当な理由がないのに、前項第一号に掲げる電磁的記録を人の電子計算機における実行の用に供した者も、同項と同様とする。
3 前項の罪の未遂は、罰する。
(不正指令電磁的記録取得等)
第百六十八条の三 正当な理由がないのに、前条第一項の目的で、同項各号に掲げる電磁的記録その他の記録を取得し、又は保管した者は、二年以下の懲役又は三十万円以下の罰金に処する。

この法律は本来、ウィルス、マルウェアの作成、提供、保管を取り締まるために作られたものだ。

さて、この二つの事件では、ウィルス、マルウェアにあたるかどうかが問題になってくる。

Coinhive事件を見てみよう。
Coinhiveは、Webページに埋め込んで、訪問者の演算能力を利用してマイニングを行うことで、設置者が仮想通貨を得られるものである。データを盗んだり、壊したり、PCを使えなくしたりするものではなく、訪問者のPCの計算能力を利用しているだけである。したがって、ウィルス、マルウェアであるとは言えないだろう。

では、無限アラート事件ではどうだったか。
このようなスクリプトが組み込まれたページへのリンクを掲示板に貼り付けただけのようである。

for ( ; ; ) {
window.alert(“メッセージ")
}

このスクリプトの動作は、プログラミングができる人には簡単に分かると思う。アラートが無限に表示されるだけであり、他に影響を与えることはない。データが消えるとか、PCが壊れるとか、そういった害は皆無である。アラートを止めるには、ブラウザを閉じるだけでいい。したがって、こちらもウィルス、マルウェアではないと考える。

しかしながら、どちらもウィルス、マルウェアとは言えないにも関わらず、「不正指令電磁的記録に関する罪」が適用されてしまっている。

処罰の対象として、「人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録」と定められている。

Coinhive事件では、警察・検察は裁判において、「訪問者の同意なし(明示せず)に、訪問者のPCを利用して仮想通貨マイニングを行う行為は、違法性がある」と述べている。「訪問者の同意なし(明示せず)に」マイニングプログラムを動かしているのが問題なら、訪問者の同意を得ずに行われているアクセス解析や広告も問題になるのではないだろうか。Coinhiveの挙動が「意図に反する動作」なのか。そもそも、訪問者はそのウェブサイトがどんな挙動をするかを事前に全て把握してはいないので、ほとんど全てのページが「意図に反する動作をさせる」ページであると言えてしまう。Coinhiveが「不正な指令を与える」ものなのか。何を持って不正な指令とするのか、明確でない。

無限アラート事件では、そもそもリンクを貼り付けただけで、スクリプトのページを動作させたことになるだろうか。リンクは、それをクリックすると、意図した別のページへ移動するのが正しい動作であって、不正な動作ではない。リンクを貼ることによって、リンク先のページでの動作を提供しているわけではない。リンク先のページでの動作を提供しているのは、リンクを貼った人ではなく、リンク先のページを作成した人である。リンク先のページの動作が不正だとしても、そのページへのリンクを貼り付けることも「不正」と言えるのだろうか。

以上を考えると、Webページでスクリプトを動かす前に、そのスクリプトがどのような動作をするのかをあらかじめ知らせて同意を得てから動かすようにしなければならない、リンクを貼る場合はそのリンク先のページの動作についても知らせなければならない、ということになってしまうのではないだろうか。同意を得てから動かすようにするには、やはりスクリプトを使わないと実現できないだろう。一個前のページに動作の内容を記述する方法も考えたが、検索エンジンから直接入ってくる可能性を考えると、使えないだろう。スクリプトを使って同意を得るようにするとしても、同意を得るためのスクリプトの動作についてもあらかじめ知らせる必要があることになるのではないだろうか。そうすると、無限ループになってしまう。

この法律の立法当時、激しい議論が行われた。要件が曖昧すぎる、実害は少ないがユーザを驚かせるような、いわゆるジョークプログラムのようなものはどうするか、という議論もあった。議論の結果、法案自体は修正されずに、「捜査等に当たっては、憲法の保障する表現の自由を踏まえ、ソフトウエアの開発や流通等に対して影響が生じることのないよう、適切な運用に努めること」などを求める附帯決議を付けて制定された。しかし、この付帯決議に反して、Coinhive事件や無限アラート事件のように逮捕、補導、家宅捜索されるという、当初から懸念されていた事が現実のものとなる事態になっている。

現在の法律の問題点は主に以下の通りだと思う。

・「意図に反する」の範囲が明確ではない。Coinhiveでは、警察・検察は「(限定された)実害」に絞らず、広くとっている。
・不正な指令かどうかを判断する明確な基準が曖昧。

基準が明確でないことで、これはセーフか、これはアウトかが技術者にとって判断しづらく、実害がないプログラムであっても「違法」だとされてしまう恐れがあり、技術開発が萎縮してしまわないか。
早急にこの法律の運用を停止し、見直しを実施すべきである。

法律が原因で日本のITの発達が妨げられることにならないことを祈るばかりである。

(参考URL)

電子政府の総合窓口 e-Gov – 法令
https://www.e-gov.go.jp/law/

ITmedia NEWS – Coinhive設置で家宅捜索受けたデザイナー、経緯をブログ公開 「他の人に同じ経験して欲しくない」
https://www.itmedia.co.jp/news/articles/1806/12/news078.html

NHK NEWS WEB – 不正プログラム書き込み疑い補導
https://www3.nhk.or.jp/lnews/kobe/20190304/2020003239.html
https://web.archive.org/web/20190309122153/https://www3.nhk.or.jp/lnews/kobe/20190304/2020003239.html (アーカイブ)

Yahoo! JAPAN ニュース – 「IT業界の萎縮を招きかねない」 “ブラクラURL書き込みで中学生補導”、弁護士に問題点を聞いた
https://headlines.yahoo.co.jp/hl?a=20190305-00000100-it_nlab-sci

Yahoo! JAPAN ニュース – 「無限アラート」で女子中学生を補導、「リンク貼り付け」で摘発をどう考えるか
https://headlines.yahoo.co.jp/hl?a=20190307-00009333-bengocom-soci

高木浩光@自宅の日記 – 不正指令電磁的記録罪(コンピュータウイルス罪)の件、何を達成できたか(前編)
http://takagi-hiromitsu.jp/diary/20110716.html

warbler’s diary – コインハイブは不正指令電磁的記録に該当するか?
http://warbler.hatenablog.com/entry/2019/02/26/141003