このブログ記事は2014年9月26日付けで更新されています。

9月24日、セキュリティリサーチャがbashに存在する脆弱性shellshockを発表しました。bashは幅広く使用されているシェルなので、この脆弱性はバラクーダネットワークスのみならず、bashを使用するあらゆるシステムに影響を及ぼします。この脆弱性を悪用すれば、Webサーバに悪意のあるコードを簡単に挿入して攻撃やデータ窃取が可能になります。

バラクーダネットワークスのセキュリティチームはこの報告を受け、このLinuxの脆弱性による製品への影響を調査した結果、対策としてsecdef 2.1.14182をリリースすることを決定しました。エネルギー充填サービスを利用されているすべてのユーザを対象に、自動更新でリリースされています。バラクーダネットワークスは、攻撃定義ファイルの自動更新を有効にすることと、ファームウェアの最新リリースのインストールをお勧めします。詳細は9月26日のブログをご参照ください。

shellshockのFAQ

ここでは、bashシェルの脆弱性がどのようにしてネットワーク上で悪用されるのかについて解説します。この脆弱性の根本的な原因は、以下で解説されています。

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7169

新たに登場したshellshock脆弱性とは?

この脆弱性を悪用することにより、bashシェルを使用するサーバでリモートコマンドを実行できるようになります。bashは、ほとんどのLinuxディストリビューションにデフォルトのシェルとして搭載されています。影響を受けるバージョンは、4.3までのGNU Bashです。

The vulnerability is identified by its CVE IDs: CVE-2014-6271 and CVE-2014-7169.

The initial fix did not completely fix the vulnerability; hence another CVE ID was needed to track the leftover vulnerability.

この脆弱性には、CVE-2014-6271およびCVE-2014-7169のCVE IDが割り当てられています。

最初の修正では完全に修正できなかったため、修正できなかった部分に別のCVE IDが割り当てられています。

なぜ危険なのですか?

多くのネットワークサービスが、ユーザが入力したデータをbashシェルに送信します。したがって、bashシェルを悪用することにより、この入力データを操作し、bashシェルで任意のコマンドを実行することが可能になります。

どのようなネットワークサービスが影響を受けますか?

複数の攻撃ベクタが考えられます。ネットワークを介して提供されるあらゆるサーバが影響を受ける可能性があります。これは、ユーザが入力した値をbashシェル環境変数として設定するサービスです。現在のところ、Apache HTTP、OpenSSH、CUPSへの影響が判明しています。

Apache HTTPの攻撃ベクタとはどのようなものですか?

ApacheでCGIを使用すると、CGIはHTTP要求から環境変数を作成します(特に、ヘッダとクエリ文字列)。攻撃者はHTTP要求を操作し、入力にbashシェルコマンドを埋め込みます。

バラクーダネットワークスのラボでは、次のような例を確認しています。この例では、通常のHTTP要求のUser-Agent HTTPヘッダに攻撃文字列が挿入されています。

要求1:

GET /cgi-bin/printheader.cgi HTTP/1.0

User-Agent: () { (a)=>\’ bash -c “ls /etc; cat echo”

要求2:

GET /cgi-bin/printheader.cgi HTTP/1.0

User-Agent: () { -;}; /bin/rm /tmp/y.txt

サーバ側のCGIはこの値を取得し、bashシェルの環境値として設定します。その結果、上記のコマンドが実行されます。上記のコマンドは深刻な影響を及ぼすものではありませんが、重要なファイルの削除や置換などが行われた場合は危険です。

Barracuda Web Application Firewallでの対策は?

Barracuda Web Applicationでは、この脆弱性の影響を軽減する方法として、汎用シグネチャがOSコマンドインジェクションルールセットで提供されています。ただし、このルールはデフォルトではヘッダ値に適用されないので注意が必要です。バラクーダネットワークスは、新しい攻撃定義ファイルのアップデートを作成し、この攻撃の対策となるシグネチャをOSコマンドインジェクションルールセットに追加しました。

Webサーバのbashシェルをアップデートしていない場合や、脆弱性の影響を受けている疑いがある場合には、最新の攻撃定義ファイルへのアップデートを強くお勧めします。なお、攻撃定義ファイルは、自動更新を無効に設定していない限り、自動的に更新されます。

バラクーダネットワークスは、攻撃定義ファイル(attackdef)バージョン1.78をリリースしています。このファイルには、CVE-2014-6271およびCVE-2014-7169を悪用する攻撃ベクタを検知するOSコマンドインジェクションパターングループが含まれます。

attackdefのバージョンは、[高度な設定]>[エネルギー充填サービス]で確認できます。

shellshock攻撃からシステムを保護するためにBarracuda Web Application Firewallを設定する方法については、こちらをご覧ください。

どの程度の期間、脆弱性の影響を受けていますか?検知する方法はありますか?

脆弱性の影響は、脆弱性が存在するApacheサーバでCGIとbashを使用した時点から発生している可能性があります。このような攻撃は検知が難しく、OSレベルでの監査機能がない場合には、ログや監査証跡を使って影響の有無を確認する方法がありません。したがって、発生後に検知するのではなく、Webアプリケーションファイアウォールを設置して防護策を講じることが重要です。

Barracuda Load Balancer ADCはshellshockの脆弱性対策で効果を発揮しますか?

はい。Barracuda Load Balancer ADCにはアプリケーションセキュリティモジュールが付属します。上記の設定は、[セキュリティ]>[許可/拒否]ページで実行できます。

この攻撃ベクタはクエリパラメータに影響しますか?

テストラボの確認では、CGIは要求から取得したクエリ文字列を引用符で保護するので、埋め込まれたbashコマンドが実行されるのを防止できます。ただし、攻撃方法は他にもあるので注意が必要です。デフォルトのセキュリティポリシーによってOSコマンドインジェクションがURLパラメータに関連付けられている場合は、速やかに最新の攻撃定義ファイルを適用してください。

※本内容はBarracuda Product Blog 2014年9月25日Shellshock Vulnerability Updateを翻訳したものです。

クリスティーン・バリー(Christine Barry)(バラクーダネットワークス、チーフブロガー)

本稿は、バラクーダネットワークスのWebサイトに掲載されている『バラクーダラボ』10月2日付の記事の転載です。