DMZ上のサーバーセキュリティのポイント

2018年3月12日(月)
棚橋 英之

はじめに

DMZ(DeMilitarized Zone)上では外部に公開する目的のサーバーを配置します。外部に公開するということはそれだけ攻撃を受ける可能性が高く、内部ネットワーク上のサーバー以上に適切な設定や正しいセキュリティ対策を講じる必要があります。支援士試験でも各サーバーに関する問題はかなりの割合で問われます。今回はそんなDMZ上の各サーバーのセキュリティのポイントを整理しましょう。

組織内ネットワークの構成

インターネット接続時の組織内ネットワークの一般的な構成を考えてみます(図1)。

図1:インターネット接続時の組織内ネットワークの一般的な構成例

午後試験ではネットワーク構成が提示される設問が多く、設問における環境が基本的な構成と比較して「どこが特徴的なのか」を読み取ることで設問の理解が進みます。

例えば「平成28年度秋期 午後Ⅱ問題 問2」では、次のような構成が提示されていました(図2)。

図2:平成28年度秋期 午後Ⅱ問題 問2の図2より引用

主な公開サーバーはWebサーバー、DNSサーバー、Mailサーバーです。以降では、各サーバーについて押さえるべきポイントを確認していきます。

Webサーバー

Webサーバーのセキュリティについては、図3のように分類して考えると良いでしょう。

図3:Webサーバーのセキュリティ

OSのセキュリティはWebに特化した話ではなく、基本的なマシンのセキュリティです。Webサーバーソフトのセキュリティはアクセス制限やコンテンツ公開の範囲など、サーバーソフト設定のセキュリティです。Webアプリケーションのセキュリティでは、XSSSQLインジェクションなどのアプリケーションの脆弱性への攻撃に対するセキュリティを考えます。

支援士試験では特にWebアプリケーションセキュリティの問題が午前・午後問わず頻出しています。Cookieの扱い方、セッションの管理、様々な攻撃手法に関する知識など整理しておきましょう。

ここで、Webサーバーに関係する問題を確認してみましょう。

問9 Cookieにsecure属性を付けなかったときと比較した,付けたときの動作の差はどれか。

ア Cookieに措定された有効期間を過ぎると,Cookieが無効化される。
イ JavaScriptによるCookieの読出しが禁止される。
ウ URLのスキームがhttpsのページのときだけ,WebブラウザからCookieが送出される。
エ WebブラウザがアクセスするURL内のパスとCookieによって指定されたパスのプレフィックスが一致するとき,WebブラウザからCookieが送出される。
(平成28年度秋期 午前Ⅱ問題 問9(試験問題から引用))

HTTPには複数のWebページ間で情報を維持する(ログイン状態の維持など)仕組みがありません。そこで、情報を維持すためにWebアプリケーションなどでセッションの仕組みを実装します。セッションでは、どのクライアントがデータを送信したかを識別するためにセッションIDという識別子で管理します。このセッションIDをクライアント/サーバー間でやりとりするための方法の1つとしてCookie(クッキー)があります。

セッションIDは「誰がログインしているか」という他人に知られてはいけない重要な情報です。そのため、セッションIDを格納したCookieは厳重に管理する必要があります。Cookieを通常のHTTP通信で送信すると盗聴される恐れがあるため、暗号化通信を行うHTTPS(HTTP over TLS/SSL)で送信することが推奨されます。Cookieにsecure属性を付けるとTLS/SSLで保護された通信の場合のみCookieがブラウザから送出されます。

したがって、正解は(ウ)です。

問14 攻撃者が,Webアプリケーションのセッションを乗っ取り,そのセッションを利用してアクセスした場合でも,個人情報の漏えいなどに被害が拡大しないようにするために,重要な情報の表示などをする画面の直前でWebアプリケーションが追加的に行う対策として,最も適切なものはどれか。

ア Webブラウザとの間の通信を暗号化する。
イ 発行済セッションIDをCookieに格納する。
ウ 発行済セッションIDをHTTPレスポンスボディ中のリンク先のURIのクエリ文字列に設定する。
エ パスワードによる利用者認証を行う。
(平成29年度秋期 午前Ⅱ問題 問14(試験問題から引用))

セッションが奪われていると、サーバーにとって「正規のユーザーによるリクエスト」なのか「不正のユーザーによるリクエスト」なのかが判別できません。このようなセッションを奪う行為のことをセッションハイジャックと呼びます。

ログイン後に商品の購入や送金処理、パスワードの変更など、重要な処理を不正者に実行されると大変です。そこで、このような重要なリクエストを送信する前に正規のユーザーによるリクエストであることを確認する必要があります。例えば、本人にしか知りえない情報であるパスワードによる認証を再度行えば、不正なユーザーはその認証を突破することができません。

したがって、正解は(エ)です。

Webアプリケーションのセキュリティに関しては、IPAの「安全なウェブサイトの作り方」が大変参考になります。どのような攻撃手法があるのか、どのような対処法が必要なのかぜひ一通り確認しておきましょう。

