「応用情報技術者試験/平成30年秋期午前問39」

問題

出典:応用情報技術者令和平成30年秋期午前問39

DNSキャッシュサーバに対して外部から行われる
キャッシュポイズニング攻撃への対策のうち、
適切なものはどれか。

ア:外部ネットワークから再帰的な問合せにも応答できるように、コンテンツサーバにキャッシュサーバを兼ねさせる。
イ:再帰的な問合せに対しては、内部のネットワークからのものだけを許可するように設定する。
ウ:再帰的な問合せを行う際の送信元のポート番号を固定する。
エ:再帰的な問合せを行う際のトランザクションIDを固定する。

解説

DNSキャッシュポイズニング攻撃とは
DNSのキャッシュがポイズニングされる攻撃である。

ここでのポイズニングとは、偽の情報で書き換えられるということである。

再帰的な問合せとは、具体的には再帰的に問い合わせる事を命令しているのである。

社長は1人だが、部長は5人くらいいるのである。
その部長の下には課長が10人くらいいて、その下には100人くらい部下がいるのである。

まぁ、社会はそんな単純ではないが、とりあえずそうとする。

で、社長はどこかのお偉いさんから問合せを受ける。
「ABCという商品の情報ってある?」と。

すると、社長は5人の部長に対して「ABCって知ってる?」と聞くのである。

5人のうちの部長の誰かが知っていればそれで解決であるが、
5人の部長全員が知らなければ、各部長の配下の課長に「ABCって知ってる?」と聞くのである。

10人のうちの課長の誰かが知っていればそれで解決であるが、
10人の課長全員が知らなければ、各課長の配下の部下に「ABCって知ってる?」と聞くのである。

という目的が達成されるまで同じ処理を下の階層に延々と行っていくことを再帰処理というのである。

DNS情報に対してならば、各サーバに対して「この情報知ってる?」と行っていくのである。

で、再帰的な問合せというのは、この例で言う所の「偉い人から社長への問い合わせ」を指す。
そして、社長から部長以下への繰返し処理のことを反復問合せと呼ぶ。

さて本題である。
DNSキャッシュポイズニング攻撃ってどうやってやるの?
そしてそれをどうやって防ぐの?
という話である。

DNSキャッシュポイズニング攻撃ってどうやってやるの?

DNSキャッシュポイズニング攻撃を行う者を毒太郎と悪次郎と呼ぶことにする。こいつは部外者である。社内の人間ではない。

まず最初の仕掛け人である毒太郎は社長に「ABCって知ってる?」と問い合わせるのである。
すると社長は部長に対して「ABCって知ってる?」と問合せを始めるのである。
反復的問合せを意図的に生じさせたことになる。

で、社長から部長に問合せが走って、さらにその下の階層に、、、と問合せが行われていずれか正しい答えがあれば返ってくるのである。

仮に本当の答えは「アメリカ、イギリス、中国」だとする。

だが、ここで悪次郎の登場である。
「俺、ABCって知ってますよ!!アホでバカなキャプテンのことですよ!!」と言うのである。

悪次郎は本当の答えが出てくるよりも先に「ABCはアホでバカなキャプテン」という情報を伝えるのである。

すると、社長は「なるほど、ABCはアホでバカなキャプテンのことなのか!!!わかったぞ!」となる。

するとこの会社の情報録には「ABCはアホでバカなキャプテン」という内容が登録されるのである。

結果として、偽の応答により、偽の情報が登録されてしまう。これがキャッシュポイズニングである。

では、このような事態が起こらないようにするためにはどうすれば良い?

毒太郎と悪次郎が存在しなければ良いのである、アイツラから問合せを受けなければよいのである。

この二人は外部の人間であり、外部の人間から不正な問合せを受けたことにより、このような事態になった。

よって「再帰的な問合せに対しては、内部のネットワークからのものだけを許可するように設定する。」という対策を取れば、キャッシュポイズニングは防げる。

解答

正解:イ

アドセンス
改行

テックキャンプ