ウイルス罪法案に対する法務省見解の何が問題かを理解するための基礎知識

ソフトウェア開発者およびそれの関係者がざわざわしている話が以下のもの。

この話を理解するためにはいくつかの基礎知識が必要だと思う。自分の勉強もかねてメモ。

法務省見解のポイント

高木浩光@自宅の日記:ウイルス罪法案、バグ放置が提供罪に該当する事態は「ある」と法務省見解の強調部分を箇条書きにすると以下のとおり。

  • フリーソフトウェアを公開したところ、重大なバグがあるとユーザから報告があった。
  • 上記の報告を知った上で、そのプログラムを公開し続けている。
  • このとき提供罪が成立するという可能性がある

バグとは何か?

コンピュータプログラムに含まれる誤りや不具合のこと。(以下略)

ソフトウェア工学という分野において、バグを埋め込まずにソフトウェアを開発するにはどうすれば良いかについて研究されているが、バグがないソフトウェアを作るのは無理であろうというのが、この分野において常識になりつつある。バグをなくすことはできないという前提の上で、どうやってそれを少なくすればよいのかというのが課題になっている(開発の各段階における検証・テストやテスト手法自体の改良など)。

やっかいなのは、「そのソフトウェアはどういうものであってほしいのか」という理想と、その理想に基づく設計、設計に基づく実装(プログラミング)の各段階で対応ミスがありえるという点。この部分はハードウェアの開発や各種コンテンツ作成と一緒。

フリーウェア

正確な定義は難しいけれども、大雑把にいって以下の1, 2の条件を満たし、かつ、3の条件を0個〜すべて満たすようなソフトウェアのこと。正確な定義はwikipediaなどで検索を。

  1. 使用について無料
  2. 不特定多数に広く公開されている
  3. ソースコードが公開されている
    • 自由に変更可能
    • 自由に再配布可能
    • このソフトウェアを変更したソフトウェアも同じ条件(ライセンス)で公開しなければならない

ソフトウェアはハードウェアと異なり、開発や配布に必要な初期投資やランニングコストが圧倒的に少ない(パソコン、インターネット、あとは個人の時間)。このため、工業製品と異なり、個人やある個人のアイデアに賛同した人たちからなる非営利なグループがソフトウェアを公開し、シェアを持っていることが多々ある。たとえば、Webを成り立たせているソフトウェア(LinuxGNUパッケージ、Apahce、各種SMTPサーバー:sendmail, postfixなど)。

バザールモデルによる開発

そして、バザールモデルという開発手法が実施され、ある程度うまく回っている。多くの多様な価値観、判断基準に由来するたくさんの試行錯誤を繰り返すこそが、よいソフトウェアを作るという発想が基本コンセプト。

ソースコードが公開され、自由に変更が許されているソフトウェアにおいて、不具合が見つかったときの基本原則は「不具合に感じるあなたがソースコードを変更すれば良い」というもの。バザールモデルでの開発は、基本的にこの方針で開発が進んでいる(ある程度のとりまとめがいたほうが開発が継続的に進むという傾向はあるものの、そのとりまとめが誰かに修正を命じる強制力はない)

なので、フリーウェアを使う時の基本的なお約束は「このソフトウェアを使って受けたいかなる被害も自分で引き受ける。それが嫌なら、自分で修正するか、使わない」ということ。

あるソフトウェアの開発だけではなく、あるジャンルのソフトウェア、あるいはソフトウェア全体に目を広げれば、たくさんの開発者が、それぞれの価値観と判断基準で、たくさんの有用なソフトウェアから屑なソフトウェアまでいろいろと公開することで、本当に良いソフトウェアが生まれ、社会にとって有益だろうというのがフリーウェアを開発したり、使ったことある人の感覚。実際、インターネットに簡単にアクセスできるようになってから、この感覚は正しいということを多くの人が実感していると思う(経済学における計画経済と市場の話と似ている)。

情報セキュリティの本質はいたちごっこである

情報セキュリティの本質は、守る側と攻める側のいたちごっこであるということ。ある時点では完璧に安全なソフトウェアでも、しばらくたったら、まったく使い物にならないレベルのソフトウェアになってしまうということもざらにある。理由は、攻める側の人間は学ぶことができるため。オレオレ詐欺が減らない事実を思い出してもらえればわかると思う。対策をたてても、すぐにそれを無効にするような手法が編み出されている。この部分が自然災害に対する安全性とは違う意味で難しい点。

ドッグイヤー

そして、技術革新も早い。

ドッグイヤーとは、俗に、IT業界の技術進化の早さを、犬の成長が人と比べて速いことに例えた俗語である。1990代後半頃から用いられていた。
犬の1年は、人間の7年に相当すると言われている。例えば、今までなら1年かかった技術の進歩が2ヶ月もあれば可能になっているようなことがIT業界では珍しくなく、犬の成長が速いことになぞらえられている。あるいは単に時間の流れが速いことを意味する場合もある。
後に、ドッグイヤーより輪を掛けて速い、人間の18倍で成長するネズミになぞらえた「マウスイヤー」という表現も登場した。

人はインセンティブで動く

インセンティブとは、人をやる気にさせる外部からの刺激。インセンティブを与えるとは、行動の結果として与えられる具体的な良いものを示すことによって人のやる気を引き出すこと。

自分がちょっと作ってみたソフトウェアを公開して、

  1. 誰かに「よいね」といってもらえるかもしれない。最悪でも利用者から文句をいわれると言う状態
  2. 誰かに「よいね」といってもらえるかもしれない。最悪の場合は、刑罰をうけるかもしれないという状態

1が今の状態、2がソフトウェア開発者が危惧する状態。

バグは完全になくすことはできないし、攻撃者は日々進化するし、技術もすぐに変わるし、こういう状況で、かつ、2がなりたつなら、誰もソフトウェアを公開しなくなってしまう。そうすると、良いソフトウェアが生まれなくなるのではないかというのが、法務省の見解でざわざわしてしまう理由。

刑事裁判と民事裁判の違い

重大なバグによって被害を生じさせたことについては責任をとるべきでないか。という意見はごもっとも。でも、責任のとらせかたは刑事罰だけではない。

PL法

ハードウェアに関しては製造物責任法PL法)が既にある。法務省見解に違和感を抱かない人のほとんどがPL法に準拠して考えていると思われるので、PL法が何を目的として、どういう性質の法律なのかを理解しておく必要があると思う。

「不具合を作り込んだこと」自体を民事的責任や罪に問われるのか?

リコールの例からすると、「不具合を知っており、かつ、それが重大な事態を招くことを予見できており、かつ、対処できるのになにもしなかった」という場合に対処を行わなかった責任者に責任を求めていたり、罪に問うていたりする様子。

PL法の場合は「不具合を作り込んだこと」自体を罪に問われる。ただし、岡村久道:製造物責任法(PL法)入門の「第3章 責任主体−誰が責任を負わされるか(第2条第3項)」によると、基本的に会社を責任主体としており、その会社で働く個人を対象にしていない。

おわりに

うまくまとまっていないが、とりあえずここまで。