DNSサーバー

DNSサーバーに関する問題は、基本的な用語や仕組みを知っている前提で、DNSサーバーに対する攻撃手法とその対策を理解しているかがよく問われます。

・DNSサーバーの仕組み
DNSに関する様々な用語を確実に押さえておきましょう。

問18 DNSに関する記述のうち,適切なものはどれか。

ア DNSサーバに対して,IPアドレスに対応するドメイン名,又はドメイン名に対応するIPアドレスを問い合わせるクライアントソフトウェアを,リゾルバという。
イ 問合せを受けたDNSサーバが要求されたデータをもっていない場合に,他のDNSサーバを参照先として回答することを,ゾーン転送という。
ウ ドメイン名に対応するIPアドレスを求めることを,逆引きという。
エ ドメイン名を管理するDNSサーバを指定する資源レコードのことを,CNAMEという。
(平成28年度秋期 午前Ⅱ問題 問18(試験問題から引用))

DNSサーバーや名前解決に関する問題です。各用語の役割(図4)や仕組み(図5)を整理しておきましょう。

図4:DNSに関する用語

図5:DNSサーバーによる名前解決の問い合わせ

図4、図5より、正解は(ア)です。

・DNSサーバーに関係する主な攻撃とその対策

問12 DNSキャッシュポイズニング攻撃に対して有効な対策はどれか。

ア DNSサーバで,マルウェアの侵入をリアルタイムに検知する。
イ DNS問合せに使用するDNSヘッダ内のIDを固定せずにランダムに変更する。
ウ DNS問合せに使用する送信元ポート番号を53番に固定する。
エ 外部からのDNS問合せに対しては,宛先ポート番号53のものだけに応答する。
(平成28年度春期 午前Ⅱ問題 問12(試験問題から引用))

DNSキャッシュポイズニング攻撃はDNSキャッシュサーバーのキャッシュ情報を意図的に書き換えて、キャッシュサーバーを利用するユーザーを不正なサイトへ誘導したりする攻撃です。

主なDNSキャッシュポイズニング攻撃は以下のように行われます。

  1. 攻撃者はキャッシュサーバーに対し、存在しないドメイン名を問い合わせる。
  2. キャッシュサーバーは権威サーバーに問い合わせる(権威サーバーは答えを持たないため、権威サーバーからの回答はキャッシュに保存されない)。
  3. 攻撃者は偽の応答を偽装しキャッシュサーバーに送る。
    ※以上の攻撃手法はDNSキャッシュポイズニング攻撃の一種でカミンスキー攻撃とも呼ばれます。

この攻撃を成功させるためには、キャッシュサーバーから権威サーバーへの問い合わせを偽装する必要があります。偽装するには、問い合わせ時に使用されるIDと送信元ポート番号が必要です(図6)。

図6:DNSキャッシュポイズニング攻撃(カミンスキー攻撃)

この問題では攻撃に対する対策が問われています。IDは16ビットの値(216=65536通り)であり推測が比較的容易なため、IDだけでなく送信元ポート番号をランダムな値にすることで、攻撃者に推測されにくくさせる方法が有効です。

したがって、正解は(イ)です。

なお、上記の対策では根本的な対策にはならないため、さらにDNSSECの利用やキャッシュサーバーがインターネットなど外部からの再帰問い合わせを拒否するなどの対策も考慮すると良いでしょう。

以下の問題より、  C  に入れる適切な字句を、10字以内で答えよ。

〔DMZ上の機器の設定の点検〕
Kさんは,DMZ上の機器の設定を点検することにした。まず,外部メールサーバ,Webサーバ及びDMZ上のL2SWを点検することとし,W氏に相談した。W氏は,図3のようにインターネットで行われている攻撃の例を説明し,まず,プロキシサーバについて設定を点検するべきであると指摘した。

・DNSキャッシュポイズニング攻撃
・オープンリゾルバ防止機能が適切に設定されていない場合に起きるDNS  C  攻撃

(平成28年度春期 午後Ⅰ問題 問2 設問2より抜粋)

この問題では、既知の攻撃手法が問われています。攻撃者が送信元のIPアドレスを偽装してDNSサーバーに問い合わせ、その応答をDNSサーバーから攻撃対象に返す間接的な攻撃方法をDNSリフレクション攻撃と呼びます。主にオープンリゾルバがその性質からDNSリフレクション攻撃の対象になりやすいため、不必要なオープンリゾルバの設定をしていないか注意が必要です。

したがって、正解は「リフレクション」です。

Mailサーバー

Mailサーバーは、基本的な用語や仕組みを理解している前提で、スパムメールや標的型メールなどへの対策に関する問題が多く出題されます。

・Mailヘッダ

以下は、外部メールサーバーの概要である。     に入れる適切な字句を10字以内で答えよ。

インターネットと内部メールサーバーとの間のメール転送機能がある。メール転送機能では、SMTPの     中の宛先情報を用いた不正中継防止設定が可能である。

(平成27年度春期 午後Ⅱ問題 問1 設問1 (2) を基に作成)

