更新後、Bashのインストールが Shellshock バグの影響を受けないようにするにはどうすればよいですか?
脆弱なバージョンのBashによって自動的に評価される、特別に細工された環境変数をエクスポートします。
$ export testbug='() { :;}; echo VULNERABLE'
次に、簡単なエコーを実行して、その変数を自分で使用していなくても、Bashが$ testbugのコードを評価するかどうかを確認します。
$ bash -c "echo Hello"
VULNERABLE
Hello
「VULNERABLE」という文字列が表示されれば、答えは明白です。それ以外の場合は、心配する必要はなく、パッチを適用したバージョンのBashで問題ありません。
主要なLinuxディストリビューションから複数のパッチがリリースされており、脆弱性が完全に修正されない場合があることに注意してください。このバグがないかセキュリティアドバイザリと CVEエントリ を確認してください。
Shellshockは実質的に bashの複数の脆弱性の組み合わせ であり、 現在この脆弱性を悪用するマルウェアも存在する なので、Shellshockは未解決の問題である可能性があります、 この問題に関するRedHatからの更新を含むスレッド があります。
コマンドを実行:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
出力が次の場合:
$ 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
修正はありません。
出力が次の場合:
$ 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 `x'
bash: error importing function definition for `BASH_FUNC_x()'
test
あなたが持っている CVE-2014-6271
修正
あなたの出力が:
$ 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
あなたは脆弱ではありません。
Shellshockチェックのもう1つの部分はCVE-2014-7169脆弱性チェックで、ファイル作成の問題からシステムを確実に保護します。 BashのバージョンがCVE-2014-7169に対して脆弱かどうかをテストするには、次のコマンドを実行します。
$ 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 11:49:58 GMT 2014
システムに脆弱性がある場合、日時が表示され、/ 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
私は ShellShocker と呼ばれるCLIユーティリティを作成して、CGIスクリプトの脆弱性についてWebサーバーをテストしました。サイトをテストするには、次のコマンドを実行します。
python shellshocker.py <your-server-address>/<cgi-script-path>
すなわち
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
編集:このユーティリティは削除されました、申し訳ありません: '(
このオンラインテストにCGI URLを送信できます。