前回のあらすじ↓
「DNSキャッシュポイズニング」とは
不正なWebサイトへの誘導。
DNSサーバに、ドメイン名などを改ざんした不正な情報を送り込み、そのDNSサーバを参照してきた利用者を、本来のサーバとは異なるサーバに誘導する攻撃のこと。
<対策>
・DNSSEC(DNS Security Extensions)の導入:
DNSSECは、DNSの応答にデジタル署名を付与し、正当な応答かどうかを検証する仕組みです。これにより、DNSキャッシュポイズニングを防止できます。
・DNSキャッシュの定期的な更新:
DNSキャッシュのTTL(Time-to-Live)を短く設定し、定期的にキャッシュを更新することで、攻撃者が偽の情報を保持する時間を短縮できます。
ランダム化:
DNSサーバのリクエストIDやソースポートをランダム化することで、攻撃者が偽のDNS応答を送信する際の予測を難しくします。DNSサーバにディジタル証明書を導入して認証を行うようにする。
「ポートスキャン」とは
ポート番号を順に変えて空いているサービスを確認すること。
<ポート番号とは>
プロトコル(サービス)ごとに付けられている番号
(HTTP=80、DNS=53など)
「ドメイン名ハイジャック攻撃」とは
権威DNSサーバに書かれている情報を書き換え攻撃者のサーバに誘導する攻撃のこと。
<権威DNSサーバとは>
企業が保有するWebサーバやメールサーバなどのホスト名およびIPアドレスなどを管理しているDNSサーバのこと。
「ランダムサブドメイン攻撃」とは
ボットに感染した多数のPCから、攻撃対象のDNSサーバに対して、短時間に大量の問い合わせを集中させると、当該サーバは過負荷状態になり、問い合わせに対応できなくする攻撃のこと。
「DNS水責め攻撃(DNS Flood Attack)」とも言う。
「フィッシング」とは
サイトの偽装や偽造電子メールの使用などの手法で、ユーザを騙して個人情報やパスワードなどを偽のWebサイトに入力させて、不正に入手する方法のこと。
「ビジネスメール詐欺(BEC)」とは
取引先などと偽った巧妙な手口を使い、偽サイトに誘導させて、パスワードなどを不正に入手する行為のこと。
「ソーシャルエンジニアリング」とは
人間の不注意や誤解・勘違いなどの心理的な盲点を突く攻撃方法。
不正な利用者が、本人になりすましたり、パスワードの書かれた紙をゴミ箱から漁ったり(トラッシング/スキャベンジング)などの方法で、セキュリティに関する情報を不正に得る行為のこと。
<対策>
本人認証の徹底、パスワードを不用意に教えないなど
「シャドーIT」とは
社内のネットワークに無断で個人のPCなどを接続すること。
「DNSキャッシュポイズニングに分類される攻撃内容はどれか?」
答え:
PCが参照するDNSサーバに偽ドメイン情報を注入して、利用者を偽装されたサイトに誘導する。
<誤り>
「DNSサーバのソフトウェアのバージョン情報を入手してDNSサーバのセキュリティホールを特定する。」
<バージョンバナー攻撃(Banner Grabbing)>
説明: この攻撃は、攻撃者がDNSサーバのソフトウェアバージョンやその他の情報を入手することによって、サーバの脆弱性を突くために行われます。
攻撃者は、バナー(サーバのバージョンやサービス名)を通じてサーバの種類やバージョンを確認し、それに適した脆弱性を特定して攻撃します。
DNSキャッシュポイズニングに該当しません。
「攻撃対象のサービスを妨害するために、攻撃者がDNSサーバを踏み台に利用して再帰的な問い合わせを大量に行う。」
<リフレクション攻撃(DNSリフレクション攻撃)>
説明: この攻撃では、攻撃者が他のDNSサーバに対してリクエストを送信し、再帰的な問い合わせを利用してターゲットに大量のレスポンスを送りつけます。
これにより、ターゲットサーバが過負荷状態となり、サービスが停止したり遅延したりします。
DNSサーバは踏み台として利用され、攻撃者は自分のIPアドレスを隠すことができます。
DNSキャッシュポイズニングに該当しません。
「内部情報を入手するために、DNSサーバが保存するゾーン情報をまとめて転送させる。」
<ゾーン転送攻撃>
説明: ゾーン転送攻撃では、攻撃者がDNSサーバに対してゾーン転送リクエストを送信し、DNSサーバが保存しているドメインに関連する全ての情報(例えば、サブドメイン、IPアドレスなど)を入手しようとします。
ゾーン転送は、通常、DNSサーバの設定ミスや誤設定によって許可されている場合に発生します。
この情報を使用してさらに攻撃を仕掛けたり、ネットワークの構造を把握したりすることができます。
DNSキャッシュポイズニングに該当しません。
「攻撃者がシステムに侵入するときにポートスキャンを行う目的はどれか?」
答え:
事前調査の段階で、攻撃できそうなサービスがあるかどうかを調査する。
<誤り>
「権限取得の段階で、権限を奪取できそうなアカウントがあるかどうかを調査する。」
説明: これは、攻撃者がターゲットシステムで権限を奪取できるアカウントを調べる目的の活動であり、通常は情報収集や脆弱性の調査、アカウント昇格などの一環として行われます。
この段階では、ポートスキャンを行うことでオープンなサービスを見つけることはあるものの、アカウント情報の調査そのものはポートスキャンとは直接的に関係しません。
例えば、「パスワードクラッキング」や「ブルートフォース攻撃」を使用してアカウントを奪取することがあります。
ポートスキャンの目的ではない。
「不正実行の段階で、攻撃者にとって有益な利用者情報があるかどうかを調査する。」
説明: この活動は、攻撃者がシステム内の有益な情報(例えば、利用者情報、データベース、機密情報など)を探し出し、それを不正に取得しようとするものです。
ポートスキャンの目的は、ターゲットシステムでどのポートが開いているかを調べ、そのポートを利用してサービスにアクセスすることにありますが、実際の情報収集や不正実行の段階ではポートスキャンだけではなく、別の手段(例:SQLインジェクション、RCEなど)が使用されます。
ポートスキャンの目的ではない。
「後処理の段階で、システムログに攻撃の痕跡が残ってないかどうかを調査する。」
説明: この活動は、攻撃者がシステムに不正アクセスした後に、ログファイルなどに攻撃の証拠が残っていないかを調査するものです。
攻撃が成功した場合、ログに攻撃の痕跡を残さないように消去したり、改ざんしたりします。
この段階では、ポートスキャンは通常行われません。
ポートスキャンは攻撃前にターゲットのネットワークを調べるための手法ですので、後処理とは関係ありません。
「企業のDMZ上で1台のDNSサーバを、インターネット公開用と、社内PC及びサーバからの名前解決の問い合わせに対応する社内用とで強要している。
このDNSサーバが、DNSキャッシュポイズニング攻撃を受けた結果、
直接引き起こされ得る現象はどれか?」
答え:社内の利用者が、インターネット上の特定のWebサーバにアクセスしようとすると、本来とは異なるサーバに誘導される。
<誤り>
「DNSサーバのハードディスク上に定義されているDNSサーバ名が書き換わり、インターネットからのDNS参照者が、DNSサーバに接続できなくなる。」
これはDNSキャッシュポイズニングには関係ありません。
DNSキャッシュポイズニングは、DNS応答をキャッシュに保存して不正なリダイレクトを行うものです。
このケースはDNSサーバ名が書き換わっているので、サーバが機能しなくなる問題ですが、ポイズニングとは異なります。
「DNSサーバのメモリ上にワームが常駐し、DNS参照元に対して不正プログラムを送り込む。」
これはDNSキャッシュポイズニング攻撃とは直接関係ありませんが、DNSサーバがマルウェアに感染している場合、DNSのキャッシュにも影響を与えたり、ポイズニングを行ったりする可能性があります。
ワームやマルウェアがメモリ上で動作し、DNS参照元(クライアント)に不正プログラムを送り込むことは、ポイズニングによる被害を引き起こすこともありますが、直接的にポイズニング攻撃そのものとは言えません。
「社内の利用者間の電子メールについて、宛先メールが書き換えられ、送信できなくなる。」
これはDNSキャッシュポイズニングとは関係ありません。
メールが送信できなくなる原因としては、DNS解決の失敗が考えられますが、DNSキャッシュポイズニングはDNS応答を偽造してリダイレクトする攻撃であり、メールの内容変更には直接関係しません。
宛先メールアドレスの書き換えは、通常、スパムフィルターやメールサーバの設定ミス、またはマルウェアによるものであり、DNSキャッシュポイズニングそのものの影響ではありません。
「DNSキャッシュサーバに対して外部から行われるキャッシュポイズニング攻撃への対策のうち、適切なものは?」
答え:再帰的な問合せに対しては、内部のネットワークからのものだけを許可するように設定する。
<誤り>
「外部ネットワークからの再帰的な問合せにも対応できるように、コンテンツサーバにキャッシュサーバを兼ねさせる。」
説明:コンテンツサーバにキャッシュサーバを兼ねさせるというアプローチは、キャッシュ機能の最適化を目的としていますが、DNSキャッシュポイズニング攻撃への直接的な対策とは言えません。
この方法自体は、再帰的な問い合わせに対して効率的な応答を行うことを意図しているため、攻撃防止には繋がりません。
適切性:不適切です。キャッシュサーバとコンテンツサーバを同じシステムで運用することは、パフォーマンスや管理の面では有益かもしれませんが、キャッシュポイズニング攻撃を防ぐための直接的な対策にはなりません。
「再帰的な問合せを行う際の送信元のポート番号を固定する。」
説明:送信元ポート番号を固定してしまうと、攻撃者がそのポート番号を予測し、悪意のある応答を送信することが容易になるため、逆に攻撃を助長することになります。
「再帰的な問合せを行う際のトランザクションIDを固定する。」
説明:再帰的な問合せのトランザクションIDを固定するというアプローチは、トランザクションIDを固定することで攻撃者が偽応答を送るのを難しくすることを目的としています。
しかし、DNSキャッシュポイズニング攻撃の防御において、トランザクションIDをランダム化する方が効果的です。
トランザクションIDが固定されていると、攻撃者が偽の応答を送る際にそのIDを容易に予測でき、ポイズニング攻撃を成功させる可能性が高くなります。
適切性:不適切です。
トランザクションIDを固定することは、逆にポイズニング攻撃に対して脆弱にしてしまいます。
IDをランダム化することが最も効果的です。
「DNSSECについての記述のうち適切なものは?」
答え:公開鍵暗号方式によるディジタル署名を用いることによって、正当なDNSサーバからの応答であることをクライアントが検証できる。
<誤り>
「DNSサーバへの問合せの時に送信元ポート番号をランダムに選択することによってDNS問合せへの不正な応答を防止する。」
説明:DNSキャッシュポイズニング攻撃を防ぐために、DNSサーバが送信元ポート番号をランダムに選択することで、攻撃者が偽のDNS応答を送ることが難しくなります。
これはDNSサーバのセキュリティ強化策であり、DNSSECとは関係ありません。
「DNSの再帰的な問合せの送信元として許可するクライアントを制限することによって、DNSを悪用したDos攻撃を防止する。」
説明:DNSサーバに対して外部からの再帰的な問合せを制限し、DNS DoS(サービス拒否)攻撃を防止する方法です。
この方法もDNSSECとは関係がありませんが、DNSサーバのセキュリティを強化するための対策の一つです。
「共通鍵暗号方式にようメッセージ認証を用いることによって、正当なDNSサーバからの応答であることをクライアントが検証できる。」
説明:共通鍵暗号方式によるメッセージ認証は、一般的に「メッセージ認証コード(MAC)」を使った認証方式で、DNSSECの標準的な方法ではありません。
共通鍵暗号方式は、公開鍵暗号と異なり、鍵が共有されている両者でのみ使用でき、DNSSECのような公開検証には適していません。
「DNS水責め攻撃(ランダムサブドメイン攻撃)の手口と目的に関する説明のうち、適切なものは?」
答え:オープンリゾルバ(外部からも問い合わせができるDNSサーバ)となっているDNSキャッシュサーバに対して、攻撃対象のドメイン名をランダムかつ大量に生成して問い合わせ、攻撃対象の権威DNSサーバを過負荷にさせる。
<補足>
DNS水責め攻撃の目的は、攻撃対象のDNSサーバを過負荷にさせ、サービスを妨害することです。
攻撃者は、オープンリゾルバ(外部からも問い合わせができるDNSサーバ)を使い、攻撃対象のドメインに対して大量のランダムなサブドメイン名を生成して問い合わせを行います。
この手法により、権威DNSサーバは無駄に多くのリクエストを処理することになり、過負荷状態になります。
<誤り>
「IPSが管理するDNSキャッシュサーバに対して、送信元を攻撃対象のサーバのIPアドレスに詐称してランダムかつ大量に生成したサブドメイン名の問合せを送り、その応答が攻撃対象のサーバに送信されるようにする。」
これはDNSキャッシュポイズニングに近い手法で、攻撃者がDNSキャッシュを毒し、不正なIPアドレスをDNSサーバにキャッシュさせる攻撃です。
目的は過負荷ではなく、DNSキャッシュを毒して攻撃者の意図したIPアドレスに誘導することです。
「攻撃対象のDNSサーバに対して、攻撃者が管理するドメインのサブドメイン名をランダムかつ大量に生成してキャッシュさせ、正規のDNSリソースレコードを強制的に上書きする。」
これもDNSキャッシュポイズニングの一種ですが、攻撃者が正規のDNSリソースレコードを上書きすることが目的です。
過負荷をかけることが目的ではありません。
「攻撃対象のWebサイトに対して、当該ドメインのサブドメイン名をランダムかつ大量に生成してアクセスし、非公開のWebページの参照を試みる。」
これはディレクトリトラバーサル攻撃やサブドメイン探索の手法で、非公開ページを探し出すことが目的です。過負荷攻撃とは異なります。