ファイナンス、情報通信技術のスキル・アグリゲーション・サイト

' . iseeit.jp 情報通信技術 . '

【平成27年度秋期 SC 午後Ⅰ 問1】~情報セキュリティスペシャリスト試験(SC)の過去の出題より~

情報処理推進機構(IPA)が実施する情報処理技術者試験の「情報セキュリティスペシャリスト試験」(SC)午後Ⅰ試験・午後Ⅱ試験の過去の出題から、情報セキュリティへの考えを深めていきます。

過去の試験問題の全文と解答例、講評が、 https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html にて公開されています。ここから、各問における問題文内の見出し、図や表の標題、設問と公表されている解答例、そして、設問に関係すると思われる問題文中の文章を書き出しています。なお、関係する図については、上記の公開されている試験問題をご覧ください。

試験対策以外にも、情報セキュリティ学習をさらに進めるためのきっかけとなれば、と思います。

問1 ソフトウェアの脆弱性ヘの対応に関する次の記述を読んで,設問1~5 に答えよ。

Q 社の社外向け情報システムは,販売システム(以下,E システムという)と広報システム(以下,F システムという)から成リ,G 社のデータセンタに設置されている。E システムは Q 社の販売チャネルの大部分を担っており,保守のための時間帯を除き,常時稼働している。F システムは投資家などに対する財務情報・会社情報を提供している。

図1 社外向け情報システムのネッ卜ワ一ク構成

表1 E サーバのソフ卜ウェア構成

ソフトウェア 現在の動作権限設定 備考
OS
HTTP サーバ(WAF 含む) 管理者権限
WAS 管理者権限
Web アプリ E WAS の動作権限と同一

注記 HTTP リクエストは,LB → HTTP サーバ(WAF 含む) → WAS → Web アプリ E の順に処理される。

  • ・ルールは,[検証対象],[パターン]及び[動作]の三つを 1 行に記述する。
    • (例 : POST abc¥.exe 検知)
  • ・[検証対象]には,次のいずれかを指定する。
    • GET : GET メソッドのパラメタ名を検証対象とする。
    • POST : POST メソッドのバラメタ名を検証対象とする。
    • ANY : 任意のメソッドのパラメタ名を検証対象とする。
    • COOKIE : Cookie の名前を検証対象とする。
    • Multipart : Multipart/form-data のフィールド名を検証対象とする。
  • ・[パターン]には,次の要素で構成される正規表現を指定する。
    • ^ : 文字列の先頭にマッチする。
    • ¥W : 任意の非英数字にマッチする。
    • x|y : x 又は y にマッチする。
    • (x|y)z : xz 又は yz にマッチする。
    • [xyz] : x,y 又は z のいずれかにマッチする。
    • . : 任意の文字とマッチする。
    • ¥. : “.” とマッチする。
    • * : 直前の要素と 0 回以上マッチする。
  • ・[動作]には,次のいずれかを指定する。
    • 遮断 : 通信を遮断し,ログに記録する。
    • 検知 : 通信を通過させ,ログに記録する。
    • 許可 : 通信を通過させ,ログに記録しない。

図2 WAF のル一ルの記述形式

図3 WAF の動作

〔脆弱性の確認〕
S 主 任 : E サーバに対して,攻撃者が脆弱性 X をどのように悪用できるのか具体的に説明してくれるかな。
T さ ん : 表2の攻撃コードの例を使って説明します。攻撃者は攻撃コードを表2の項番の順に E サーバに送ることで,任意のコマンド “XXXX” を実行できます。表2の攻撃コードの送信後,WAS のアクセスログ(以下,WAS ログという)のファイルが a に作成されます。 今回の脆弱性情報によると,GET メソッドに限らず POST メソッド,Multipart/form-data の POST メソッド,Cookie による攻撃の可能性もあります。さらに,攻撃者が WAS ログを細工する可能性もあります。

表2 攻撃コ一ドの例

項番 攻撃コード 説明
1 GET /app1/app.action? ▲▲ .directory=webapps/ROOT WAS ログの出力先を公開ディレクトリ上に変更する。
2 GET /app1/app.action? ▲▲ .prefix=shell WAS ログのファイル名を指定する。ファイル名のプレフィックスを “shell” という文字列にして,拡張子を jsp にする。
3 GET /app1/app.action? ▲▲ .suffix=.jsp
4 GET /app1/app.action? ▲▲ .fileDateFormat=1 WAS ログの日付フォーマットの設定を “1” という文字列にする。WAS ログのファイル名が,shell1.jsp となる。
5 GET /app1/app.action?a=<%Runtime.getRuntime().exec("XXXX");%> 任意のコマンド “XXXX” を実行させるためのコードが WAS ログに記録される。
6 GET /shell1.jsp shell1.jsp を呼び出すことで,コマンド “XXXX” を WAS と同じ動作権限で実行する。

注記 ▲▲ は、“class.classLoader.resources.context.parent.pipeline.first” という文字列を示す。

〔脆弱性ヘの対策〕
T さ ん : 表3のように記述します。表3の[パターン]列には,正規表現で示された文字列を指定します。当初,① “^class¥..*” というパターンがセキュリティ専門家によって公表されましたが,これでは遮断されない攻撃が見つかリました。その後,表3に示す正しい[パターン]が別のセキュリティ専門家によって公表されました。

