平成25年秋 応用情報技術者試験 午後 問8
問8 Webサイトのセキュリティ強化策に関する次の記述を読んで、設問1〜4に答えよ。
A社は、家庭向けのソフトウェアを製造販売する会社である。A社のWebサイトは、自社の会社情報や製品情報などを掲載しており、アクセスしてきた全ての人に同じ情報を提供する静的なページで構成されている。このたび、ユーザサポートの向上を目的としてWebサイトを更改し、Webサイト内に会員専用のサイトを設けることにした。会員専用サイトでは、ユーザIDとパスワードでユーザを認証し、ユーザが購入した製品や興味のある製品に関する詳細な技術情報を含むページを動的に生成するWebアプリケーションを用いる。
〔セキュリティの強化〕
A社のセキュリティ担当課長は、今回の更改に併せて、Webサイトのセキュリティを強化したいと考えている。想定する脅威としては、SQLインジェクション、Webサイトの改ざん、クロスサイトスクリプティング、認証情報の盗聴の四つを懸念している。これらの脅威に対するセキュリティ強化策を検討した結果、セキュアプログラミングを意識してWebアプリケーションを開発することとし、さらに(1)〜(3)の3点を実施することにした。
(1)更改前は全てHTTPでアクセスさせるようになっていたWebサイトを、①暗号化されていないデータがそのままインターネット上に流れては問題がある部分では、HTTPSでアクセスさせるようにする。HTTPSでアクセスさせるべきページにHTTPでアクセスされた場合は、クライアントにHTTPSのURLをリダイレクトで返し、自動的にHTTPSで再アクセスさせるようにする。
暗号化せずにインターネット上に流れては問題があるデータを二つ(本文中の字句を用いて)→ユーザID、パスワード
暗号化されないデータは盗聴によって不正に利用されるリスクがあります。本文では想定する脅威として「認証情報の盗聴」が挙げられています。この場合の認証情報は、会員専用サイトにログインする際に利用するユーザIDとパスワードになります。
どの脅威に向けた強化策か→認証情報の盗聴
HTTPSにより提供可能な機能は、「通信の暗号化」、「認証」、「改ざん検知」であり、盗聴に対して有効ですが、その他の攻撃そのものを防御することはできません。
(2)更改前はDMZに配置し、インターネットから直接アクセスさせていたWebサーバを、インターネットから直接アクセスできない内部のLANに移設する。DMZにはロードバランサと2台のリバースプロキシサーバを配置する。ロードバランサは、ユーザからのHTTP/HTTPSリクエストを、Cookieの情報を基にWebアプリケーションのセッションを維持するようにリバースプロキシサーバに振り分ける。各リバースプロキシサーバは、受け取ったリクエストを、対応するWebサーバに転送する。
どの脅威に向けた強化策か→Webサイトの改ざん
WebサーバがDMZに配置されている場合には、インターネットからWebサーバに直接アクセスが可能ですが、内部LANに移設した場合には、直接アクセスができなくなります。これにより、Webサーバ自体にアクセスする「Webサイトの改ざん」へのセキュリティ強化が図れます。
(3)リバースプロキシサーバには、WAF(Web Application Firewall)の機能をもたせ、ブラックリストによる検査によって外部からの攻撃を防御する。ブラックリストには、Webアプリケーションの脆弱性を悪用した攻撃の特徴的なパターンを登録しておく。
どの脅威に向けた強化策か→SQLインジェクション及びクロスサイトスクリプティング
WAFは、その名前のとおり、Webアプリケーションに特化したファイアウォールです。通常のファイアウォールの機能であるIPアドレス、ポート番号を対象としたパケットの検知・遮断以外に、パケットのペイロード(データ、アプリケーション層のヘッダ)も対象にします。
したがってアプリケーションの脆弱性を突いて攻撃する「SQLインジェクション」、「クロスサイトスクリプティング」へのセキュリティ強化が図れます。
更改後のA社Webサイトのシステム構成を図1に示す。
〔WebサイトでHTTPSを使用するための準備〕
HTTPSを使って通信するためには、(a:SSLサーバ証明書)を取得する必要がある。(a:SSLサーバ証明書)の申請には、識別名(Distinguished Name)が必要になる。識別名は、国コード、都道府県名、市区町村名、組織名、コモンネーム(SSL接続するサイトのFQDN)から構成される。A社では、SSL通信を行うWebサイトのURLを”https://www.a.co.jp/member/”とし、識別名を表1のように決定した。
A社のWebサイト管理者は、識別名を決定し、コモンネームの重複がないことを確認した後、証明書署名要求(CSR:Certificate Signing Request)を生成し、認証局に申請することで(a:SSLサーバ証明書)を取得した。証明書署名要求には、識別名と(c:公開鍵)が含まれており、認証局から取得した(a:SSLサーバ証明書)を機器に導入する際には、(c:公開鍵)とペアを成す(d:秘密鍵)が必要になる。(a:SSLサーバ証明書)と(d:秘密鍵)を機器に導入し、HTTPSでのアクセスが可能になるよう設定した。
a:SSLサーバ証明書
HTTPSを使った通信では、SSL/TLSにより、公開鍵証明書による通信先の認証、共通鍵暗号による通信の暗号、ハッシユ関数による改ざん検知などの機能などを利用して通信します。
通信に先立ってサーバが自身のサーバ証明書(公開鍵証明書)をクライアントに送信し、クライアントが公開鍵証明書に付与されている認証局(CA)のディジタル署名を検証することでその公開鍵とサーバの正当性を確認します。
SSLサーバ証明書を導入する機器と、その機器でなければならない理由→ロードバランサ/Cookieの情報を参照する必要があるから
ユーザからのHTTP/HTTPSリクエストの通信の流れを確認すると、以下の記述があります。
ロードバランサは、ユーザからのHTTP/HTTPSリクエストを、Cookieの情報を基にWebアプリケーションのセッションを維持するようにリバースプロキシサーバに振り分ける。
Cookieの情報はHTTPヘッダに格納されており、HTTPSで暗号化されたままではCookieの情報を参照することができません。そのためロードバランサで復号を行い、Cookieの情報を参照できるようにする必要があります。
b:www.a.co.jp
「コモンネーム(SSL接続するサイトのFQDN)」とあるように、コモンネームはサーバ証明書に含まれる登録情報で、有効なFQDNが登録されます。クライアント側でアクセス先のURLのドメイン名とコモンネームを比較することで、証明書の正当性を検証します。
ちなみにURL「https://www.a.co.jp/member/」の場合は、「https:」はスキーム名、「www」はホスト名、「a.co.jp」はドメイン名、「member」はファイル名で、ホスト名とドメイン名(サブドメイン名を含む)の全てを指定するものがFQDN(完全修飾ドメイン名)になります。
c:公開鍵
認証局に申請する証明書署名要求(CSR)には、識別名と公開鍵が必要です。申請が通ると、識別名に認証局のディジタル署名が付与されたSSLサーバ証明書が返信され、証明書として有効な状態になります。
d:秘密鍵
HTTPSでは、クライアント側でSSLサーバ証明書に含まれている公開鍵で暗号化し、サーバ側で公開鍵に対する秘密鍵で復号することで通信を行います。
〔セキュリティの警告〕
Webサイトの更改から1年ほど経過したころ、会員からサポート窓口に、「WebブラウザからA社のWebサイトにアクセスした際に、”セキュリティの警告”ダイアログボックスが表示された。どうすればいいのか。」との問合せが寄せられた。”セキュリティの警告”ダイアログボックスに含まれていたメッセージを図2に示す。
サポート窓口担当者はセキュリティ担当課長に問合せに対する処置を依頼し、セキュリティ担当課長は、Webサイト管理者に対して、適切な対応をとるよう指示した。
【出典:応用情報技術者試験 平成25年度秋期午後問8(一部、加工あり)】
Webサイト管理者の適切な対応は→SSLサーバ証明書を更新する。
”セキュリティの警告”ダイアログボックスのメッセージで問題となっている箇所は、「このサイトのセキュリティ証明書は、有効期間に問題があります。」の部分で、サーバ証明書の有効期限が切れていることをブラウザが検知して警告しているものです。
したがって、対応としては、SSLサーバ証明書を更新することです。