web-dev-qa-db-ja.com

NTPはDNSポイズニングまたはスプーフィング攻撃に対して脆弱ですか?

シナリオ:

  1. 攻撃者は、被害者(Webアプリケーション)が使用するNTPサーバーのDNSルックアップを何らかの方法で侵害します。
  2. 被害者はDNS要求を送信します。 ntp.pool.org。攻撃者が応答して、被害者を制御下の別のコンピューターに誘導します。
  3. 攻撃者がNTPを介して不正なタイミング情報を発行する
  4. 攻撃者が被害者に対して現在時刻が正しくないという被害者の知識に依存する攻撃を実行する

これは可能ですか?もしそうなら、それを軽減するために何をすべきですか?他に同様の攻撃はありますか?

私に発生する興味深い考え:結果の時間変化が小さい場合、これは正しい NTP応答と区別するのが難しい場合があります。

12
Robin Green

これは数日前に尋ねられたことに気づきました。そして、この答えはここの一番下にあるかもしれません。ただし、言及する必要があるいくつかの簡単な「システム管理者」のヒントがあります。

はい、DNSハイジャックおよび中間者攻撃は、今日一般的に展開されているNTPに対して機能します。 NTPは、暗号化(SSL)なしで、認証なしで、インターネット全体で頻繁に使用されます。

そして正確な時間の維持に投資している多くの企業。Kerberosなどの多くの認証プロトコルには正確な時間の維持が必要ですが、それ以上に正確です。時間はfxの攻撃後フォレンジックにとって不可欠です。

つまり、実際にはNTPは一般的な攻撃ベクトルではありません。同意しない場合は、リンクを投稿してください。:-)

私に発生する興味深い考え:結果の時間変化が小さい場合、これは正しいNTP応答と区別するのが難しい場合があります。

a)あなたがベストプラクティスに従っており、複数のアップストリームがあると仮定しますNTPサーバー、およびb)アップストリームの大部分NTPサーバーはハイジャックされていないので、これはそれほど難しいことではありません。OpenNTPdは の簡単な偽ティッカー検出を使用することが知られています(スライド20+ ) 。AFAIK OpenNTPdは次のことを行います。

  1. すべてのNTP応答の中央値値を計算します。
  2. 外れ値を見つける、NTPサーバーは中央値から大きく外れています。これらは無視してください。
  3. 残りのNTP=サーバーの応答のみを使用して、平均を計算し、この値を最終結果として使用します。

参照NTPd は、OpenNTPdよりも複雑で/より完全な偽ティッカー検出があると言われています。

9
Jesper M

私の回答は、プロトコルの特定の実装ではなく、NTP=プロトコルに向けられています。

これは可能ですか?

はい、ただしNTP(実装ではなくプロトコル)はバージョン2(1989)以降認証をサポートしています。認証はNTPプロトコルのオプション機能であり、 NTPには5つの操作モードがあります。質問に含まれるモードは、モード3(クライアント)とモード4(サーバー)です。クライアントが同期要求を送信し、サーバーが同期応答でクライアントに応答するように構成します。クライアントとサーバー間のネットワークによっては、認証があっても、攻撃者がクライアントの時刻同期を妨害する可能性があります。ただし、攻撃者がクライアントの時間感覚を大幅に(数分以上)変更することは困難です。

もしそうなら、それを軽減するために何をすべきですか?

編集:

当初、マイナータイムシフトの脆弱性は緩和する価値がないと述べていました。 D.W. Kerberosに注意してください。解決には時間の同期が必要です。この種の攻撃がクライアントの時間感覚を分単位で歪める可能性があると私は確信しているので、私は私の答えを変更しています。

Active DirectoryはKerberosの実装に依存しているため、認証にActive Directoryを使用する場合、これは関係のないことです。

タイムサーバー、認証サーバー、認証クライアント、および攻撃者の4つのシステムネットワークとして問題をモデル化してみましょう。このシナリオでは、攻撃がノードのセキュリティを直接侵害することはできないが、ネットワークトラフィックを読み取り、変更、またはブロックすることができると想定します。

認証サーバーは、タイムサーバーにタイムデータを要求します。

攻撃者は、認証サーバーからの要求を傍受し、遅延後に要求をタイムサーバーに再送信できます。

タイムサーバーが応答すると、攻撃者はその応答を傍受し、少し遅れて認証サーバーに再送信できます。

認証クライアントは、認証サーバーまたはタイムサーバー、あるいはその両方から時刻を取得できます。このシナリオでは、攻撃者は認証クライアントとタイムサーバー間、または認証クライアントと認証サーバー間でメッセージの同じ遅延を実行できるため、問題ではありません。そのため、攻撃者は認証クライアント、認証サーバー、またはその両方の時刻同期メッセージを効果的に遅延させることができます。

注:Kerberosは複雑なプロトコルであり、例は代表的なトランザクションまたは実際のKerberosトランザクションではありません。

Kerberosの場合、クライアントがチケット要求またはサービス要求を行うと、クライアントは要求にタイムスタンプを入れます。リクエストを受け取ったサーバーは、リクエストの時間とその時間を比較します。 2つの時間の差が構成可能な値(デフォルトは5分)より大きい場合、要求は拒否されます。攻撃者は、認証クライアント、認証サーバー、またはその両方への時間データを遅延させることにより、5分を超える時間差(ほとんどの場合、デフォルトを使用)を作成する可能性があります。ただし、攻撃者がネットワーク上のデータを操作できる場合、攻撃者は認証クライアントから認証サーバーへの要求をシミュレートして遅延させることができます。