メールの宛先、送信元情報にはエンベロープ From/ToヘッダFrom/Toがあります。メールサーバーが参照するのはエンベロープ(封筒)のFrom/Toです(図7)。

図7:エンベロープ From/To とヘッダFrom/To

したがって、正解は「エンベロープ」です。

「ヘッダFrom/To」「エンベロープFrom」は偽装が容易なため、標的型メールなどでは偽装されていることを考慮する必要があります。支援士試験では、ヘッダとエンベロープが識別できているかを問う問題がよく出題されます。単純に宛先と言われた場合は、ヘッダとエンベロープのどちらが話題になっているかを整理して考えると良いでしょう。

・第三者中継(オープンリレー)

     に入れる適切な字句を10字以内で答えよ。

迷惑メールの送信に悪用される     を防止するために、エンベロープの宛先メールアドレスのドメイン名が自社ドメイン以外のメールを拒否
( 平成28年度春期 午後Ⅰ問題 問2 設問1を基に作成 )

メールサーバーが受け取ったメールに対して、送信元アドレス、送信先アドレスのどちらにも自社ドメインが含まれない場合、該当するメールサーバーへ転送します。この転送機能を第三者中継またはオープンリレーと呼びます。

したがって、正解は「オープンリレー」または「第三者中継」です。

第三者中継は、自身のメールサーバーを踏み台としたスパムメールの発信など攻撃者に悪用される可能性があるため、設定を許可しないことが望ましいです。

・OP25B

問15 スパムメールの対策として,宛先ポート番号25の通信に対してISPが実施するOP25Bの例はどれか。

ア ISP管理外のネットワークからの通信のうち,スパムメールのシグネチャに該当するものを遮断する。
イ 動的IPアドレスを割り当てたネットワークからISP管理外へのネットワークへの直接の通信を遮断する。
ウ メール送信元のメールサーバについてDNSの逆引きができない場合,そのメールサーバからの通信を遮断する。
エ メール不正中継の脆弱性をもつメールサーバからの通信を遮断する。
(平成29年度秋期 午前Ⅱ問題 問15(試験問題から引用))

OP25B(Outbound Port 25 Blocking)はISPが実施するスパムメール対策です。ISPが管理するネットワーク内から外部へ自由にアクセスできる状況ではウイルスに感染したPCなどからスパムメールを発信させられる可能性があるため、ISPが管理するネットワーク内から外部への25番ポートの通信をブロックします。

したがって、正解は(イ)です。

問20 TCPのサブミッションポート(ポート番号587)の説明として,適切なものはどれか。

ア FTPサービスで,制御用のコネクションのポート番号21とは別にデータ転送用に使用する。
イ Webアプリケーションで,ポート番号80のHTTP要求とは別に,サブミットボタンをクリックした際の入力フォームのデータ送信に使用する。
ウ コマンド操作の遠隔ログインで,通信内容を暗号化するためにTELNETのポート番号23の代わりに使用する。
エ 電子メールサービスで,迷惑メール対策としてSMTPのポート番号25の代わりに使用する。
(平成28年度春期 午前Ⅱ問題 問20(試験問題から引用))

OP25Bが機能していると、外出先で自分が利用しているISPのメールサーバーから送信できないなど、正規の利用者にも弊害が発生します。そこで、メール送信専用のポート番号であるサブミッションポート(587/TCP)が提供されています。サブミッションポートを使用する場合、メール送信時に送信者の認証を行うSMTP認証(SMTP-AUTH)と組み合わせる必要があります。

したがって、正解は(エ)です。

・送信ドメイン認証

     に入れる適切な字句を10字以内で答えよ。

送信メール対策として、     認証技術の一つであるSPF(Sender Policy Framework)によってFailと判定されたメールを拒否
( 平成28年度春期 午後Ⅰ問題 問2 設問1を基に作成 )

SPF(Sender Policy Framework)送信ドメイン認証技術の1つです。送信ドメイン認証とは、電子メールの送信者偽装(なりすまし)を防ぐための技術で、メール送信者のメールアドレスにあるドメインを確認し、正規のメールサーバーから送信されているかを検証します。

したがって、正解は「送信ドメイン」です。

代表的な送信ドメイン認証にSPFやDKIM(DomainKeys Identified Mail)があります。どちらも過去に何度か出題されているため、詳細も含めて整理しておくと良いでしょう。

おわりに

DMZ上の公開サーバーであるWebサーバー、DNSサーバー、Mailサーバーに関する問題は午前・午後問わず幅広く問われる傾向があります。各サーバーの仕組みや、セキュリティとして押さえるべきポイントを整理しておきましょう。

次回は、午後問題頻出テーマの1つである「インシデント対応」について解説します。

NECマネジメントパートナー株式会社 人材開発サービス事業部
2009年日本電気株式会社入社。人材開発事業部門に所属し、Linuxシステム、Webプログラミング、セキュリティの教育を担当。近年では、官公庁や重要インフラ事業者へのCSIRT要員に対して、インシデント対応の演習を展開している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています