サイバーセキュリティはじめました

ハニーポット(T-POT)の検証や攻撃の実験など、サイバーセキュリティに関して少しずつ勉強しています。

【情報処理安全確保支援士試験】平成30年春期 午前Ⅱ 問1~5 の解説

当ブログ「サイバーセキュリティはじめました」は、サイバーセキュリティの初心者である私の備忘記録という側面から始めました。

過去の記事を読み返していると、初めは試行錯誤しながら色々なことに挑戦していましたが、最近は「ハニーポットはじめました」になっていた感がすごくあるので、ちょっと初心に帰って、ハニーポット以外のこともやっていきたいと思います。

もちろん、ハニーポットの記事も継続しますので、そちらもご覧いただければと思います。

新コーナーとしては、私の知識の復習と、これからセキュリティを勉強する方に少しでも参考になればと思い、IPAの情報処理安全確保支援士試験の問題を、私見で解説していきたいと思います。

 

 平成30年春期試験 午前Ⅱ

問1

問題

 CVSS v3 の評価基準には、基本評価基準、現状評価基準、環境評価基準の三つがある。基本評価基準の説明はどれか。

 

ア 機密性への影響、どこから攻撃が可能かといった攻撃元区分、攻撃する際に必要な特権レベルなど、脆弱性そのものの特性を評価する。

イ 攻撃される可能性、利用可能な対策のレベル、脆弱性情報の信頼性など、評価時点における脆弱性の特性を評価する。

ウ 脆弱性を悪用した攻撃シナリオによって、機会、正当化、動機の三つの観点から、脆弱性が悪用される基本的なリスクを評価する。

エ 利用者のシステムやネットワークにおける情報セキュリティ対策など、攻撃の難易度や攻撃による影響度を再評価し、脆弱性の最終的な深刻度を評価する。


解説

 CVSS(共通脆弱性評価システム)は、脆弱性を共通の評価基準で測定し、その脆弱性が持つ危険性等を評価する手法のことを言います。CVSS v3は、そのCVSSのバージョン3という意味ですね。

 CVSS v3では、「基本評価基準」「現状評価基準」「環境評価基準」の3つの基準で脆弱性を評価します。

①基本評価基準(選択肢:ア)

 脆弱性そのものの特性を評価し、CVSS基本値を算出します。この基準による評価の結果は、どの組織が実施しても同じものとなります。

②現状評価基準(選択肢:イ)

 この脆弱性が、現在、どの程度深刻な脆弱性なのかを評価する基準で、「現在、攻撃コードが出回っているか」「現在、パッチ等の対策が取られているか」など、現時点の状況を評価します。そのため、時間によって評価結果が異なります。

③環境評価基準(選択肢:エ)

 この脆弱性を有するシステムを使用しているユーザ等が、それぞれの環境に応じて、その深刻度を評価する基準です。そのため、この結果は、組織やユーザごとに異なります。

【参考リンク】 

共通脆弱性評価システムCVSS概説:IPA 独立行政法人 情報処理推進機構

 

選択肢ウは、何でしょうか…。機会、正当化、動機は不正のトライアングルの説明ですが、「脆弱性が悪用される基本的なリスクを評価」ということは、不正のリスクアセスメントでしょうか。

回答

 ア

 

 

問2

問題

 Webサーバのログを分析したところ、Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる、攻撃者が悪用しようとしている脆弱性はどれか。ここで、HTTPリクエストヘッダはデコード済みである。

