情報セキュリティ過去問平成27年春午後Ⅰ-問1,2を学習しました。

20150816_12_19_56_dscn0411

平成27年春午後Ⅰ-問1,2を学習

 

《学習内容まとめ》

  1. HTTPヘッダーインジェクション
  2. セッションフィクセーション
  3. cookieにsecure属性
  4. 感染したユーザIDの無効化
  5. やっぱり問題文に解答のヒントあり

1.HTTPヘッダーインジェクション

検索文字列に改行コードを2つ入れると、それ以降の文字列がレスポンスボディとしてブラウザに解釈される。

クエリ文字列のパラメタ例(問題分より抜粋):%0d%0a%0d%0a%3chtml%3e%3cbody%3e%3cscript%3ealert%28%221%22%29%3c%2fscript%3e%3c%2fbody%3e%3c%2fhtml%3e

(%221は%22の誤植?)

%0d%0a%0d%0aが2つの改行コード「CRLF」「CRLF」(「」含まず)を表しています。

レスポンスヘッダーとレスポンスボディは1行の空行(2つの改行が必要:1つの改行でレスポンスヘッダーが改行され、2つ目の改行で空行が挿入される)で区別されているだけです。

2.セッションフィクセーション

セッションの固定化:セッションIDを盗まれたり、しこまれたりしてセッションを攻撃者に乗っ取られます。

特にログイン前にセッションIDを発行し、ログイン後もそのまま同じセッションIDを使い続けるウェブアプリケーションの仕様はこの攻撃を受けます。

対策:

  1. ログイン前にセッションIDを発行しない。
  2. ログイン後に新しくセッションIDを発行し、ログイン前のセッションIDは無効にする。

3.cookieにsecure属性

せっかくhttpsでアクセスしていてもcookieにsecure属性を設定していない場合、httpを受け付けるページにアクセスするとセッションIDなどクッキーが平文で流出します。

各サーバの設定

Apacheの例:参考サイト:Setting Cookie Secure Flag – Apache

phpサーバの例:参考サイト:SSL で暗号化しても Cookie で secure 属性を指定しないと盗聴される可能性があるかもしれない

〔別件ですが〕cookieをjavascriptで利用できないように「httponly属性」も有効にしておきましょう。

4.感染したユーザIDの無効化

あるユーザのPCがマルウェアに感染しC&Cサーバにアクセスしていたばあい、感染PCをネットワークから切り離し、ユーザIDを無効化する。

5.やっぱり問題文に解答のヒントあり

情報セキュリティスペシャリスト試験では、解答のヒント(手がかり)が問題文に散りばめられています。

例1:問1設問3−(3)

「図9中の手順4及び5について、利用者Kがログインした後、攻撃者Jが利用者Kになりすますことができるのはなぜか。”セッションID”という字句を含めて40字以内で述べよ。」
手順4.利用者Kがログインする。
手順5.攻撃者Jは、利用者Kになりすまし、本来はアクセス権限がない画面にアクセスできるようになる。

解答の手がかりが、図9の攻撃手順の一例の中にありました。
手順1に「攻撃者Jが、試験用サイトの画面A…、セッションIDを取得する。…」という文章があり、手順4に「利用者Kがログインする。」という文章があります。

模範解答は、「攻撃者Jが取得したセッションID利用者Kにログインさせているから。」

どうです、かなり近いですね。本番でも、コレに気づくといいのですが。

例2:問2設問3ー(2)

「本文中の下線⑤について、これら3台のサーバ上で実施すべき対策を20字以内で述べよ。」
前略…サービスを停止できないことから、⑤これらのサーバ上で実行可能で効果の見込まれる対策を実施した。

解答の手がかりが、ページ12の〔初期対応〕文中にありました。
・ファイル配信サーバ上での当該利用者IDの無効化

模範解答は「Vさんの利用者IDの無効化

これも、かなり近いです。問題文をきちんと読んで理解していれば解答できますね。

例3:問2設問3ー(3)

「本文中の下線⑥について、ログの改ざんの痕跡を確認する方法を30字以内で述べよ。」
⑥これら3台のサーバ上のログに対する改ざんの痕跡が残っていないことを確認したか、Nさんに尋ねた。

手がかりは、下線⑥の中にありました。
”3台のサーバ上のログに対する改ざんの痕跡”とあるので、ログ管理サーバの出番です。前提に3台のサーバのログはログ管理サーバがsyslogで受信して3か月間保存されるとありました。この前提条件から3台のサーバ上のログが改ざんされていればログ管理サーバに保存されているログと比較することでその痕跡が分かるかもしれません。

模範解答は、「ログ管理サーバに保存されているログとの比較」

以上、こんな感じで設問本文にヒントが散りばめられています。