TOP設計・移行・活用> 非情報システム系からの発注に注意
脆弱なWebアプリケーション
脆弱なWebアプリケーション

第2回:ファイル流出
著者:セントラル・コンピュータ・サービス  長谷川 武
2005/4/27
前のページ  1  2   3  4  次のページ
非情報システム系からの発注に注意

   ところで、コンピュータやネットワークに詳しい読者の皆さんは、そんな間違いは自分の周りでは決して起こらないぞ、とお思いだろう。それは確かだと思う。ただし、前述のような小規模なアンケートサイトは、情報システムではなく広報や総務部門などから小さなデザイナーハウスに発注されることがある。

   その場合、Webシステムにあまり詳しくない発注担当者が、アンケート回答結果のファイルをどのように保護すべきかの注文を付けずに業者に任せ、業者も深く考えずにサイトを構築してセキュリティ事故が起こる、といったことが過去にはあったのである。

サーバによるアクセス制限

   Web公開領域に置いてあるファイルであっても保護する手だてはある。ApacheやInternet Information ServicesなどのWebサーバソフトウェアは、公開コンテンツにアクセス制御を施す機能を備えている。この機能を使って一般には見せない、というように制限をかけることができるのである。

   Web公開領域にファイルを蓄積していたが、Webサーバソフトウェアのアクセス制御機能を利用して秘密ファイルが一般からアクセスされることを防いでいたサイトが実際に存在した。ところが、そのサイトからも情報が流出する事件が起こってしまったのである。なぜそのようなことが起こったのだろうか。


制限が外れていても気づきにくい

   営業用に運用されているWebサーバのコンピュータにも、OSのパッチあて、障害が発生したディスクボリュームの交換などのため、定期的あるいは不定期に保守作業が発生する。保守作業の種類によっては、Webサーバソフトウェアのアクセス制限パラメータがリセットされてしまい、もう一度所定の内容に設定し直す必要が生じる。この作業を見落としていると、守られていたはずのファイルがいつの間にかインターネットから閲覧可能になっているという事態が起こる。

   もう一つのトラブルの可能性はバックアップマシンである。保守作業の間もコンテンツ提供を停止しないようにしているサイトでは、メインマシンを止めている間バックアップマシンを使ってコンテンツの公開を続ける。このとき、バックアップマシンのWebコンテンツのアクセス制御に関わるパラメータの設定が、メインマシンほどきめ細かに設定されないような略式の運用が行われていると、必要な保護が失われてしまう。

   設定の誤りでアクセス制御が外れてしまっていても、本来のWebコンテンツへのアクセスやCGI利用は以前のまま問題なく行えるので、困ったことにこの種のミスが起こっていても気づきにくい。場合によっては、ファイルの暴露が長期間に及ぶことがある。

   Webサーバソフトのアクセス制御機能は役に立つが、この機能一つだけに頼ってファイルを保護しようとしてはいけない。より確実にファイルが保護される場所、すなわちWeb公開領域でない場所にファイルを格納すべきなのである。ただし、Web公開領域でない場所に置いてあるはずのファイルがインターネットから読み出されてしまうという問題(後述)も存在するから油断ならない。


アクセス制御が外れてしまう
図2:アクセス制御が外れてしまう



危険な静的コンテンツ

   秘密保持が必要なファイルを、誤って静的コンテンツとして開示してしまうことがある。静的コンテンツとは、サーバ上のWebアプリケーションプログラムを動作させず、URLで直接ファイルを呼び出す形のコンテンツだ。つまり、ごく普通のWebコンテンツである。

   これはある会員制サイトで起こった事故の例だが、会員プロフィールページに貼り付けられた本人の顔写真の画像が静的コンテンツとして貼付けられていたことがあった。そのため、誰でもこれらの顔写真を閲覧でき、騒ぎになったのである。

   これは小さな勘違いがもとで起こったものと筆者は推測している。われわれがWebページの中に画像を貼り付けるときには、ページを構成するHTMLソースコードの中に以下のようなタグを書いて、貼り付ける画像ファイルのURLを指定する。

<img src="http://domain/dir/file.jpg">

   ロゴ画像などの場合はこのやり方で特に問題は起きないし、画像はこのようにして貼り付けるものだ、というように担当者が思い込んでしまったとしても無理はない。ただし、このように貼り付けた画像ファイルは、ブラウザのアドレスバーに直接URLを入力して呼び出すことができる。したがって、顔写真をはじめ秘密保持が必要なファイルをこの形で提供してはならない。

   特に問題のサイトの顔写真は会員番号をファイル名に含む形になっており、例えば次のように順番に試していくことによって、部外者がすべての会員の顔写真を閲覧できた怖れがある。

http://domain/images/member0001.jpg
http://domain/images/member0002.jpg
http://domain/images/member0003.jpg
……
プログラムでガードする

   上記の顔写真などのコンテンツは、必ずWebアプリケーションプログラムを経由させ、「動的コンテンツ」として提供しなければならない。例えば次のようなタグで画像をWebページに貼り付けるのである。

<img src="http://domain/dir/picture.cgi?file=member1234.jpg">

   そして、ファイルの内容を提供するプログラムを注意深く作成する必要がある。上の例では、今アクセスしているユーザに、指定されたファイル「member1234.jpg」の内容を見せて良いかどうか判定するロジック(=アクセス制御ロジック)を内蔵している必要がある。


注意すべき情報

   秘密保持を要するコンテンツは、すべてアクセス制御ロジックを備えたプログラム経由でユーザに提供すべきだ。すでにファイルとして存在するものは、上記の顔写真画像の例のようにうっかり静的コンテンツとして開示してしまいがちだが、ファイルの内容のデリケートさに応じて適切な提供の仕方を選ばなくてはならない。特に次のような情報は注意を要する。

  • 個人情報が含まれるアンケート回答
  • 会員の顔写真
  • 旅行申し込み内容
  • 医療記録
  • 多重債務記録など
前のページ  1  2   3  4  次のページ


セントラル・コンピュータ・サービス株式会社
著者プロフィール
セントラル・コンピュータ・サービス株式会社  長谷川 武
シニア・セキュリティ・スペシャリスト、IPA 非常勤研究員。2002年にはIPA ISEC『セキュア・プログラミング講座』の制作ディレクターをつとめた。これを契機に、現在は勤務先とそのパートナー企業を通じてセキュアプログラミングセミナー/実習/スキル評価テストといった教育サービスを「TRUSNET(R)アカデミー」として提供している。問い合わせE-mail:info@trusnet.com


INDEX
第2回:ファイル流出
  はじめに
非情報システム系からの発注に注意
  逆に情報を流出
  ディレクトリリスティング