やさしいネットワークとセキュリティ

ネットワーク・セキュリティエンジニアの視点から各種テクノロジーと資格試験対策をやさしく解説します。

情報処理安全確保支援士【H31春午後Ⅰ問1設問1】

この問題の主題は「Webサイトのセキュリティ」 

小売業が運営しているWebサイトでの情報連携を題材に、Web APIを設計する能力を問われています。

設問1 キーワード

Cookie

HTTPプロトコルにおいて、WebサーバがアクセスしてきたWebクライアントに対してユーザ識別情報などを一時的に保管する仕組み。Webクラアント側は次回以降のWebサーバへのアクセスにおいてHTTP上にCookie情報を含めることで、WebサーバがWebクライアントを特定することができる。

CookieはWebクライアントとWebサーバ間のセッションIDを保持しており、これを適切に管理できていないと、セッションハイジャックやクロスサイトスクリプティングなどの攻撃が成立してしまう。

Web API

HTTPなどWeb環境において、自身の機能を外部プログラムから呼び出して利用するためのインタフェース。送受信されるデータの形式には、HTML、XML、JSONなどがある。

JSON(JavaScript Object Notation)

JavaScriptにおけるオブジェクトの表記法を応用したデータ形式で、複雑なデータも簡潔に表記することが可能である。

スクリプト

プログラムの種類の一つで、コンパイルや実行可能ファイル変換などが不要で、ソースプログラムのまま即実行可能なプログラム。

JSONP(JSON with Padding)

JSONに関数呼び出しなどの機能を付加したもので、Webブラウザが表示しているサイトとは別のドメインのデータにアクセスすることが可能となる。

CORS(Cross-Origin Resource Sharing)

HTTPヘッダを利用して、異なるドメイン(オリジン)へのデータにアクセスする仕組み。

オリジン

Webコンテンツのサイトをオリジン(源泉)という。

Same-Originポリシ

同一源泉ポリシーともいい、Webブラウザに備わっている機能。現在表示しているコンテンツ中のJavaScriptから同一サイト(オリジン)以外のサイトへはHTTPリクエストを送信させない制限のこと。

現状の同一源泉である判断基準は「同一スキーム」、「同一ホスト」、「同一ポート」である。(IETFにおいての規定)

スキーム

URI(URL)の先頭部分でリソースにアクセスする手段を示したもの。Webアクセスでは”http”、”https”である。

FQDN(Fully Qualified Domain Name)

ドメイン名の表記法で、トップレベルドメイン(TDL)、サブドメイン名、ホスト名などをすべて表記する。(「aolaniengineer.com」(末尾に「.」(ドット)をつける場合もある))

クロスサイトリクエストフォージェリ

攻撃者が用意したWebコンテンツにアクセスさせることで、ログイン中のサイトで意図しない操作を行わせる攻撃。ブラウザのCookieなどセッション管理の性質を利用する。

 問題文

それでは読み進めていきましょう。

序文には、現状の組織体系やサービス内容、ネットワーク構成と、課題や改善内容などが示されます。

感覚的にはこの時点ではあまり細かい部分まで理解する必要はありませんが、ストーリーを噛みしめるように読み進めて、全体の流れを理解しましょう。

f:id:aolaniengineer:20190819043305p:plain

ここまでの内容で述べられていることをマッピングすると以下のようになります。このように読み進める過程で、頭の中でイメージ化していきます。

f:id:aolaniengineer:20190814135307p:plain

 続けます。

f:id:aolaniengineer:20190819045216p:plain

情報連携機能をマッピングすると以下のようになります。

f:id:aolaniengineer:20190814140229p:plain

続けます。

f:id:aolaniengineer:20190819150106p:plain

スクリプトZをマッピングすると以下のようになります。

f:id:aolaniengineer:20190814140723p:plain

設問1

f:id:aolaniengineer:20190819150137p:plain

1)、(2)は同一文章内の穴埋めですので、一緒に考えていきます。

「スクリプトZは、(a)ポリシによって、(b)、(c)、(d)のいずれかが異なるリソースへのアクセスが制限される。そこで、Cさんは、この制限をう回するためにJSONPJavaScript Object Notation with Padding)を用いることを開発部のD課長に提案した。」

スクリプトZは、WebサイトAからWebブラウザに返され、WebサイトBにリクエストするものです。

WebブラウザのJavaScript実行環境においては、あるWebサイトのスクリプトから、そのサイトとは異なるドメインのWebサイトのデータは読み込むことはできません。

これをSame-Originポリシ(SOP、同一生成元ポリシ、同一オリジンポリシ)といいます。
同一かどうかチェックするパラメータは、URLに含まれるスキーム、FQDN、ポート番号です。

したがって正解は以下の通りです。

「スクリプトZは、(aSame-Origin)ポリシによって、(bスキーム)、(cFQDN)、(dポート番号)のいずれかが異なるリソースへのアクセスが制限される。」

理解のポイントは以下の通りです。 

Same-OriginポリシによるWebサイト間アクセスの制限について、用語と意味を理解する

3

「次に、被害者に①特定の操作をさせた上で、そのページにアクセスさせると、攻撃者が被害者の会員情報を窃取できてしまう。」 

会員情報を窃取するには、ユーザがログインした状態であることが前提になります。

この代表的な攻撃はクロスサイトリクエストフォージェリです。

この問題の場合、被害者がWebサイトBにログインした状態で攻撃者のWebサイトにアクセスさせることで、偽スクリプトZを実行させます。これによりWebサイトBから被害者の会員情報を窃取できてしまいます。

したがって正解は以下の通りです。

WebサイトBへのログイン

理解のポイントは以下の通りです。 

攻撃者が会員情報を窃取する流れを理解する

www.aolaniengineer.com

www.aolaniengineer.com