Linux および Unix、さらには Unix ベースである Mac OS X の多くのバージョンに影響する可能性がある新たな脆弱性が確認されています。GNU Bash におけるリモートコード実行の脆弱性(GNU Bash Remote Code Execution Vulnerability)(CVE-2014-6271)は、「Bash Bug」または「Shellshock」と呼ばれており、攻撃者がこの脆弱性の悪用に成功すると、標的のコンピュータを制御できる恐れがあります。
脆弱性の影響を受ける Bash はシェルと呼ばれる共通コンポーネントで、Linux や Unix の多くのバージョンに搭載されています。Bash はコマンド言語インタープリタとして動作します。つまり、これにより、ユーザーがシンプルなテキストベースのウィンドウにコマンドを入力すると、オペレーティングシステムがそのコマンドを実行することができます。
Bash は、アプリケーションから渡されたコマンドを実行するのにも使用されます。脆弱性の影響を受けるのはこの機能です。Bash に送信可能なコマンドには、環境変数を設定できるものがあります。環境変数とは、動的な名前付きの値で、コンピュータ上でプロセスが実行される方法に影響を与えます。今回の脆弱性は、攻撃者が環境変数に悪質なコードを追加可能であり、その環境変数を受け取ると不正なコードが実行されてしまうというものです。
Bash は、Web サーバーなどインターネットに接続されたコンピュータ上で稼働している Linux や Unix で広く使われているため、この脆弱性は深刻です。悪用するには特定の条件が必要ではあるものの、悪用に成功するとリモートからコードを実行できる可能性があります。これにより、攻撃者は、侵入先のコンピュータからデータを盗み取ることができるだけでなく、そのコンピュータを制御してネットワーク上の他のコンピュータにアクセスできる可能性もあります。
次の動画では、Bash Bug 脆弱性を説明するとともに、CGI インターフェースを介した攻撃シナリオがどのように動作するかデモをお見せします。
悪用の事実
まだ限定的ですが、この脆弱性を実際に悪用した攻撃が報告されています。また、セキュリティ研究者により概念実証用のスクリプトが開発され、ペネトレーションテストのために Metasploit Framework 用のモジュールも作成されています。
脆弱性が公開されてから、攻撃者がパッチ未適用のコンピュータを探し出して悪用しようとするまで、さほど時間は掛かりませんでした。
悪用の手口
Bash を実行しているコンピュータはすべて脆弱性の影響を受ける可能性がありますが、リモート攻撃者による悪用が可能なのは特定の場合だけです。攻撃を成功させるには、攻撃者は悪質な環境変数をアプリケーションから Bash に強制的に送信する必要があります。
攻撃経路となる可能性が最も高いのは、動的な Web コンテンツ生成に広く使われている CGI(Common Gateway Interface)を利用する Web サーバーです。攻撃者は CGI を使って、脆弱な Web サーバーに不正な形式の環境変数を送信することができます。変数の解釈には Bash が使われるため、変数に追加されている悪質なコマンドも実行されてしまいます。
図1. 正規の環境変数の末尾に悪質なコマンドを追加して最初に実行させる仕組み
攻撃者が Web サーバー上でこの脆弱性の悪用に成功した場合の影響は深刻です。たとえば、パスワードファイルがダンプされたり、侵害されたコンピュータにマルウェアがダウンロードされたりする可能性があります。ファイアウォールの内側に侵入されてしまうと、ネットワーク上の他のコンピュータも侵害される可能性があります。
Web サーバーの他に脆弱なデバイスとして、CGI を使う Web インターフェースを備えた Linux ベースのルーターがあります。Web サーバーへの攻撃と同様の手口で CGI を使って脆弱性を悪用し、悪質なコマンドをルーターに送信することが可能です。
Mac OS X が実行されているコンピュータも、Apple 社から脆弱性に対するパッチがリリースされるまでは脆弱な可能性があります。この場合も、攻撃者は、標的とする Mac 上の Bash に不正な形式のコマンドを渡す手段を探し出す必要があります。OS X に対する攻撃経路として最も可能性が高いのは、セキュア通信プロトコルの SSH(Secure Shell)を介したものです。しかし、攻撃を実行するためには有効な SSH クレデンシャルを持っている必要があります。つまり、攻撃者は SSH セッションに事前にログインしておく必要があります。
IoT(モノのインターネット)デバイスやルーターなどの組み込みデバイスも、Bash が実行されている場合は脆弱な可能性があります。ただし、最新のデバイスの多くでは、Bash の代わりに BusyBox というツールセットが実行されています。BusyBox が実行されているデバイスには Bash Bug 脆弱性の影響は受けません。
Web サイトの所有者や企業向けの推奨事項
企業の場合、特に Web サイトを所有している場合は、脆弱性による影響を受ける可能性が最も高く、悪用されるとデータへのアクセスを許したり、ネットワークに侵入するための踏み台として使われたりする恐れがあります。そのため、利用可能なパッチはただちに適用することが非常に重要です。
Linux ベンダー各社は今回の脆弱性についてパッチ情報を含むセキュリティアドバイザリを公開しています。
* Red Hat 社では、最初のパッチは不完全だったとして、残っていた多数の問題に対する修正を含めてアドバイザリを更新しています。
Linux や Unix の特定のディストリビューションでパッチが利用できない場合、提供されるまでは別のシェルに切り替えることをお勧めします。
一般ユーザー向けの推奨事項
ルーターやその他の Web 対応デバイスを使用している場合は、ベンダーからパッチが提供されたら適用することをお勧めします。Apple 社の Mac OS X を使用している場合、現在出荷されているオペレーティングシステムには脆弱なバージョンの Bash が含まれていることに注意してください。OS X 向けのパッチが提供されたら適用してください。
シマンテックの保護対策
シマンテックは、今回の脆弱性に対する保護対策として、次の侵入防止シグネチャを提供しています。
シマンテックは、今後もこの脆弱性の調査を継続し、確認でき次第、詳細をお伝えします。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。