セキュリティ製品の基礎知識と導入手引き

【連載】情報セキュリティ運用の基礎知識

第3回 Web構築・運営における脆弱性とその解決法

湯田弘亮
シーフォーテクノロジー
2002/10/4

   Webサーバサイド(Webサイトを公開する側)のセキュリティ

 Webページの閲覧サービスを提供するWebサーバは、その公開性の高さから、数多くの攻撃対象になりやすい。サーバへの不正侵入、Webサイトからのデータ漏えい、改ざんといった事件が後を絶たないが、これらWebサイトを公開する側ではどのような対策を取ればよいのだろうか。

●ファイアウォールでWebサーバの防御を行う

 ファイアウォールは、企業など組織の内部ネットワークへの不正侵入や破壊行為、Webサーバなど外部へ公開しているサーバの防御などを行うための機能の概念であり、それを実現するためのソフトウェアやハードウェア製品が数多くある。一般的には社内ネットワークと外部ネットワーク(インターネット)の中継点に設置され、通過するネットワークトラフィックを監視して、設定したルールに基づいた正当な通信のみを行えるようにする。また不正な動きの検知も行う。Webサーバの場合、同一IPから短期間に大量のパケットを送り付けられた場合に、それを攻撃と見なして防御するといった活用方法が考えられる。ただし、どこからどこまでを攻撃と見なすかなど、きちんとしたルール決めが必要だ。また、ファイアウォールの導入形態も、ほかの公開サーバやネットワーク構成、運用の利便性、Webサーバ上で公開している情報の重要性や、サービスが停止した際の損害など、さまざまな観点から検討し、決定することが望ましい。

●Webサーバのセキュリティホールを狙った攻撃への対策

 ファイアウォールを導入したとしても、Webサーバ自体に対する危険性はそれほど薄れていないと考えた方がよいだろう。前述したとおり、ファイアウォールは不要な通信を遮断するが、Webサーバへの接続を行うHTTP、HTTPSサービスに対しては当然通信を許可する。現在の問題となっている攻撃の多くは、このようなWebページを公開するうえで必要な通信を利用して行われるものだからだ。それらの攻撃の多くはWebサーバ自体のセキュリティホールを狙って行われる。普段使用する必要のない拡張機能がデフォルトで使用する設定になっていた場合、そのセキュリティホールを突いた攻撃による被害が発生することも考えられる。

 セキュリティホールを狙った攻撃で大きな被害を及ぼすものがワームである。ワームとは、ネットワークを介して自己増殖をする不正プログラムのことを指し、主に電子メールに自己の分身を添付して自己増殖の手段を得る。攻撃対象となるのは主にクライアントマシンであり、OSやWebブラウザのセキュリティホールを突いて感染するが、最近ではWebサーバをスキャンして既知のセキュリティホールを持ったWebサーバに感染するパターンも出現し、大きな脅威になっている。

 2001年、立て続けに発見された「sadmind/IIS」「CodeRed」「Nimda」などのワームは、Webページの改ざん、バックドアの作成、ほかの特定サイトへのDos攻撃、Webサーバにアクセスしたクライアントマシンへの感染など、多様な被害をもたらした。どれも無差別にWebサーバを自動攻撃するので、Webサイトの規模にかかわらず、どのサイトでも攻撃を受ける可能性があるという点で、深刻な問題といえる。

 これらのセキュリティホールを狙った攻撃に対して、最低限行っておくべき対策は、ベンダや調査機関からの情報を日ごろからチェックし、OSやWebサーバ、Webブラウザなどの既存のセキュリティホールに対応する修正プログラム(パッチプログラム)を必ず適用することである。ワームに対しては、ウイルス対策ソフトを導入しておくことでも、ある程度は防御することが可能だ。また、サーバ側で提供するサービスを見極め、不要な機能を停止させるなどの適切な設定を行うことも必要である。セキュリティホールを突いた攻撃は、日々進化し種類も多様になっているので、情報収集の重要性をよく認識し、対策に努めるべきである。

●Webアプリケーションのセキュリティホール

 ここまでは、ファイアウォールでの防御、OSやサーバのセキュリティホール対策、ウイルス対策ソフトの導入を説明してきたが、もう1つ考えておかなければならない問題がある。

 ECサイトや、掲示板システムなど、動的にページを生成するサイトの場合、Webサイト自体の作りにセキュリティホール(Webアプリケーションのセキュリティホール)があるかどうかの問題である。Webサイトを制作する側は、特に注意しなければならない問題だ。

 Webアプリケーションは、クライアントから、通常のデータ入力フォームのほかに、URLやクッキー(Cookie)、HTML内のHiddenフィールドにパラメータを付加した形で情報を受け取る。これらの情報は、クライアントが容易に書き換えることができ、Webアプリケーションの制作側がそういう想定をせずに作成していると、第三者によるなりすまし、個人情報の漏えい、改ざんを許してしまう。

一部のWebアプリケーションのセキュリティホールへの攻撃は、標準的なWebに関する技術の知識を持つ者であれば容易に思い付くし、だれでも試すことができる。


