平成18年度情報セキュリティアドミニストレータ午後U問題 (問1)

SEのための情報セキュリティ対策
情報セキュリティプロフェッショナル試験対策 過去問掲載

Home> 【午後】情報セキュリティアドミニストレータ過去問題 >

平成18年度情報セキュリティアドミニストレータ午後U問題 (問1)

平成18年度情報セキュリティアドミニストレータ午後U問題 (問1)


→詳細な解答を見る

問1 Webアプリケーションのセキュリティ対策に関する次の記述を読んで,設問1〜5に答えよ。
 
 A社は,若者向け衣料の製造販売業を営む,社員数800名の中堅企業である。東京に本社があり,海外に工場をもつ。3年前に,一般消費者を対象として,Webによる受注を始めた。昨年からは,希望する顧客に対してメールマガジン(以下,メルマガという)の配信も行っている。商品購入の際の支払は,銀行振込と代金引換のいずれかを選択できるが,クレジットカードによる支払は扱っていない。図1は受注システムの構成である。受注システムは,Webサーバ上のJavaアプリケーションの開発やデータベース(以下,DBという)サーバのDB設計を含め,A社システム部が独力で構築した。
 

 
 図2はWebシステム設計書である。
 
図2 Webシステム設計書(抜粋)
1.  サーバ構成
 Webシステムは,DMZ上のWebサーバと,内部LAN上のDBサーバから構成される。Webサーバ上では,WebサーバプログラムとJavaアプリケーションが稼働し,DBサーバ上では,DBMSが稼働する。DBには,Webページを生成するデータ(表示用DB)と,利用者がWebサーバに入力した情報を記録するデータ(入力用DB)が格納される。
2.  Webページ構造
 Webページは,内容が固定のページと,利用者からのアクセスの都度,内容を動的に生成するページから構成される。内容を動的に生成するページについては,Webサーバ上のJavaアプリケーションが利用者からの操作に応じて,表示用DBから必要なデータを読み出し,HTML文として組み立てる。
(以下,省略)
 
 3年前は,システムの脆(ぜい)弱性を突いたホームページ書換え事故が多発した後であり,DMZ上のWebサーバの要塞(さい)化には特に注意を払った。現在も,Webサーバ上のJavaアプリケーションを除き,WebサーバとDBサーバのOS,Webサーバプログラム及びDBMSについては,セキュリティパッチを欠かさずに適用している。さらに,ウイルス対策ソフトを導入し,適切に運用している。
 図3は,3年前に策定した,受注システムのセキュリティ対策方針である。受注システムの運用は,セキュリティの運用も含めてすべてA社内で対応し,外部業者には委託していない。
 
図3 受注システムのセキュリティ対策方針
1.  Webサーバ
(1)  Webサーバプログラムの脆弱性情報を継続的に入手し,脆弱性への対処を行う。
(2)  外部からのリモート操作は禁止する。
(3)  不要なサービスは停止し,不要なアカウントは削除する。
(4)  公開を想定していないファイルは,公開用ディレクトリに格納しない。
(5)  重要な情報を扱うページへのアクセスにはSSL通信を用いる。
2.  Webアプリケーション
(1)  DBアカウントに適切な権限を与える。
(2)  Webアプリケーションへの攻撃事例に対して,適切な措置を講じる。
3.  DBサーバ(省略)
4.  ファイアウォール(省略)
 
 この3年間,受注システムは大きなトラブルもなく,Webによる受注件数は順調に伸びてきた。特に,この1年間の伸びは著しく,A社の総売上高の20%を占めるようになった。
 最近,顧客の1人から“Webサイトの画面で入力を間違えたら,SQLの構文エラーメッセージが出てDBのテーブル名が表示された”といった情報が寄せられた。しかし,情報セキュリティ担当に指名されたばかりのA社システム部のC主任は,〔1〕安全上の問題に気付かず,何の処置も行わなかった
 
〔事故発生〕
 ある日,顧客の1人がA社のWebサイトにアクセスしたところ,ウイルスが検出されるという事故が発生した。事故の発生は,顧客からの苦情の電子メール(以下,メールという)が,A社の商品に関するお問合せ窓口に送られてきたことから露呈した。苦情のメールの内容は,“A社が配信したメルマガ中に記載されているA社のWebサイトのURLにアクセスしたところ,ウイルス警告のメッセージが表示された”というものであった。
 
