1 SQLインジェクション事件(総論)
2 システム開発委託契約と情報流出
3 システム開発委託契約の解釈
4 SQLインジェクションの実害と対策の普及
5 責任制限特約の有効性(基本的基準)
6 責任制限特約の有効性(重過失の判断)
7 損害額の算定の内容
8 過失相殺
9 最終的な賠償額の算定

1 SQLインジェクション事件(総論)

現在では,大きな規模のサービスではオンラインのシステムを使うことがとても多いです。
これに伴い,不正なアクセス(攻撃)により,顧客情報が流出する事故も増えています。
情報流出減となった企業が顧客に対して責任を負うことは当然です。
詳しくはこちら|個人情報漏洩・流出の民事的責任|実例|賠償金額基準・相場
ところで,オンラインのシステム(アプリケーション)は,運営企業自体は作らず,システム開発企業が受注して作ることが多いです。
そのため,システム開発の発注企業が受注企業に対して責任を追及するケースもあります。
その1つとして,大量の情報を格納するデータベースを操作するSQLという言語を悪用した『SQLインジェクション』という手法があります。
本記事では,SQLインジェクション攻撃による実害が生じたケースでの責任の判断が示された裁判例を紹介します。

2 システム開発委託契約と情報流出

最初に,事案の根本部分として,システム開発の当事者や,SQLインジェクション事故により流出した情報の内容を整理します。

<システム開発委託契約と情報流出>

あ システム開発の委託契約

A=システム開発を発注した業者
B=システム開発を受注した業者
AとBは次の内容の委託契約を締結した
Aのウェブサイトにおける商品受注システムの設計・保守など

い 情報流出事故発生

ウェブサイトが外部から不正なアクセスを受けた
不正な手法=SQLインジェクション攻撃
『う』の顧客情報が流出した

う 流出した情報

流出した情報について正確な内容は特定できなかった
最大で次の漏洩した可能性が存する

クレジットカード情報 7316件
クレジットカード情報を含まない個人情報 9482件

※東京地裁平成26年1月23日

3 システム開発委託契約の解釈

前記の事故について裁判所は開発業者Bの責任を判断することになります。
責任判断の前提として,システム開発の契約で求められるセキュリティのレベルを丁寧に特定してゆきます。

<システム開発委託契約の解釈>

あ 提供するプログラムのレベル

次の内容の黙示の合意があった
内容=当時の技術水準に沿ったセキュリティ対策を施したプログラムを提供する

い セキュリティのレベル

システムは顧客の個人情報をデータベースに保存する設定であった
→Bは,個人情報の漏洩を防ぐために必要なセキュリティ対策を施したプログラムを提供すべき債務を負っていた

う SQLインジェクション対策の要否

『い』のセキュリティレベルについて
当時,SQLインジェクションの実例・対策が普及していた(後記※1)
→『え』のSQLインジェクション対策が含まれる

え SQLインジェクション対策の内容

ア バインド機構の使用
イ プログラム上のエスケープ処理の施行
※東京地裁平成26年1月23日

4 SQLインジェクションの実害と対策の普及

責任の判断でとても大きな影響を及ぼすのは,当時のSQLインジェクションの危険性の認識です。
業界全体として,SQLインジェクションのリスクは『常識』となっていた,ということを裁判所は指摘しています。

<SQLインジェクションの実害と対策の普及(※1)>

あ 経済産業省のアナウンス

ア 公表情報
『個人情報保護法に基づく個人データの安全管理措置の徹底に係る注意喚起』
平成18年2月20日
経済産業省
イ SQLインジェクションに関する内容
SQLインジェクション攻撃によってデータベース内の大量の個人データが流出する事案が相次いで発生していること
『い』のSQLインジェクション対策の措置を重点的に実施することを求める

う IPAのアナウンス

ア 公表情報
IPA=独立行政法人情報処理推進機構
『大企業・中堅企業の情報システムのセキュリティ対策~脅威と対策』
平成19年4月
イ SQLインジェクションに関する内容
SQLインジェクション攻撃はウェブアプリケーションに対する代表的な攻撃手法である
SQLインジェクション対策をすることが必要である
対策の内容は『ウ』のものがある
ウ SQLインジェクション対策の内容
・SQL文の組み立てにバインド機構を使用する
・SQL文を構成する全ての変数に対しエスケープ処理を行う
※東京地裁平成26年1月23日

5 責任制限特約の有効性(基本的基準)

システム開発の契約には責任を制限する特約がありました。
多くの同種のシステム開発の契約で一般的に使われることが多いものです。
結論として,文字どおりに責任を制限するということは通常あり得ません。『重過失・故意』は免責の対象から外すのです。

<責任制限特約の有効性(基本的基準)>

あ 責任制限特約

A・B間のシステム開発委託契約において
次の内容の責任制限特約が合意されていた
特約内容=損害賠償金額を契約に定める契約金額の範囲内に制限する

い 特約の解釈(一般的基準)

