我正在尝试升级我的 amazon EC2 实例上的 httpd 版本,因为我们的安全团队要求我这样做。
有人可以建议升级 httpd 模块的最简单方法吗?
我被告知需要从 2.4.48 升级到 2.4.56
[root@ip-172-X ec2-user]# httpd -v
Server version: Apache/2.4.48 ()
Server built: Jun 25 2021 18:53:37
[root@ip-172-X ec2-user]# sudo yum update httpd
Loaded plugins: extras_suggestions, langpacks, update-motd
No packages marked for update
[root@ip-172-X ec2-user]#
但是 yum 说没有可用的更新?
如果我尝试这样做,yum install httpd
它会回到 2.3.34 吗?
答案1
Amazon repo 中没有较新版本的软件包。您应该等待。并让您的安全团队检查 Amazon 版本中是否存在特定的安全问题httpd
。
您可以尝试清除yum
缓存并检查是否可以找到该软件包:
yum clean all
yum search httpd
答案2
第一步是问两个问题:
为什么需要升级?
相当典型的回应将来自您的企业安全团队,通常归结为:
我们的工具检测到您的系统容易受到一个或多个已知漏洞的攻击,包括 CVE 编号 X、Y 和 Z,并且供应商针对该漏洞的建议如下:
建议用户升级至版本
[latest-version]
,解决了该问题。
例如,在https://httpd.apache.org/security/vulnerabilities_24.html这通常不是最好的补救措施。
已关注您如何确定我的系统存在漏洞?
安全团队的回应很少是:我们进行了渗透测试并成功利用了 CVE-2023-X、CVE 2023-Y 等。
更常见的是:
您的易受攻击的应用程序公布了一个版本号
X.Y.Z
,并且我们的工具在数据库中进行了版本查找,例如:cvedetails.com -> Apache -> HTTPD 并发现该版本的一个或多个漏洞。第二种方法通常会导致假阳性。
如果你真的脆弱,如何解决取决于哪个 Linux 发行版和什么版本您的系统已开启并且存在漏洞的软件是如何安装的:
当您的易受攻击的软件从源代码编译那么您的系统通常将运行它宣传的版本,并且你的系统将会很脆弱。
您需要下载最新的上游版本,重新编译、测试和部署。还请考虑订阅上游邮件列表,这样您就可以收到有关新版本的通知,并可以在将来更及时地做出响应。确定哪些包是通过包管理器安装的或者不使用例如
apt list --installed
,yum list installed
或者使用类似rpm -qf /usr/sbin/httpd
或dpkg-query -S /usr/bin/adduser
来查找易受攻击的程序是否由包拥有。当你使用 Linux 发行版时反向移植安全更新,没有没有直接关联报告之间版本号和补丁状态. 这经常会导致误报。
此解释来自 Red Hat,但与 Ubuntu (LTS) 版本、(Open) SUSE 和亚马逊 Linux(但并非所有软件包都如此)大致相同。应用安全更新将解决漏洞,而无需更新软件版本。
假设该软件是你的企业 Linux 发行版的标准组件,该发行版仍然受支持,且(安全)更新尚未被禁用,那么应用正常更新足以保证系统安全。发行版将评估每个新的 CVE,确定他们发布的版本是否真的受到影响,如有必要,将修复上游版本,并(最终)发布安全更新。
例如通过
hostnamectl
和/或lsb_release -a
或检查/etc/*-release
文件确定您的 Linux 发行版/版本。确认(安全)更新存储库已启用,例如:
yum repolist
或cat /etc/apt/sources.list /etc/apt/sources.list.d/*
显而易见的是:当系统不再受支持时,您将不再收到来自供应商的任何安全更新。
您可能需要检查特定于发行版的安全数据库(例如https://access.redhat.com/security/security-updates/cve https://ubuntu.com/security/cves https://www.suse.com/security/cve/ https://alas.aws.amazon.com/) 如果 CVE 影响您的系统并且发布了更新。(有更好的特定于发行版的(命令行)工具来执行此类搜索/制作此类报告。)
确定 (rpm/deb) 包的补丁版本 (发布版本) (
rpm -qi httpd
或apt show apache2
) 而不是软件报告的版本号 (/sbin/httpd -v
) 以查看您的系统是否已正确更新或仍需要更新。当您需要让安全部门相信您的系统不存在漏洞时,请使用例如
rpm -q --changelog httpd
或apt-get changelog apache2
报告在特定安装包中已修复哪些 CVE。