私がもともと考えていた攻撃は、有効期間のある現在の資格情報を無効にすることです。時間データが認証されていないと想定すると、攻撃者はタイムサーバーになりすまして、クライアントの時間値を遠くまで移動させる可能性があります。時間値が資格情報の有効期間を超えた場合、資格情報は無効になります。逆に、攻撃者が有効期限が切れた資格情報を取得し、クライアントの時間値を証明書の有効期間に移動させると、攻撃者に有効な資格情報が与えられます。

時間データが認証されるシナリオで、攻撃者がタイムサーバーデータを傍受し、遅い速度で時間クライアントに再送信すると、攻撃者は時間データのバックログを作成します。ある時点で、攻撃者は時間データの再生を加速し、時間クライアントが急激なシフトを感知するようにする可能性があります。ただし、このシナリオでは、攻撃者はクライアントの時間値を実際の時間よりも前に移動することはできません。

NTPの緩和策

  • NTP authentication(common secret key or Autokey))を使用します(nealmcbはクレジットを取得します)
  • システムの一部またはすべてにローカルタイムソースを使用する(D.W.とnealmcbの両方がこの提案を行う)
  • チャレンジレスポンスプロトコルを使用します(例:「正しい時刻を知ることに依存する認証プロトコルを使用しないでください」D.W.、nealmcbによってさらに提案)
  • システムの時刻値を確認するある種の時刻監査(信頼できる時刻ソースの方が良い)

Kerberosの緩和策

  • クロックスキュー値を減らす(コンピューターのクロック同期の最大許容値)
  • 使用されたオーセンティケーターのキャッシュ(オーセンティケーターの受け入れは1回のみ)
  • サービスチケットでネットワークアドレスを使用する
  • 暗号化ハッシュをリクエストに追加する
  • チケットの寿命を縮める

windows Server 2003の場合 コンピュータのクロック同期の最大許容値

他に同様の攻撃はありますか?

クライアントの時間値に基づく攻撃?

はい、最初に思い浮かぶのは、有効期限が切れた資格情報または証明書を、時計を戻すことによって有効にすることです。

クライアントサーバーの干渉ベースの攻撃?

はい、攻撃者は、NAKをクライアントまたはサーバーに偽造することにより、サービス拒否を行う可能性があります。ネットワーク上のすべてのDHCPリースを使い果たすことは、この例です。

サーバーのなりすまし攻撃?

そう、きっと SIP電話がサーバーを適切に認証していない

5
this.josh

NTPの設定は多くの要因によって複雑であり、既存のNTP認証メカニズムにより、さらに多くの複雑さが追加されます。今日、NTPを使用するホストの圧倒的多数が=認証を使用しないため、提案したように、実際の時間からの任意のオフセットにより、時間の操作に対して脆弱です。さらに、NTPで認証が使用されている場合でも、サービス拒否攻撃クライアントの同期を妨げる可能性があります。したがって、可能な場合は、正しい時刻を知ることに依存する認証プロトコルを使用しないでください-DWの回答を参照してくださいもっと。

ある意味で、多くの認証メカニズムは時間に依存していることに注意してください(たとえば、キーの有効期限)。一方で、時間があまりない場合、他の問題が発生する可能性があります。したがって、脅威の環境によっては、これをあまり気にしない方がよいでしょう。その場合、認証を構成するか、GPSを使用できます。

(Kerberosに基づく)Microsoft Active Directoryを使用している組織については、 Microsoft NTP Time Synchronization Spoof Weakness を参照してください。

たとえば、 Autokeyセキュリティアーキテクチャ、プロトコル、およびアルゴリズム NTPセキュリティの異常に厳しい要件の説明:

認証メカニズムと時刻同期メカニズムの動作は密接に絡み合っています。信頼できる時間同期には、指定された時間間隔でのみ有効な暗号化キーが必要です。ただし、参加しているサーバーとクライアントがUTCに確実に同期されている場合にのみ、時間間隔を適用できます。さらに、NTPサブネットは本質的に階層的であるため、ルートとルートのプライマリサーバーからセカンダリサーバーを経由してリーフのクライアントに時間と信頼が流れます。

5
nealmcb

はい、そうです。これは確かに脆弱性です。 NTPプロトコルは、通常展開されているように、man-in-the-middle攻撃やDNSスプーフィング攻撃などのアクティブな攻撃に対して本質的に脆弱です。それ自体が正しい時間に必要とするセキュリティプロトコル(したがって、Kerberosなど)自体がこの脅威モデルに対して脆弱です。

最も基本的な緩和策は、正しい時刻の把握に依存するセキュリティプロトコルを使用しないことです。たとえば、再生保護にタイムスタンプを使用するKerberosおよびその他のプロトコルは避け​​てください。チャレンジレスポンスとランダムナンスを使用する方が良い。

別の緩和策は、信頼できるタイムソースを使用することです。 GPS周辺機器は、信頼できるタイムソースを取得する1つの方法ですが、ワークステーションあたり100ドル以下の費用がかかるため、決して安くはありません。

4
D.W.