受託者(従業員を含む)が,権利・法益侵害の結果について故意・重過失を有する場合には適用されない

う 重過失の例

結果についての予見が可能かつ容易であり,その結果の回避も可能かつ容易である
※東京地裁平成26年1月23日

6 責任制限特約の有効性(重過失の判断)

当然,システム開発業者は,意図的に(故意に)不正アクセスを可能にしておく,ということは通常ありません。
『重過失』と言える程度のミスがあったといえるかどうか,という判断をすることになります。

<責任制限特約の有効性(重過失の判断)>

あ 注意義務の程度

Bはプログラムに関する専門的知見を活用した事業の一環として本件ウェブアプリケーションを提供した
→Bに求められる注意義務の程度は比較的高度なものである

い 予見可能性・容易性

経済産業省・IPAが,ウェブアプリケーションに対する代表的な攻撃手法としてSQLインジェクション攻撃を挙げ,SQLインジェクション対策をするように注意喚起をしていた(前記※1)
Bは次の内容を予見可能・容易であった
予見内容=SQLインジェクション対策がされていなければ,第三者がSQLインジェクション攻撃を行うことでデータベースから個人情報が流出する事態が生じ得る

う 重過失の判断

ウェブアプリケーションの全体にバインド機構の使用・エスケープ処理を行っていなかったことについて
→重過失にあたる

え 開発業者の責任の有無(結論)

SQLインジェクション対策の機能が備わっていなかった
→Bには債務不履行がある
責任制限特約により免責されることはない
→Bは賠償責任を負う
※東京地裁平成26年1月23日

7 損害額の算定の内容

結局,システム開発業者には重過失があったと認定されました(前記)。
そこで次に,賠償責任の内容,つまり賠償額の算定に進みます。
まずは,システム開発のミスによって生じた損害の内容を項目ごとに細かく認定して行きます。

<損害額の算定の内容(※2)>

あ 委託費用の一部

A・Bのシステム委託契約に関連してAはBに代金を支払った
流出事故発覚後,Aは別業者のサービスに切り替えた
それ以降,Bのサービスを利用しなくなった
『代金を支払ったが受けていないサービス』に相当する金額
→27万5625円

い 顧客への謝罪関係費用

Aは,個人情報を登録していた顧客全員に対し,見舞金or賠償金として一定の負担を行った
また,顧客からの問合せに応じるなどの対応を行った
このために次の費用を要した費用

QUOカード・包装代 1636万2342円
お詫びの郵送代 124万6459円
お詫び郵送に係る資材費・作業費 86万7196円
告知郵送代 8万1440円
告知の封筒代 1万0500円
お詫びのメール配信の外注費 6万6843円
お詫び及びQUOカードの書留郵便代 2660円
合計 1863万7440円
う 顧客からの問合せなどの対応費用

流出事故対応専用のコールセンターの外注費
交通費
合計 493万8403円

え 調査費用

情報流出の状況や要因を調査するために要した費用
2社への調査費用の合計額
→393万7500円

お 代替のサーバー使用料

42万円

か 事故対策会議出席交通費

Aの従業員が事故対策会議に出席するために要した費用
→4万7600円

き フォーム作成費用

リクナビネクストに対応した応募フォームを作成した費用
→6万3000円

く 売上損失

事故の対策のために一定期間,オンライン販売においてクレジットカードを使用できなくなった
クレジットカードの利用により販売できていたであろう売上のうち利益相当の金額
これを元に裁判所の裁量で概算した
→400万円
※民事訴訟法248条

け 合計

3231万9568円
※東京地裁平成26年1月23日

8 過失相殺

前記の損害額として算定した合計額がそのままシステム開発業者の責任(賠償額)となるわけではありません。
発注した企業にも一定の責任はあります。
法律的には過失相殺というプロセスになります。

<過失相殺(※3)>

あ 発注者の認識

Aの担当者は『ア・イ』を認識していた
ア 顧客のクレジットカード情報のデータがデータベースにあること
イ セキュリティ上はクレジットカード情報を保持しない方が良いこと

い 開発業者からのアドバイス

BはAに対して,セキュリティの問題を指摘していた
システム改修の提案を行っていた

う 発注者の過失

Aは,何ら対策を講じずにシステムを放置した
→発注者の過失である

え 過失相殺

3割の過失相殺をする
→賠償額を3割減額する
※東京地裁平成26年1月23日

9 最終的な賠償額の算定

以上の審理結果をまとめます。

<最終的な賠償額の算定>

あ 損害額合計

債務不履行と相当因果関係のある損害
→3231万9568円(前記※2)

い 過失相殺

3割を減額する(前記※3)
賠償額=2262万3697円
※東京地裁平成26年1月23日

システム開発企業としては,最新のリスクとして公知のもののすべてについて対策を施す必要があります。
不注意によりこれを怠った場合,システム利用の規模によっては数千万円単位の賠償責任が生じる可能性があるのです。