〔事故対応〕
 顧客からの苦情のメールを受け,C主任は直ちに再現を試みたが,ウイルス警告のメッセージは確認できなかった。A社には,このような場合にどのように対応すればよいかが分かる社員がいなかった。C主任は考えあぐね,ウイルス対策関連サービス業者をインターネットで検索した。何社か選び電話で打診したところ,B社の技術力が高い印象を受けたので,電話に応対した技術担当のE氏に〔2〕苦情のメールをそのまま転送し助言を求めた
 E氏が問題のページにアクセスして再現を試みたところ,ウイルス警告のメッセージが表示された。そこで,E氏はC主任に対し,WebサーバのLANケーブルを抜き,すべてのサーバの電源を切らずにそのままにしておくことと,工事中画面が表示されるように設定されている予備のWebサーバに切り替えることを助言し,A社に駆け付けた。E氏の助言を受けたC主任は,上司のD部長の許可を得て,予備のWebサーバに切り替えた。
 E氏が,警告のメッセージが表示されたウイルスをインターネットで検索して概要を調べた結果,ウイルスKの可能性があることが分かった。しかし,E氏が現場で調査した範囲では,不思議なことに,WebサーバからもDBサーバからもウイルスKは発見できなかった。また,WebサーバやDBサーバの設定,及びパスワードの設定も特に問題は見当たらなかった。
 このような事態に初めて遭遇したD部長は,直ちに,社長名で情報セキュリティ委員会を開催し,自らリーダを務める緊急対応チームの編成を提案して,了承された。その日のうちに,B社に依頼した応援要員を含む緊急対応チームが招集され,原因究明を行う調査グループと顧客への対応を行う顧客対応グループの2グループが編成された。調査グループはウイルスKの感染経路の調査に当たり,顧客対応グループはメルマガ購読者に対する注意喚起メールの配信に当たった。注意喚起メールを配信した結果,“ウイルス警告のメッセージが表示された”との返信が3件あったが,幸いにして,ウイルスに感染して二次被害が発生したという報告はなかった。
 調査グループが解析したところ,表示用DBの一部が不正コードに置き換えられていたことが判明した。この結果から,この事故は,次のような過程で顧客のPCにウイルスKを感染させようとしていたと推測できた。
(1)  何らかの攻撃によって,不正コードが表示用DBに書き込まれた。この不正コードは,ウイルスを感染させるために,攻撃者が用意したサーバを強制的にアクセスするように仕組まれていた。
(2)  受注システムのWebページの閲覧によって,不正コードを含んだページが生成され,顧客のPCにダウンロードされると同時に,不正コードが実行された。
(3)  その結果,攻撃者が用意したサーバから顧客のPCにウイルスKがダウンロードされた。
 すべてのサーバのログを分析した結果,不正コードはSQLインジェクション攻撃によって表示用DBに書き込まれていたことが分かった。A社ではすべてのサーバでログを採取していたものの,SQLインジェクション攻撃の警告を表示する仕組みはなかった。また,A社が導入していたPC用ウイルス対策ソフトは,この時点ではウイルスKに未対応で,顧客から指摘を受けるまで異常を発見できなかった。
 このような外部からの攻撃が行われていたので,ほかにも攻撃を受け,顧客情報などが流出している可能性があり,事態は深刻であることが分かった。D部長は,緊急対応チームのメンバを総動員し,すべてのサーバのログを徹夜で精査したが,顧客情報などが流出したこん跡は特に見当たらなかった。
 
〔暫定対策〕
 顧客からのWebサイト再開の要望が多かったこともあり,原因が判明したところで,Webサイト再開に向けて検討を急いだ。次は,そのときのC主任とE氏の会話である。
 
