令和7年(2025年)ネスペ午後Ⅰ 問3 解答解説

設問1

(1)複数機器のログを時系列で確認するため

NTP×ログ解析ときたら→「複数機器&時系列」という組み合わせが王道。複数機器同士で異なる時間軸を使ってしまうと、ログを時系列で確認できなくなってしまう。そのため、同一の時間軸を使うことでしっかりとログの前後関係が明確になり、事象を追いやすくなる。

(2)登録したFQDNやIPアドレス宛ての通信をブロックするため / 利用者認証を行うため / Webサイトへのアクセス履歴の確認のため

▼p.16

そもそも、プロキシの目的は、アウトバンド(内→外)の通信に対して「誰が、どこに、何を」といった情報を検査することである。
「誰が」を担当するのが認証、「どこに」はURLフィルタリング、レピュテーションが担当し、「何を」はSSLインスペクション、DLPなどが担当する。
要は、認証、フィルタリング、ログ収集という3つの主要な役割がある。それを本文中から見つけてあげればよい。

(3)L3SWのDHCPリースログ

FWの通信ログにもIPアドレスは記載されている。しかし、社内IPアドレスは概して動的に一時的付与であることが多い。そのため、不正通信が発覚した時刻に使われていたIPアドレスの利用者と現在の当該IPアドレス利用者ではリース時間の関係で異なる可能性がある。そのため、DHCP機能を有したL3SWのDHCPリースログを確認する必要がある。

▼PC(MACアドレス)を特定するコマンド

ShellScript
#DHCPバインディングテーブルの表示
show ip dhcp binding

#DHCPバインディングテーブルで192.168.1.50を含む行のみ表示
show ip dhcp binding | include 192.168.1.50

#Syslogの中でDHCPが含まれている&192.168.1.50が含まれているログを出力する
show logging | include DHCPD.*192.168.1.50

(3)a:Syslogサーバ b:認証サーバ

これは暗記問題。SyslogはUDP514で認証サーバ(RADIUS)は1812,1813番を使う。以下は、よく耳にするプロトコルなのでしっかり確認しておこう!

プロトコルポート番号トランスポート役割・特徴
FTP20 / 21TCPデータ転送(20)/ 制御コマンド(21)
SSH22TCP暗号化リモートログイン
TELNET23TCP平文リモートログイン
SMTP25TCPメール送信・サーバー間転送
DNS53UDP / TCP基本はUDP(名前解決)。ゾーン転送や長文応答はTCP
DHCP67 / 68UDPIPアドレス自動割当(67:サーバ受信用, 68:クライアント受信用)
HTTP / HTTPS80 / 443TCPWeb通信(443はSSL/TLS暗号化)
NTP123UDP時刻同期
SNMP161 / 162UDP機器監視・管理(161:ポーリング問い合わせ, 162:Trap自発通知)
Syslog514UDPログ転送
RADIUS1812 / 1813UDP認証・認可(1812)/ アカウンティング(1813)
LDAP / LDAPS389 / 636TCPAD等のディレクトリサービス照会(636は暗号化)
SMTPS465TCP暗号化メール送信(Implicit TLS)
Submission587TCPユーザーからのメール送信受付(STARTTLS)
POP3S / IMAPS995 / 993TCP暗号化メール受信

(4)c:10080 d:443

cの10080については本文中にプロキシは10080を使うと明示されている。dに関しては、SaaSへの通信なので、443を使う。

内部セグメントからK社SaaSへの直接通信なので、プロキシは経由しない。

設問2

(1)SWGサービスのルート証明書

SWGサービスのルート証明書というと短すぎてよくわからないので、細かく言うと、「SWGが(偽の証明書を発行するために)運用している『プライベート認証局(CA)』の『最上位(ルート)CA証明書』」ということ。
SWGはSSLインスペクションによってPCとWebサーバ間の通信を監視したい。そのためにはクライアントにとって、SWGがあたかも本物のWebサーバであるかのような振る舞いをする必要がある。その際に、SWGのルート証明書が必要になる。

▼SSLインスペクションの裏で起きていること

