web-dev-qa-db-ja.com

debian testing / jessieのShellshockセキュリティ脆弱性をどのように修正しますか?

テストコマンド

x='() { :;}; echo vulnerable' bash

Debian 8 (Jessie)のインストールは、最新のアップデートであっても脆弱です。調査によると、安定版と不安定版のパッチがあるが、そのテストにはパッチが適用されていない。

私はパッチが数日でテストすることになると思いますが、これは実際には偏執狂であるには十分に厄介に見えます。システムを壊さずにパッケージを不安定版から取得してインストールする方法はありますか?不安定版にアップグレードすると、解決するよりも多くの問題が発生するように見えます。


ボブによると、2つ目のShellshockの脆弱性があり、2つ目のパッチで修正されています。それのテストは次のようになっているはずです:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

しかし、私はこれが何を意味するのか、なぜそれが問題なのかを解明するのに十分なBashのスキルはありません。とにかく、それは奇妙なことをします、それは64ビットシステムのbash_4.3-9.2_AMD64.debによって阻止されます、それは編集時に安定して不安定ですがではありませんJessie/ testing。

Jessieでこれを修正するには、unstableから最新のBashを取得し、dpkg -iを使用してインストールします。

Jemenakeオファー

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

マシンの4.3-9.2バージョンを取得するコマンドとして。

そして、あなたはそれに続くことができます:

Sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

それをインストールします。

Jessieシステムの不安定版からさらにパッチが必要な場合、これは明らかに(mutatis mutandis)への道です。

24

このリンク を使用して、unstableからパッケージをダウンロードします。不安定なbashはテストのbashと同じ依存関係を持っているようですが、そこでも依存関係を確認できます。ダウンロードしたdebを以下でインストールします。

dpkg -i
5
wurtel

月曜日にリリースされた追加のbash修正のためにこの回答を編集しました。

Ubuntu 12.04の場合、アップデートを実行しましたが、脆弱性を取り除くためにbashのインストールも実行する必要がありました。

root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

このコマンドは、システムが脆弱であることを示しているため、アップデートを実行します。

apt-get update && apt-get -y upgrade

もう一度テストしてください。

root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

まだ脆弱です。

apt-get install -y bash

もう一度テストしてください。

root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

編集:追加のパッチがリリースされた後、出力が変更されました。

root@Host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

わーい!修繕。これは他のバージョンでも機能するはずですが、12.04以降ではテストしていません。

また、以下のrunamokの返信はうまく機能するので、彼に賛成票を入れてください

25
Tom Damon

Debian 7(Wheezy)からパッケージをフェッチせずに、Debian 6.0(Squeeze)の代替:

パッチがバックポートされたLTSセキ​​ュリティリポジトリを使用します。

これを/etc/apt/sources.listに追加:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

次に、apt-get update && apt-get install bashを実行します。

経由: linuxquestions

16
poncha

apt-get updateapt-get dist-upgradeとパッチを取得します。自分でやっただけで、問題を修正するbashアップグレードがプッシュされました。

4
MGD_Toronto

私は Hackintosh で修正しました:

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$ 
3
Marcos Maciel

古いバージョンのUbuntuでapt-getを使用してこれを行う方法についての記事を書きました。基本的に、sources.listを最新に更新してから、apt-get updateを実行してbashをアップグレードします。ステップごとに読み取るか、 here からコピーして貼り付けます。

概要:

Sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
Sudo apt-get update
Sudo apt-get install --only-upgrade bash

Old-releases.ubuntu.comを使用していて、元に戻す場合があることを忘れないでください。

Sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list
1
Erik Duindam

Bashパッケージの修正バージョン( changelog を参照)は、2014年9月26日14:18 UTC時点で、Debian 8(Jessie)に含まれています( パッケージ情報 を参照)。 。

以下のコメントで言及されている2番目の修正は、Jessieリポジトリにもあります。不安定版からインストールする必要はありません。上記のパッケージ情報リンクを参照してください。

不安定版からインストールする必要はもうありません。

とにかく走れ:

# aptitude update

に続く:

# aptitude upgrade

次に、脆弱性がなくなったことを確認します(新しく開いたシェルで)。

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
1
dubadu