令和6年春 午後Ⅰ 問3

  • URLをコピーしました!

問3 ローカルブレイクアウトによる負荷軽減に関する次の記述を読んで、設問に答えよ。

 A社は、従業員300人の建築デザイン会社である。東京本社のほか、大阪、名古屋、仙台、福岡の4か所の支社を構えている。本社には100名、各支社には50名の従業員が勤務している。

 A社は、インターネット上のC社のSaaS(以下、C社SaaSという)を積極的に利用する方針にしている。A社情報システム部ネットワーク担当のBさんは、C社SaaS宛ての通信がHTTPSであることから、ネットワークの負荷軽減を目的に、各支社のPCからC社SaaS宛ての通信を、本社のプロキシサーバを利用せず直接インターネット経由で接続して利用できるようにする、ローカルブレイクアウトについて検討することにした。

[現状のA社のネットワーク構成]

 現在のA社のネットワーク構成を図1に示す。

 現在のA社のネットワーク構成の概要を次に示す。

•本社及び各支社はIPsec VPN機能をもつUTMでインターネットに接続している。

•プロキシサーバは、従業員が利用するPCのHTTP通信、HTTPS通信をそれぞれ中継する。プロキシサーバではセキュリティ対策として各種ログを取得している。

•DMZや内部ネットワークではプライベートIPアドレスを利用している。

•PCには、DHCPを利用してIPアドレスの割当てを行っている。

•PCが利用するサーバは、全て本社のDMZに設置されている。

•A社からインターネット向けの通信については、本社のUTMでNAPTによるIPアドレスとポート番号の変換をしている。

[現在のA社のVPN構成]

 A社は、UTMのIPsec VPN機能を利用して、本社をハブ、各支社をスポークとする( ア )型のVPNを構成している。本社と各支社との間のVPNは、IP in IPトンネリング(以下、IP-IPという)でカプセル化し、さらにIPsecを利用して暗号化することでIP-IP over IPsecインタフェースを構成し、2拠点間をトンネル接続している。①本社のUTMと支社のUTMのペアではIPsecで暗号化するために同じ鍵を共有している。②この鍵はペアごとに異なる値が設定されている。

 ③IPsecの通信モードには、トランスポートモードとトンネルモードがあるが、A社のVPNではトランスポートモードを利用している

 A社のVPNを構成するIPパケット構造を図2に示す。

 VPNを構成するために、本社と各支社のUTMには固定のグローバルIPアドレスを割り当てている。④IP-IP over IPsecインタフェースでは、IP Unnumbered設定が行われている。また、⑤IP-IP over IPsecインタフェースでは、中継するTCPパケットのIPフラグメントを防止するための設定が行われている。

[プロキシサーバを利用した制御]

 BさんがUTMについて調べたところ、追加ライセンスを購入することでプロキシサーバ(以下、UTMプロキシサーバという)として利用できることが分かった。

 Bさんは、ネットワークの負荷軽減のために、各支社のPCからC社SaaS宛ての通信は、各支社のUTMプロキシサーバをプロキシサーバとして指定することで直接インターネットに向けることを考えた。また、各支社のPCからその他インターネット宛ての通信は、通信相手を特定できないことから、各種ログを取得するために、これまでどおり本社のプロキシサーバをプロキシサーバとして指定することを考えた。各支社のPCから、C社SaaS宛てとその他インターネット宛ての通信の流れを図3に示す。

 Bさんは、各支社のPCが利用するプロキシサーバを制御するためにプロキシ自動設定(以下、PACという)ファイルとWebプロキシ自動検出(以下、WPADという)の導入を検討することにした。

[PACファイル導入検討]

 BさんはPACファイルの作成方法について調査した。PACファイルはJavaScriptで記述する。PACファイルに記述するFindProxyForURL関数の第1引数であるurlにはアクセス先のURLが、第2引数であるhostにはアクセス先のURLから取得したホスト名が渡される。これらの引数に渡された値を様々な関数を用いて条件分けし、利用するプロキシサーバを決定する。FindProxyForURL関数の戻り値が“DIRECT”ならば、プロキシサーバを利用せず直接通信を行う。戻り値が“PROXY host:port”ならば、指定されたプロキシサーバ(host)のポート番号(port)を利用する。

 テスト用に大阪支社のUTMを想定したPACファイルを作成した。Bさんが作成した大阪支社のUTMのPACファイルを図4に示す。

 Bさんは、テスト用のPCとテスト用のUTMプロキシサーバを用意し、作成したPACファイルを利用することで、テスト用のPCからC社SaaS宛ての通信が、期待どおりに本社のプロキシサーバを利用せずに、テスト用のUTMプロキシサーバを利用することを確認した。⑥Bさんは各支社のPACファイルを作成した

