Webアプリケーションは何故弱い

ところで昨夜出したネタが即興に近い割には思ったより好評だったらしい。オフレコが基本のナイトセッションですがこれはまぁいいかなと。そもそも言い尽くされたことだと思っていたのですが「なぜWebアプリケーションは弱いのか」。私が思っているのはまとめると3つ。

  • HTTPにはセッション管理がない。これは全ての元凶といっていい。よく知られた、パターン化したアプリケーションですらフレームワークに載せた開発はできるようになっていない。そのためアプリ開発者はセッション管理を自分でやろうとする。それがバグを産みやすい素地を作っている。セッション管理機構がしっかりしていないから、守る側はアカウント情報だけではなく、セッション管理情報やセッション管理機構そのものも守る羽目に陥る。これでは大変である。おまけにセッション管理でよく使われるCookieはストレージ上に置かれ、長期保存が簡単だ。TCPのセッションが簡単に失われるのとは訳が違う。長く残っているということは盗まれる確率も高まるということだ。
  • Webアプリケーションはアカウント管理にOSのフレームワークを利用せず、自前で行っている例が多い。これはもちろん元々セキュリティのためで、OS上は一番弱い権限のユーザに閉じ込めておくことでOS自体を守ろうとする運用が通常だった。これはOSに重要な情報がありWEB上に重要な情報がないという状況では正しかったが、現在はむしろ逆にWEB上にこそ大切な情報が埋まっている。にもかかわらず、自前でアカウント管理を行うことによってこれまたバグの元凶になっている。かといってそう簡単にOSのフレームワークにWEBアプリケーションのアカウント管理を任せるわけにはいかない状況だが、うまくOSの方もWEBアプリケーション向けの切り口を設けることができればもう少しマシなデータ保護が提供されると思うのだが。
  • Webアプリケーションは安く作れるという幻想が広まっている。確かにWebアプリケーションは比較的動かすまでのハードルが低いが、セキュアな状態に作りこむまでのハードルは決して低くない。その認識が、「お金を出す側」にない。しかも困ったことにアプリケーションが動いているかどうかは誰にでもわかるが、セキュアかどうかは簡単にはわからない。このことも、やはり「お金を出す側」にわかってもらえていない。

まぁいまさらのことだと思うんだけど・・・言うとウケちゃうのもやや複雑な心境。