C主任: 今回は,SQLインジェクション対策の不備を突かれてお客様に迷惑を掛けてしまいました。Webサイト再開に当たって,再度同様の攻撃を受けないように対処する必要があるので,どのような対策があり,最善策は何か,専門家の立場から助言してもらえますか。
E氏: 対策としては,Webアプリケーションファイアウォールを設置する方法とWebアプリケーションを修正する方法があります。後者は,エスケープ処理を施す方法と,DBMSの機能であるバインド機構を利用する方法が考えられます。SQLインジェクション対策のためのエスケープ処理とは,[  ア  ]の場合に,例えば,“’”であれば“’’”のように“’”を二つ続けた文字列に置換する処理のことです。
C主任: バインド機構を利用するというのはどういう方法ですか。
E氏: はい。これは,プレースホルダと呼ばれる一時的な特殊文字を使用してSQL文のひな形を用意しておき,後で実際の値(変数)を割り当ててSQL文を完成させる方法です。変数は[  a  ]にエスケープ処理されるので,DBMSの種類によって異なるエスケープ処理を意識する必要がなくなります。
C主任: なるほど。
E氏: 次にWebアプリケーションファイアウォールですが,これは[  b  ]のルールを登録する,いわゆるホワイトリスト方式のシステムで,ルールにないアクセスを阻止することができます。しかし,今からハードウェアやソフトウェアを手配してルールの設定をチューニングするのは時間が掛かるので,Webサイトの再開がいつになるか分かりません。お勧めするのは,SQL文を構成するすべての変数にエスケープ処理を施す方法です。
C主任: 部長からは,Webサイト再開を催促されているのですが,エスケープ処理には,どれぐらい掛かりますか。
E氏: すべてのWebアプリケーションプログラムをチェックして書換えを行うと,10日間は掛かると思います。
C主任: それでは早速,プログラムの修正に取り組むように,部長に提案してみます。
 
 Webによる受注件数が無視できない状況から,D部長は5日間でチェックと書換えを行い,終了次第Webサイトを再開すること,及び作業に当たっては修正漏れと間違いをなくすために,2人一組でクロスチェックを徹底することを指示した。
 B社の支援の下に,緊急対応チームとは別に編成されたチームのメンバは,連日徹夜ですべてのWebアプリケーションプログラムのチェック,書換え及びテストを5日間で完了させた。引き続き,OSを初期状態から再インストールした後,最新のセキュリティパッチを適用し,エスケープ処理が施されたWebアプリケーションをインストールして,6日目の夕方に,事故のおわびの一文を掲載して,Webサイトを再開した。
 
〔本格的対策〕
 D部長は,暫定対策が一段落したことから,今回の事故の教訓を生かした今後の対応について,C主任と検討した。
 
D部長: ところで,今回の事故だが,なぜ,もっと早く手を打てなかったのか。
C主任: SQLインジェクション攻撃のことは聞いていたのですが,受注システム構築時点では,実際の被害事例がなく,予算の制約もあって,対策の優先度を下げたと聞いています。その後も,そのままになっていたようです。
D部長: 最近は被害事例が少なくないのに,対処できなかったのはなぜか。
C主任: セキュリティ事故の情報がはんらんしており,すべてに対応することはできなかったからです。
D部長: すべてに対応する必要はない。言うまでもないが,受注システムの仕組みは,システムを構築した我々が一番よく分かっている。そのことを踏まえて,的確な行動ができるように考えよう。話は変わるが,事故対応に当たっては君も大変だったと思うが,反省点として思い付くことはあるかね。
C主任: はい。私が試行錯誤で対応せざるを得なかった点は問題だったと思います。万が一に備えた,緊急対応マニュアルの整備も必要だと思います。
D部長: そうか。その前に,今後このような事故が起きないように,受注システムのセキュリティを強化したい。これからは,特にWebアプリケーションのセキュリティ対策が重要だと思う。早速だが,検討に取り掛かってほしい。顧客には絶対に迷惑を掛けられないからな。
C主任: はい。早速,検討に取り掛かります。
 
 C主任は,インターネット上のWebサイトや専門書籍に記載されている一般的な対策事項を抜き出して,受注システムのセキュリティ強化要求仕様書(初版)を作成し,D部長に提出した。提出したセキュリティ強化要求仕様書(初版)を,図4に示す。これに対して,D部長は,〔3〕C主任がセキュリティ強化要求仕様書(初版)の作成工程で必要な作業を実施していないことを指摘した。
 
図4 セキュリティ強化要求仕様書(初版)
現在のA社の受注システムに関するセキュリティ対策強化のための要求事項
 
1.  入力検証及び不正データ入力時の無効化
 悪意のある文字列を組み込んでアプリケーションを攻撃しても,本来権限のないDBサーバにはアクセスできないようにすること。
2.  認証と承認
 なりすましや管理者権限の不正取得などができないような措置を講じること。
3.  適切なパスワードやセッション情報の設定
 パスワードやセッション情報を不正に使用されないように,適切な措置を講じること。
4.  ログの採取
 事故が発生した場合に追跡できる基礎情報を取得するために,各種ログを確実に採取する対策を講じること。また,ログへのアクセスは,権限者だけに限定すること。
