SQLインジェクション対策漏れが重過失認定された判決文を読んだメモ

徳丸さんの記事をたどって、判決文読んだ。

SQLインジェクション対策もれの責任を開発会社に問う判決 | 徳丸浩の日記

技術面に限った僕的解釈メモ(あくまで個人的な読書メモですので、正確な内容はこちらをご参考ください

・カード番号の保存は、売り掛け金についてのカード業者を特定するための仕様追加。
・決済業者へのリンク型の決済を、自社サーバ経由の決済に切り替えた時に全てのカード情報を保存していた。
・管理画面には、カード情報の一部しか表示されない仕様になっていればよかったのに(カード番号先頭6桁で把握可能)、なぜか律儀にセキュリティコードまで保存されていた。

・さらにログファイルにも個人情報やカード情報が保存されていて、さらに外部から参照可能になっていた(これが直接の流出原因とはされていない)

・特定の機能について適切にSQLをエスケープしておらず、そこにSQLインジェクションをつくアタックがあったと思われるアクセスログが残っていた。なお、攻撃はPOSTによるアクセスで行われていたため、どのような攻撃だったかはログには残っていない。

・DBのSQLクエリのログは取っていないため、誰がいつどのようにデータが流出したかはわからない。

・直接的にカード情報が流出したことは認められないが、SQLインジェクションを使うことでカード情報を抜くことは不可能ではない。もろもろの状況から判断し、開発業者に重過失を認めた。

・契約書の責任範囲の限定には不備がありそこも争点とされたが、最終的にはSQLインジェクションの対策漏れが重過失と認められ、制限事項は無関係に。

・また「瑕疵担保期間」とは、無償補修を定めた期間であって、損害賠償請求権の期間制限を定めた物ではない。

—————–
大体こんな感じ。

何故、わざわざセキュリティコードまで保存したのか、さらにテキストログにも律儀に保存してしまったのか。。。この仕様変更が直接的な利益に結びつくような仕様変更ではなかっただけに、非常にため息の出る文章でした。。。

地裁の判決ですので、今後どうなるのでしょうかね。個人的には機会損失における売上損失の算出方法が興味深かったです。

【PR】BASE エンジニア、デザイナー、経理!一緒に仲間になってくれる人を探してます!