CGMでの情報漏えいについて考えてみたいと思う。とは言っても、試験的な議論なので、いろいろ問題があるのはご容赦願いたい(筆者の書く物はだいたいが、ご容赦願いたい物ばかりであるが……)。 そもそもCGMって、根本的に、サービスとして、セキュリティ上、いろいろ問題があるじゃないかと思うのである。 本稿では、検索エンジン等を利用してアクセス(適切な利用)したら、通常アクセスされるはずのないページが表示(不適切な結果)されてしまった「招かれざる客」について考えてみたい。●防御ツールのない不当な利用者のプログラム上正当な閲覧 一般的にサーバからの情報流出を防御するためのツールとしては、アプリケーションファイアウォールなどがある。 プログラム上不適切な利用に対しては有効であるが、プログラム上適切だが、不適切な結果となる利用では有効とはならない可能性が高い。理由は自明で、プログラム上不正でないが不適切な結果となるものを判別することが難しいからである。 この手の攻撃に対しては、WAFがもっとも近い防御ツールになると思う。通常、WAFは下記のような防御方法を持っている。・入力値検査 ホワイトリスト、ブラックリストで入力値を検査・出力内容のクローキング Webで出力する内容を検査し、個人情報などがあればブロックする・画面遷移のチェック しかし、残念ながら、いずれの方法でも「招かれざる客」を防御することができない。招かれていなくても、客は客ということが問題なのである。 まず、入力値検査は「プログラム上正当な閲覧」である以上、ホワイトリストもブラックリストもかいくぐってしまう。 クローキングの場合は、一定の条件下ではブロックできるが、ブロックできないケースも多い。個人情報を出力するのが正しいケースでは、ブロックできない、というか、本来、個人情報を出力するのが正しいページではブロックしようがない。CGMでは登録者の個人情報を出力するページが必ずある。このページに関してはブロックできない。 例えば、CGMのサイトの多くは、登録者個々人ごとにマイページを表示するようにしている。これをクローキングでブロックすることはできない。ブロックするためには、マイページ機能をやめるしかない。 もっと正確にいうと、もともとクローキングはきわめて限定的な効果しかない。なぜなら、クローキングはサーバ内に存在している情報をブロックする防御方法である。言い方を換えると、保有しているが、表示することはない情報をブロックする。保有しているが、表示することはない情報というのは、非常に限定されたものでしかないと考えられる。ほとんどの情報は表示する必要がなければサーバ上に置かなければいいのである。利用者に見せる必要がないなら、個人情報を外部からアクセス可能な場所に置く必要性は全くないだろう。 画面遷移のチェックはある程度有効だが、これを事前に網羅的に定義することは非常に困難であり、その後のサイトの改変などにおいても同様の手間が発生してしまう。有効だが、フェールセーフとして機能させるのは大変である。 このように見てくるとWAFはCGMからの情報漏えいにとっては、あまり有効ではないと言えるだろう。特に「招かれざる客」に対しては、かなり心許ない。●セキュアプログラミングとセキュリティポリシーの徹底で回避できるか? CGMの「招かれざる客」のもっとも効果的な回避方法は、セキュアプログラミングとセキュリティポリシーの徹底だろうと思う。 しかし、それは必要条件であって… 【執筆:Prisoner Langley】【関連記事】CGMにおける「招かれざる客」問題 「プログラム上適切だが、不適切な結果となる利用」について(1) https://www.netsecurity.ne.jp/3_12876.html CGMにおける「招かれざる客」問題 「プログラム上適切だが、不適切な結果となる利用」について(2) https://www.netsecurity.ne.jp/3_12915.html 【関連リンク】セキュリティコラムばかり書いているLANGLEYのブログ http://netsecurity.blog77.fc2.com/ ── ※ この記事は Scan購読会員向け記事をダイジェスト掲載しました 購読会員登録案内 http://www.ns-research.jp/cgi-bin/ct/p.cgi?w02_ssw