なお,上記以外の事項に関しても,提案すべき対策などがあれば追加提案すること。
 
 C主任は,D部長の指摘に従って作業方法の見直しを行い,1か月掛けてセキュリティ強化要求仕様書(第2版)を作成した。セキュリティ強化要求仕様書(第2版)は,D部長の承認を得た後,B社に提示された。
 B社からは,A社の指定した期日に,図5のセキュリティ強化提案書が示された。C主任とD部長は提案書を詳細に評価し,提案がセキュリティ強化要求仕様書(第2版)を満たすものであることを確認し,B社に受注システムのセキュリティ強化対策の実施を発注した。
 
図5 セキュリティ強化提案書
 セキュリティ強化要求仕様書(第2版)に基づき,次のとおりご提案します。
第1ステップ
1.  入力検証及び不正データ入力時の無効化
 クロスサイトスクリプティング対策として次の強化を行う。
(1)  Webページに出力するすべての要素に対してエスケープ処理を施す。
(2)  <script>...</script>要素の内容を含むWebページを動的に生成しない。
2.  パスワード及びセッション情報の不正利用の防止
 セッション管理対策として,次の強化を行う。
(1)  セッション管理情報には[  c  ]を使用し,クッキーに格納する場合は有効期限を設ける。
(2)  HTTPS通信で利用するクッキーには,secure属性を加える。
3.  セキュリティ強化要求仕様書(第2版)に含まれていない重要事項
3.1  ドメイン乗取りの防止
 ドメイン名を管理する[  d  ]サーバが,正しく登録されているか,定期的に調査する。
3.2  ファイル不正アクセスの防止
(1)  外部からのパラメタに,Webサーバ内のファイル名を直接指定させない。
(2)  外部からの入力値でファイル名を指定する場合は[  e  ]ディレクトリを指定し,かつ,ファイル名にディレクトリ名が含まれないようにする。
第2ステップ
(以下,省略)
 

 
設問1 本文中の[  a  ]〜[  e  ]に入れる適切な字句を答えよ。
(1)  [  a  ]〜[  c  ],[  e  ]については,解答群の中から選び,記号で答えよ。
解答群
ア 異常系 イ 環境定数 ウ 擬似乱数 エ 固定
オ 自動的 カ シリアル番号 キ 正常系 ク 選択的
ケ 代替 コ 同時 サ プロセス番号 シ ルート
(2)  [  d  ]については,3字以内で答えよ。
 

 
設問2 A社が実施した事故対応について,(1),(2)に答えよ。
(1)  E氏は,事故発生の相談を受けたとき,C主任にすべてのサーバの電源を切らないように助言した。電源を切ると原因究明にどのような支障があるか。30字以内で具体的に述べよ。
(2)  緊急対応チームの顧客対応グループが,メルマガ購読者に対する注意喚起メールの配信のほかに至急実施すべきことを,20字以内で述べよ。
 

 
設問3 本文中の[  ア  ]に入れる適切な文章を,40字以内で答えよ。
 

 
設問4 C主任が取った行動について,(1)〜(3)に答えよ。
(1)  本文中の下線〔1〕で,C主任が気付かなかった安全上の問題とは何か。また,その問題をどのように処置すればよかったか。それぞれ30字以内で述べよ。
(2)  本文中の下線〔2〕で,C主任が取った行動はどのような問題を引き起こす可能性があるか。二つ挙げ,それぞれ15字以内で述べよ。
(3)  本文中の下線〔3〕で,必要な作業とは何か。20字以内で述べよ。また,この作業を実施しないことによって生じる問題は何か。30字以内で述べよ。
 

 
設問5 A社では,セキュリティ対策が不十分だったので,SQLインジェクション攻撃への的確な対応ができなかった。今後の様々な攻撃に対し,必要性が生じたときに遅滞なく対処するためには,どのようなプロセスを実行すべきか。二つ挙げ,それぞれ30字以内で具体的に述べよ。
 

→詳細な解答を見る


【午前】情報セキュリティアドミニストレータ
【午後】情報セキュリティアドミニストレータ

【午前】テクニカルエンジニア情報セキュリティ
【午後】テクニカルエンジニア情報セキュリティ

【午前】情報セキュリティプロフェッショナル
【午後】情報セキュリティプロフェッショナル



スポンサードリンク




スポンサードリンク




スポンサードリンク
免責事項 / サイトマップ / リンク /  問い合わせ
Copyright (C) 2008  SEのための情報セキュリティ対策  All rights reserved