IT・システム判例メモ

弁護士 伊藤雅浩が,システム開発,ソフトウェア,ネットなどのIT紛争に関する裁判例を紹介します。

クレジットカード情報の漏えい事故の責任 東京地判平26.1.23判時2221-71

クレジットカード情報が漏えいしたことについて,ウェブサイトの保守事業者の責任が問われた事件。

事案の概要

XはYに対して,平成21年2月4日,Xのウェブサイト(本件ウェブサイト)のウェブ受注システム(本件システム)の導入を合計約900万円で発注した。本件システムは,EC-CUBEをカスタマイズして開発された。Yは,本件システムを完成させ,平成21年4月頃に検収を受け,同月15日から本件ウェブサイトが稼働した。XとYとの間では,何度も発注が繰り返され,代金合計は約2000万円に上った。


その後,XとYは,本件システムの利用を毎年更新した。Yは,Zとの間でサーバ利用契約を締結し,Zが設置したレンタルサーバ(本件サーバ)に本件システムのデータを保存していた。


平成22年1月に入り,YはXの依頼を受けて本件システムを変更し,顧客のクレジットカード情報(カード会社名,カード番号,有効期限,名義人,支払回数及びセキュリティコード)が,本件サーバに本件システムのデータベースに保存される仕組みとなった。ただし,クレジットカード情報は暗号化されていなかった。


平成22年5月1日,XとYは,本件ウェブサイトのメンテナンス契約を締結した。


平成23年4月,本件サーバに不正アクセスがあり,顧客のクレジットカード情報を含む個人情報が流出(本件流出)した。セキュリティ会社Lの報告書の概要は以下のとおりであった。

そこで,XはYに対し,債務不履行に基づく損害賠償として,約1億1000万円の支払いを求めた。

ここで取り上げる争点

(1)本件流出の原因及び程度


(2)Yの債務不履行の有無
Xは,以下の5つの債務不履行責任があると主張していた。

  • 債務不履行1(適切なセキュリティ対策が採られたアプリケーションを提供すべき債務の不履行)
  • 債務不履行2(ネットワークやサーバーのセキュリティ対策を講ずべき債務の不履行)
  • 債務不履行3(カード情報を保存せず,保存する場合には暗号化すべき債務の不履行)
  • 債務不履行4(サーバー,データベース及び管理機能へのログインID及びパスワードを管理すべき債務の不履行)
  • 債務不履行5(被告によるセキュリティ対策の程度についての説明義務違反)


(3)Xの過失と因果関係の断絶
Yは,当初は,クレジットカード情報は保存されていなかったが,その後,Xの依頼によって仕様を変更したこと,Yから改善の方法を指摘したが,Xが放置していたことなどから,本件流出と因果関係が断絶されると主張していた。


(4)損害


(5)損害賠償責任制限の合意の成否

裁判所の判断

■争点(1)について

裁判所は,上記事実の概要記載のとおり,Lの報告に依拠して,SQLインジェクション攻撃によって流出したと認定した。Yは,その信用性を争ったが反論は排斥された。

しかしながら,Lは,セキュリティソリューションサービス事業を営み,国内最大規模でネットワーク・セキュリティー監視業務を行っており,ネットワーク・セキュリティーについて専門的知見を有すると認められるところ,L報告書もその専門的知見を利用して業務上作成されたこと自体により,一定程度の信用性が認められる。
そして,前提事実及び証拠によれば,SQLインジェクション対策としては,プログラム作成者が想定していないSQL文を実行させないことが必要であるところ,本件ウェブサイトにおいて注文する商品の色選択画面では,バインド機構の使用及びエスケープ処理のいずれも行われておらず,プログラム作成者が想定していないSQL文が実行される状態にあったこと,仮に他の場所にはSQLインジェクション対策が実施されているとしても,1か所でもプログラム作成者の予想しないSQL文が実行される状態にあれば,その部分で攻撃者がプログラム作成者の予想しないSQL文の実行を繰り返すことにより,クレジットカード情報等の個人情報が格納された場所(テーブル名,カラム名等)を知ることが可能であること,その格納場所が判明すれば,SQL文を実行することにより全ての情報を窃取することが可能であることが認められるのであり,本件ウェブアプリケーションには脆弱性があり,かつ,その脆弱性のためにクレジットカード情報等が全件漏洩した可能性がある旨のL報告書の記載部分は,プログラムに関する専門的知見に合致するものであり,信用することができる。

