Webシステムのセキュリティ対策は、開発工程やテスト工程で取り組めばよいと考えているかもしれない。しかし、要件定義や基本設計といった上流工程からセキュリティ品質を高めていかないと、安全なWebシステムにはなりにくい。ここでは、Webアプリケーションの要件定義で起こりがちな「発注者と開発会社の責任」についての勘違いを説明する。
要件定義の責任は発注者にある
システム開発では「要件定義の責任は発注者側にある」との認識が一般的といえる。例えば情報処理推進機構(IPA)がまとめた「超上流から攻めるIT化の原理原則17か条 」でも、「要件定義は発注者の責任である(原理原則[9])」としている。一方で、開発会社はシステム開発のプロとして、「発注者の側に立った支援を提供する」ことが求められている。発注者は、開発会社に要件定義を「丸投げ」するのではなく、主体的に要件定義に参画することが、システム開発を成功させるための原理原則である。
では、Webアプリケーションのセキュリティ要件を決める場合はどうだろうか。多くの場合、発注者は「自分たちはシステム開発のプロではないのだから、セキュリティ対策として必要なことは、開発会社側が自主的に提案してくれる」と考えている(図1)。人によっては、「RFP(提案依頼)や要件定義でなんら言及していなかったとしても、セキュリティ機器やサービスを扱っている開発会社なら当然、対策してくれる」と考えていることさえある。
ただし、開発会社が同様の考え方でいるとは限らないのが実状だ。「要件定義までは発注者側の責任なのだから、RFPや要件定義段階で発注者から示されなかったことに対して、あえて開発会社から口に出す必要はない」と考えている場合もある。発注者側にセキュリティ対策の必要性を訴えると、コスト面などのトラブルに発展しかねないので、口を閉ざそうとしてしまう。
つまり、お互いに相手に責任があると考えてしまう点が勘違いなのだ。