エクスプロイト&脆弱性
bashに存在する脆弱性 「Shellshock」について解説
Linux などで使用されるオープンソースプログラム「Bourne Again shell(bash)」シェルに重大な脆弱性が存在することが確認されました。
Linux などで使用されるオープンソースプログラム「Bourne Again shell(bash)」コマンドシェルに重大な脆弱性が存在することが確認されました。bash は、ほとんどの Linux ディストリビューションで一般的に利用されているシェルです。攻撃者は、「Shellshock」と呼ばれる脆弱性「CVE-2014-7169」のあるシステム上でコマンドを実行することが可能になります。つまり、これらの Linux ディストリビューションが稼働しているサーバで、この脆弱性は遠隔からコードを実行することを可能にします。
■「Shellshock」脆弱性とは何か
Unix系の OS環境で最もよく使われているシェルに重大な不具合が確認されました。この不具合により、攻撃者はネットワーク経由で任意のあらゆるコマンドを実行することが可能になります。最も影響を受けるのは、CGI 環境を使用した Webサーバです。
bash は、シェル関数を他の bash インスタンスにエクスポートすることが可能です。これは、関数定義を持つ環境変数を作成することで実行されます。例えば、
env ENV_VAR_FN=’() { };’
「ENV_VAR_FN」は、後続の bash インスタンスにエクスポートする関数です。これは便利な機能のように見えます。しかし、bash に存在するこの不具合のため、関数定義を越えて読み込み続けられ、定義後に続くコマンドが実行されます。定義を越えた場合は読み込みが中止され、後続が何であろうと無視されることが理想ですが、この脆弱性によりそのようにはなりません。
env ENV_VAR_FN=’() { }; ’
■ネットワーク上のサービスにどのような影響を与えるか
bash 環境は、CGI や ssh、rsh、rlogin といったさまざまな設定で利用されることを考えると、こうしたサービスすべてが今回の脆弱性の影響を受けることになります。ユーザからの入力情報を収集し、bashの OS環境に保存するすべての Webサーバも脆弱な状態にあります。以下は、CGI環境での悪い要求の例です。
GET / HTTP/1.1
User-agent: () { :;}; echo something>/var/www/html/new_file
この要求により、新しいファイル「new_file」が攻撃者のために作成されます。
Webアプリケーションが、この脆弱性の影響を最も受けやすいものになります。しかし、上述したように、他のサービスを経由して脆弱性が利用される可能性があります。
■どのような被害を受ける可能性があるか
上記は、ファイルの作成を示しただけですが、攻撃者は実際、bashシェル上で考えうるすべてのコマンドを実行することができます。例えば、Webサーバのコンテンツの改変、Webサイトのコード変更、Webサイトの改ざん、データベースからのユーザ情報の窃取、Webサイト上のパーミッションの変更、バックドア型不正プログラムのインストールなどが可能です。
これは Webサーバを実行しているユーザとして実行される可能性があります。一般的には「httpd」のユーザです。この脆弱性だけで権限昇格は行なわれませんが、他の脆弱性と組み合わせて使うことで、ルートユーザに権限昇格される可能性があります。攻撃者が、さまざまな脆弱性攻撃を組み合わせて、システムやネットワークに侵入することはごく一般的なことです。
Shellスクリプティングは、Linux で広く使用されているため、この脆弱性を利用するには複数の方法があります。bash は、 Unix、Linux、また Mac OS X のほとんどのシステムで利用されています。Linux を提供する大手企業 Red Hat は、自社のホームページで、「bashシェルは幅広く利用されているため、この問題は極めて深刻であり、適切に処理されなければならない」と述べています。
さらに、Linux、つまり bash は、「すべてをつなぐインターネット(IoE)」もしくは「モノのインターネット(Internet of Things、IoT)」に関する機器でも使用されているため、こうした機器も脆弱性を抱えている危険性があり、また修正パッチを適用するのが困難であるということも考慮しなければなりません。最後に、仮想通貨「Bitcoin(ビットコイン)」もこのセキュリティ問題の影響をうけるかもしれないというニュース記事もあります。
■どの bash のバージョンが影響を受けるか
バージョン 4.3 以下のすべての bash のバージョンに脆弱性が存在します。お使いの Unix系ベンダの Webサイトで修正済みバージョンを入手して下さい。Red Hat のユーザはこちらを参照できます。
■ユーザは何をすべきか
bash を最新バージョンに更新して下さい。ssh の鍵がすでに窃取されている可能性もあるため、影響の大きさを考え、ssh の鍵を交換し、Webサーバの完全性に影響がないことを確認して下さい。また、アカウント情報を更新し、データベースのログを確認して、大量の情報を抽出するクエリが実行されていないか確認するのも良いでしょう。
■「Shellshock」を利用した攻撃を受けたことを確認できるか
Webサーバのログを精査すれば、大抵の場合、この攻撃の痕跡を確認することができます。アクセスログで文字列「() {」を検索して下さい。また、エラーは「error_log」にログされます。しかし、今回の攻撃の痕跡を確認できない場合もあります。
トレンドマイクロのサーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」は、変更監視により、ログを確認して、Webサーバエレメントの完全性が影響を受けていないことを確認できます。
■トレンドマイクロの対策
ディープセキュリティをご利用のユーザは、「DSRU14-028」に更新し、以下のフィルタを適用して下さい。
- 1006256 - GNU Bash Remote Code Execution Vulnerability
トレンドマイクロは Deep Discovery Inspector 向けに以下のルールを公開しており、これによりこの脆弱性を利用した攻撃を検知することができます。
- 1618 – Shellshock HTTP REQUEST
また、この脆弱性に関連する不正プログラムは、「ELF_BASHLITE.A」として検出します。パターンファイルバージョンを 11.171.xx にアップデートしてください。
「Shellshock」に関する情報は、今後も引き続き更新していきます。「Shellshock」に関する詳細は「セキュリティブログ」をご参照下さい。
協力執筆者:Pawan Kinger
参考記事:
- 「Shell Attack On Your Server: Bash Bug ‘CVE-2014-7169′ and ‘CVE-2014-6271′」
by Pavan Thorat and Pawan Kinger (Deep Security Labs)
翻訳:品川 暁子(Core Technology Marketing, TrendLabs)