松田 幸裕 記
弊社では、マイクロソフト製品を中心としたセキュリティ脆弱性情報や、昨今のセキュリティ脅威/技術動向などについて定期的にお客様に情報提供をしています。継続的に情報整理を行っている中で、ネットワーク通信やプロセス間通信などにおける製品のセキュリティ強化が頻繁に行われていることを、最近感じます。
セキュリティ脆弱性における性質の変化
一般的に、製品におけるセキュリティの脆弱性は「プログラミング時の考慮ミスにより、スキが生じている」というものが多く、プログラム側の修正としてはその穴を埋めることになります。しかし、このようなパターンはもちろん多いのですが、最近よく見るのは「攻撃が高度になったため、今までのチェックプロセスでは偽物を見極められない」という脆弱性です。
主なネットワーク通信ではサーバーアプリとクライアントアプリがいて、クライアントアプリがサーバーアプリに接続して会話を行います。その際、偽のクライアントアプリが接続してきて各種攻撃を行うことが想定されるため、サーバーアプリは接続要求に対して適切なチェックを行い、偽物でないかを確認します。しかし最近の攻撃はより高度化してきているため、今までのチェックでは判別が難しくなってきているのです。
サーバーアプリとクライアントアプリでの同調したチェックプロセス強化
今までのチェックでは判別が難しいため、チェックプロセスを強化する必要があるのですが、サーバーアプリ側のチェックプロセスのみを強化するのではなく、サーバー側で強化されたチェックプロセスを通過できるようにクライアントアプリ側も改修する必要があります。よって、このようなチェックプロセスの強化では、サーバーアプリ側とクライアントアプリ側の両方で修正が必要になります。
段階的な更新プログラム
サーバーアプリ側とクライアントアプリ側の両方で修正が必要な場合、順番としてはクライアントアプリ側を改修し、その後サーバーアプリ側を改修する流れになります。先にサーバーアプリ側を改修してしまうと、チェックプロセスだけが厳しくなってしまい、今まで接続できていたクライアントアプリが接続できなくなってしまうためです。よってサーバーアプリ側を改修する前にクライアントアプリ側をすべて改修する必要があるのですが、漏れが生じる場合もあります。例えばActive Directoryの脆弱性があり、先にクライアントアプリ側への対応を済ませる必要があるのですが、「Windowsの更新プログラムを適用していなかったPCが存在していた」、「Windows以外の環境からActive Directoryへ通信しているものがあった」など、対応したつもりでもできていない可能性があります。
このような問題を起こさないために、サーバーアプリ側の更新プログラムは段階的な形で公開されます。クライアントアプリ側の更新プログラム適用が不十分な状態でサーバーアプリ側を強化してしまうとクライアントアプリが接続できなくなってしまうため、まずはサーバーアプリ側で「チェックプロセスは強化しないが、強化した場合に接続できなくなる接続要求が存在する場合にログ出力を行う」という更新プログラムを適用します。こうすることによって、チェックプロセスを強化する前に強化した場合の影響を把握でき、対策もできるようになります。
漏れなく、効率的な段階的更新プログラム適用を
段階的な更新プログラム適用によって「適用後に接続ができなくなってしまった」などの問題が軽減されるようになりますが、更新プログラムを適用するIT管理者は単純に適用するのではなく、「初期段階の更新プログラム適用し、ログを見て影響を確認し、問題なければ最終段階の更新プログラム適用する」というような手順を踏む必要があります。そのため、段階的な更新プログラムの存在を適宜把握し、順序立てて適用していく必要があります。
最近、マイクロソフト社のWebサイトで以下のような「最近リリースされている段階的な更新プログラムにはこんなものやあんなものがありますよ」というページが作成されました。段階的な更新プログラム、結構ありますね…。
Latest Windows hardening guidance and key dates
段階的な更新プログラムが多いことはIT管理者として厄介な話ですが、攻撃側が高度化していることもあり、仕方ないことかもしれません。このような情報を効果的に活用し、できる限り漏れなく、効率的に、対策を行っていきたいですね。