レガシーのDebianバージョンとBash Shellshock


11

このショップではアップグレードを行ったことがないため、Debian Etch、Lenny、Squeezeを実行しています。さまざまなDebianバージョンを実行する150以上のシステムがあります。今週の「シェルショック」を踏まえると、bashをアップグレードする必要があると思います。Debianを知らないので心配です。

apt-get install bash自分のリポジトリがSqueezeエントリをポイントしているときに、すべてのDebianシステムで実行して正しいBashパッケージを取得できますか?そうでない場合、他にどのような行動方針がありますか?


7
これらのシステムにbashを選択的にバックポートできます。それはおそらくそれらで大丈夫です。しかし、本当に、本当に、アップグレードする必要があります。oldstableよりも古いものにはセキュリティ更新がないことに気付きましたか?そして、このセキュリティの脆弱性は多くの1つにすぎないことを覚えておいてください。
Faheem Mitha、2014

それは問題ですか?system shellそのシステムには何がありますか?(つまり、systemPOSIX呼び出しを実行したときに取得するシェル(/ bin / sh)です)。/ bin / shがbashの場合は、更新する必要があります。そうでない場合...それならおそらく大丈夫です(とにかくbash自体を更新する必要があります)
Arafangion

回答:


11

bashをアップグレードするオプションがあります。そのためには、次のapt-getコマンドを使用します。

apt-get update

次に、更新が取得された後、利用可能なすべての更新が実行されます。

apt-get install --only-upgrade bash

Squeezeなどの古いリリースの更新を取得するには、おそらくSqueeze-LTSリポジトリをsources.listに追加する必要があります。

このリポジトリを追加/etc/apt/sources.listするには、次の行を編集してファイルの最後に追加します。

deb http://ftp.us.debian.org/debian squeeze-lts main non-free contrib

特定のシステムの脆弱性をチェックする(またはアップグレードが機能するかどうかを確認する)には、使用しているbashのバージョンを確認し、バージョンが影響を受けている(おそらく影響を受けている)か、またはWebに多数のシェルテストスクリプトがあるかどうかを確認します。

編集1

アップグレードするにはbashレニーやエッチに、コンパイルする方法については、以下のイリヤSheershoffの答えを見て取りbash、ソースから、手動でのバージョンアップグレードbash、あなたのリリースが使用されていることを。

編集2

以下は、sources.list私が正常にアップグレードしたSqueezeサーバーのサンプルファイルです。

deb http://ftp.us.debian.org/debian/ squeeze main
deb-src http://ftp.us.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ squeeze-updates main
deb-src http://ftp.us.debian.org/debian/ squeeze-updates main

# Other - Adding the lsb source for security updates
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を実行する必要があることを知らない可能性があります。
ブレンダJ.バトラー

私は使用する必要がありました。debftp.us.debian.org/debian squeeze main contribを使用してbashをバージョン4.1-3にアップグレードし、パッチを適用したソースを使用して脆弱性を排除しました。

@ BrendaJ.Butler良い提案です。そのステップも追加しました。
111 ---

4

apt-get installオプションが機能しない場合は、ソースからbashを再コンパイルする必要があります。レニーとエッチの例は答えにあります。Squeezeマシンは持っていませんが、何をすべきか簡単に理解できます。

私がネットで見つけたTaNNkoSTから解決策

利用可能なパッチの数を確認し、新しいパッチがある場合は「(seq)」部分の数を変更します。

レニーのために

#first find out the version you have so you know what to get for the patches and source files
dpkg-query -l|grep bash
ii bash 4.1-3 The GNU Bourne Again SHell

#do this in the /usr/src dir
cd /usr/src
wget http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz
tar zxvf bash-4.1.tar.gz
cd bash-4.1

# fetch all patches, including latest ones that patches CVE-2014-6271
for i in $(seq -f "%03g" 0 14); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-$i
patch -p0 < bash41-$i
done

# check if yacc is installed. if not - install yacc
apt-get install bison

# configure,compile and install bash (this will install bash into /usr/local/bin/bash)
./configure && make
make install

# make a symlink from /bin/bash to the new binary
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash

# check that you're not vulnerable anymore wiith the output of the following
# it should not output vulnerable word anymore
env x='() { :;}; echo vulnerable' bash -c echo

#you can  Delete the old one thats a problem
rm /bin/bash.old

ETCHの場合も同じロジックに従いましたが、yaccシステムにインストールしていないbisonため、そのためのパッケージをインストールする必要がありました。これが私が思いついたものです:

#first find out the version you have so you know what to get for the patches and source files
dpkg-query -l|grep bash
ii bash 3.2-4 The GNU Bourne Again SHell

#do this in the /usr/src dir
cd /usr/src
wget http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
tar zxvf bash-3.2.tar.gz
cd bash-3.2

# fetch all patches, including latest ones that patches CVE-2014-6271
for i in $(seq -f "%03g" 0 54); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$i
patch -p0 < bash32-$i
done

# check if yacc is installed. if not - install yacc
apt-get install bison

# configure,compile and install bash (this will install bash into /usr/local/bin/bash)
./configure && make
make install

# at this point my system is not vulnerable already, test your system
env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

# if this is not the case for your system - try the following

# make a symlink from /bin/bash to the new binary
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash

# check that you're not vulnerable anymore wiith the output of the following
# it should not output vulnerable word anymore
env x='() { :;}; echo vulnerable' bash -c echo

#you can Delete the old one thats a problem
rm /bin/bash.old

1
make: yacc: Command not foundレニーソリューションでエラーが発生し、を使用して修正しましたapt-get install bison
SharpC 2014年

1

これらのパッケージを信頼するかどうかはわかりませんが、誰かがwoody(3.0)、sarge(3.1)、etch(4.0)、およびlenny(5.0)のパッケージをビルドしています。こちらから入手できます。

http://blog.bofh.it/debian/id_451

注意してくださいapt-get。これらのパッケージを経由でインストールするためのリポジトリはありません。dpkg独自のローカルリポジトリを使用または作成する必要があります。


これらのパッケージを信頼したい場合」彼らは、Debian開発者のGPGキーで署名されています。他の公式 Debianパッケージと同じように。
peppe 2014年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.