[WPAD導入検討]

 WPADは、( イ )や( ウ )の機能を利用して、PACファイルの場所を配布するプロトコルである。PCやWebブラウザのWebプロキシ自動検出が有効になっていると、( イ )サーバや( ウ )サーバと通信を行い、アプリケーションレイヤープロトコルの一つである( エ )を利用して( エ )サーバからPACファイルのダウンロードを試みる。

 WPADの利用には、PCやWebブラウザのWebプロキシ自動検出を有効にするだけでよく、簡便である一方、悪意のある( イ )サーバや( ウ )サーバがあると⑦PCやWebブラウザが脅威にさらされる可能性も指摘されている。Bさんは、WPADは利用しないことにし、PCやWebブラウザのWebプロキシ自動検出を無効にすることにした。PCやWebブラウザにはPACファイルの( オ )を直接設定する。

 Bさんが検討した対応案が承認され、情報システム部はプロジェクトを開始した。

目次

設問1

[現在のA社のVPN構成]について答えよ。

本文中の( ア )に入れる適切な字句を答えよ。

解答例

ハブアンドスポーク

石田先生

本文の該当箇所はこちらです。

A社は、UTMのIPsec VPN機能を利用して、本社をハブ、各支社をスポークとする( ア )型のVPNを構成している。

この文脈からわかるように、A社のネットワーク構成では「本社(中央)」を中心として「支社(周辺)」と接続しています。

各支社は直接相互接続するのではなく、本社を経由して他支社と通信を行う構成です。

答えは「メッシュ型」か「ハブアンドスポーク」の2択になりますね。

メッシュ型(Mesh topology)とは、すべての拠点(ノード)が、他のすべての拠点と直接接続しているネットワーク構成のことです。

ハブアンドスポーク(Hub-and-Spoke)とは、中央にハブ(中心拠点)を置き、そこからスポーク(支社)に通信が伸びる構成のことです。

この構成では、すべての通信が一度ハブ(ここでは本社)を経由するため、管理がしやすい反面、ハブに負荷が集中する可能性があります。

図1を見ると、本社UTMがすべての支社とIPsecトンネルを張っており、本社を中継点としていることが確認できます。

支社間が直接つながっているわけではないため、「メッシュ型」ではなく、「ハブアンドスポーク型」であることが明らかです。

よって「本社をハブ、支社をスポークとするVPN構成」という表現に当てはまる用語はハブアンドスポーク型です。

石田先生

本社を中心に各支社とだけ接続し、支社間の直接接続は存在しないことがポイントです。

本文中の下線①について、本社のUTMと支社のUTMのペアで共有する鍵を何と呼ぶか答えよ。

解答例

事前共有鍵

石田先生

本文の該当箇所はこちらです。

本社のUTMと支社のUTMのペアではIPsecで暗号化するために同じ鍵を共有している

この文から読み取れるのは、「2つのUTM間で同じ鍵をあらかじめ共有しており、それを用いてIPsec通信の暗号化を行っている」ということです。

事前共有鍵についておさらいしましょう。

  • 通信を行う両者が、通信を開始する前に共有しておく秘密の鍵
  • 主に IKE(Internet Key Exchange)フェーズ1での認証に使われる。
  • 利点:設定が簡単。
  • 欠点:多拠点があると、鍵の管理が煩雑になる。

なぜ事前共有鍵とわかるのか、ポイントはこのようになります。

本文には次のように書かれています。

本社のUTMと支社のUTMのペアではIPsecで暗号化するために同じ鍵を共有している。

また、

この鍵はペアごとに異なる値が設定されている。

つまり、これは拠点間ごとにあらかじめ設定している静的な鍵であるため、「動的に交換される鍵(例:公開鍵暗号方式による鍵交換)」ではなく、事前に設定しておく鍵=事前共有鍵であると判断できます。