[HTTPリクエストヘッダの部分]

 GET /cgi-bin/submit.cgi?user=;cat /etc/passwd HTTP/1.1

 Accept: */*

 Accept-Language: ja

 UA-CPU: x86

 Accept-Encoding: gzip, deflate

 User-Agent: (省略)

 Host: test.example.com

 Connection: Keep-Alive

 

ア HTTPヘッダインジェクション

イ OSコマンドインジェクション

ウ SQLインジェクション

エ クロスサイトスクリプティング


解説

 ここに出てきた脆弱性の特徴は、以下の通りです。

①HTTPヘッダインジェクション

 HTTPヘッダインジェクションは、改行コード「%0d%0d」をHTTPレスポンスヘッダに挿入し、その改行コード以降に、スクリプト等を埋め込んで意図しない動作をさせる攻撃のことを言います。

②OSコマンドインジェクション

 メールアドレスなどの入力フォームや操作を受け付けるWebサイトで、OSコマンドを紛れ込ませて、不正にそのコマンドを実行させようとする攻撃です。

 今回の問題文では、「GET /cgi-bin/submit.cgi?user=;cat /etc/passwd HTTP/1.1」に着目します。「GET /cgi-bin/submit.cgi?user=;」という部分から、おそらくユーザ名を入力させるフォーム等であると考えられそうです。ここに「cat /etc/passwd」と入力されています。「cat」コマンドは、UNIX系のOSコマンドで、ファイルをそのまま出力するコマンドとなります。つまり、「/etc/passwd」を出力してパスワードを抜き取ろうとしていると考えられますね。

 

SQLインジェクション

 OWASP TOP10にも出てくる有名な脆弱性SQLインジェクションは、アプリケーションが想定していないSQLを実行させることによって、不正にDBを操作する攻撃のことを言います。

クロスサイトスクリプティング

 クロスサイトスクリプティングは、動的Webページを閲覧した際に、その表示内容を生成する処理において、悪意あるスクリプトを紛れ込ませ、ユーザに実行させる攻撃のことを言います。

回答

 イ

 

 

問3

問題

 XMLディジタル署名の特徴のうち、適切なものはどれか。

 

ア XML文書中の、任意のエレメントに対してデタッチ署名(Detached Signature)を付けることができる。

イ エンベローピング署名(Enveloping Signature)では一つの署名対象に必ず複数の署名を付ける。

ウ 署名形式として、CMS(Cryptographoc Message Syntax)を用いる。

エ 署名対象と署名アルゴリズムをASN.1によって記述する。


解説

 XMLディジタル署名は、署名アルゴリズム、証明書、署名などのタグを定めて、任意のデータに対する署名やXML文書の任意のエレメント、コンテントに対して署名を付することができます。その署名形式は、XML署名として標準化された形式を使用します。XML署名の署名方式は、以下の3つの種類があります。

①デタッチ署名

 XML署名と、署名する対象が独立している署名方式です。1つのXML文書中であっても、エレメントやコンテントに対して、署名を付することができます。そのため、選択肢:アは正解となります。

②エンベローグ署名

 署名する文書から署名を生成する署名方式です。1つの文書に対して、複数の署名を付することが可能です。

③エンベローピング署名

 XML署名と文書の関係は、署名の下に文書が付く(署名の中に文書が格納されるイメージ)となる署名方法です。そのため、1つの署名対象には、親となる署名が1つだけとなりますので、選択肢:イは誤りとなります。

 

ちなみに、ウのCMS、エのASN.1はともにデジタル署名で使用されています。

 

回答

 ア

 

 

問4

問題

 エクスプロイトコードの説明はどれか。

 

ア 攻撃コードとも呼ばれ、脆弱性を悪用するソフトウェアのコードのことであるが、使い方によっては脆弱性の検証に役立つこともある。

イ マルウェアのプログラムを解析して得られる、マルウェアを特定するための特徴的なコードのことであり、マルウェア対策ソフトの定義ファイルとしてマルウェアの検知に用いられる。

ウ メッセージとシークレットデータから計算されるハッシュコードのことであり、メッセージの改ざんの検知に用いられる。

エ ログインの度に変化する認証コードのことであり、摂取されても再利用できないので不正アクセスを防ぐ。


解説

 エクスプロイトとは、脆弱性を悪用する攻撃のことを指しますので、エクスプロイトコードは、脆弱性を悪用するソフトウェアのコードのことを指します。そのため、正解は選択肢:アとなります。

選択肢:イ これは、マルウェア対策ソフトの「シグネチャ」「パターンファイル」の説明ですね。

選択肢:ウ メッセージ認証符号の説明ですね。

選択肢:エ ワンタイムパスワードの説明ですね。

 

回答

 ア

 

 

問5

問題

 シングルサインオンの実装方式に関する記述のうち、適切なものはどれか。

 

ア cookieを使ったシングルサインオンの場合、サーバごとの認証情報を含んだcookieをクライアントで生成し、各サーバ上で保存、管理する。

イ cookieを使ったシングルサインオンの場合、認証対象のサーバを、異なるインターネットドメインに配置する必要がある。

ウ リバースプロキシを使ったシングルサインオンの場合、認証対象のWebサーバを、異なるインターネットドメインに配置する必要がある。

エ リバースプロキシを使ったシングルサインオンの場合、利用者認証においてパスワードの代わりにディジタル証明書を用いることができる。


解説

 

 シングルサインオンとは、一度ユーザの認証を受けることで、複数のサービスやサーバのアクセスを可能にする認証のことで、サーバやサービスごとにユーザ認証を受けなくていい分、ユーザの利便性を向上させることができます。

 シングルサインオンの実装には、cookieの使用、SAMLの利用、リバースプロキシの利用という3つの方法があります。

cookieの使用

 初めにログインする際、Webサーバから認証サーバにアクセスして認証を行い、認証が成功すると、Webサーバ内のエージェントが識別情報をcookieとして生成し、クライアントに返します。次からは、そのcookieを使用して認証サーバに認証するという方式になります。cookieの性質から、その利用は同じドメイン内に限られます。 

 つまり、選択肢:ア 選択肢:イは誤りとなります。

SAMLの利用

 ドメインを超えてシングルサインオンを実装する場合に利用します。SAMLを利用する場合、認証情報の他に、アクセス制御情報、属性情報などを他のドメインに伝達するため、大規模なサイトであってもシングルサインオンを実現することが可能となります。

③リバースプロキシの利用

 すべてのWebサーバへのアクセスをリバースプロキシに集約させ、リバースプロキシが代理でWebサーバにアクセスします。リバースプロキシを利用する認証さえ実施すれば、その後のアクセスは、すべてリバースプロキシによってアクセスされますので、ユーザが認証を行う必要がなくなり、シングルサインオンを実現できます。

 リバースプロキシの認証にディジタル証明書を利用することは可能ですが、マルチドメインによる認証サーバの取り扱いは、非常に難しいため、認証サーバを別ドメインに設置するのは現実的ではありません。よって、選択肢:ウは誤りとなります。

回答

 ア