セキュアなWebアプリが作れない理由
ホームページの改ざんなどは10数年以上も前から続いていますが、最近では改ざんではなくクレジットカードなどの個人情報を狙ったホームページへの侵入事件が相次いでいるようです。なぜいつまでもちゃんと防ぐことができないのでしょうか。
よく「セキュリティはいたちごっこだ」と言われることが多いのですが、ホームページへの攻撃に関しては、むしろ「いつまでも穴を作り続けること」の方が主な原因となっています。
いつまでも穴を掘り続けるというのはどういう意味ですか?
ホームページは静的コンテンツ、つまりindex.htmlのような固定のファイルだけでできているページだけでなく、動的コンテンツ、つまり、プログラムによって毎回作り出されているページも多く使われています。たとえば、ログイン後のユーザーごとの画面や掲示板などがそうです。
ホームページには、静的コンテンツと動的コンテンツがある。はい。ここまではOKです。
で、動的コンテンツというのは毎回プログラムで生成されているため、多くのプログラムがホームページのサーバ(Webサーバ)で動いており、そのプログラムをWebアプリケーションと言います。このWebアプリにハッカーの攻撃を許してしまうセキュリティホール、いわゆる脆弱性があるとそこから情報が盗まれたり、ウイルスをばら撒くサイトになったりしてしまうのです。
なるほど。Webアプリに穴がなければホームページは守れるということでしょうか。
それはすなわち、脆弱性のないプログラムを開発できれば、そこから侵入されることがなくなるということです。しかし、忙しく厳しい開発の現場の実情などもあり、Webアプリに脆弱性が作りこまれてしまうんですね。
劣悪な労働環境が品質を低下させている?
Webアプリの開発はどんどん開発価格が抑えられていっており、大学生がアルバイトでシステム開発会社でプログラミングをしていることも珍しくありません。しかも元請ではなく、ひ孫請けのような形態だったりもします。
そのような現場で「セキュアなプログラミング」と言ってもなかなか浸透しない。
だって「セキュリティに十分に注意した開発をして欲しいから料金は2割り増し払う」なんて会社はないですよ。「欠陥はなくて当たり前」という考えが主流で、そもそもセキュリティにお金を払おうという考えがない。したがって、納期に追われ料金を下げられているような現状ではとてもセキュリティなど望むべくもないですよ。
ではプログラミングから解決することは難しいというわけですね。
ごくわずかな会社がセキュリティに注意したプログラミング、セキュアプログラミングを自主的に行っていますが、それを開発単価に反映することは今でも難しいようですね。