石田先生

本社と支社のUTMが、あらかじめ設定した鍵を共有してIPsecの暗号化に用いていますが、これは典型的な「事前共有鍵(PSK)」の使用例です。

本文中の下線②について、鍵は全て同じではなく、ペアごとに異なる値を設定することで得られる効果を、鍵の管理に着目して25字以内で答えよ。

解答例

鍵が漏えいした際の影響範囲を小さくできる。

石田先生

本文の該当箇所はこちらです。

② この鍵はペアごとに異なる値が設定されている。

つまり、A社では本社と各支社のUTM間ごとに異なるIPsec事前共有鍵(PSK)を使用しています。

なぜ異なる鍵を使うのか、メリットは以下のようになります。

複数の拠点で同じ鍵を使い回していると、1か所から鍵が漏えいしたときに全拠点の通信が危険になります。

一方、ペアごとに異なる鍵を使えば、万が一1つの鍵が漏れても、影響はそのペアの通信に限られるため、被害の範囲を局所化(=限定)できます。

このように、「影響範囲を小さくする」というのが鍵の個別化による管理上の最大の利点です。

石田先生

鍵をペアごとに分けるのはセキュリティの原則(「最小権限」「単一障害点の回避」)に則った対策ですね。

本文中の下線③について、A社のVPNで利用しているトランスポートモードとした場合は元のIPパケット(元のIPヘッダーと元のIPペイロード)とESPトレーラの範囲を暗号化するのに対し、A社のVPNをトンネルモードとした場合はどの範囲を暗号化するか。図2中の字句で全て答えよ。

解答例

IPヘッダー, 元のIPパケット, ESPトレーラ

IPsecには次の2つのモードがあります。

モード暗号化の範囲使用用途
トランスポートモード元のIPパケットのペイロード部分のみ(IPヘッダーはそのまま)ホスト間通信など
トンネルモード元のIPパケット全体を丸ごと暗号化し、さらに新しいIPヘッダーを追加拠点間VPNなど(UTM間など)

本文では、

A社のVPNではトランスポートモードを利用している

と書かれていますが、設問では「もしトンネルモードだった場合どうなるか」を問われています。

図2のパケット構造は次の通りです。

このうち、トンネルモードでは以下の範囲が暗号化対象となります。

  • 元のIPパケット(元のIPヘッダー+IPペイロード)
  • ESPトレーラ
  • その外側のIP-IPヘッダーとIPヘッダーは平文(暗号化されない)

ただし、図2では、元のIPパケットという字句の前にすでに「IPヘッダー」が現れているため、設問に合わせて答えるには、「IPヘッダー, 元のIPパケット, ESPトレーラ」と、図2に出てくる語句をすべて明示する必要があります。

石田先生

トンネルモードでは、「元のIPパケット全体」と「ESPトレーラ」が暗号化されるということを覚えておきましょう。

本文中の下線④について、IP Unnumbered設定とはどのような設定か。“IPアドレスの割当て”の字句を用いて30字以内で答えよ。

解答例

インタフェースにIPアドレスの割当てを行わない設定

石田先生

本文の該当箇所はこちらです。

④IP-IP over IPsecインタフェースでは、IP Unnumbered設定が行われている。

「IP Unnumbered」とは何でしょうか?

Unnumbered(=番号なし)という言葉のとおり、特定のインタフェースに独自のIPアドレスを割り当てない設定です。

代わりに、他のインタフェースで割り当てられているIPアドレスを借りるように動作します。

石田先生

具体例でイメージしてみましょう。

たとえばルータに2つのインタフェースがあるとします。

  • eth0(通常のWANインタフェース):192.0.2.1
  • ipip0(トンネルインタフェース):IP Unnumbered

この場合、ipip0は独自のIPアドレスを持たず、eth0のIPアドレス(192.0.2.1)を借りて通信します。

利用目的やメリットもまとめておきましょう。

  • IPアドレスの節約
  • 構成の簡素化
  • 特にトンネル用インタフェース(IPIP、GRE、IPsecなど)でよく使われる。

