アラートループ事件
この記事はWikipediaの内容を翻訳し、CC BY-SA 3.0 ライセンスに準拠して共有するものだ。
はじめに
個人的に、この事件は日本で起きたことではあるものの、台湾においても似たような状況があるように思える。コンピュータ使用を妨害する罪の定義は曖昧で、容易に訴訟の道具になりがちだ。だからこそ、開発者として理解しておく価値があると感じている。なお、この記事は事例の共有を目的としており、ユーザーの操作に影響を与えるような悪意ある行為を推奨する意図は一切ない。
事件の概要
2019年3月、兵庫県警は電子掲示板上に悪意あるコードへのリンクを設置したとして、不正指令電磁的記録供用未遂の疑いで女子中学生の自宅を家宅捜索し、男性2名を捜査のうえ書類送検した。3月25日、日本ハッカー協会が男性2名の弁護士費用および裁判費用の支援を募り、計553人から総額700万円の寄付が集まった。同年5月29日、男性2名は起訴猶予処分となった。この事件における被害者は存在しない。
男性の1人の証言によると、検察官は「特定のスマートフォン機種では、リンクをクリックすると画面を閉じられなくなったり、修理に出したり専門家に頼む必要が生じる可能性があり、コンピュータウイルス罪の要件である『反意図性』に抵触する」と判断し、「不正指令電磁的記録供用罪」に関する主張を変えなかったという。
男性2名の弁護を担当した横浜パーク法律事務所の弁護士はこれを受け、起訴猶予処分について「犯罪は成立するが今回は起訴しないという立場で幕引きを図った」「検察官は有罪と判断したものの、個別の事情から起訴猶予処分とした。法の番人たる検察官として、そうしなければ社会的な批判を浴びるからだ」と検察側を批判した。
コード
プログラムは以下のようなJavaScriptコードだ。
for ( ; ; ) {
window.alert(" ∧_∧ ババババ\n( ・ω・)=つ≡つ\n(っ ≡つ=つ\n`/ )\n(ノΠU\n何回閉じても無駄ですよ~ww\nm9(^Д^)プギャー!!")
}
window.alert は指定された文字列を受け取り、OKボタン付きのダイアログボックスを表示する。OKボタンを押すとダイアログを閉じることができる。このプログラムは無限ループになっているため、ダイアログを閉じても再びダイアログが表示され、ユーザーがブラウザのタブを閉じるまでこの挙動が続く。
window.alert はダイアログが閉じられるまで他の処理を実行できないため、このプログラムがブラウザに何らかの恒久的な影響を与えることはない。そのため、「ブラクラ(ブラウザクラッシャー)」には該当せず、「ジョークプログラム」と呼ぶべきものだ。
大半のPCブラウザでは、タブを閉じるだけでこのプログラムを停止できる。さらに、現代のブラウザではalertが2回以上表示されると「これ以降ダイアログを表示させない」といった選択肢が現れ、ポップアップが繰り返される挙動を止めることができる。
反響
この事件は国内外で大きな反響を呼んだ。
2019年3月5日、お笑いタレントのスマイリーキクチが、ネット犯罪であることを前提に「中1の女子がネットで簡単に犯罪ができる現実、ゲーム感覚なのか。大人がどう止めるのか」などとツイートし、批判が殺到した。
その後、彼は高木浩光(日本の情報セキュリティ研究者)による解説ツイートの一部にモザイクをかけて転載し、「Twitterで犯罪ではないと主張しても通用しない」「すべて自己責任だ」などとコメントしたことで、再びTwitter上で炎上した。翌日、彼は「現在、兵庫県警や裁判所が対応中であり、もし検察や裁判所で冤罪と判断された場合は、当事者3人に直接謝罪する」とツイートして事態の沈静化を図った。後に彼は関連ツイートをすべて削除している。
2019年3月6日、JavaScriptの生みの親であるBrendan Eichはツイッターで「Chromeの初期バージョンの10年前、Netscape 4の時点でユーザーがJavaScriptの無限ループを止められるようになっていた」「僕は本件で専門家証人になるつもりだ。これはウイルスではないし、犯罪とみなされるべきではない」と投稿した。また、3月9日には電子フロンティア財団(Electronic Frontier Foundation)も「無限ループは犯罪ではない」とツイートした。
Thread: https://t.co/zc1qz7OLx8
— BrendanEich (@BrendanEich) March 9, 2019
I'll be expert witness at trial. This is not a virus, it should not be a crime, and if the browser did not let the user regain control, jail the browser maker :-P.
3月8日、警察の対応への抗議として、逮捕されることを目的としたリポジトリ lets-get-arrested がGitHub上に公開され、元のコードが掲載された。NETIB-NEWSの取材に対し、兵庫県警サイバー犯罪対策課は「自分の子どもにも同じことが言えるのか」とコメントした。
補足と個人的な見解
実際のところ、この事件を見てもわかるように、「不正指令電磁的記録供用罪」の定義は曖昧であり、多くのグレーゾーンを生み出している。しかも今回の事例に限って言えば、ブラウザ側での無限ループが罪に問われるというのは、あまりにも荒唐無稽な話だと僕は思う。
なお、本文中で触れた lets-get-arrested の中にあるIssueはどれもかなり面白く、ツッコミが実に的を射ている。
例えば、あるユーザーが「日本で逮捕されるにはどうすればいいのか」と質問を立てていた。その人いわく、以前六本木に行ったとき、泥酔した4人組が道路を横断しようとしており、そのうちの1人が道路の真ん中を歩いていたためタクシーにクラクションを鳴らされたという。するとその男は逆上してタクシーを蹴り飛ばし、道路の真ん中で暴れ始めた。その後パトカーが到着したものの、警察官は何をするでもなく立ち去り、逮捕されることもなかったそうだ。

それに対してリポジトリの作者は、「そう、日本では無限ループを書くことの方が、タクシーを蹴っ飛ばして路上で暴れることよりも重罪なんだ」と返信していた。

関連記事
- エンジニアの面接にどう備えるか テック業界の面接対策はいつだって骨の折れるものだ。面接で最も人を落胆させるのは、権力関係が極めて一方通行になりがちな点にある。応募者の立場では相手の本当の基準を読み取るのは難しく、面接が終わった後は自分を疑ってしまいがちだ。今回はそのあたりについて話してみよう。
- 人生観を変えた言葉 ファインマン、チャップリン、そして映画『ひゃくえむ。』。劣等感を抱えていた少年から誰かを助けられるようになるまで、僕に最も深い影響を与えた思考と生き方についての共有。
- 独立したウェブサイトを持つN個のメリット ショート動画やSNSが全盛のこの時代に、なぜわざわざ時間をかけて自分のブログを運営するのか?約10年間ブログを書き続けてきた僕の考えを共有する。
- 筋トレ(ウエイトトレーニング)の記録と感想 ここ最近の筋トレの振り返りと感想をシェアする。