DNSキャッシュポイズニングの対策は?
DNSキャッシュポイズニングは以下の流れで発生する。
- 攻撃者が再帰問い合わせを発行。
- リゾルバが反復問い合わせを発行。
- 権威サーバが応答を返す。
- 返される前に攻撃者が先に偽のキャッシュ情報を返す。
以上だ。ここで疑問だが、なぜ偽の情報がそのまま利用されてしまうのだろうか。
IPアドレス、ポート番号、トランザクションIDなどが必要なはずなのに、攻撃者はどこから入手している?
これは簡単。権威サーバから送られてくるパケットを盗みみて、同じパケットで送っているのだ。だからリゾルバは正常と判断してしまうというわけ。
対策
対策としては、外部からの再帰問い合わせには応答しないようにするということ。
そうすれば攻撃者の目的である偽のキャッシュ情報を送り込むための反復問い合わせ自体が発生しないから。
(再帰問い合わせ=リゾルバとクライアント間のやりとり)
(反復問い合わせ=リゾルバと権威サーバとのやりとり)
MITBとは?
Man in the browserのこと。中間者攻撃と似ているが、違う。もっとひどい。
MITMと違うのは、クライアント内ですでに情報を改竄していること。そのため、途中で改竄する訳でもないから気がつきづらい。
そのため、Webサーバ側での対処はかなり大変。
対策は?
対策としては、トランザクション署名を利用すること。この攻撃はオンラインバンギングの送金時によく起こるらしく、口座情報、金額を差し替えて送るらしい。
そのため、口座番号と金額からハッシュ値を算出し、トランザクション署名としてそれも一緒に送る。サーバは貰った口座番号と金額でハッシュ値を算出し、付与されたトランザクション署名と同じなら処理、違ったら不正として扱う。
やるじゃん。
コメント