1.クライアントからSWGに転送
 クライアント内のエージェントがSWG経由の対象である通信(https://example.com)をキャッチすると、SWG宛てになるようにカプセル化を行う。元のパケットの宛先はWebサーバのまま保持。
 なおURLがhttpsの場合はTLSが使われるため、クライアントはTLSハンドシェイクのClient Helloを送信する

2.SWGに届く
 SWGに届くとカプセル化が解除され本物のパケットが出現する。その中のSNI(ServerNameIndication)を読み取りクライアントがアクセスしようとしている宛先ホスト(example.com)を特定する。
3.SWGと本物Webサーバ間でTLSハンドシェイク
 SWGはクライアントに変身する前に、SWG自身でWebサーバとTLSハンドシェイクを実施し、当該Webサーバのサーバ証明書を検証する。
4.SWGによる偽サーバ証明書の作成
 本物のサーバ証明書をもとに、SWGは内部に保持している「プライベートCAの秘密鍵」を使ってSAN(SubjectAlternativeName)にexample.comを記載した偽のサーバ証明書をその場で即座に生成・自動署名する。
▼署名の流れ
①サーバ証明書内のフィールド(ドメイン名、有効期限、発行者名、公開鍵など)をひとまとめにしたデータをハッシュ関数(SHA-256など)に入力しハッシュ値を生成する。
②ハッシュ値をSWG内のCAの秘密鍵で暗号化する。この暗号化したデータこそがデジタル署名になる。
5.SWGとクライアント間でTLSハンドシェイク
 偽のサーバ証明書をクライアントに送り、クライアントは検証する。
▼検証手順:
①ドメインの一致(サイトURLのドメインとSANフィールド内のドメインが一致しているか)
②有効期限の確認
③デジタル署名検証(署名をSWG内のプライベートCAの公開鍵で復号して値を抽出。その値と、クライアント自身でもハッシュを作成した値が一致したらOK)
④信頼チェーン検証(署名したCAが正しいかを確認していき、最終的にクライアントが保持しているルートCA証明書まで到達したらOK)

6.内部ステートテーブルへ登録
 SWGは「クライアント⇔SWG」と「SWG⇔Webサーバ」のそれぞれの送信元IP/ポート、宛先IP/ポート」などを記録し紐づけることによって、2つのトンネルを対応づけている。

プロキシ内部のID (ソケット)クライアント側 (Src IP:Port)転送先 (Dest IP:Port)
トンネルA192.168.1.10 : 50001104.21.XX.XX : 443
トンネルB192.168.1.10 : 50002142.250.XX.XX : 443

7.復号・検査・再暗号化と中継
 ここまでの手順で準備がととのったので、あとは通信を仲介する。その際に、暗号化・復号化、検査を実施する。

(2)C&Cサーバ

C&CサーバとはCommand&Controlの略。マルウェア感染したPCなどが命令をもらいに行くためのサーバがC&Cサーバ。で、C&Cサーバ自体も、どこかのPCやサーバなどがマルウェア感染してC&Cサーバとして強制的に振舞わせているだけという可能性もある。そのためC&Cサーバの特定ができても本当の黒幕までを特定することは非常に難しい。

設問3

(1)2,7

フォワードプロキシをリバースプロキシにするということは…不要になる通信は….
1.まずは内部→プロキシへの通信は不要になる。(7番)
2.プロキシ→外部への通信も不要になる。(2番)


p.15 セキュアWebゲートウェイとは?ーーーーーーーーー

セキュアWebゲートウェイ(SWG)を端的に言うと「インターネット上にあるセキュリティ機能が追加されたプロキシサーバ」である。
従来までは転送にフォーカスしていたが、SWGなら転送だけでなく「SSLインスペクション、レピュテーション、マルウェア駆除」など様々なセキュリティ機能を使える。

プロキシとSWGの違いは?—————-

プロキシは通信の代理中継がメイン。
SWGとはそのプロキシという仕組みをベースに更にパケットの内部を検査してDLP、URLフィルタリング、レピュテーション、マルウェア駆除などの内部にもフォーカスしてくれるプロキシをSWGという。
▼SWGの主な機能

機能名概要・仕組み主な目的・リスク対策
SSL/TLSインスペクション暗号化(HTTPS)された通信をSWGで一度復号し、中身(コンテンツ)をチェックする機能暗号化通信に隠されたマルウェア感染やデータ流出の検知
URL / WebフィルタリングFQDN、IP、カテゴリ(ギャンブル、SNSなど)を基に悪質・業務外サイトへの接続を遮断する機能不正サイトへのアクセス防止、業務外利用の制限
レピュテーション機能接続先ドメインやIPの安全性・信頼性をデータベース照会でスコア化し、低スコアの接続を遮断する機能立ち上がったばかりの危険なフィッシングサイトなどの遮断
マルウェア駆除(アンチウイルス)ダウンロード/アップロードされるファイルをパターンマッチングで検査し、ウイルスを検出・除去する機能既知のマルウェア感染の防止
サンドボックス機能疑似的な隔離環境で未知のファイルを実際に動作させ、不審な挙動(レジストリ変更や外部通信など)を観察・判定する機能パターンファイルが存在しないゼロデイ攻撃や未知のマルウェア対策
DLP(データ漏洩防止)通信に含まれる個人情報(マイナンバー、クレカ番号)や機密キーワード、特定ファイルを検知して送信をブロックする機能内部不正や誤操作によるクラウドへの情報漏洩防止
アプリケーション制御単なるポート単位ではなく、「YouTube閲覧は許可するがコメント投稿は不可」「特定のストレージのみ許可」などWebアプリの挙動を制御する機能シャドーIT(許可のないSaaS利用)の対策や詳細なアクセス制御
ダイレクト通信機能特定の信頼できるSaaS(Microsoft 365など)や社内Webへの通信をSWG経由から除外し、直接接続させる機能SWGの処理負荷軽減、Web会議などの遅延(レイテンシ)防止

p.15 SaaSの利用者認証とは?—————

Q.SaaSの利用者認証ってどうやってやるの?
A.インスタグラムなどのSNSと同じようにユーザIDとパスワードを使って認証する。

NTPコマンド————

では、NTPでよく使われるコマンドや同期情報の確認方法を見ていこう!

ShellScript
#時刻を同期したいNTPサーバのIPアドレスを指定&下位のストラタムに時刻を提供できるようにもなる
RouterA(config)#ntp server IPアドレス

#NTPのマスタになる。デフォルトのストラタムは8------
RouterA(config)#ntp master ストラタム


#NTP同期情報の表示-----------------------------
Router# show ntp associations

address         ref clock       st   when  poll reach  delay  offset    disp
*10.0.0.1       192.168.1.100   2    64    64   377   5.234  -0.632    18.2
+192.168.1.101   10.0.0.1        3    32    64   177   8.123   1.234    22.1
 192.168.1.102   10.0.0.2        3    48    64   177   9.456   2.345    25.3

 このマークが重要
行頭記号意味状態の解説
* (アスタリスク)現在同期中(sys.peer)正常。 このNTPサーバを基準として時刻を同期しています。
+ (プラス)同期候補(candidate)正常に通信できており、メインのサーバに問題があった場合に昇格する候補です。
# (ハッシュ)参照除外(selected)距離が遠いなどの理由で、同期候補から除外されています。
~ (チルダ / なみなみ)静的ピア(statically configured)設定ファイル等で固定指定されているピア/サーバを表します(同期中とは限りません)。
(空白)応答なし / 未同期サーバと通信できていない、または拒否されている状態です。
x (エックス)偽時計(falseticker)他のサーバと時刻が大きくズレており、破棄された状態です。

PACを配布する方法であるWPADとは?———-

Q.PACファイルとはプロキシ通信の挙動を制御するファイルである。プロキシ例外リストよりも、より細かな設定(時間帯、ワイルドカードマスク、条件分岐などなど)を実現できるJavaScriptファイル。これを各PCに配置する方法がWPADである。では、どのように配置するかを見ていこう!
A.WPAD(Web Proxy Auto-Discovery Protocol)とは「大元となるWebサーバにおいたPACファイルを、PCが自動でダウンロードしに行く仕組み」である。自動で大元まで到達するには様々な方法がある。ここでは2つ紹介していこう!

方法1:DNS
①クライアントは自分の所属ドメインの先頭にwpadを付加して名前解決をする
(例:wpad.自社ドメイン.com)
②名前解決で得られたIPアドレス(Webサーバ)の標準パス(/wpad.dat)へアクセスしてファイルを取得する

方法2:DHCP
①クライアントがIPアドレス取得の際に使うDHCPフローの中で、オプションとして「Option252」と呼ばれるPACファイルのURLも一緒に通知
(例:

(http://wpad.domain.com/wpad.dat)
②①のURLへアクセスしファイルを取得する。

プロキシ・FW・WAFの違いは?———-

方向・目的などに着目すると違いが明確になるので、それらに着目しながら見ていこう!

比較項目ファイアウォール(FW)WAFプロキシ(Proxy / SWG)
主な通信方向双方向(イン / アウト)インバウンド(外 → 内)アウトバウンド(内 →外)
保護対象ネットワーク全体(セグメント)自社が公開するWebサーバ社内ネットワークのPC・社員
検査レイヤーL3 / L4(IP・ポート番号)L7(HTTP/HTTPSアプリケーション層)L7(HTTP/HTTPSアプリケーション層)
主な役割・目的ネットワーク境界の「門番」。無効なポートや不正IPからの接続を制限Webサーバ前の「用心棒」。Webアプリの脆弱性を狙う攻撃を遮断社員が外へ出る際の「検問所」。安全なアクセス制御と履歴の保存
得意な処理・機能パケットフィルタリング、NATSQLi、XSS、OSコマンド注入などの攻撃コード検知プロキシ認証、URLフィルタリング、DLP、ログ一元管理
分担する理由単純なIP/ポートの大量交通整理を高速処理するため外部からの高度なWeb攻撃からサーバを守る処理に特化するため社員が出かける際の大量なWeb通信の中身解読・検査に特化するため

Syslogコマンド——-

Syslogのコマンドを見ていこう!

ShellScript
#ログを転送するSyslogサーバの指定
logging host SyslogのIPアドレス

#Syslogサーバに送信するログ
logging trap サベリティレベル

#ログに出力されるタイムスタンプを指定
service timestamps log datetime msec

#バッファに格納するログ
logging buffered バッファサイズ サベリティレベル

p.16 プロキシとRADIUSの連携はどうやってやるの?———–

プロキシとRADIUSの連携と聞くとなんだか難しそうだけど、フローを見ると意外とシンプルであることが分かる。なので見ていこう!

1.クライアントがWeb通信のためにプロキシに接続
2.プロキシが認証要求(HTTP 407)
 プロキシは未認証のユーザからの接続に対しては、407 Proxy Authentication Required(IDとパスワードを出してください)というエラーを返す
3.ユーザが認証情報を入力しプロキシへ送信
 PCにポップアップが表示され当該情報を入力する
?普段の会社PCなどではプロキシを使っているはずだけど、ポップアップが表示されることがないのはなぜ?
A.ActiveDirectoryと統合Windows認証が裏で自動処理してくれているから。

 PCがログインした時点で裏で、認証済みのチケットを受け取ることができ、以降の通信において認証情報が求められたら裏でその認証チケットを利用して自動認証できるようにActiveDirectoryと統合Windows認証が動いてくれている。
4.プロキシはRADIUSサーバへ投げる
 認証情報をRADIUS(認証:UDP1812, アカウンティング:UDP1813)に包みRADIUSサーバへ渡す(Access-Request)。
 RADIUSはHTTPが理解できないので、認証サーバが理解できる標準フォーマット(RADIUS)に変換してあげることで、IDとパスワードを正しく認識・判定させている。
5.RADIUSの判定結果
 RADIUSサーバが認証し、問題がなければAccess-Accept(許可)をプロキシに返す
6.通信の開始

ここまでが大まかな流れだよ!では、一旦完了!

統合Windows認証とは?————-

正式名称はIntegrated Windows Authentication(IWA,統合Windows認証)である。しかし、場合によっては、Windows統合認証と呼ばれたりもする。一言で言うと、「ブラウザとWindowsOSが連携してPCログイン情報をHTTP上で自動送信する仕組み(フレームワーク)」のこと。要は、ブラウザ(HTTP)とActiveDirectoryの橋渡しをしてくれる機能。
これがないと、SSO的な働きができないので、ユーザが手動でポップアップに表示された画面に自身のID,パスワードを入力していた。

p.17 SWGのグローバルIP割り当てサービスとは?—————-

Q.文章だけ読むと、「端末や社内ルータに設定するためのIP(WAN用IP)を付与する」といったISP的なサービスを想像してしまう。しかし、そうではない。では、何を何のためにしているのか?
A.端的に言うと「SWGが外と通信するときにIPアドレスを固定にする」ということである。SWG(SaaS)サービスからの送信元は、IPアドレスは動的に変化したり他社と共有されることがある。そのため、IPアドレス制限を用いているWebサービスなどにおいては、固定のものを設定したい。そのような場合に、問題文中にもあるような「固定のグローバルIPアドレスを割り当てるサービスメニュー」を使うのである。

p.17 エージェントが利用者認証する方法

Q.エージェント、利用者認証をして~~どうのこうの~~とかって書いてあるけど、どうやって利用者認証するの?一般的にはどうすんの?
A.SWGの認証を受ける方法として最も一般的なのが、Idp連携をエージェントが裏で実行するパターン。ではIdp連携を見ていこう

▼Idp連携フロー

項番フェーズ主体動作・処理内容
0事前準備管理者SWG側に「IdPのリダイレクト先URL」と「検証用のIdP公開鍵(証明書)」をあらかじめ登録しておく。
1Web接続・転送クライアント → SWGクライアントがWebアクセスを開始。エージェント(ソフトE)が通信をキャッチし、SWGへ転送する。
2未認証検知・要求SWG → クライアントSWGは「トークン(許可証)なし=未認証」と判断。あらかじめ設定されたIdPのログインURLへリダイレクトするよう指示を返す。
3IdPへアクセスクライアント → IdPエージェント(内部ブラウザ)が指示に従い、自動的にIdP(Entra ID)へアクセスする。
4OSによる自動認証OS (Windows) → IdP統合Windows認証(またはPRT)が働き、OSが「PCログイン済み」の認証情報をバックグラウンドでIdPへ提出する。
5SAMLトークン生成IdP認証OKと判断。ユーザー情報・有効期限などを載せたデータ(アサーション)を作成し、自身の秘密鍵でデジタル署名(ハッシュ化 →暗号化)を付与する。
6トークン受領IdP → エージェント署名付きのSAMLトークンをエージェントに返却する。
7再アクセスエージェント → SWG獲得したSAMLトークンを添えて、再度SWGへアクセスする。
8SWGでの署名検証SWG事前登録してあるIdPの公開鍵でデジタル署名を復号。自身で生成したハッシュ値と一致するか確認し、改ざんがない真正なトークンか検証する。
9通行許可・中継SWG「認証済みの正規ユーザー」と確定し、通信を通過(DLP/検査などを経て目的のWebサイトへ中継)させる。

p.17 フォワードプロキシからリバースプロキシへの転用——

フォワードプロキシからリバースプロキシに利用方法を変えると書いてあると、なにかそれら二つに特別なつながりがあるように見える。しかし、これは単に、使わなくなったサーバを再利用しているだけである。なにかプロキシという共通点があるから転用が可能だったというわけではない。これが使わなくなったWebサーバであったとしてもリバースプロキシへの転用は可能である。
*補足として、共通点があることによって、既にプロキシ機能が入っているので設定変更のみで挙動を変えられるというメリットはある。しかし、だからといってほかのサーバが転用できないというわけではない。


 

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