セキュリティ対策はベンダが提案すべきもの
ご覧の通り、結果はITベンダ側に責任を求めるものとなり損害の賠償命令が下されました。これは要件定義書になくても、既にIT業界内で知れ渡っているようなセキュリティ対策は専門家であるITベンダが提案し、実施しなければならないというものです。
さて、この判決にあるITベンダの責任の考え方については、セキュリティに関する要件の定義について他の判決とも一致する部分が多く、ユーザ、ベンダを問わず、是非頭に入れておいていただきたい所なのですが、今回私がこの判決をとりあげたのは、その事だけを言いたかったわけではありません。
それよりも、特にユーザ側の人に申し述べたかったのは、例え専門家のITベンダであっても、こうしたミスは特にセキュリティに関してやってしまいがちだということです。実は、今回の "SQLインジェクション"については、要件定義書にこそ、そうした記述はなかったようですが、それよりも前に結んだ契約にあたっての確認書なるものには、"SQLインジェクション"について記述があったようです。それそのものは要件として有効なのか疑問はありますが、少なくとも、このシステムについてこうした脅威が存在すること自体は、双方共に認識があったはずです。
しかし、ユーザにもやるべきことはある
これを要件定義書に落とさず(多くの場合、要件定義書も実質的にはベンダが作成し、ユーザはそれを承認する形で正式化されます)、結局プログラムにも反映させなかったのは、明らかにITベンダ側作業者の凡ミスです。
しかし、やはりユーザ企業側も自身でも認識していたSQLインジェクション対策が要件定義書にないことには気づくべきでした。確かに、この状態で裁判になればユーザ側が有利かもしれませんが、IT作りは裁判に勝つ為にやるわけではありません。
もしかしたら、専門家であるITベンダが要件として確認しなくても「ユーザ側はプロなら、そのくらいのことは分かっていて、わざわざ書かなくても大丈夫なのだろう」と思ったかもしれません。しかし、ベンダも人間です。間違いもあれば抜け漏れもあります。そして、セキュリティ要件というのは、間違いなく文書にして双方が、その十分性を確認すべき事柄です。今回のITユーザには、そうした認識がありませんでした。
結論として言えば、ITを導入しようとするユーザも、このセキュリティについては一定の知識を持ち、ベンダにその対策を確認することが必要です。要件定義書やテスト項目にセキュリティに関する記述がなければ、それを疑問に思う感覚が必要なのです。
もちろん、セキュリティについて細かい知識は必要ありません。しかし、例えば以下のようなサイトを見て、こうした脅威に対する対策は十分であるかを要件定義時、設計完了時、テスト時等にベンダに投げかければ、こうした凡ミスを防ぐことができ、IT紛争などという、勝っても負けても不幸な事態にはならなかったのではないでしょうか?(了)