通过修补 Bash 使用 Perl 中和 Shellshock

保护系统免受 Shellshock 攻击的最安全方法是升级到修补过的 Bash 版本。然而,如果你像我一样,可能会发现 Linux 发行版的繁忙发布计划使得你的当前发行版不受支持。与其冒险遭受攻击,不如自己修补 Bash。不幸的是,一些 Bash 版本有多达 52 个不同的修补程序需要下载和安装。因此,我编写了一个名为 bashfix 的 Perl 脚本来自动化这个过程。
需求
Bashfix 需要的最低要求很少,因此你可以在任何 Linux 平台上直接运行它
- Perl 5.8 或更高版本,不需要额外的模块
- 带有 Bash 版本 3.* 或 4.* 的 Linux
- 以下 C 二进制文件:wget、curl、bison、byacc、gettext、patch、autoconf
- 互联网连接以从 GNU 下载 Bash 和相关修补程序
概述
使用 bashfix 比较简单
$ git clone https://github.com/sillymoose/bashfix.git
$ cd bashfix
$ chmod +x bashfix.pl
$ ./bashfix.pl
Bash version 4.2.13 detected
Created working directory /tmp/PIRKRioxmM
Downloading Bash
Downloading Patches
Bash patched to level 52
Bash fully patched!
Configuring Bash ...
Building and testing Bash ...
Success. New Bash binary built!
Making backup copy of /usr/bin/bash at /usr/bin/bash.bak
Making backup copy of /bin/bash at /bin/bash.bak
Bash version 4.2.52 is now installed
Bashfix 会检查你是否已安装 Bash 以及必要的先决条件。然后,它会下载与系统上已安装的相同版本的 Bash 源代码(你可以修补旧的 Bash 版本来使其对 Shellshock 免疫)。请注意,不同版本的 Bash 有不同数量的修补程序:4.2 有 52 个修补程序,而 4.1 只有 16 个。之后,bashfix 配置、构建和测试 Bash,在安装新修补版本之前备份现有的 Bash 二进制文件。
结论
我已经在 Fedora 和 CentOS 的不同版本上测试了 bashfix,并预计它将与任何 RHEL 风格的发行版一起工作。在其他 Linux 发行版或 Unix 系统上,效果可能会有所不同。如果你遇到任何问题 - 联系我并告诉我!如果你想了解更多关于该漏洞的信息,请查看我们最近的 文章。
感谢 Steve Jenkins,他的详细博客 帖子 为此脚本提供了灵感。
本文最初发布于 PerlTricks.com。
标签
反馈
这篇文章有什么问题吗?请在 GitHub 上打开一个问题或拉取请求来帮助我们。