- blogs:
- cles::blog

ソフトウェアの脆弱性と重過失





SQLインジェクション攻撃の被害について、ソフトウェアのメーカの責任を裁判所が認めた事例が話題になっていたのでメモ。
判例には会社名等が伏せられていますが、クレジットカードの流出件数が7316件なので、おそらくこの事例だと思われます。
- インテリア販売サイトから最大1万6798件の個人情報流出の可能性 - ITmedia ニュース
- 【セキュリティ ニュース】インテリアショップサイトで顧客情報約1万6000件が流出の可能性 - カード情報7000件含まれる:Security NEXT
- インテリアショップサイトに不正アクセス、カード情報含む個人情報が漏えい(ミサワ) | ScanNetSecurity (事件、インシデント・情報漏えいのニュース)
判決の全文についてはSOFTIC 判例ゼミ 2014 第5回11月13日(木)に掲載されている PDF を使えばオンラインで読むことができます。こういう裁判に関する文章を普段あまり読む機会がないのでとても興味深いのですが、ソフトウェアを作る側として気になったのは以下の部分。
個人情報漏洩で脆弱なシステムの責任をソフトメーカーに問う事例 - セキュリティホール memo
〈1〉電子商取引システムの設計・構築に当たってSQLインジェクション攻撃への対策を講じることは専門業者として当然であったこと (中略) について検討するに、 (中略) SQLインジェクション対策がされていなければ、第三者がSQLインジェクション攻撃を行うことで本件データベースから個人情報が流出する事態が生じ得ることは被告において予見が可能であり、かつ、経済産業省及びIPAが、ウェブアプリケーションに対する代表的な攻撃手法としてSQLインジェクション攻撃を挙げ、バインド機構の使用又はSQL文を構成する全ての変数に対するエスケープ処理を行うこと等のSQLインジェクション対策をするように注意喚起していたことからすれば、その事態が生じ得ることを予見することは容易であったといえる。また、バインド機構の使用又はエスケープ処理を行うことで、本件流出という結果が回避できたところ、本件ウェブアプリケーションの全体にバインド機構の使用又はエスケープ処理を行うことに多大な労力や費用がかかることをうかがわせる証拠はなく、本件流出という結果を回避することは容易であったといえる。
そうすると、被告には重過失が認められるというべきである。
セキュリティホールメモでも指摘されていますが、SQLインジェクション攻撃に対する対策を講じることは専門業者として当然であり、回避策に多大な労力や費用がかからないので、重過失として認定されていることでしょうか。実際問題として契約書には「賠償責任は負わない」もしくは、「損害賠償は個別契約の金額まで」という損害賠償の免責や責任制限が定められていることが多いのですが、これまたよくあることに「故意または重過失がある場合を除き」という免責や責任制限が適用外となるオプションがついていたりするんですよね。今回はそこを突かれてしまったということになるのでしょうか。思っていたよりこのオプションは開発者側にシビアなオプションと言えそうです。
このあたりについては例えば経産省の「情報システムの信頼性向上のための取引慣行・契約に関する研究会」~情報システム・モデル取引・契約書~の損害賠償の条項は下記のようになっています。
モデル取引・契約書<第一版>(PDF形式:4,350KB)
(損害賠償)
第53条 甲及び乙は、本契約及び個別契約の履行に関し、相手方の責めに帰すべき事由により損害を被った場合、相手方に対して、(○○○の損害に限り)損害賠償を請求することができる。但し、この請求は、当該損害賠償の請求原因となる当該個別契約に定める納品物の検収完了日又は業務の終了確認日から○ヶ月間が経過した後は行うことができない。
2. 前項の損害賠償の累計総額は、債務不履行、法律上の瑕疵担保責任、不当利得、不法行為その他請求原因の如何にかかわらず、帰責事由の原因となった個別契約に定める○○○の金額を限度とする。
3. 前項は、損害賠償義務者の故意又は重大な過失に基づく場合には適用しないものとする。
ちなみに今回の事件を見通したかのように、JEITA ソフトウェア開発モデル契約では、故意や重過失は裁判所の判断が必要ということで、この部分が削られていて開発者側に有利な契約となっています。契約書を作るときは、開発者側でも発注者側でも、このあたりをきちんと盛り込んでおくことが必要となりそうです。とにかく IPA が出しているドキュメントくらいのレベルの対策ができてないと重過失認定されてますよというところは勉強になりました。
† 参考
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7334
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . これが本物の「Amazon セキュリティ警告」(5073)
3 . リモートデスクトップで Alt + PrtSc と同じことをするには(4823)
4 . 「日次」は「にちじ」じゃない?(3834)
5 . RDP のプロトコルを TCP だけに変更する(3773)