CLAMP: Practical Prevention of Large-Scale Data Leaks

IEEE Symposium on Security and Privacy (Oakland) 2009で発表された論文を読んでみた。

SQLインジェクションなどにより、Webサーバが攻撃されて、DBに格納されている他のユーザの情報まで盗まれてしまう、というような攻撃への対策となる、Webアプリケーションサーバアーキテクチャの提案。

手法としては、Webのリクエストが来たら、ユーザ認証を行って、ユーザごとに別の仮想Webサーバ (WebStack) を作る。それぞれの WebStack は XenVM上で動くので、ユーザごとのサーバ側のアプリケーション・インスタンスが分離されるイメージ。さらに、DBのクエリーを制限するProxy (Query Restrictor) が WebStack からのDBクエリを仲介し、他のユーザに属するデータにアクセスできないような制限をかけることで、Webアプリケーションを信頼することなく、サーバ側のデータを保護できる、というもの。

感想:
今年のOaklandで発表された論文なのだが、正直あまり新しさを感じない。Xenで環境分離することによりユーザやドメインごとのデータを保護するというのは、最近ではすでにおなじみの手法だと思うし、ブラウザ側でやっているものは既にあったと思う (ちょっとどの論文だったか失念)。
Query Restrictorによる制限というのも、 「where UID=今アクセスしているユーザ」的な clause をSQL Query に追加しているだけに見える。
ユーザごとにVMインスタンスを起動するというのも、リソース使用量やパフォーマンスの面で、あまり現実的ではないのではないだろうか。