URLのパラメータを変更することで別の情報が見られることがある。例えば、地図情報検索サイトなどでは、このパラメータを利用して情報を表示していることが多い。地図のように一般公開された情報であれば問題ないが、これが個人情報になると問題だ。


クッキーは、クライアントマシンのローカルファイルとして残るので、メモ帳で開くことができる。また、Webサイトとのセッションを維持するために使用されることも多く、この使用方法に問題があった場合もWebアプリケーションのセキュリティホールになり得る。


動的に生成されたHTMLソースをメモ帳で開くと、hiddenフィールドを見つけることができる。例えば、NAMEの値がKakakuだったとしたら、VALUEに入っている値が商品の価格だということが想像できる。Webサイトの作りが甘い場合、この値を書き換えたHTMLをWebブラウザで開き、送信ボタンを押すことでやり取りができてしまう。

 また、通常のデータ入力フォームからデータを送信する際の動作にも気を付けておきたい。利用者の入力データの確認画面ページを動的に生成するときなどの、「入力データをHTMLページへ埋め込む処理」を逆手に取り、悪意のあるスクリプトを入力された場合、対策を何もしていないと、生成されるHTMLページに悪意のあるスクリプトを埋め込んでしまうことになる。

 同様に、悪意のあるSQL文やUNIXコマンドを入力フォーム越しに実行される危険性、バッファオーバーフローを引き起こされる危険性がある。Webアプリケーションの制作側では、入力されたデータのチェック、スクリプトの無効化(サニタイジング)は必ず行うべきである。JavaScriptを用いて、Webブラウザ上で簡易的にチェックを行っているだけのWebアプリケーションもあるようだが、Webブラウザの設定でJavaScriptが使用不可だと意味がない。入力データのチェックは基本的にサーバサイドで行う必要がある。

 クロスサイトスクリプティングも、上記のような簡単なWebアプリケーションのセキュリティホールを応用した攻撃手法である。そのほかにも、アンケート結果や個人情報などをファイルで保存する場合の保存場所や管理の問題、データベースと連携したWebアプリケーションを制作する場合は、データベースへのアクセス方法の問題などを考慮する必要がある。

※参考記事 「クロスサイトスクリプティング対策の基本

 Webアプリケーションのセキュリティホールを防ぐには、設計段階からセキュリティを十分考慮し、稼働前は十分な動作チェックを行うことが重要である。安全性を検証するツールやサービスも登場しているので、それらを有効利用することも検討するとよいだろう。

 セキュリティ対策がなされずに、問題が発覚するWebサイトが多いのは、そのような状況を軽視し、制作期間・コスト面で無理のある計画を立ててしまっているからではないだろうか。CMと連動したキャンペーンサイトや、一時的なアンケート収集ページなどを制作する場合は、特にそういった傾向が強い。少ない予算と厳しいスケジュールに間に合わせるために、セキュリティ対策の優先度が低くされてしまうのだ。企業としてWebサイトを公開するのであれば、どのようなページであれ、実際に被害が起きることを想定し、その影響を十分検討したうえで、セキュリティ対策を含めたWebサイト構築・運用を進めていくことが望ましい。

●Web改ざん検出ツール

 既存のセキュリティ対策に万が一不備があり、それをくぐり抜けたクラッカーにWebページを改ざんされてしまう恐れも考えられる。大規模なWebサイトで、人手を使い、常時定期的にアクセスしてページが改ざんされているかチェックするのは、効率的ではない。

 Webサイトの改ざんを効率的に常時チェックする製品として、Web改ざん検出ツールが増えてきている。

 Web改ざん検出ツールはWeb サーバ上で公開されるWeb ページの完全性を自動的に検証するソフトウェアである。主な機能としては、以下のものが挙げられる。

  • ページを構成するファイルが改ざんされていないかをチェックする。
  • 改ざんされた場合、改ざんページをあらかじめ準備しておいた代替ページに置き換える。
  • 不正改ざんを管理者にメールで通知する。
 これらの機能により、Webページ改ざんによる企業のイメージダウンやそれに伴う経済的損失を最小限にとどめることが期待できる。これらは、Webサイト上で公開している内容の重要性を判断したうえで、導入を検討するのがよいだろう。

※既存のシステムの問題点として、DNS(Domain Name System)サーバを攻撃された際の対応が挙げられる。DNSへの攻撃で、ドメインネームとIPアドレスとの対応を書き換えられた場合、正当なURLを用いてコンテンツファイルを開いたつもりでも、正当ではない別のコンテンツファイルを開いてしまい、Webサイトが改ざんされたかのように見えてしまう。既存の改ざん検出ツールではこの検出をすることは難しい。

   クライアントサイド(Webサイトを閲覧する側)でのセキュリティ

 サーバサイドでのセキュリティ対策を簡単に説明してきたが、これらを少しでも理解しておけば、Webサイトを閲覧する側の対策を想像しやすいのではないだろうか。

 組織の内部ネットワークから外部ネットワーク(インターネット)にアクセスする場合は、外部からの不正アクセスを防ぐためファイアウォールの設置など、何らかの対策を検討するべきだろう。また、クライアントマシンのOSやWebブラウザのセキュリティホールには、パッチプログラムを必ず適用すべきであるし、ワーム対策としてウイルス対策ソフトの導入を検討した方がよい。Webブラウザの設定で、JavaScriptやクッキーを使用不可にしておくという手段もあるだろう。