表3 WAF のル一ル例

項番 [検証対象] [パターン] [動作]
1 b (^|¥W)[cC]lass¥W c
2 d (^|¥W)[cC]lass¥W e
3 f (^|¥W)[cC]lass¥W g
T さ ん : 攻撃ではない HTTP リクエストを遮断してしまう h に注意する必要があります。例えば,表3のルールでは,“class.abc” を含む HTTP リクエストが遮断されてしまいます。さらに,WAF による対策に加えて,攻撃時のリスク軽減対策として,②現在の WAS の動作権眼設定を見直します

S 主任は,修正モジュールが提供されている場合は,一般的には修正モジュール適用による対策が望ましいが,本ケースでは WAF による対策を選択すベきと判断し,経営陣に説明して了承を得た。開発検証用のシステムで③動作検証を実施し,問題ないことを確認後,本番環境のシステムで設定を行い,E システムを再稼働させた。

本来ならば,追加した WAF のルールで攻撃を遮断する前に,④本番環境のシステムに追加したルールの[動作]に “検知” を指定し,一定期間運用するのが望ましい。しかし,今回は緊急対応のため,そのような運用はしなかった。

その後,Q 社では,脆弱性 X の修正モジュール適用による悪影響がないことを確認し,それを適用した。

設問1 E システム及び F システムそれぞれについて,Q 社のビジネスを踏まえて,情報セキュリティの3要索のうち重視すベき要素とその理由を,重視すベき要索は 5 字以内,理由は 25 字以内でそれぞれ述ぺよ。
設問 解答例・解答の要点
設問1 E システム 要素 可用性
理由 販売チャネルの大部分を担い,常時可用が必要なため
F システム 要素 完全性
理由 投資家に正確な財務情報,会社情報を提供するため
設問2 本文中の a に入れる適切な字句を,表2 中の字句を用いて 15 字以内で答えよ。
設問 解答例・解答の要点
設問2 a 公開ディレクトリ
設問3 〔脆弱性ヘの対策〕について,(1)~(4) に答えよ。
(1) 表3 中の b g に入れる適切な字句を,図2 中の字句を用いて答えよ。
設問 解答例・解答の要点
設問3 (1) b ANY b,d,f は,順不同
c 遮断
d COOKIE
e 遮断
f Multipart
g 遮断
(2) 本文中の 下線① に示した[パターン]にマッチする文字列を解答群の中から全て選び,記号で答えよ。

解答群

  • ア anObject.class.classLoader
  • イ class.ClassLoader
  • ウ class.classLoader
  • エ class['classLoader']

設問 解答例・解答の要点
設問3 (2) イ,ウ
(3) 本文中の h に入れる適切な字句を解答群の中から選び,記号で答えよ。

解答群

  • ア フェールセーフ
  • イ フェールソフト
  • ウ フォールスネガティブ
  • エ フォールスボジティブ

設問 解答例・解答の要点
設問3 (3) h
(4) 本文中の 下線② について,設定をどのように見直すベきか。25 字以内で述べよ。
設問 解答例・解答の要点
設問3 (4) WAS を必要最小限の権限で動作させる。
設問4 本文中の 下線③ について,WAF に関して具体的に何を検証すべきか。二つ挙げ,それぞれ 30 字以内で述べよ。
設問 解答例・解答の要点
設問4 ・脆弱性 X を突く攻撃を妨げること
・ E システム利用のための正常な通信が許可されること
設問5 本文中の 下線④ について,WAF のルールの[動作]に “検知” を指定し,ー定期間運用することにはどのような利点があるか。45 字以内で述べよ。
設問 解答例・解答の要点
設問5 販売機会損失など,ビジネスへの影響を与えずに誤検知の検証ができる。

ファイナンシャル・プランニング
6つの係数

終価係数 : 元本を一定期間一定利率で複利運用したとき、将来いくら になるかを計算するときに利用します。

現価係数 : 将来の一定期間後に目標のお金を得るために、現在いくら の元本で複利運用を開始すればよいかを計算するときに利用します。

年金終価係数 : 一定期間一定利率で毎年一定金額を複利運用で 積み立て たとき、将来いくら になるかを計算するときに利用します。

年金現価係数 : 元本を一定利率で複利運用しながら、毎年一定金額を一定期間 取り崩し ていくとき、現在いくら の元本で複利運用を開始すればよいかを計算するときに利用します。

減債基金係数 : 将来の一定期間後に目標のお金を得るために、一定利率で一定金額を複利運用で 積み立て るとき、毎年いくら ずつ積み立てればよいかを計算するときに利用します。

資本回収係数 : 元本を一定利率で複利運用しながら、毎年一定金額を一定期間 取り崩し ていくとき、毎年いくら ずつ受け取りができるかを計算するときに利用します。

積み立て&取り崩しモデルプラン

積立金額→年金額の計算 : 年金終価係数、終価係数、資本回収係数を利用して、複利運用で積み立てた資金から、将来取り崩すことのできる年金額を計算します。

年金額→積立金額の計算 : 年金現価係数、現価係数、減債基金係数を利用して、複利運用で将来の年金プランに必要な資金の積立金額を計算します。