ユーザ、ベンダどちらの責任になるのか
さて、本論に戻りますが、この裁判において、原告であるユーザ企業がベンダを訴えた根拠は民法第715条の1項という法律です。この連載は、特に法律の解説を行うものではないので、条文解説等は行いませんが、要は「こうしたセキュリティ上の脆弱性のあるプログラムを作ってしまったのはベンダ側の作業者の不注意である。」という訴えです。
ただ、判決文から見ると、このシステムを作るにあたり定義された要件の中に、このSQLインジェクション対策を行うことまでは書かれていなかったようです。
世の中にある各種のガイドラインを確認すると、システム開発にあたって要件を定義するのは、原則ユーザ側であると書かれています。ITベンダは設計やプログラミング等の専門家ではありますが、ITを適用する業務については、当然ユーザ側がプロであり、その業務を支援したり実現する為に、ITに具備すべき機能や性能を決めて、ITベンダに正しく伝えるのはユーザ側の仕事ということになります。
その意味では、今回の件についてもセキュリティについての要件をユーザが伝えていなければ、ベンダは何も作らないという理屈もあるのかも知れません。
しかしユーザ側からすれば、素人の自分達が世の中にあるセキュリティ侵害について十分な知識を持っているわけもなく、"SQLインジェクション"などという専門用語も含めて、漏れなく且つ正しくセキュリティ要件を書けと言われても現実、それは不可能なことかもしれません。この手の裁判では、そうした両者の主張を受けて争われることが多いのですが、では、この裁判の結果はどうだったでしょうか?
(東京地方裁判所 平成30年10月26日判決より抜粋)
我が国では、遅くともユーザ企業がITベンダに本件システムの制作を発注した平成24年当時までには、既にSQLインジェクションによる不正アクセス等のセキュリティ上のリスクの存在が広く知られ,その対策としてエスケープ処理の実施という具体的な方法もシステム開発の業界内では周知されていたことがうかがわれる。
(中略)
したがって,ユーザ企業からの発注に係る本件システムの制作を担当したITベンダの被用者(※)にはエスケープ処理の実施等、SQLインジェクションに対する対策を講ずべき注意義務があったのに、これを怠っていた点で、少なくとも過失による不法行為が成立し、(中略) 使用者であるITベンダが上記被用者の選任及びその事業の監督について相当の注意をしたという事情はうかがわれないから、ITベンダの使用者責任(民法715条1項)が成立するというべきである。
※ 被用者:この場合は雇用者等、ITベンダの指揮命令系統下にある作業者。