●Webサイトの不正利用を制限するWebフィルタリングソフト

 Webの利用は、企業にとってビジネスを円滑に進めるために、欠かすことのできないものになっている。しかし、社員による私的利用があった場合、業務効率の低下や、Webサイト経由でワームに感染するといった被害などの危険性が発生する。従業員がWebサイトにアクセス中、道徳的に問題のある行動を取った場合などは、企業にとって重大な損害を与える可能性もある。

 例えば、勤務時間中に従業員があるWebサイトの掲示板に問題のある書き込みをしたらどうなるだろうか。掲示板によっては、書き込み元のIPアドレスを公開しているサイトもあり、その社員個人だけでなく、書き込み元となった企業自体のイメージが大きく損なわれる可能性があるのだ。

 これらのリスクを防ぐ製品として、Webフィルタリングソフトが考えられる。Webフィルタリングソフトの機能としてまず挙げられるのは、有害なWebサイトの閲覧制限をかけられることである。具体的には、URLデータベースを基にアクセス制限を行うURLフィルタリング、キーワードやコンテンツの属性をスキャンし、アクセス制限を行うコンテンツフィルタリングなどがある。URLフィルタリングの場合、URLデータベースはソフトウェアベンダから提供されるのが一般的であり、登録されているWebサイトの数も多い。しかし、データベースに登録されていないサイトに対してアクセス制限はできない。コンテンツフィルタリングの場合、データベースに依存せず、特定の語句を含むWebサイトへのアクセス制限を可能とする。しかし、語句による機械的な検索のため、誤認する可能性もある。それぞれの特徴を生かした対応をすることが望ましい。

 以前は学校などの教育現場で使用されることが多かったが、最近では企業の導入が増えてきている。Webサイトの閲覧制限の機能とともに、インターネットのアクセス状況や日付別のトラフィック量などの活用状況を監視する機能も注目されているからだ。管理者側からしてみると、従業員の就業時間のうち、業務に関係のないWebサイト閲覧にかかる時間がどれだけの損失を生んでいるかの状況把握や、社員へ不正利用の抑止効果を持たせることが可能になる。有害なWebサイトのブロッキングツールとしてだけでなく、従業員の作業管理、生産性やセキュリティの向上、ネットワーク資源の有効活用などができることが、企業にとってWebフィルタリングソフトを導入する大きなメリットとなっている。

 Webフィルタリングソフトを導入する際は、対象者に監視を実施していることをきちんと公表し、どこからどこまでが不正利用なのか、罰則規定など運用ポリシーを明確にし、それに対して同意を得ることも重要である。

 対象者が内容を理解し、同意することによって、セキュリティに対する意識レベルを高めることができるからだ。

 Web利用に関する脆弱性とその解決法についての基本を解説をした。次回は、情報セキュリティ運用の基礎知識のまとめとして、情報セキュリティ導入に関する最も重要な上司を納得させる材料を解説する。


Index
第1回 情報セキュリティの基盤技術としての暗号
  Page 1
情報セキュリティ製品のガードの対象“情報資産”
基礎知識として、まずは暗号技術の理解から
情報化社会における情報セキュリティの意義と目的
情報セキュリティ製品の有する機能
  Page 2
そもそも暗号とは何か?
ハッシュ関数の役目
第2回 社内ネットワークにおけるクライアントの対策
  パスワード、認証製品によるローカル環境の情報セキュリティ
暗号化によるローカル環境の情報セキュリティ
電子メール通信環境における情報セキュリティ
第3回 Web構築・運営における脆弱性とその解決法
Page1
クライアントとサーバ間のユーザー通信に関するセキュリティ
Page2
Webサーバサイド(Webサイトを公開する側)のセキュリティ
クライアントサイド(Webサイトを閲覧する側)でのセキュリティ
第4回 経営層にセキュリティの重要性を納得させる
セキュリティは保険というありがちな認識
セキュリティ対策を実行するには「協力を促す資料」も必要
損失リスクを考慮した事前の資料を用意する

運用時の簡便性と適正性

■参考Webサイト

 IETF
 RFC2246(TLSプロトコル)
 IPAセキュア・プログラミング講座「WEBプログラマコース」

■関連記事

 S/MIMEでセキュアな電子メール環境をつくる!
 バイオメトリクス技術の特徴とPKI
 バイオメトリクスカタログ
 技術解説:IT管理者のためのIPSec講座
 電子政府に向け、諸外国の暗号製品規制調査を公開
 開発者が押さえておくべきセキュリティ標準規格動向


連載:情報セキュリティ運用の基礎知識


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間