本文中の下線⑤について、中継するTCPパケットのIPフラグメントを防止するための設定を行わず、UTMでIPフラグメント処理が発生する場合、UTMにどのような影響があるか。10字以内で答えよ。

解答例

転送負荷の増大

石田先生

本文の該当箇所はこちらです。

⑤IP-IP over IPsecインタフェースでは、中継するTCPパケットのIPフラグメントを防止するための設定が行われている。

つまり、UTMでフラグメント処理を発生させないようにしているということです。

フラグメントとは何か簡単に復習しましょう。

  • IPフラグメント(断片化)とは、1つのIPパケットがMTUを超える場合に小さな断片に分割される仕組み。
  • パケットが複数に分かれるため、再構築処理(Reassembly)が必要。

フラグメントが発生するとどうなるのでしょうか?

UTMなどのセキュリティ機器では、パケットの中身(ペイロード)を見て判断する必要があります

フラグメントされてしまうと、最初のパケットにヘッダーしかなく、ポート番号やアプリケーション情報が別パケットに分離されることもあり得ます。

そのため、すべての断片を収集・再構築しないと正しく処理できず、CPUやメモリの負担が増す=転送処理が重くなるという現象が起こるのです。

石田先生

つまりフラグメント処理がUTMで発生すると、再構築処理の必要があり転送負荷が増すのです。

設問2

[PACファイル導入検討]について答えよ。

図4について、DMZにあるWebサーバにアクセスする際、プロキシサーバを利用する場合はプロキシサーバ名を答えよ。プロキシサーバを利用しない場合は“利用しない”と答えよ。

解答例

利用しない

この問題では図4(PACファイル)を見て、「DMZにあるWebサーバにアクセスするときに、プロキシサーバを使うのか?使わないのか?」ということを尋ねています。

石田先生

PACファイルは、かんたんに言うと「どこにアクセスするときに、どのプロキシを使うか」を決めるルールブックのようなものです。

たとえば……。

  • 社内のサーバに行くときは → プロキシを使わない
  • C社SaaSに行くときは → 支社のプロキシを使う
  • それ以外は → 本社のプロキシを使う

このように決めています。

DMZにあるWebサーバはどこにあると解釈できるでしょうか?

本文にはこう書いてあります。

PCが利用するサーバは、全て本社のDMZに設置されている。

つまりそのWebサーバは「社内にあるサーバ」ということです。(インターネットにあるC社のSaaSとは別物です)

社内のサーバにアクセスするとき、PACファイルではどうするのでしょうか?

図4のPACファイルでは、以下のような条件に当てはまる場合は「DIRECT(直接通信)=プロキシを使わない」と書かれていました。

  • 名前が単純なもの(例:intra)
  • ドメインが「.osaka.a-sha.local」(例:intra.osaka.a-sha.local)
  • アドレスが 10.0.0.0 〜 /8 や 192.168.0.0 〜 /16 など、社内ネットワークのIP

この「社内のWebサーバ」は、これらの条件に当てはまると考えられるため、PACファイルにしたがうとプロキシを使わずに直接アクセスします。

石田先生

つまりDMZにあるWebサーバは社内サーバなので、PACファイルのルールでは「プロキシを使わずにアクセスする(=DIRECT)」となります。

図4について、インターネット上にあるhttps://www.example.com/foo/index.htmlにアクセスする際、プロキシサーバを利用する場合はプロキシサーバ名を答えよ。プロキシサーバを利用しない場合は“利用しない”と答えよ。

解答例

proxy.a-sha.jp

アクセス先は https://www.example.com/foo/index.htmlであるため、 ホスト名(host)は www.example.comとなります。

図4より、PACファイルにおける条件分岐を確認しましょう。

1.以下のいずれかに該当する場合、DIRECT(プロキシを使わない)となります。

isPlainHostName(host)
dnsDomainIs(host, “.osaka.a-sha.local”)
isInNet(host, “10.0.0.0”, “255.0.0.0”)
isInNet(host, “172.16.0.0”, “255.240.0.0”)
isInNet(host, “192.168.0.0”, “255.255.0.0”)

2.以下のいずれかに該当する場合、PROXY proxy.osaka.a-sha.jp:8080(支社のUTMプロキシ)となります。

