ソフトウェアエンジニアリングインスティテュート

NTPの仕組み

シーガルの法律によると

時計を持っている人は今が何時かを知っています。2つの時計を持っている男性は決して確信が持てません。

コンピューター科学者のDavidL。Millsは、コンピューターの時計を標準の時刻基準に同期させるために1980年代初頭にNTPを作成しました。NTPの開始以来、ボランティアのグループはNTPプールプロジェクトは、世界中の多くのLinuxディストリビューションおよびネットワークアプライアンスで、大規模で公開されている「タイムサーバーの仮想クラスターを維持し、信頼性が高く使いやすいNTPサービスを数百万のクライアントに提供しています。

NTPで詳しく説明しています。 .org、NTPは、ある階層から別の階層に時間を渡すことで階層的に機能します。たとえば、階層0は参照クロックとして機能し、最も正確で最高精度のタイムサーバーです(たとえば、アトミッククロック、GPSクロック、ラジオクロック)。 。)Stratum1サーバーはStratum0サーバーからStratum15まで時間がかかります; Stratum 16 cl ockはどのソースにも同期されていません。クライアントの時間は、1つ以上のストラタムサーバーとのパケット交換によって確立されます。これらのパケットは各メッセージにタイムスタンプを付け、メッセージの送信にかかる時間は、クライアントにあるべき時間のコンセンサスを確立するためのアルゴリズムの要素です。

NTPは、コンセンサスを通じて正確なタイムソースを提供できます。複数の入力サーバー。また、使用可能なタイムサーバーが不正確であるかどうかを特定することもできます。 1つの課題は、インターネットコミュニティが友好的だった時代にNTPが構築されたことです。 NTPの開始時、NTPサーバーはユーザーの検証に関与していませんでした。 1980年代初頭、リソース開発者が独自のNTPソリューションのトラブルシューティングと確認に使用できるため、NTPサーバーが一般に公開されるのが一般的でした。

NTPの標準プロトコルはユーザーデータグラムプロトコル(UDP)です。この設計上の決定により、悪用の機会が生まれました。コネクションレス型のUDPは、ベストエフォートプロトコルであるため、伝送制御プロトコル(TCP)よりもスプーフィングやパケットの損失の影響を受けやすくなっています。 NTPプールプロジェクトのボランティアはNTPを進歩させ続けていますが、多くのネットワーク管理者やビジネスオーナーが自分のギアにパッチを当てる動機はそれほど強くありません。開始以来、NTPネットワークプロトコルは無数のシステムに統合されており、その多くはパッチが適用されておらず、20リビジョン以上古いコードを実行している可能性があります。

NTPの脆弱性に関連する攻撃

Cory Doctorowは最近、Boing / Boingの古いNTPの潜在的なフォールアウトについて書いています。

NTPは、対話するすべてのコンピューターがクロックを正確に保つ方法です。これは、誇張することのできないインターネットの機能…さらに、NTPの脆弱性により、インターネットの多くのタイムサーバーがサービス拒否攻撃の強制乗数になり、単に罰する攻撃がほぼ止められない攻撃になりました。 。

最近のDDoS攻撃に採用されている方法は、脆弱性に依存していませんが、構成が不十分です。 NTPサービスは、監視対象サーバーのリストに対するクエリ要求に応答しています。スプーフィングされたソースを使用した単一の小さなリクエストで、600台のサーバーのリストを生成し、ターゲットに送信できます。脆弱性はありませんが、これらのサーバーの数百または数千が無意識のターゲットにリダイレクトされている場合、被害者は問題のセマンティクスを気にせず、痛みを引き起こします。

システムの時刻同期、またはその欠如は、システムの基本機能を損なう可能性のある脆弱性の重要な要因となる可能性があります。DDoS攻撃の原因となるNTPの乱用に加えて、ネットワーク上での時刻同期により、本物のデータ送信の偽のまたは悪意のある繰り返し遅延を伴うリプレイ攻撃(つまり、再生攻撃)の機会が生まれます。

たとえば、ユーザーが試みたときにリプレイ攻撃が発生する可能性があります。別のユーザーに身元の証明を提供するため。途中の悪意のあるアクターがメッセージを傍受し、意図したターゲットに到達できないようにします。悪意のあるユーザーは、身元確認のリクエストを送信し、盗まれた証拠を検証として含めます。時間が同期されていない場合、交換が許可されるウィンドウは、安全と見なされる範囲を超えて拡大され、巧妙な回避が可能になります。その結果、有効なユーザーは、成功したと思わせることができます。正当なユーザーを装った詐欺師の身元を確認しました。公平を期すために、このタイプのリプレイ攻撃はまれであり、ネットワーク、通信パス、およびそのパス内の侵害されたマシンにアクセスせずに正常に実行することは非常に困難です。

ShaunKellyなどの多くのセキュリティ専門家は、NTPを使用してログを操作し、コンピュータシステムの時刻を変更して、イベントのシーケンスを変更していることを指摘しています。クロックが同期されていない場合、ネットワークアナリストは、異種システム間でログ相関を実行するのに非常に苦労します。NTPを操作すると、ネットワークアクティビティの識別と、攻撃につながる一連のイベントを特定するのがはるかに困難になります。

