修补不受支持的 Ubuntu 服务器上的 Shellshock Bash 漏洞的推荐方法是什么?

修补不受支持的 Ubuntu 服务器上的 Shellshock Bash 漏洞的推荐方法是什么?

我维护着一个不再受支持的 Ubuntu 12.10 (Quantal Quetzal) 服务器(请不要问我为什么),我们需要修补炮弹休克Bash 安全漏洞。由于不再提供升级,修补 Bash 的推荐方法是什么?

我发现这个答案(它建议从 Debian 检索软件包,并且不要安装二进制包,但安装包来自源头)。这对我来说似乎没问题,但是还有其他什么建议吗?

答案1

这篇文章很有帮助,并且适用于我仍然需要支持的 Ubuntu 12.10(Quantal)的几个实例。

修复 Ubuntu 新旧版本上的 Bash 漏洞

总结一下,步骤如下:

  1. 获取当前版本的代号(例如 quantum)并将其存储在变量中:

    lsb_release -a
    DISTRIB_CODENAME=quantal
    
  2. 将来源更改为可信任/etc/apt/sources.list。例如,

    sudo sed -i "s/$DISTRIB_CODENAME/trusty/g" /etc/apt/sources.list
    
  3. 更新和升级 bash

    sudo apt-get update
    
    sudo apt-get install --only-upgrade bash
    
  4. 验证最新版本是否未通过以下测试(即您不应该看到“busted”)

    env X="() { :;} ; echo busted" `which bash` -c "echo completed"
    
  5. 将 /etc/apt/sources.list 恢复为使用当前代号。例如,

    sudo sed -i "s/trusty/$DISTRIB_CODENAME/g" /etc/apt/sources.list
    

答案2

https://shellshocker.net/#fix有一些用于手动更新 bash 的好工具。

curl https://shellshocker.net/fixbash | sh

您还可以测试您的系统是否存在漏洞:

curl https://shellshocker.net/shellshock_test.sh | bash

运行它需要您自担风险。如果上述链接过期或您不想信任它,它将运行以下脚本:

cd ~/
mkdir bash-shellshocker
cd bash-shellshocker
echo "Downloading Bash..."
wget https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
echo "Downloading Bash patches..."
i=0
rtn=0
while [ $rtn -eq 0 ]; do
  i=`expr $i + 1`
  wget https://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$(printf '%03g' $i)
  rtn=$?
done
i=`expr $i - 1`
echo "Extracting bash from tar.gz..."
tar zxvf bash-4.3.tar.gz 
cd bash-4.3
echo "Applying Patches..."
for j in $(seq -f "%03g" 1 $i);do patch -p0 < ../bash43-$j; done

echo "Ready to install. Configuring..."
./configure --prefix=/
echo "Running make"
make
if [[ "$USER" == "root" ]]
then
  echo "Running make install"
  make install
  cp /bin/bash /usr/local/bin/bash
else
  echo "Running make install  (You may need to type your sudo password here)"
  sudo make install
  sudo cp /bin/bash /usr/local/bin/bash 
fi

https://github.com/wreiske/shellshocker/blob/master/fixbash是可以找到脚本的地方

祝你好运

答案3

由于您只应从认可的提供商处安装此类安全更新,因此从源代码编译的解决方案是您唯一的解决方案。

答案4

lumpygator 的答案对我有帮助,但我认为这太复杂了。如果您只想从较新的 ubuntu 版本安装一个软件包,则无需编辑sources.list,您可以直接下载该软件包并安装它。因此,如果出现 bash shellshock 错误,请转到http://packages.ubuntu.com/trusty/amd64/bash/download,点击“* security.ubuntu.com/ubuntu”链接,这将下载文件bash_4.3-7ubuntu1.5_amd64.deb。或者,您可以运行以下命令:

wget http://security.ubuntu.com/ubuntu/pool/main/b/bash/bash_4.3-7ubuntu1.5_amd64.deb

获得新包后,你可以直接使用以下命令安装它:

dpkg -i bash_4.3-7ubuntu1.5_amd64.deb

这在 Saucy (13.10) 上对我有用。

(如果您有 32 位系统,请将 amd64 替换为 i386。)

相关内容