なお,本件では,調停に付されており,その際の調停委員会の意見書では,「SQLインジェクションが本件流出の原因であるとの立証は尽くされていない」とされていたが,裁判所はSQLインジェクション攻撃であると認定した。


流出の程度については,正確には不明としつつ,上限数を認定した。

本件流出により漏洩した情報の内容及び件数は正確には分からないといわざるを得ず,また,L報告書とB報告書で,漏洩した可能性があると指摘するクレジットカード情報の件数が異なる理由は不明であるから,最大でクレジットカード情報が7316件,クレジットカード情報を含まない個人情報が9482件漏洩した可能性が存するということになる。


■争点(2)について


裁判所は,X主張の5つの債務不履行のうち,SQLインジェクション攻撃が原因だったことに照らして,債務不履行1,3,5の有無について検討した。

Yは,平成21年2月4日に本件システム発注契約を締結して本件システムの発注を受けたのであるから,その当時の技術水準に沿ったセキュリティ対策を施したプログラムを提供することが黙示的に合意されていたと認められる。そして,本件システムでは,金種指定詳細化以前にも,顧客の個人情報を本件データベースに保存する設定となっていたことからすれば,被告は,当該個人情報の漏洩を防ぐために必要なセキュリティ対策を施したプログラムを提供すべき債務を負っていたと解すべきである。

裁判所は,平成18年当時経産省SQLインジェクション攻撃によって大量流出があるということから,IPAが紹介する対策を実施するよう注意喚起していたこと,IPAは,具体的なSQLインジェクション対策を書面により公表していたことを示し,Yが本件ウェブアプリケーションにおいて,いずれの対策も取っていなかったことについて,債務不履行1の責任を負うとした。


債務不履行3に関しては,まず,Yがクレジットカード情報を保存しないか,又は暗号化して保存する義務を負っているかどうか検討し,否定した。

厚生労働省及び経済産業省が平成19年3月30日に改正した「個人情報の保護に関する法律についての経済産業分野を対象とするガイドライン」(同日厚生労働省経済産業省告示第1号)では,クレジットカード情報等(クレジットカード情報を含む個人情報)について特に講じることが望ましい安全管理措置として,利用目的の達成に必要最小限の範囲の保存期間を設定し,保存場所を限定し,保存期間経過後適切かつ速やかに破棄することを例示し,IPAは,同年4月,前記「大企業・中堅企業の情報システムのセキュリティ対策〜脅威と対策」と題する文書において,データベース内に格納されている重要なデータや個人情報については暗号化することが望ましいと明示していたことが認められる。しかし,上記告示等は,いずれも上記対策を講じることが「望ましい」と指摘するものにすぎないし,上記IPAの文書においては,データベース内のデータ全てに対して暗号化の処理を行うとサーバー自体の負荷になることがあるので,特定のカラムだけを暗号化するなどの考慮が必要であるとも指摘されている(甲25)ように,暗号化の設定内容等は暗号化の程度によって異なり,それによってYの作業量や代金も増減すると考えられることに照らすと,契約で特別に合意していなくとも,当然に,Yがクレジットカード情報を本件サーバー及びログに保存せず,若しくは保存しても削除する設定とし,又はクレジットカード情報を暗号化して保存すべき債務を負っていたとは認められない。


なお,債務不履行5(説明義務)についての詳細は割愛するが,信義則上の義務としてSQLインジェクション対策を講じていないことの説明義務までは負わないとした。


■争点(3)について

詳細は割愛するが,Xは,クレジットカード情報のうち,カード会社の情報だけを必要としており,クレジットカード情報全体を保存する必要がないにもかかわらず,Yはこれを保存する選択をしたのだから因果関係は断絶されないとされた。


さらに,裁判所は,Yが主張していない過失相殺について踏み込んだ判断をした。

Yからは過失相殺の主張はないが,前記認定のとおり,Xのシステム担当者が,顧客のクレジットカード情報のデータがデータベースにあり,セキュリティ上はクレジットカード情報を保持しない方が良いことを認識し,Yから本件システム改修の提案を受けていながら,何ら対策を講じずにこれを放置したことは,本件流出によるクレジットカード情報の漏洩の一因となったことは明らかであるから,Xに損害が認められるとしても,上記Xの過失を考慮し,3割の過失相殺をするのが相当である(上記の過失相殺事由は,因果関係の断絶を基礎付ける事実として当事者が十分な攻撃防御をしているから,過失相殺をすることは弁論主義に反せず,当事者への不意打ちともならない。)。


■争点(4)について

裁判所は以下の損害を認めた。

ア 本件ウェブ受注システム委託契約に関連して支払った代金

