Linux GNU Cライブラリ(glibc)に存在する脆弱性がセキュリティ企業「Qualys」によって確認されました。この脆弱性「CVE-2015-0235」が利用されると、Linuxのオペレーティングシステム(OS)を搭載する PC上で任意のコードを実行することが可能になり、結果的にサーバーの乗っ取りや不正プログラム感染させることができます。「Heartbleed」や「Shellshock」、「POODLE」と同様に、この脆弱性は「GHOST」と名付けられました。その後の調査により、この脆弱性は深刻であるものの、攻撃に利用するのが難しく、攻撃の可能性は極めて低いことが判明しました。
「GHOST」は、glibc の関数「gethostbyname*()」を呼び出すことで引き起こされるバッファーオーバーフローの脆弱性です。この関数は、ドメイン名を IPアドレスに解決するためにさまざまなアプリケーションで利用されています。論理的には、この関数を使用するすべてのアプリケーションがこの脆弱性の影響を受けます。
一見すると、この脆弱性は大規模なセキュリティの問題を起こすかのように見えます。しかし幸運なことに、実際には「GHOST」による危険性を軽減するさまざまな要因があります。
まず、この脆弱性はかなり以前に修正されています。この根本的な問題は、2000年から glibc に存在していましたが、2013年5月に修正されています。つまり、最新の glibc を搭載した Linux の 新しい OS は、この脆弱性の影響を受けません。また、「Shellshock」と同様、Windows を搭載した PC も基本的に影響を受けません。
次に、すべてのアプリケーションが等しく危険にさらされているわけではありません。この脆弱性の攻撃において攻撃者が利用できるのは4バイトもしくは 8バイトのエクスプロイトコードであり、実行できることは非常に限られています。この攻撃に利用できるバイト数は OS が 32ビット版か 64ビット版かで異なります。追加のコードは、変更可能なポインタに参照されるアドレスに攻撃者が脆弱性とは別の方法で書き込んで置かなければなりません。また、apache や postfix、OpenSSH など、多くの有名アプリケーションがこの脆弱性の影響を受けないことも確認されています。これまでのところ、トレンドマイクロでは、Web攻撃に利用される可能性のある感染媒体を確認しておらず、そのため攻撃の可能性はかなり低いものと考えられます。
最後に、この脆弱性が対象とする関数「gethostbyname*()」はすでに古いものとなっています。これらの関数は IPv6アドレスに対応していないため、多くの新しいアプリケーションでは、この脆弱な「gethostbyname*()」関数ではなく、IPv6 をサポートする関数「getaddrinfo()」を使用しているものと考えられます。
以上を考慮すると、「GHOST」を狙った実際の攻撃による危険性は、「Shellshock」や「Heartbleed」などの脆弱性と比較すると低いものになっています。もちろん、この根本的な脆弱性は問題ですが、さまざまな企業から提供されている堅固な防御により、実際の危険性は低いでしょう。今後、他にも確認されるかもしれませんが、遠隔からの攻撃を受ける可能性が確認されているのは、これまでのところメール転送エージェント「Exim」のみです。4バイトもしくは 8バイトのエクスプロイトコードから、さらなるアクセス権を取得できるかどうかは、アプリケーションの設計やメモリ使用に大きく依存します。これは、攻撃者がこの脆弱性を利用した攻撃を行う上で重要な障害となっています。
システム管理者はこの脆弱性問題を放置することはできませんが、冷静に落ち着いた対応を取ることができるでしょう。すでに各Linuxディストリビューションからは、使用中の glibc のバージョンを更新する修正プログラムが公開されています。管理者は公開され次第、修正プログラムを適用して下さい。
■トレンドマイクロの対策とトレンドマイクロ製品への影響
以下のFAQをご参照ください:
アラート/アドバイザリ: GNU glibc の「GHOST」脆弱性 (CVE-2015-0235) について
【更新情報】
2015/01/30 | 15:45 | 「トレンドマイクロの対策とトレンドマイクロ製品への影響」を追加しました |
2015/01/29 | 11:45 | 本文の一部を追記しました。 |
参考記事:
by Pawan Kinger(Director, Deep Security Labs)
翻訳:品川 暁子(Core Technology Marketing, TrendLabs)