検索
2014年9月25日に米国で掲載されたブログ記事の抄訳です。
米国西海岸時間の9月24日午前6時頃、UNIX系OSで広く利用されているBourne Again Shell (以下、Bash) に存在する脆弱性の詳細が複数のLinuxベンダーから公開されました。MITRE社によってCVE-2014-6271として割り当てられたこの脆弱性は、英国のロボット会社SeeByte社のUNIXおよびLinuxネットワーク電気通信管理者兼IT管理者のStephane Chazelas氏によって最初に発見されました。
この脆弱性はHeartbleedのような派手さやインパクトのある名前は付いていませんでしたが、セキュリティコミュニティはすぐに「Shellshock」という名前で呼び始めました。BashはほとんどのLinuxやUNIXのディストリビューションとAppleのMac OS Xに存在し、多くのユーザーがパッチを適用する必要があります。
パロアルトネットワークスはこの脆弱性を検知するシグネチャID: 36729 “Bash Remote Code Execution Vulnerability” を含むIPSコンテンツを9月25日夜に緊急リリースしました。
パロアルトネットワークスの次世代ファイアウォール向けOS「PAN-OS」と統合管理製品「Panorama」の全バージョンにおいても、脆弱性のあるバージョンのBashが含まれていますが、認証されたユーザーによってのみ攻撃可能であることを特定しています。通常のPAN-OSメンテナンスリリースのアップデートによって本脆弱性に対する修正プログラムを提供します。詳細については、弊社Webサイト内の製品脆弱性情報ページにて注意事項を掲載しましたのでご参照ください。
脆弱性の詳細
CVE-2014-6271はBashのこれまでの全バージョンに存在し、シェル起動時における環境変数の処理方法に依存します。環境変数に格納されているユーザーのホームディレクトリの場所といった情報がシェル ソフトウェアによって使用されます。変数以外にも、Bashは、ユーザーが後から呼び出すことができるように、環境変数にシェル関数を格納できるようにもなっています。今回のBash脆弱性が存在するこれら関数の構文解析では、シェルは誤って関数定義後に追加されたコードを実行してしまいます。次に例を示します。
$ env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
vulnerable
this is a test
Bashは関数をクローズするセミコロンの後に、環境変数“x”の処理を停止する必要がありますが、停止せずに “echo vulnerable” の処理を継続してしまいます。一見するとコマンド実行はBashの主要機能であるため、あまり危険性が無いようにも思えますが、他の多くのプログラムがコマンドを実行するためにBashを使用していることを理解することが重要です。
これら2つの例が現時点で本脆弱性を悪用する最も可能性の高い攻撃手法ですが、他のサービスがネットワーク攻撃に利用できる方法でBashを使用する可能性もあります。完全に攻撃を防止するための唯一の方法は、システム上のBashを脆弱性の無いバージョンにアップグレードすることです。
影響範囲
本脆弱性は責任を持った形で開示が行われ、一般公表日にほとんどのプラットフォームでパッチが利用可能となったことは良い点です。悪い点は、本脆弱性が非常に広範囲にわたる恐れがあることです。最も人気のあるLinuxバリアント(種類)においてBashはデフォルトのシェルであり、過去20年にわたるソフトウェアの全バージョンに脆弱性があります。良く管理されたシステムでは本日パッチが適用されるでしょうが、ラックの中で埃をかぶった古いシステムがアップデートされることはないかもしれません。また、ネットワークデバイス、組込システム、IPカメラのようなインターネットに接続されたデバイスの多くはLinuxで実行されており、脆弱である可能性があります。
幸いなことに、単純にBashが実行されているすべてのシステムがリモートから悪用されるというわけではなく、リモートから悪用するにはネットワーク経由でBashにアクセス可能なアプリケーションが起動される必要があります。前述のように、最も一般的な攻撃シナリオはApacheが実行されCGIスクリプトが使われているWebサーバーと考えられます。攻撃者にとってWebサーバーは素晴らしいリソースです。以下のような悪用が懸念されます。
これらはすべて、すでに進行中の、脆弱なホストに対するインターネットの大規模スキャンから得られた可能性のある結果です。
推奨