GNU/Linux >> Linux の 問題 >  >> Linux

Linux で Bash Shellshock CVE-2014-6271、CVE-2014-7169 を修正する方法

CVE-2014-6271 は影響の大きい重大な修正です。 Linux システムを実行している場合は、この脆弱性を修正する必要があります。

この CVE-2014-6271 (および CVE-2014-7169) の脆弱性は、シェルショックとも呼ばれます。

Bash が特別に細工された特定の環境変数を評価する方法に欠陥が見つかりました。攻撃者はこの欠陥を利用して、環境制限をオーバーライドまたはバイパスしてシェル コマンドを実行する可能性があります。特定のサービスとアプリケーションでは、認証されていないリモートの攻撃者が環境変数を提供して、この問題を悪用することができます。

bash シェルを使用すると、この脆弱性により、攻撃者は環境でランダムなシェル コマンドを実行できます。この背後にある考え方は、攻撃者が環境変数の制限を回避して、シェル コマンドを実行できるようにすることです。

Linux サーバーで実行されている一部のサービス (ま​​たはアプリケーション) では、認証されていない攻撃者がいくつかの環境変数を指定できる可能性があることに注意してください。これにより、攻撃者は認証なしでネットワーク経由でこの脆弱性を悪用できるようになります。

これを修正するには、bash を最新バージョンにアップグレードするだけです。たとえば、RedHat または CentOS では、次の手順を実行してこの問題を修正します:

yum update bash

あなたのシステムは CVE-2014-6271 に対して脆弱ですか?

RedHat は、システムが脆弱かどうかをテストするために、次のスクリプトを提供しています。

出力に「脆弱」という単語が表示された場合、システムは脆弱です。

env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

出力に「脆弱」という単語とともにエラーメッセージが表示される場合があることに注意してください。たとえば、以下は脆弱な RedHat 5 および RedHat 6 (および CentOS 5 および 6) システムの出力です。

# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test

修正前の Bash バージョン

問題を修正する前に、現在の bash のバージョンを確認してください。 RedHat 5 (および CentOS 5) では、修正前に次のバージョンの bash を使用していました:

# rpm -qa | grep bash
bash-3.2-24.el5

RedHat 6 (および CentOS 6) では、修正前に次のバージョンの bash を使用していました:

# rpm -qa | grep bash
bash-4.1.2-3.el6.x86_64

CVE-2014-6271 を修正

ここで、yum (または適切なディストリビューションの他のパッケージ管理ユーティリティ) を使用して bash を更新します

yum update bash

RedHat 5 (および CentOS 5) で、脆弱性を修正した更新後の bash バージョンは次のとおりです。

# rpm -qa | grep bash
bash-3.2-33.el5_11.4

RedHat 6 (および CentOS 6) で、脆弱性を修正した更新後の bash バージョンは次のとおりです。

# rpm -qa | grep bash
bash-4.1.2-15.el6_5.2.x86_64

修正後に CVE-2014-6271 の脆弱性をテストする

bash を最新バージョンにアップグレードした後、テストを実行すると、次のコマンド出力に「脆弱」という単語が表示されなくなります。以下に示す警告とエラー メッセージは問題ありません。

# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test

CVE-2014-7169 はどうですか?

最初の修正がリリースされた後、redhat は CVE-2014-6271 の修正が不完全であることを発見し、bash はいくつかの特別な状況下で環境変数に入れることができる文字をまだほとんど許可していませんでした.

前の手順で yum update bash を実行すると、CVE-2014-7169 の修正も含まれる最新バージョンの bash が自動的に取得されます。したがって、この修正のために特に何もする必要はありません。

ただし、システムで次のコマンドを実行することにより、システムがこの問題に対して脆弱ではないことを確認するテストを行うことができます:

cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo

CVE-2014-7169 に対して脆弱なシステムでは、次のようにファイル /tmp/echo が作成され、ファイルの内容が表示されます。

次の出力が表示された場合は、「yum update bash」を使用して bash を最新バージョンに更新する必要があります (または、ディストリビューションに適したパッケージ管理ユーティリティを使用します)。

# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 16:15:09 PDT 2014

システムが CVE-2014-7169 に対して脆弱でない場合、次の出力が表示され、/tmp/echo ファイルが作成されません。

# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory

追加情報

  • RedHat Web サイトの CVE-2014-6271、CVE-2014-7169 に関する詳細
  • CVE-2014-6271 に関する RedHat (CentOS、Fedora) Bugzilla レポート
  • CVE-2014-7169 に関する RedHat (CentOS、Fedora) Bugzilla レポート
  • CVE-2014-7169 に関する Oracle セキュリティ アラート – Solaris または Oracle Enterprise Linux の場合
  • Ubuntu CVE-2014-7169
  • Debian CVE-2014-7169

Linux
  1. LinuxでBashの履歴をクリアする方法

  2. Linuxにanaconda / minicondaをサイレントインストールする方法

  3. bashからネットマスクを取得するには?

  1. LinuxでBASHコマンドライン履歴をクリアする方法

  2. LinuxでBashの履歴から特定のコマンドをクリアする方法

  3. Linuxでのcron認証失敗エラーを修正するにはどうすればよいですか?

  1. Bashにシェルショックの脆弱性があるかどうかを確認する方法は?

  2. LinuxでBashプロンプトを短縮する方法は?

  3. Linux の Bash で syslog を確認するには?