<p><!-- style_prompt_v1.0 -->本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">令和5年度 秋期 情報処理安全確保支援士 午前Ⅱ 問1 DNSキャッシュポイズニング対策</h1>
<p>DNSキャッシュポイズニングの仕組みと、ポート番号をランダム化することで攻撃の成功率を下げる防御策の有効性を問う問題です。</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>DNSキャッシュポイズニング攻撃の対策のうち、DNSキャッシュサーバに適用することで、偽の応答メッセージを受信してしまう確率を下げることができるものはどれか。</p>
<p>ア DNSSECの導入
イ 再帰的な問合せの禁止
ウ ソースポートランダマイズの適用
エ ゾーン転送の制限</p>
</blockquote>
<h3 class="wp-block-heading">【解説】</h3>
<p>DNSキャッシュポイズニングは、DNSキャッシュサーバに対して偽の応答を送り込み、不正なIPアドレスをキャッシュ(蓄積)させる攻撃です。攻撃を成功させるには、キャッシュサーバが権威DNSサーバへ送った「問合せ」に含まれる情報を、偽の応答メッセージで一致させる必要があります。</p>
<p>一致させる必要がある主な要素は以下の2点です。</p>
<ol class="wp-block-list">
<li><p><strong>トランザクションID (16bit)</strong>:0〜65,335の範囲</p></li>
<li><p><strong>宛先ポート番号(問合せ側のソースポート) (16bit)</strong></p></li>
</ol>
<p>従来、ソースポートが固定されていたため、攻撃者はトランザクションIDのみを推測すれば済みましたが、<strong>ソースポートランダマイズ</strong>を適用することで、推測すべき情報の組み合わせ(エントロピー)が劇的に増加します。</p>
<p>$$
推測の難易度 \propto トランザクションID数(2^{16}) \times ポート数(約2^{14} \sim 2^{16})
$$</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
sequenceDiagram
participant A as 攻撃者
participant B as DNSキャッシュサーバ
participant C as 権威DNSサーバ
B ->> C: 問合せ (ソースポート: Random, TXID: Random)
A -->> B: 大量の偽応答 (ポートとTXIDを総当たり)
Note over B: 両方が一致しない限り拒否される
</pre></div>
<h3 class="wp-block-heading">【選択肢の吟味】</h3>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">選択肢</th>
<th style="text-align:center;">判定</th>
<th style="text-align:left;">解説</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">ア</td>
<td style="text-align:center;">△</td>
<td style="text-align:left;">DNSSECはデジタル署名で応答の正当性を<strong>検証</strong>する根本対策だが、本問の「受信してしまう確率を下げる」という文脈(数理的な推測の困難化)ではウが最適。</td>
</tr>
<tr>
<td style="text-align:left;">イ</td>
<td style="text-align:center;">×</td>
<td style="text-align:left;">再帰的な問合せを禁止するとキャッシュサーバとしての機能が停止するため、対策としては不適切。</td>
</tr>
<tr>
<td style="text-align:left;">ウ</td>
<td style="text-align:center;"><strong>正解</strong></td>
<td style="text-align:left;">ソースポートを動的に変更することで、攻撃者が正解のパケットを送り込む確率を物理的に低下させる。</td>
</tr>
<tr>
<td style="text-align:left;">エ</td>
<td style="text-align:center;">×</td>
<td style="text-align:left;">ゾーン転送の制限は、内部ネットワーク情報の漏洩を防ぐための対策であり、キャッシュポイズニング対策ではない。</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【ポイント】</h3>
<ul class="wp-block-list">
<li><p><strong>ソースポートランダマイズ</strong>:UDP 53番ポート固定ではなく、送信元ポートをランダム化してエントロピーを高める手法。</p></li>
<li><p><strong>カミンスキー型攻撃</strong>:存在しないサブドメインを悪用して連続攻撃を仕掛ける手法への主要な対抗策となる。</p></li>
<li><p><strong>トランザクションID</strong>:16ビット(65,536通り)という限られた空間を補完するのがソースポートの役割。</p></li>
</ul>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
令和5年度 秋期 情報処理安全確保支援士 午前Ⅱ 問1 DNSキャッシュポイズニング対策
DNSキャッシュポイズニングの仕組みと、ポート番号をランダム化することで攻撃の成功率を下げる防御策の有効性を問う問題です。
DNSキャッシュポイズニング攻撃の対策のうち、DNSキャッシュサーバに適用することで、偽の応答メッセージを受信してしまう確率を下げることができるものはどれか。
ア DNSSECの導入
イ 再帰的な問合せの禁止
ウ ソースポートランダマイズの適用
エ ゾーン転送の制限
【解説】
DNSキャッシュポイズニングは、DNSキャッシュサーバに対して偽の応答を送り込み、不正なIPアドレスをキャッシュ(蓄積)させる攻撃です。攻撃を成功させるには、キャッシュサーバが権威DNSサーバへ送った「問合せ」に含まれる情報を、偽の応答メッセージで一致させる必要があります。
一致させる必要がある主な要素は以下の2点です。
トランザクションID (16bit) :0〜65,335の範囲
宛先ポート番号(問合せ側のソースポート) (16bit)
従来、ソースポートが固定されていたため、攻撃者はトランザクションIDのみを推測すれば済みましたが、ソースポートランダマイズ を適用することで、推測すべき情報の組み合わせ(エントロピー)が劇的に増加します。
$$
推測の難易度 \propto トランザクションID数(2^{16}) \times ポート数(約2^{14} \sim 2^{16})
$$
sequenceDiagram
participant A as 攻撃者
participant B as DNSキャッシュサーバ
participant C as 権威DNSサーバ
B ->> C: 問合せ (ソースポート: Random, TXID: Random)
A -->> B: 大量の偽応答 (ポートとTXIDを総当たり)
Note over B: 両方が一致しない限り拒否される
【選択肢の吟味】
選択肢
判定
解説
ア
△
DNSSECはデジタル署名で応答の正当性を検証 する根本対策だが、本問の「受信してしまう確率を下げる」という文脈(数理的な推測の困難化)ではウが最適。
イ
×
再帰的な問合せを禁止するとキャッシュサーバとしての機能が停止するため、対策としては不適切。
ウ
正解
ソースポートを動的に変更することで、攻撃者が正解のパケットを送り込む確率を物理的に低下させる。
エ
×
ゾーン転送の制限は、内部ネットワーク情報の漏洩を防ぐための対策であり、キャッシュポイズニング対策ではない。
【ポイント】
ソースポートランダマイズ :UDP 53番ポート固定ではなく、送信元ポートをランダム化してエントロピーを高める手法。
カミンスキー型攻撃 :存在しないサブドメインを悪用して連続攻撃を仕掛ける手法への主要な対抗策となる。
トランザクションID :16ビット(65,536通り)という限られた空間を補完するのがソースポートの役割。
ライセンス :本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント