令和元年(2019年)ネスペ午後Ⅰ 問Ⅱ 解答解説

設問1

T社がIP-w1を変更しても、A社DNSサーバの変更作業が不要となる

  1. Aレコードの場合(お蔵入り・非推奨なやり方)
    • A社のDNSサーバーに直接 IP-w1 という具体的なIPアドレスを書いてしまうと、クラウド側(T社)の都合で IP-w1 が変更されたとき、A社側も慌てて自分のDNSサーバーのAレコードを書き換えなければならなくなる。
  2. CNAMEレコードの場合(推奨されるやり方)
    • A社のDNSには「名前の指し先をT社側のFQDN(WAF-A社.t社.net など)にする」という設定(CNAME)だけを置いておく。
    • 万が一、T社側で IP-w1 が変更になったとしても、T社が自分たちの管理するDNS側で勝手によしなに変更してくれるため、A社側は自分のDNSを一切触る必要がない。

つまり、「クラウド側のIP変更に引きずられて、自社のDNSをメンテしなくてよくなる(運用管理の手間が減る)」というのが、A社にとっての最大のメリットになる。

設問2

(2)負荷が偏る

セッション維持機能を送信元IPアドレスベースでやると…
1.WAFからLBへ通信がくる
2.LBは「送信元がIP-w1ね。じゃあWebサーバ1へ振り分けよう」
3.しばらくして別のパケットがWAFからLBへ届く
4.LBは「送信元がIP-w1ね。それはさっき見たので、さっきと同じWebサーバ1へ振り分けよう」
つまり、送信元IPアドレスベースでセッション維持をすると、まったくラウンドロビンされなくなってしまうということ=負荷が偏るという問題が発生する

(3)HTTPヘッダを編集する処理

LBはX-Forwarded-Forヘッダーと呼ばれるHTTPヘッダの一つを編集する必要がある。
そして、編集するためには暗号化されたペイロードを復号する必要がある。
暗号化・復号化するということは、TLSアクセラレーション機能を利用した方がよい。

以上の思考ステップにより、HTTPヘッダの編集処理が回答となる。




p.7 WAFって何?

HTTP/HTTPSのメッセージの中身(URL、リクエストメソッド(GET/POST)、ヘッダ、ボディパラメータなど)を解析し、SQLインジェクションやクロスサイトスクリプティング(XSS)といったWebアプリケーション特有の攻撃パターンを検知・防御する機器。

▼通常のFWをWAFの違い

比較通常のネットワークFWWAF
主な対象レイヤーL3・L4L7(HTTP/HTTPS)
主に見る情報IPアドレス、ポート番号、プロトコルURL、HTTPメソッド、ヘッダー、Cookie、リクエスト本文など
主な目的通信の許可・拒否Webアプリケーションへの攻撃を防ぐ
制御例TCP 443を許可するSQLインジェクションなどを検知・遮断する

p.8 Q.コモンネームってなに?

コモンネーム(CN: Common Name)とは?

  • 意味: 証明書が対象とする「主たる名前(識別名)」のこと。
  • 役割: 昔のSSL/TLS証明書では、このCNフィールドに単一のドメイン名(FQDN)(例:shop.asha.com)を1つだけ書き込むのが基本ルール。
  • イメージ: 証明書の「名札のメイン氏名」のようなもの。

SAN(Subject Alternative Name:サブジェクト別名)とは?

  • 意味: コモンネーム(CN)のほかに、「別名(追加の名前)」を複数登録できる拡張フィールドのこと。
  • 役割: 1枚の証明書で複数の異なるドメインやサブドメイン(例:asha.com、[www.asha.com](https://www.asha.com)、shop.asha.com、さらには別ドメインの example.net など)をまとめて保護したいときに使う。

Q.なんでWAFは2つのIPアドレスを使っているの?

Q.IP-w1で受け付けているんだから、A社側に送るときもIP-w1を送信元にして送ればいいじゃん?なぜわざわざIP-w2にする必要があるの?
A.受付とバックエンドを分けるため。

前提:
 ①IP-w1は多数のキャッシュサーバに割り当てられているIP
 ②IP-w1はBGP Anycastを使って広告している

もし、IP-w2がないとどうなるか?
1.クライアントがA社Webサービスの名前解決をしてIP-w1宛てにパケットを送信
2.クライアントの最寄りのエッジサーバであるWAFが受け取る
 *IP-w1はBGP Anycastによって広告されている
3.WAFは適切な処理をしてIP-w1にしてA社側に送信
4.A社側は受け取り処理をする
5.レスポンスをIP-w1宛てに送る
 ここで問題発生!!!
 IP-w1はBGP Anycastをしているので、A社側の最寄りのエッジサーバに到達してしまう。
 しかし、最寄りエッジサーバはA社から来た通信を「ん?おれそんな通信知らないけど?それをどこに転送すればいいの?」とわからなくなってしまう!!
6.結果として応答パケットがクライアントまで届かなくなる。

IP-w2を使うとどうなるのか?
1.クライアントがA社Webサービスの名前解決をしてIP-w1宛てにパケットを送信
2.クライアントの最寄りのエッジサーバであるWAFが受け取りTLSを復号してサイバー攻撃の検査を行う。
 *IP-w1はBGP Anycastによって広告されている
3.検査を通過した通信は、WAF基盤の内部ネットワークを通って「出口を管理するゲートウェイ機器」へ集約される(=複数のエッジサーバがゲートウェイをシェアしている)。
4.出口ゲートウェイにて、送信元IPアドレスが IP-w2 に書き換えられる。同時に、ゲートウェイのメモリ上に「どのエッジサーバの、どのセッションか」を紐付ける対応表(ステートテーブル)が記録される。
5.送信元が IP-w2、宛先がA社LBのIPアドレス(199.α.β.2)となったパケットがA社に到着し、FWの許可を通過して内部のWebサーバで処理される。
6.レスポンスをIP-w2宛てに送る
7.IP-w2 はユニキャストIPであるため、パケットは確実にT社WAFの出口ゲートウェイに戻ってくる。出口ゲートウェイは自身のステートテーブルを参照し、「このレスポンスはどのエッジサーバの通信か」を即座に特定する。
8.特定されたセッション情報をもとに、内部ネットワーク経由で元のエッジサーバへパケットが引き渡され、エッジサーバからクライアントのWebブラウザへレスポンスが届けられる

イメージはこんな感じ👇

タイトルとURLをコピーしました