dnsDomainIs(host, “.c-sha.jp”)
shExpMatch(host, “*.c-sha.jp”)
isInNet(host, “203.0.113.0”, “255.255.255.0”)

3.上記以外はすべて

return “PROXY proxy.a-sha.jp:8080”

この条件で判定するわけですね。

  • www.example.com は .a-sha.local でも .c-sha.jp でもない。
  • IPも社内ネットワークではない。

したがって、PACファイルのどの条件にも当てはまりません。

よって、PACファイルの最後の行のデフォルト設定に従い、proxy.a-sha.jp:8080 を使用することになります。

石田先生

つまりwww.example.com へのアクセスでは、本社のプロキシサーバ proxy.a-sha.jp が使用されます。

図4について、isInNet(ip, “172.16.0.0” , “255.240.0.0”)のアドレス空間は、どこからどこまでか。最初のIPアドレスと最後のIPアドレスを答えよ。

解答例

最初:172.16.0.0

最後:172.31.255.255

関数 isInNet についてまずは見ていきましょう。

PACファイル内の isInNet(ip, base, mask) は、ip が base から mask で示されるネットワーク内にあるかどうかを判定する関数です。

ここでの指定は下記のようになっています。

  • base(ネットワークアドレス):172.16.0.0
  • mask(サブネットマスク):255.240.0.0

サブネットマスクについても見ておきましょう。

サブネットマスク255.240.0.0は、CIDR表記で/12に相当します。

そのため172.16.0.0/12 の範囲になることがわかります。

172.16.0.0/12 の範囲について見てみましょう。

このCIDRブロックでは

  • 最初のIPアドレス:172.16.0.0
  • 最後のIPアドレス:172.31.255.255

となり、この範囲は、RFC1918により「プライベートIPアドレス」として予約されているアドレス空間の一つです。

つまりPACファイルの isInNet(ip, “172.16.0.0” , “255.240.0.0”) は172.16.0.0~172.31.255.255のIPアドレスにマッチします。

図4について、変数ipがプライベートIPアドレスの場合、戻り値を“DIRECT”にすることで得られる効果を、“負荷軽減”の字句を用いて20字以内で答えよ。

解答例

本社のプロキシサーバの負荷軽減

PACファイルには以下のような条件があります。

isInNet(host, “10.0.0.0”, “255.0.0.0”) ||
isInNet(host, “172.16.0.0”, “255.240.0.0”) ||
isInNet(host, “192.168.0.0”, “255.255.0.0”)

これらはすべてプライベートIPアドレスを対象としており、これらにマッチする場合は

return “DIRECT”;

すなわち、「プロキシサーバを使わずに直接通信する」設定です。

なぜDIRECTにするのでしょうか?

プライベートIPアドレス宛の通信(社内サーバなど)は社内ネットワーク内で完結するため、わざわざ本社のプロキシサーバを経由させる必要がありません。

プロキシサーバを通すと無駄に負荷がかかるだけです。

DIRECTにする効果は下記の通りです。

社内向けの通信を直接ルーティングすることで、本社のプロキシサーバにかかるリクエスト数を減らせる負荷軽減となります。

本文中の下線⑥について、PACファイルは支社ごとに用意する必要がある理由を25字以内で答えよ。

解答例

UTMプロキシサーバのFQDNが異なるから

石田先生

本文の該当箇所(要約)はこちらです。

Bさんは、テスト用のPCとUTMプロキシサーバを用いて、PACファイルが期待通り動作することを確認した。
⑥Bさんは各支社のPACファイルを作成した

つまり、Bさんは支社ごとに個別のPACファイルを作った、その理由が問われています。

たとえば、大阪支社のPACファイルにはこのような記述があります。

return “PROXY proxy.osaka.a-sha.jp:8080”;

他の支社では、

  • 名古屋 → proxy.nagoya.a-sha.jp
  • 仙台 → proxy.sendai.a-sha.jp
  • 福岡 → proxy.fukuoka.a-sha.jp

と、支社ごとに使うUTMプロキシサーバのFQDN(完全修飾ドメイン名)が異なるため、1つのPACファイルで全支社共通利用はできません

FQDNという用語の意味も確認しておきましょう。

FQDN(Fully Qualified Domain Name):サーバのドメイン名を末尾まで完全に書いたもの(例:proxy.osaka.a-sha.jp)