Xは,開発代金合計約2070万円全額が損害だと主張したが,裁判所は,サービスによって利益を享受していたのであるから,全額が損害となるものではなく,保守サービス料として前払いしていた費用のうち,期間按分した約27万円を相当因果関係ある損害と認めた。


イ 顧客への謝罪関係費用

Xが顧客全員に対して,送付したQUOカードと,その包装代金,郵送代,作業費などの合計約1860万円を損害であると認めた(1件あたり約1000円)。


ウ 顧客からの問い合わせ対応費用

顧客からの問い合わせのために設置したコールセンターの外注費用として支払われた合計約490万円が損害であると認めた。


エ 調査費用

Xが依頼したB社,L者の調査費用の合計約390万円が損害であると認めた。


オ 売上損失

Xは4か月間にわたってクレジットカード決済機能が利用できなかったとして,約6000万円の売上損失を主張していたが,裁判所は民訴法248条を適用して400万円の限度で相当因果関係が損害だと認めた。


カ その他

事故対策会議出席交通費その他の事故対策費用として約50万円の損害が認められた。


その結果,合計約3230万円の損害から,過失相殺を3割し,Xが請求できる金額は約2260万円とした。


■争点(5)について

XY間で締結された基本契約には次のような条項があった。

第9章「損害賠償その他」
第29条〔損害賠償〕
1項 乙(注:Y)が委託業務に関連して,乙又は乙の技術者の故意又は過失により,甲(注:X)若しくは甲の顧客又はその他の第三者に損害を及ぼした時は,乙はその損害について,甲若しくは甲の顧客又はその他の第三者に対し賠償の責を負うものとする。
2項 前項の場合,乙は個別契約に定める契約金額の範囲内において損害賠償を支払うものとする。

他方で,第7章の機密保持には,

第19条〔秘密保持義務
甲,乙は,「対象情報」を厳に秘匿し,相手方の事前の書面による承諾なく,これを第三者に開示若しくは漏洩してはならない。

第25条〔損害金〕
甲若しくは乙が本契約内容に違反した場合には,その違反により相手方が被る全ての損害を賠償するものとする。

流出した個人情報,クレジットカード情報は,機密保持条項の「機密情報」要件を満たさないことから,これらの関係,解釈が問題となった。


これらの関係について裁判所は次のように述べて,原則として賠償制限を設け,かつ,機密保持違反の場合に限り,制限しないと解釈すべきとした。

以上の規定を合理的に解釈すれば,本件基本契約は,29条2項で,YのXに対する損害賠償金額を原則として個別契約に定める契約金額の範囲内とし,25条は,29条2項の例外として,Yが対象情報を第三者に開示又は漏洩した場合の損害賠償金額については制限しないことを定めたものと解するのが相当である。


Xは,29条の責任制限規定が情報漏えいの際にも適用されると主張していたが,裁判所は25条の「本契約内容に違反した場合」とは「本章の規定に違反した場合」の誤記であろうとして,Xの主張を排斥した。


さらに,Xは29条2項の責任限定は重過失がある場合には適用されないと主張した。

本件基本契約29条2項は,ソフトウェア開発に関連して生じる損害額は多額に上るおそれがあることから,YがXに対して負うべき損害賠償金額を個別契約に定める契約金額の範囲内に制限したものと解され,Yはそれを前提として個別契約の金額を低額に設定することができ,Xが支払うべき料金を低額にするという機能があり,特にXが顧客の個人情報の管理についてYに注意を求める場合には,本件基本契約17条所定の「対象情報」とすることで厳格な責任を負わせることができるのであるから,一定の合理性があるといえる。
しかしながら,上記のような本件基本契約29条2項の趣旨等に鑑みても,Y(その従業員を含む。以下,この(2)項において同じ。)が,権利・法益侵害の結果について故意を有する場合や重過失がある場合(その結果についての予見が可能かつ容易であり,その結果の回避も可能かつ容易であるといった故意に準ずる場合)にまで同条項によってYの損害賠償義務の範囲が制限されるとすることは,著しく衡平を害するものであって,当事者の通常の意思に合致しないというべきである(売買契約又は請負契約において担保責任の免除特約を定めても,売主又は請負人が悪意の場合には担保責任を免れることができない旨を定めた民法572条,640条参照。)。
したがって,本件基本契約29条2項は,YにX又は重過失がある場合には適用されないと解するのが相当である。

重過失がある場合には適用しない,と解釈した上で,Yに債務不履行があるかどうかが問題となった。