時間が正しく機能していないためにリスクにさらされる他のアプリケーションには、高速取引やセキュリティカメラが含まれます。キー交換やトークンを含む多くの時間に敏感な暗号化アルゴリズムも、NTPの弱点のためにリスクにさらされています。

NTPのベストプラクティス

この投稿の残りの部分では、独自のNTPサーバーを構成してパブリックNTPサーバーをリクエストするためのベストプラクティスについて詳しく説明します。

外部ホストにパブリックNTPを使用します。企業の場合企業の外部に展開することを目的とした機能、サービス、またはその他の組み込みプラットフォームを構築している場合、ネットワーク管理者は、前述の利用可能なサーバーのプールからパブリックNTPサーバーを要求することを検討できます。

ほとんどのパブリックNTPサーバーがエンゲージメントのルールを指定していることに注意することが重要です。企業内にNTPを使用する複数のデバイスがある場合、公開されているサーバーへのアクセスを競合するのではなく、同期する独自の階層を設定するのが理にかなっています。

独自の内部を構成するネットワークのNTP階層サービス。 Stratum1またはStratum0 NTPアプライアンスを購入して、通常のサーバーのコストよりも安い価格で内部で使用することができます。非常に低コストでプライベートNTPサーバーをセットアップすることも可能です。市販の(COTS)NTPサーバーをセットアップする可能性は、RaspberryPiコンピューターをStratum-1サーバーとして構成する最近の取り組みで証明されています。独自に構成する場合は、次のベストプラクティスを検討してください。

  • UTC時間に標準化します。企業内では、すべてのシステムを協定世界時(UTC)に標準化します。 UTCに標準化すると、同期されているデバイスがどのタイムゾーンにあるかに関係なく、組織内および外部の関係者とのログの相関関係が簡素化されます。
  • ネットワークタイムサービスの保護。ストラタムサーバーで使用できるコマンドを制限します。ストラタムサーバーのパブリッククエリを許可しないでください。既知のネットワーク/ホストのみがそれぞれの階層サーバーと通信できるようにします。
  • 暗号化のビジネスニーズを検討します。多くの管理者は、暗号化された通信と暗号化された認証を使用してネットワークを保護しようとしています。ここで注意点を紹介します。NTP通信を保護するためにNTPに関連する暗号化サービスがありますが、暗号化を使用すると、キー管理が必要になるなどの問題の原因が増え、計算のオーバーヘッドも高くなります。
  • Segalの法則を覚えておいてください。理想的には、3つ以上のStratum0またはStratum1サーバーを持ち、それらのサーバーをプライマリマスターとして使用することが機能します。Segalの法則を覚えておいてください:2つのNTPを持つサーバーでは、どちらが正確かを判断するのが困難になります。 2台のStratum0サーバーは、確定的と見なされるタイムソースを使用しているため、より正確なタイムスタンプを提供します。

3つ以上のタイムソースが存在すると、ネットワークはプライマリマスターの1つに障害が発生した場合でも、正確な時刻。理想的には、NTPサーバーは地理的に離れた3つの場所に配置されます。このプライマリマスターのグループは、企業の時間のソースになります。それらはセカンダリストラタムサーバーにのみサービスを提供するため、非表示のマスターと見なされます。この構成により、これらのサーバーは、実際に組織にサービスを提供している、併置されたセカンダリマスターに時間を提供できます。プライマリマスターは非表示のままであり、他の場所でサービスを提供するNTPインフラストラクチャによってのみアクセスされます。そのサプライチェーンにより、組織全体で正確な時刻を提供し、正確な時刻ソースを裏付ける複数のソースを使用できるようになります。

時刻を同期する必要のあるデバイスが多い場所では、Stratum2またはStratum3サーバーを追加できます。システムの負荷をさらに分散し、NTPクライアントのより大きなグループにサービスを提供するために、セカンダリマスターと相互に依存するようにします。

最新のリビジョンで内部NTPサービスを設定する安定したコードとその使用法の標準化により、時間ベースのネットワーク攻撃または時間に依存するプロセスの実行可能性を採用することは困難です。ログの時刻を記録システムにできるようになったため、妥協点でのイベントの順序の識別が容易になります。法執行機関やその他の調査機関にとって、正確なNTPサービスは、証拠の評価と一連のイベントの順序付けにおいて非常に建設的です。

まとめと今後の展望

攻撃が高度化するにつれて、CERTのネットワークアナリストチームは、ネットワーク内に適切に展開されていないインターネット向けサービスをますます見つけています。AsMark Langstonは、DNSのベストプラクティスに関する最近の投稿で、これらのサービスの多くは、内部および外部ネットワークアプリケーションのセキュリティと運用の基盤を構成していると書いています。

これは、最高のサービスを提供する一連のブログ投稿の最新のものです。 政府機関やその他の企業がネットワーク内の脆弱性の隠れた原因に対処するのを支援するためのこれらの基本構造に関するプラクティス。チームリーダーのレイチェル・カルチは、このシリーズの最初の投稿「分散型サービス拒否攻撃:予防と対応のための4つのベストプラクティス」を公開しました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です