PACファイルは内部に各支社のプロキシサーバ名(FQDN)をベタ書きしているため、支社ごとに個別に用意しなければなりません。

石田先生

これを25文字以内にまとめると、正答例のようになります。

設問3

[WPAD導入検討]について答えよ。

本文中の( イ )〜( オ )に入れる適切な字句を答えよ。

解答例

イ:DHCP

ウ:DNS

エ:HTTP

オ:URL

(イ、ウは順不同)

WPADは、PACファイル(プロキシ自動設定ファイル)の場所を自動でPCやブラウザに教える仕組みです。

これによってユーザーがいちいち手動でプロキシ設定をしなくても済むようになります。

PACファイルの場所を教える手段として使われるのが「DHCP」と「DNS」です。

(イ):DHCP

DHCP(Dynamic Host Configuration Protocol) は、PCがネットワークに接続されたときに、

  • IPアドレス
  • デフォルトゲートウェイ
  • DNSサーバ

などの設定を自動的に受け取るためのプロトコルです。

WPADでは、このDHCPの 「オプション252」 にPACファイルのURLを設定することで、クライアントに配布できます。

つまり、PACファイルの場所を DHCPサーバ経由で通知することができるのです。

(ウ):DNS

DNS(Domain Name System)は、ドメイン名からIPアドレスを調べる仕組みですが、WPADでも使われます。

WPADでは、クライアントが「wpad.自分のドメイン」という名前をDNSで問い合わせます。

例:社内ドメインが a-sha.local の場合、PCは wpad.a-sha.local にアクセスしようとします。

この名前に対してWebサーバを立ててPACファイルを公開しておけば、DNSベースで自動取得が可能です。

(エ):HTTP

PACファイルは通常、Webサーバからクライアントに配布されます。

そのときに使われるプロトコルは HTTP(Hypertext Transfer Protocol)であり、ポート番号は通常 80番です。

つまり、WPADでは「DHCP」または「DNS」でPACファイルの場所(URL)を知り、実際のPACファイルの中身を HTTPでダウンロードします。

(オ):URL

Bさんはセキュリティ上の理由からWPADを使わないことにしました。

そのため、PCやWebブラウザにはPACファイルのURL(アドレス)を直接設定する必要があります。

例:http://proxy.osaka.a-sha.jp/wpad.dat のようなURLをブラウザに手入力する設定方式です。

石田先生

解答のポイントをまとめてみましょう。

空欄正解解説
DHCPWPADでPACファイルのURLをオプション252で通知する方法
DNSWPADで wpad.ドメイン名 を解決してPACファイルの所在を取得
HTTPPACファイル自体をダウンロードするための通信手段
URLPACファイルの手動設定時に入力するアドレス

本文中の下線⑦について、どのような脅威があるか。25字以内で答えよ。

解答例

不正なプロキシサーバに中継される。

石田先生

本文の該当箇所はこちらです。

WPADの利用には、PCやWebブラウザのWebプロキシ自動検出を有効にするだけでよく、簡便である一方、悪意のある(イ)サーバや(ウ)サーバがあるとPCやWebブラウザが脅威にさらされる可能性も指摘されている。

脅威の内容とはどのようなものが考えられるでしょうか?

WPADは非常に便利な自動構成手段ですが、DHCPサーバやDNSサーバを信頼していることが前提です。

もしもネットワーク内に 悪意のあるDHCPサーバやDNSサーバ が存在すると、次のようなことが可能になります。

  1. クライアントがWPADを通じてPACファイルを取得しようとする
  2. 悪意のあるサーバが偽のPACファイルのURLを返す
  3. クライアントがそのURLからPACファイルを読み込む
  4. PACファイルには、攻撃者が用意したプロキシサーバの設定が書かれている
  5. 結果、すべてのWeb通信がその不正プロキシを経由してしまう(=盗聴・改ざん・なりすまし可能)

つまり、脅威とは「ユーザが意図せず、不正なプロキシサーバを利用してしまう」→ これが最大のリスクです。

石田先生

つまりWPADを信頼できない環境で使用すると、攻撃者によって通信経路を乗っ取られるおそれがあるのです。

学びをSNSで共有しよう
  • URLをコピーしました!
目次