今月公開された、株式会社ラックの「脆弱性報告と公開のポリシー」に、「SNSポリシーに関する意見」として、夏井高人先生の見解が公表されている。この中で、ソフトウェア製品を2つに区分する提案がなされており、たいへん興味深い。
興味深かった結論は、次の部分。
技術的に完全なものとしてソフトウェアを製造・販売またはライセンスし、かつ、完全な法的責任(損害賠償責任、補修責任、交換責任)を負うことを約束しているベンダーについては、そのベンダーの事前の同意がない限り(コンテクストから同意しているものと推定される場合を含む。)、その脆弱性情報を公開することが許されないと解釈すべきであろう。この場合、もし問題が発生したら、そのベンダーが全責任を負うべきである。
これに対し、技術的に完全なものとしてソフトウェアを製造・販売またはライセンスし、かつ、完全な法的責任(損害賠償責任、補修責任、交換責任)を負うことを約束しているのではないベンダーについては、事前の同意なく、その脆弱性を公表しても違法ではないと解釈すべきである。この場合において、そのベンダーが、自分自身以外の者から脆弱性情報が提供されることを嫌うのであれば、誰よりも早く脆弱性を発見し、その情報をユーザに提供するような仕組みを完全に保証すべきである。
この結論に至るまでの論旨はこうだ。まず、
一般に、欠陥のある商品やサービスの提供は、それ自体として違法である。多くの場合、債務不履行(不完全履行)として欠陥の補修や損害賠償の責任を負わなければならない。
とし、ソフトウェアがPL法の適用外であるのは、単に、欠陥の不存在の立証を製造者側に持たせる「証明責任の転換」が適用されないという話であって、欠陥の存在を原告が立証するのであれば、債務不履行(不完全履行)として製造者の責任を追及できるということが説明されている。
続いて、
ほとんどのパッケージソフトウェアの利用契約(ライセンス契約)には、免責条項(免責約款)が付記されている。...(略)... しかし、このような無制約の免責条項は、消費者契約法によって無効なものとされているので、意味のない条項である。
としながらも、
しかしながら、汎用のソフトウェアには多少困った事情もある。つまり、ソフトウェアの開発・出荷時には、そのソフトウェアがどのようなPCにインストールされるのか、インストールされるPCにはどのような装置や機器が接続されているのか、インストールされるPCには他にどのようなソフトウェアがインストールされているのかを予め知ることができないという問題である。この組み合わせ問題は無限に存在し得るので、...(略)
として、汎用コンピュータにおけるソフトウェアの完全性を求めることが困難であることにも理解を示し、
厳格に法を適用することは、確かに酷であるような場合がある。
としている。
そこで、提案されているのが、最初に引用した部分の結論である。つまり、欠陥に対する「完全な法的責任」を約束している場合には、第三者の脆弱性公開を許されないものとし、責任を約束していない場合には、脆弱性公表を違法でないとするべきだと。
夏井先生のこの小論では、第三者による脆弱性情報の無断公開を許されないものとする立場を基本とした上で、「完全な法的責任」を約束をしていない場合を例外として、その場合には脆弱性公開が許されるという構成になっているように思う。
「完全な法的責任」を約束をしている場合に、第三者の脆弱性公開がなぜ許されないのかという点について、まだ議論の余地があるように感じられるのだが、この小論では、脆弱性公開が許される条件を示すことに力点が置かれているのだと思う。現状は、ほとんどのソフトウェア製品が「完全な法的責任」を約束していないのだから、この小論は、脆弱性公開を違法でないと解釈すべき根拠を示したもの言える。
それと同時に、「完全な法的責任」を約束する販売形態を製造者に促す意味も含まれているように思う。製造者の立場として、脆弱性情報をコントロールするという目的のために、「完全な法的責任」を約束することにメリットが生まれる。
私もかねてより、家電製品と汎用コンピュータはそろそろ明確に区別すべき時期にきているのではないかと考えてきた。汎用コンピュータ用のソフトウェアの完全性保証が無理なのは、夏井先生の小論にもあるように、同時に動作する他のソフトウェア部品との相互作用など、予測が困難な要素が多すぎるからだ。その一方で、消費者の多くが、「パソコン」を電子メールとWebとデジカメ写真編集くらいにしか使っていないという実態があるように思う。
つまり、メールとWebと写真(とあといくらか)の機能しか持たないような、お手軽なネット端末が、「家電製品」として販売されてもよいのではないかと思う。そうした製品は、過去にもいくらか出ていたと思うが、ことごとく失敗してきた。売れなかった原因は、拡張性がないために、最新のWeb技術に追いついていけずすぐに陳腐化したこと、もうひとつは、価格を抑えることが簡単でなかったためではなかろうか。
本来、技術者が自己責任で使う道具であった汎用コンピュータが、ごく普通の消費者にまで「パソコン」として売り込まれているという、ここ数年の状況は、汎用コンピュータにソフトウェアを載せるという作り方が、低価格で製品を提供できたことと、アプリケーションソフトウェアの進歩が著しかったためであろう。
しかし、ここ1年ほどで、Webにせよ、メールにせよ、進歩が緩やかになってきたのではないだろうか。だとすれば、今こそ、「家電製品」としてのネット端末が商機を迎えているかもしれない。そうであるなら、セキュリティ欠陥について「完全な法的責任」を負うと約束する販売形態も、現実味を帯びてくるのではないか。
携帯電話は、「完全な法的責任」を負うと約束しているかどうかは知らないが、搭載ソフトウェアに欠陥が見つかった場合、回収・交換という措置がとられている。その一方で、搭載機能が高度化し、欠陥をなくすのが大変になってきていると聞く。あるシンポジウムで、現場の開発技術者の声として聞いたところでは、携帯電話のソフトウェアも、Windowsなどと同じように、パッチを(電波経由で)自分でダウンロードして修正できるようにしたいという意識があるようだった。
Java搭載の携帯電話は、拡張性と完全性の両立を実現したものだったと思う。同時に複数のアプリケーションが動かないようにしたり、非常に強く制限されたJava機能により、安全性も確保されていた。しかし、これも最近では、拡張性が不十分だということで、複雑化、機能制限の緩和という方向に向かっており、「パソコン」への道を歩み始めている。携帯電話も「無保証」の文化に移ってしまうのだろうか。
それはさておき、「完全な法的責任」が約束されている製品に、第三者が脆弱性を見つけた場合、どのような展開を生むだろうか。発見者が製造者に報告をしたとき、無視されたらどうなるだろうか。公開が法的に制限されているとなると、発見者はどこかに告発しなくてはならない。どこがそれを受け付けるのか。
現在のように、「無保証」のソフトウェアに欠陥が発覚しても、製造者がたいした社会的、経済的ダメージを受けない状況では、発見者も比較的気楽だったのに比べて、「完全な法的責任」が約束されている場合には、発見者に身の危険が及ぶ(もしくは、そうなると発見者が感じる)可能性が高くなるため、告発者の保護にも配慮が必要であろう。
また、製造者が「それは問題ではない」という見解を示すことが起こり得る。それは、これまでにもたびたびあった。特に日本では携帯電話事業者がそうした見解を示すことがある。
例えば、2001年4月にiアプリ開発者達のメーリングリストで発覚したスクラッチパッドの欠陥では、発見者が情報漏洩の危険性があると指摘していたにもかかわらず、携帯電話事業者は「動作が不安定になる場合がある」とだけ説明したということがあった。
他にも、2002年7月にauの料金照会ページが他人にも見えてしまうという欠陥が発覚した際に、携帯電話事業者が、「個人が特定できる情報が漏れることはありません」と発表したことがあった。
こうした場合に、発見者が自由に情報公開できないとなると、誰がどうやって脆弱性を評価するのかということになる。
ところで、ソフトウェアの製造物責任を考えるとき、他の製造物と比べてソフトウェアのセキュリティ欠陥には、再現性が高いという特徴がある。
壊れやすい椅子とか、火を噴きやすい電源といった欠陥は、確率的にしか事象が発生しないため、構造的な欠陥があることを消費者が立証するのは困難であり、だからこそPL法によって、欠陥の不存在を被告が証明しなければならないことになっているのだろう。それに対し、ソフトウェアのセキュリティ欠陥は、見つかってしまえば、100% の再現性があって検証が可能な場合が多く、欠陥の立証が容易かもしれない*1。
*1 ただ、被害は起きたものの、原因がわかっていない場合には、やはり立証が困難かもしれないが。