Xは,Yの重過失の評価根拠事実として,
[1]電子商取引システムの設計・構築に当たってSQLインジェクション攻撃への対策を講じることは専門業者として当然であったこと,
[2]Yは無償配布ソフトウェアであるEC−CUBEをベースとして本件ウェブアプリケーションを構築しており,誰でもEC−CUBEのプログラムの仕組みを知ることができ,第三者からの攻撃が容易であるため,Yは特にセキュリティ対策に注意すべきであったこと,
[3]Yは,本件ウェブアプリケーション納品後もEC−CUBEのセキュリティ対策の修正プログラム(パッチ)を適用し,又はXに適用を推奨すべきであったにもかかわらず,本件システムに上記修正プログラム(パッチ)を適用していなかったこと
[4]XとYとの間の契約実態がASP(インターネットを介して,アプリケーションソフトをユーザーに提供するサービス形態)であり,ASP業者がアプリケーションソフトに関するセキュリティ対策を講じるのが通常であるため,XはYがセキュリティ対策を行っていると誤信していたこと,
[5]Yは専門業者であるにもかかわらず,クレジットカード情報を本件データベースだけでなくログに記録する設定にしていたなど,本件システムに関するセキュリティレベルは極めて低いものであったこと,
[6]Yには本件システムのセキュリティ対策についての説明義務違反があること
から,Yが賠償すべき金額を制限することは極めて不合理な結果となるために許されない旨主張する。

上記[1]-[6]のうち,[2]-[6]については,重過失を基礎づけるものではないとしたが,[1]については,

Yは,情報処理システムの企画,ホームページの制作,業務システムの開発等を行う会社として,プログラムに関する専門的知見を活用した事業を展開し,その事業の一環として本件ウェブアプリケーションを提供しており,Xもその専門的知見を信頼して本件システム発注契約を締結したと推認でき,Yに求められる注意義務の程度は比較的高度なものと認められるところ,前記のとおり,SQLインジェクション対策がされていなければ,第三者がSQLインジェクション攻撃を行うことで本件データベースから個人情報が流出する事態が生じ得ることは被告において予見が可能であり,かつ,経済産業省及びIPAが,ウェブアプリケーションに対する代表的な攻撃手法としてSQLインジェクション攻撃を挙げ,バインド機構の使用又はSQL文を構成する全ての変数に対するエスケープ処理を行うこと等のSQLインジェクション対策をするように注意喚起をしていたことからすれば,その事態が生じ得ることを予見することは容易であったといえる。
また,バインド機構の使用又はエスケープ処理を行うことで,本件流出という結果が回避できたところ,本件ウェブアプリケーションの全体にバインド機構の使用又はエスケープ処理を行うことに多大な労力や費用がかかることをうかがわせる証拠はなく,本件流出という結果を回避することは容易であったといえる。
そうすると,Yには重過失が認められるというべきである。

みずほ証券vs東証事件と同じ規範により,Yの重過失を認めた。


結果として,上記で認めた相当因果関係ある損害から過失相殺し,責任限定条項が適用される場面であるとしつつも,Yに重過失があるから適用せず,過失相殺後の額について認容した。

若干のコメント

本件については,考えるべきこと,コメントすべきことが非常にたくさんあって迷うところです。ポイントとなるところを挙げるとすると,

  • SQLインジェクション対策をとっていなかったことでクレジットカード情報が漏えいしたことについて債務不履行とされたこと
  • 発注者の側においてもベンダから改善提案を受けながら放置したことにより3割の過失相殺が認められたこと
  • 顧客への謝罪費用(1ユーザ約1,000円)のほか,調査会社費用が主な損害とされたこと
  • 売上減少について民訴法248条を適用した400万円の損害を認めたこと
  • 責任限定条項があっても,重過失の場合には適用されないとしたこと
  • 上記対策をとっていなかったことは重過失にあたるとされたこと


といったあたりです。


本件に限らず,クレジットカード情報をはじめとする個人情報が漏えいする事故は後を絶たず,必要なセキュリティ対策をとっておかないと,「重過失」と認定される危険が出てきているといえます。


なお,ユーザとしては,責任限定条項を設けるとしても,秘密保持条項違反はその対象外とするだけでなく,個人情報は秘密情報とみなす,とか,個人情報にかかわる義務違反は責任限定しないといった定めが必要でしょう(今回は,そのような契約になっていなかったため,重過失にあたるかどうかが問題となっています。)。

*1:不正攻撃方法の一種で,アプリケーションが想定しないSQL文を実行させること