ネットワークタイムプロトコル(NTP)がなければ、インターネットは機能しない。しかしNTPは同時に、一部の分散型サービス妨害攻撃(DDoS)の原因にもなっていた。これに対する対策が、NTP Security Projectが今回初めてリリースしたNTPsecだ。
NTPは世界のインターネットを支える、目立たないが必要不可欠なパーツの1つだ。これによって、世界中のサーバとPCの時計が同期されている。
しかし残念ながら、インターネットのほかの基礎的なパーツと同じく、NTPの開発も、長年の間ほとんど無視されてきた。最近まで、NTPの開発とメンテナンスには、ほとんど予算が投じられておらず、NTPは完全にパートタイムの開発者1人に依存していた状態だった。
幸い、Core Infrastructure Initiative(CII)がこの問題に踏み込み、NTPとその後継プロトコルであるNTPSecの両方に資金を投じた。その後、Center for Trustworthy Scientific Cyberinfrastructureとインディアナ大学のApplied Cybersecurity Researchからの追加支援もあり、NTPに関しては次のような改善が施された。
- NTPの開発履歴が、アクセスが厳しく制限されていた商用リポジトリから、一般にアクセス可能なgitリポジトリに移された。この作業には、過去にソースコード管理システムを移行した際に生じた、難読化したデータの再構築も含まれる。
- NTPのビルドとテスト用のインフラが現代化され、より安定した、開発者がアクセスしやすいものになった。ビルドシステムの複雑さは、劇的に減少した。3万1000行もあったその場しのぎの不安定なコードは、クリーンで現代的な、信頼できる884行のコードになった。
- 新たに関与する開発者にも分かりやすくするための文書が作成された。以前のNTPの関連資料は、不完全で古くなっていた。このことが、問題に取り組む開発者を増やす上で障害になっていた。
- NTPのコードベースのメンテナンス性とセキュリティが大きく改善された。
そして今回、NTPsecのベータ版であるNTPsec 0.9が公開され、オープンソース開発者が関与できるようになった。また政府や企業、学界、IT関連の研究所などからのフィードバックも受け付け始めた。
同プロジェクトの開発責任者の1人であるEric S. Raymond氏は、ブログ記事で「これは初期ベータリリースであり、荒削りなところもある。その主な原因は、トラウマ的な(しかし絶対に必要な)作業だったautoconfビルドシステムの切り替えだ。また、利用可能なシステムの幅もまだ狭い。Linuxや最近のFreeBSD以外のシステムでは、このビルドは動作しないかも知れない。これらの問題は今後修正される予定だ。しかし、中心的な機能である、NTPで時計を同期する機能は確実に動作しており、0.9.0を本番システムで使用することは、少し冒険的だと言われることはあっても、論外ではない」と述べている。
同氏はさらに、次のように続けている。「ほとんどの変更内容は中身に関するもので、ユーザーからは見えない。・・・目に見えないもっとも重要な変更内容は、コードのセキュリティが大幅に強化されたことだ。一般に知られている穴をすべて塞いだだけでなく、複数の脆弱性のクラス全体を防止する予防的な措置も取られている」
通常のシステム管理者には、今はNTPを最新バージョンにアップデートすることを強くお勧めしておく。2015年11月17日時点では、最新版はntp-4.2.8p4だ。ファイアウォールの管理権限を持っているのであれば、BCP38のイングレスおよびイーグレスフィルタリングも実装すべきだ。これはNTPサーバがDDoS攻撃に使われるのを防ぐのに役立つ。
NTPsecは数カ月以内に本番環境で使用できるようになるはずだ。その日が来たら、できるだけ早くNTPsecに切り替えるべきだろう。セキュリティが改善されたと言っても、通常のNTPはもはや長期的に使用するには十分に安全ではない。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。