Centos7系统安全漏洞及修复方案

以下所有漏洞均为Centos7的系统漏洞修复,为离线内网环境;

某些服务由Docker镜像部署;

此博客内容会根据实际环境出的漏洞检测报告,持续更新。

一. 内网升级服务及命令版本方法

  1. 内网环境,无法使用yum命令 —— 则离线升级安装rpm包
  2. Centos的rpm包地址(大多数包可在这找到):CentOS Mirror
  3. 若是包版本不全,可使用此博客的4.1方法下载安装升级包:Docker系列之二:离线安装docker_sara的博客-CSDN博客_docker离线安装

升级软件包命令:rpm会自动卸载相应软件包的旧版本

rpm -Uvh *.rpm
// * 指代rpm包的名字
// 此命令是离线升级安装软件包,若有网,则可以直接使用yum命令

如果旧版软件的配置文件和新版本的不兼容,rpm会自动将其保存为另一个文件,可以看到以下相关信息:

// 例如:
rpm -Uvh example.rpm

saving /etc/example.conf as /etc/example.conf.rpmsave

这样用户可以手动修改相应的配置文件。

若用户需要安装旧版的软件,则会看到以下的报错提示信息:

// 例如:
rpm -Uvh example.rpm

example package example-2.0-1(which is newer) is already installed

二. 升级相关软件包

1.  CentOS 7 : bash (CESA-2020:1113)

补丁描述

Bash是为GNU计划而编写的一个Shell(命令语言解释器)。

Bash中存在安全漏洞,可以在受限模式(rbash)中通过将它们添加到BASH_CMDS数组调用包含斜杠的命令。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y bash

验证信息

bash

当前安装版本:4.2.46-33.el7

补丁修复版本:4.2.46-34.el7

rpm -Uvh bash-4.2.46-34.el7.x86_64.rpm

2. CentOS 7 : curl (CESA-2020:3916)

补丁描述

Haxx libcurl是瑞典Haxx公司的一个免费、开源的客户端URL传输库。该库支持FTP、FTPS、TFTP、HTTP等。

Haxx libcurl中存在缓冲区错误漏洞。该漏洞源于网络系统或产品在内存上执行操作时,未正确验证数据边界,导致向关联的其他内存位置上执行了错误的读写操作。攻击者可利用该漏洞导致缓冲区溢出或堆溢出等。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y curl libcurl

验证信息

curl

当前安装版本:7.29.0-54.el7_7.2

补丁修复版本:7.29.0-59.el7

libcurl

当前安装版本:7.29.0-54.el7_7.2

补丁修复版本:7.29.0-59.el7

rpm -Uvh curl-7.29.0-59.el7_9.1.x86_64.rpm libcurl-7.29.0-59.el7_9.1.x86_64.rpm 

3. CentOS 7 : expat (CESA-2020:1011)

补丁描述

expat中存在缓冲区溢出漏洞。远程攻击者可通过提供

大量压缩的XML数据利用该漏洞执行任意代码。

修复建议

升级相关软件到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y expat

验证信息

expat

当前安装版本:2.1.0-10.el7_3

补丁修复版本:2.1.0-11.el7

CentOS 7 : expat (CESA-2020:3952) 

补丁描述

libexpat是一款使用C语言编写的流式XML解析器。libexpat中存在代码问题漏洞。该漏洞源于网络系统或产品的代码开发过程中存在设计或实现不当的问题。存在安全漏洞。攻击者可借助XML名称中带有大量冒号的XML输入,利用该漏洞造成拒绝服务(消耗大量RAM及CPU资源)。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y expat

验证信息

expat

当前安装版本:2.1.0-10.el7_3

补丁修复版本:2.1.0-12.el7

rpm -Uvh expat-2.1.0-12.el7.x86_64.rpm

4. CentOS 7 : gettext (CESA-2020:1138)

补丁描述

gettext错误地处理了某些消息,攻击者可能利用此问题来执行任意代码。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y gettext-libs gettext

验证信息

gettext-libs

当前安装版本:0.19.8.1-2.el7

补丁修复版本:0.19.8.1-3.el7

gettext

当前安装版本:0.19.8.1-2.el7

补丁修复版本:0.19.8.1-3.el7

rpm -Uvh gettext-0.19.8.1-3.el7.x86_64.rpm gettext-libs-0.19.8.1-3.el7.x86_64.rpm

5. CentOS 7 : glib2 and ibus (CESA-2020:3978)

补丁描述

GNOME Glib是一套用于创建图形用户界面的多平台工具包,是GTK+和GNOME工程的基础底层核心程序库。

GNOME Glib中存在授权问题漏洞。该漏洞源于网络系统或产品中缺少身份验证措施或身份验证强度不足。ibus是一款适用于Linux/Unix平台的输入框架。

ibus存在安全漏洞。该漏洞源于Dbus服务器设置中存在不正确的配置。本地攻击者可利用该漏洞拦截受影响用户的全部击键,修改输入方法引擎或修改其他用户与输入相关的配置。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y glib2

验证信息

glib2

当前安装版本:2.56.1-5.el7

补丁修复版本:2.56.1-7.el7

rpm -Uvh glib2-2.56.1-7.el7.x86_64.rpm

6. CentOS 7 : kernel (CESA-2020:0839)

补丁描述

Linux kernel是美国Linux基金会发布的开源操作系Linux所使用的内核。

Linux kernel中存在缓冲区错误漏洞。该漏洞源于网络系统或产品在内存上执行操作时,未正确验证数据边界,导致向关联的其他内存位置上执行了错误的读写操作。攻击者可利用该漏洞导致缓冲区溢出或堆溢出等。

Linux kernel中存在安全漏洞。攻击者可利用该漏洞获取敏感信息。

修复建议

可升级相关软件包到最新修复版本。内核补丁修复可能存在风险,修复需谨慎,建议测试验证无误后进行升级操作。系统重启

修复命令

sudo yum update -y kernel

验证信息

kernel

当前安装版本:3.10.0-1062.12.1.el7

补丁修复版本:3.10.0-1062.18.1.el7

CentOS 7 : kernel (CESA-2020:1016) 

补丁描述

Linux kernel是美国Linux基金会发布的开源操作系统Linux所使用的内核。

Linux kernel 中存在多个安全漏洞,攻击者可利用这些漏洞导致缓冲区溢出、堆溢出拒绝服务或执行任意代码等。

修复建议

可升级相关软件包到最新修复版本。内核补丁修复可能存在风险,修复需谨慎,建议测试验证无误后进行升级操作。系统重启

修复命令

sudo yum update -y python-perf kernel

验证信息

python-perf

当前安装版本:3.10.0-1062.18.1.el7

补丁修复版本:3.10.0-1127.el7

kernel

当前安装版本:3.10.0-1062.12.1.el7

补丁修复版本:3.10.0-1127.el7

CentOS 7 : kernel (CESA-2021:0856)

补丁描述

Linux中存在多个安全漏洞,攻击者可使用这些漏洞导致信息泄露、拒绝服务等。恶意USB设备可能导致多个越界写入;在pinctrl子系统中越界读取;性能计数器争用情况释放后使用;net / netfilter / nf_conntrack_netlink.c中的ctnetlink_parse_tuple_filter中的本地缓冲区溢出;两个Geneve端点之间的Geneve / IPsec通信可能未加密;在vt_do_kdgkb_ioctl中读取后释放后使用;ICMP速率限制可用于DNS中毒攻击;SCSI目标(LIO)写入ILO后台存储上的任何块;drivers / tty / tty_jobctrl.c中的锁定问题可能导致释放后使用;drivers / gpu / drm / i915 / i915_gem_gtt.c中的i915_ppgtt_close免费使用;平板泄漏增加导致DDoS。

修复建议

升级相关软件包到最新修复版本。内核补丁修复可能存在风险,修复需谨慎,建议测试验证无误后进行升级操作。漏洞修复后系统重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y kernel python-perf

验证信息

kernel

当前安装版本:3.10.0-1160.15.2.el7

补丁修复版本:3.10.0-1160.21.1.el7

python-perf

当前安装版本:3.10.0-1160.15.2.el7

补丁修复版本:3.10.0-1160.21.1.el7

CentOS 7 : kernel (CESA-2021:1071)

补丁描述

Linux内核中发现了一个问题。kernel/bpf/verifier.c在指针算术上执行了不希望的越界推测,从而导致侧信道攻击,这种攻击破坏了Spectre缓解措施,并从内核内存(即CID-f232326f6966)获得敏感信息。这会影响未定义ptr_limit的指针类型。

修复建议

升级相关软件包到最新修复版本。内核补丁修复可能存在风险,修复需谨慎,建议测试验证无误后进行升级操作。漏洞修复后系统重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y kernel python-perf

验证信息

kernel

当前安装版本:3.10.0-1160.15.2.el7

补丁修复版本:3.10.0-1160.24.1.el7

python-perf

当前安装版本:3.10.0-1160.15.2.el7

补丁修复版本:3.10.0-1160.24.1.el7

rpm -Uvh kernel-3.10.0-1160.24.1.el7.x86_64.rpm python-perf-3.10.0-1160.24.1.el7.x86_64.rpm

7. CentOS 7 : libpng (CESA-2020:3901)

补丁描述

libpng是一个可对PNG图形文件实现创建、读写等操作的PNG参考库。

libpng中存在安全漏洞。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y libpng

验证信息

libpng

当前安装版本:1.5.13-7.el7_2

补丁修复版本:1.5.13-8.el7

rpm -Uvh libpng-1.5.13-8.el7.x86_64.rpm

8. CentOS 7 : nss and nspr (CESA-2020:4076)

补丁描述

Network Security Services(NSS)是一套用于跨平台开发且启用了安全功能的客户端和服务器应用的库,用NSS编译的应用可支持SSLv2、SSLv3、TLS等安全标准。

Mozilla Firefox中的Network Security Services库存在缓冲区错误漏洞。攻击者可利用该漏洞泄露信息。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y nss-util nss nss-tools nss-softokn nss-softokn-freebl nspr nss-sysinit

验证信息

nss-util

当前安装版本:3.44.0-4.el7_7

补丁修复版本:3.53.1-1.el7_9

nss

当前安装版本:3.44.0-7.el7_7

补丁修复版本:3.53.1-3.el7_9

nss-tools

当前安装版本:3.44.0-7.el7_7

补丁修复版本:3.53.1-3.el7_9

nss-softokn

当前安装版本:3.44.0-8.el7_7

补丁修复版本:3.53.1-6.el7_9

nss-softokn-freebl

当前安装版本:3.44.0-8.el7_7

补丁修复版本:3.53.1-6.el7_9

nspr

当前安装版本:4.21.0-1.el7

补丁修复版本:4.25.0-2.el7_9

nss-sysinit

当前安装版本:3.44.0-7.el7_7

补丁修复版本:3.53.1-3.el7_9

rpm -Uvh nss-softokn-freebl-3.53.1-6.el7_9.x86_64.rpm nss-tools-3.53.1-3.el7_9.x86_64.rpm nss-util-3.53.1-1.el7_9.x86_64.rpm nss-softokn-3.53.1-6.el7_9.x86_64.rpm nss-sysinit-3.53.1-3.el7_9.x86_64.rpm nss-3.53.1-3.el7_9.x86_64.rpm nspr-4.25.0-2.el7_9.x86_64.rpm

9. CentOS 7 : rsyslog (CESA-2020:1000)

补丁描述

Rsyslog是一个用于收集系统日志的库。Rsyslog中存在

缓冲区错误漏洞。远程攻击者可利用该漏洞在系统上执行任意代码或造成应用程序崩溃。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y rsyslog

验证信息

rsyslog

当前安装版本:8.24.0-41.el7_7.4

补丁修复版本:8.24.0-52.el7

rpm -Uvh rsyslog-8.24.0-55.el7.x86_64.rpm

10. CentOS 7 : bind (CESA-2020:1061)

补丁描述

ISC BIND是广泛应用的域名服务器软件。

包含"deny-answer-aliases"功能的bind版本中存在拒绝服务漏洞,可能允许远程攻击者在命名中触发INSIST断言,从而导致进程终止和拒绝服务。

bind没有充分地限制TCP客户端同时连接的个数。攻击者可利用该漏洞耗尽文件描述符,影响网络连接和文件管理。

bind与"managed-keys"功能一起使用时,不正确的处理了某些信任锚,远程攻击者可能会利用此问题导致Bind崩溃,从而导致拒绝服务。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y bind-libs bind-license bind-export-libs bind bind-libs-lite

验证信息

bind-libs

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind-license

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind-export-libs

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind-libs-lite

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

CentOS 7 : bind (CESA-2020:2344)

补丁描述

ISC BIND是美国ISC公司的一套实现了DNS协议的开源软件。

ISC BIND中存在资源管理错误漏洞。该漏洞源于网络系统或产品对系统资源(如内存、磁盘空间、文件等)的管理不当。

ISC BIND中存在安全漏洞。远程攻击者可利用该漏洞导致拒绝服务。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y bind-libs bind-license bind-export-libs bind bind-libs-lite

验证信息

bind-libs

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind-license

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind-export-libs

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

bind-libs-lite

当前安装版本:9.11.4-9.P2.el7

补丁修复版本:9.11.4-16.P2.el7

rpm -Uvh bind-9.11.4-26.P2.el7.x86_64.rpm bind-license-9.11.4-26.P2.el7.noarch.rpm bind-license-9.11.4-26.P2.el7.noarch.rpm bind-export-libs-9.11.4-26.P2.el7.x86_64.rpm bind-libs-lite-9.11.4-26.P2.el7.x86_64.rpm

11. CentOS 7 : grub2 (CESA-2020:3217)

补丁描述

grub2是GNU计划的一款Linux系统引导程序。GRUB2中存在多个整数溢出,从而导致基于堆的缓冲区溢出。本地攻击者可以利用它们执行任意代码并绕过UEFI安全启动限制。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要系统重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y grub2-pc-modules grub2-tools-minimal grub2-pc grub2-tools-extra grub2-tools grub2-common grub2

验证信息

grub2-pc-modules

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

grub2-tools-minimal

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

grub2-pc

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

grub2-tools-extra

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

grub2-tools

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

grub2-common

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

grub2

当前安装版本:2.02-0.80.el7.centos

补丁修复版本:2.02-0.86.el7.centos

rpm -Uvh grub2-pc-modules-2.02-0.86.el7.centos.noarch.rpm grub2-tools-minimal-2.02-0.86.el7.centos.x86_64.rpm grub2-pc-2.02-0.86.el7.centos.x86_64.rpm grub2-tools-extra-2.02-0.86.el7.centos.x86_64.rpm grub2-tools-2.02-0.86.el7.centos.x86_64.rpm grub2-common-2.02-0.86.el7.centos.noarch.rpm grub2-2.02-0.86.el7.centos.x86_64.rpm

12. CentOS 7 : wpa_supplicant (CESA-2021:0808)

补丁描述

wpa_supplicant中的p2p / p2p_pd.c如何处理P2P(Wi-Fi Direct)供应发现请求中发现了一个漏洞。对于无线电范围内的攻击者,这可能导致拒绝服务或其他影响(可能执行任意代码)。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y wpa_supplicant

验证信息

wpa_supplicant

当前安装版本:2.6-12.el7

补丁修复版本:2.6-12.el7_9.2

rpm -Uvh wpa_supplicant-2.6-12.el7_9.2.x86_64.rpm

13. CentOS 7 : subversion (CESA-2020:3972)

补丁描述

Apache Subversion是美国阿帕奇(Apache)软件基金会的一套开源的版本控制系统。该系统可兼容并发版本系统(CVS)。svnserve servers是其中的一个轻量级的独立服务器。

Apache Subversion svnserve servers中存在安全漏洞。攻击者可利用该漏洞造成svnserve server进程退出,导致拒绝服务。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y subversion subversion-libs

验证信息

subversion

当前安装版本:1.7.14-14.el7

补丁修复版本:1.7.14-16.el7

subversion-libs

当前安装版本:1.7.14-14.el7

补丁修复版本:1.7.14-16.el7

rpm -Uvh subversion-1.7.14-16.el7.x86_64.rpm subversion-libs-1.7.14-16.el7.x86_64.rpm

14. CentOS 7 : openssl (CESA-2020:5566)

补丁描述

OpenSSL是Openssl团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。

OpenSSL存在安全漏洞,该漏洞源于空指针解引用和崩溃可能会导致拒绝服务攻击。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y openssl openssl-devel openssl-libs

验证信息

openssl

当前安装版本:1.0.2k-19.el7

补丁修复版本:1.0.2k-21.el7_9

openssl-devel

当前安装版本:1.0.2k-19.el7

补丁修复版本:1.0.2k-21.el7_9

openssl-libs

当前安装版本:1.0.2k-19.el7

补丁修复版本:1.0.2k-21.el7_9

rpm -Uvh openssl-1.0.2k-21.el7_9.x86_64.rpm openssl-libs-1.0.2k-21.el7_9.x86_64.rpm openssl-devel-1.0.2k-21.el7_9.x86_64.rpm

15. CentOS 7 : microcode_ctl (CESA-2020:2432)

补丁描述

microcode_ctl存在多个安全漏洞,该漏洞源于RAPL接口的可观察差异可能允许特权用户潜在地通过本地访问公开信息。远程攻击者可利用这些漏洞造成信息泄露、拒绝服务或特权升级。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要系统重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y microcode_ctl

验证信息

microcode_ctl

当前安装版本:2.1-53.7.el7_7

补丁修复版本:2.1-61.6.el7_8

rpm -Uvh microcode_ctl-2.1-73.8.el7_9.x86_64.rpm

16. CentOS 7 : glibc (CESA-2020:3861)

补丁描述

GNU C Library(glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library中存在安全漏洞。攻击者可利用该漏洞绕过ASLR保护。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y glibc-common glibc glibc-devel glibc-headers

验证信息

glibc-common

当前安装版本:2.17-292.el7

补丁修复版本:2.17-317.el7

glibc

当前安装版本:2.17-292.el7

补丁修复版本:2.17-317.el7

glibc-devel

当前安装版本:2.17-292.el7

补丁修复版本:2.17-317.el7

glibc-headers

当前安装版本:2.17-292.el7

补丁修复版本:2.17-317.el7

rpm -Uvh glibc-2.17-317.el7.x86_64.rpm glibc-devel-2.17-317.el7.x86_64.rpm glibc-common-2.17-317.el7.x86_64.rpm glibc-headers-2.17-317.el7.x86_64.rpm

17. CentOS 7 : openldap (CESA-2020:4041)

补丁描述

OpenLDAP是美国OpenLDAP基金会的一个轻型目录访问协议(LDAP)的开源实现。

OpenLDAP中的slapd的filter.c文件存在安全漏洞。攻击者可利用该漏洞造成拒绝服务(守护进程崩溃)。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y openldap

验证信息

openldap

当前安装版本:2.4.44-21.el7_6

补丁修复版本:2.4.44-22.el7

rpm -Uvh openldap-2.4.44-22.el7.x86_64.rpm

18. CentOS 7 : e2fsprogs (CESA-2020:4011)

补丁描述

E2fsprogs是一套用以维护ext2、ext3和ext4文件系统的工具程序集。

E2fsprogs中存在缓冲区错误漏洞。攻击者可通过损坏分区利用该漏洞执行代码。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y libcom_err e2fsprogs-libs libcom_err-devel libss e2fsprogs

验证信息

libcom_err

当前安装版本:1.42.9-16.el7

补丁修复版本:1.42.9-19.el7

e2fsprogs-libs

当前安装版本:1.42.9-16.el7

补丁修复版本:1.42.9-19.el7

libcom_err-devel

当前安装版本:1.42.9-16.el7

补丁修复版本:1.42.9-19.el7

libss

当前安装版本:1.42.9-16.el7

补丁修复版本:1.42.9-19.el7

e2fsprogs

当前安装版本:1.42.9-16.el7

补丁修复版本:1.42.9-19.el7

rpm -Uvh  e2fsprogs-1.42.9-19.el7.x86_64.rpm e2fsprogs-libs-1.42.9-19.el7.x86_64.rpm libcom_err-1.42.9-19.el7.x86_64.rpm libcom_err-devel-1.42.9-19.el7.x86_64.rpm libss-1.42.9-19.el7.x86_64.rpm

19. CentOS 7 : sudo (CESA-2021:0221)

补丁描述

Sudo具有基于堆的缓冲区溢出,从而允许通过sudoedit -s和以单个反斜杠字符结尾的命令行参数将特权提升为root,以及Sudo的sudoedit个性可能允许本地非特权用户执行任意操作,通过在替换用户控制的目录中赢得sudo_edit.c竞争条件来进行目录存在性测试,通过符号链接到任意路径。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y sudo

验证信息

sudo

当前安装版本:1.8.23-4.el7_7.2

补丁修复版本:1.8.23-10.el7_9.1

rpm -Uvh sudo-1.8.23-10.el7_9.1.x86_64.rpm

20. CentOS 7 : dbus (CESA-2020:2894)

补丁描述

D-BUS是一种消息总线系统,它主要用于进程间通信及远程过程调用等。

D-BUS 中存在安全漏洞,该漏洞源于dbus-daemon中使用的libdbus的DBusServer,在消息超过每个消息文件描述符限制时会泄漏文件描述符。本地攻击者可利用该漏洞使系统服务达到其文件描述符限制,从而无法为后续D-Bus客户端提供服务。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y dbus-libs dbus

验证信息

dbus-libs

当前安装版本:1.10.24-13.el7_6

补丁修复版本:1.10.24-14.el7_8

dbus

当前安装版本:1.10.24-13.el7_6

补丁修复版本:1.10.24-14.el7_8

CentOS 7 : dbus (CESA-2020:4032)

补丁描述

dbus存在授权问题漏洞。该漏洞源于网络系统或产品中缺少身份验证措施或身份验证强度不足。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y dbus-libs dbus

验证信息

dbus-libs

当前安装版本:1.10.24-13.el7_6

补丁修复版本:1.10.24-15.el7_8

dbus

当前安装版本:1.10.24-13.el7_6

补丁修复版本:1.10.24-15.el7_8

rpm -Uvh dbus-1.10.24-15.el7.x86_64.rpm dbus-libs-1.10.24-15.el7.x86_64.rpm

21. CentOS 7 : cups (CESA-2020:1050)

补丁描述

CUPS(Common UNIX Printing System),即通用Unix打印系统。启用D-Bus支持时,远程攻击者可能通过发送带有无效用户名的打印作业(与D-Bus通知相关)导致cups的scheduler/ipp.c中的add_job功能崩溃。

CUPS dnssd后端错误地处理了某些环境变量,本地攻击者可能利用此问题提升权限。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y cups-libs

验证信息

cups-libs

当前安装版本:1.6.3-40.el7

补丁修复版本:1.6.3-43.el7

CentOS 7 : cups (CESA-2020:3864)

补丁描述

pple CUPS(Common Unix Printing System)是美国苹果(Apple)公司的一套开源的用于OS X和类Unix系统的打印系统。该系统基于Internet打印协议(IPP),提供大多数PostScript和raster打印机服务。

Apple CUPS中存在多个安全漏洞。远程攻击者可利用漏洞向CUPS守护进程发送POST请求并实施DNS重绑定攻击利用该漏洞执行任意的IPP命令或造成CUPS崩溃。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y cups-libs

验证信息

cups-libs

当前安装版本:1.6.3-40.el7

补丁修复版本:1.6.3-51.el7

rpm -Uvh cups-libs-1.6.3-51.el7.x86_64.rpm

22. CentOS 7 : dnsmasq (CESA-2021:0153)

补丁描述

Dnsmasq是一款使用C语言编写的轻量级DNS转发和DHCP、TFTP服务器。

Dnsmasq 存在缓冲区错误漏洞,该漏洞源于sort rrset子例程中的基于堆的缓冲区溢出,该子例程在启用DNSSEC时并在验证接收到的DNS条目之前发生。还将造成DNS 缓存中毒,远程代码执行、以及拒绝服务(DoS)攻击。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y dnsmasq

验证信息

dnsmasq

当前安装版本:2.76-10.el7_7.1

补丁修复版本:2.76-16.el7_9.1

rpm -Uvh dnsmasq-2.76-16.el7_9.1.x86_64.rpm

23. CentOS 7 : avahi (CESA-2020:1176)

补丁描述

Avahi是一套用于Linux的本地服务发现工具。

Avahi 中的avahi-daemon存在安全漏洞。远程攻击者可利用该漏洞造成拒绝服务或获取敏感信息。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y avahi-libs

验证信息

avahi-libs

当前安装版本:0.6.31-19.el7

补丁修复版本:0.6.31-20.el7

rpm -Uvh avahi-libs-0.6.31-20.el7.x86_64.rpm

24. CentOS 7 : file (CESA-2020:1022)

补丁描述

file是一套用于类Unix系统下查看文件格式的工具。

file中的libmagic.a静态链接库的readelf.c文件的 do_core_note 函数存在安全漏洞。远程攻击者可借助特制的ELF文件利用该漏洞造成拒绝服务(越界读取和应用程序崩溃)。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y file-libs file

验证信息

file-libs

当前安装版本:5.11-35.el7

补丁修复版本:5.11-36.el7

file

当前安装版本:5.11-35.el7

补丁修复版本:5.11-36.el7

rpm -Uvh file-5.11-37.el7.x86_64.rpm file-libs-5.11-37.el7.x86_64.rpm

25. CentOS 7 : NetworkManager (CESA-2020:4003)

补丁描述

NetworkManager是一款网络管理守护程序。

NetworkManager中存在安全漏洞,该漏洞源于nmcli(命令行接口)并没有执行802-1x.ca-path和802-1x.phase2-ca-path的设置。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y NetworkManager-wifi NetworkManager-team NetworkManager NetworkManager-libnm NetworkManager-tui NetworkManager-ppp

验证信息

NetworkManager-wifi

当前安装版本:1.18.0-5.el7_7.2

补丁修复版本:1.18.8-1.el7

NetworkManager-team

当前安装版本:1.18.0-5.el7_7.2

补丁修复版本:1.18.8-1.el7

NetworkManager

当前安装版本:1.18.0-5.el7_7.2

补丁修复版本:1.18.8-1.el7

NetworkManager-libnm

当前安装版本:1.18.0-5.el7_7.2

补丁修复版本:1.18.8-1.el7

NetworkManager-tui

当前安装版本:1.18.0-5.el7_7.2

补丁修复版本:1.18.8-1.el7

NetworkManager-ppp

当前安装版本:1.18.0-5.el7_7.2

补丁修复版本:1.18.8-1.el7

rpm -Uvh NetworkManager-1.18.8-1.el7.x86_64.rpm NetworkManager-libnm-1.18.8-1.el7.x86_64.rpm NetworkManager-ppp-1.18.8-1.el7.x86_64.rpm NetworkManager-team-1.18.8-1.el7.x86_64.rpm NetworkManager-tui-1.18.8-1.el7.x86_64.rpm NetworkManager-wifi-1.18.8-1.el7.x86_64.rpm

26. CentOS 7 : libX11 (CESA-2020:4908)

补丁描述

X.Org libX11是X.Org基金会的一个X11(X Window系统)客户端库。

X.Org libX11存在安全漏洞。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y libX11-common libX11

验证信息

libX11-common

当前安装版本:1.6.7-2.el7

补丁修复版本:1.6.7-3.el7_9

libX11

当前安装版本:1.6.7-2.el7

补丁修复版本:1.6.7-3.el7_9

rpm -Uvh libX11-1.6.7-3.el7_9.x86_64.rpm libX11-common-1.6.7-3.el7_9.noarch.rpm

27. CentOS 7 : linux-firmware (CESA-2021:0339)

补丁描述

Intel Wi-Fi 6 AX201等都是美国英特尔(Intel)公司的一个可以支持无线蓝牙功能的支撑固件。

Intel Wireless Bluetooth中存在缓冲区错误漏洞,这些漏洞可能允许特权升级或拒绝服务。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y iwl4965-firmware iwl100-firmware iwl6000-firmware iwl3945-firmware iwl135-firmware iwl1000-firmware iwl2000-firmware iwl7260-firmware iwl6000g2a-firmware iwl105-firmware iwl5150-firmware iwl3160-firmware iwl2030-firmware iwl6050-firmware iwl6000g2b-firmware linux-firmware iwl5000-firmware

验证信息

iwl4965-firmware

当前安装版本:228.61.2.24-72.el7

补丁修复版本:228.61.2.24-80.el7_9

iwl100-firmware

当前安装版本:39.31.5.1-72.el7

补丁修复版本:39.31.5.1-80.el7_9

iwl6000-firmware

当前安装版本:9.221.4.1-72.el7

补丁修复版本:9.221.4.1-80.el7_9

iwl3945-firmware

当前安装版本:15.32.2.9-72.el7

补丁修复版本:15.32.2.9-80.el7_9

iwl135-firmware

当前安装版本:18.168.6.1-72.el7

补丁修复版本:18.168.6.1-80.el7_9

iwl1000-firmware

当前安装版本:39.31.5.1-72.el7

补丁修复版本:39.31.5.1-80.el7_9

iwl2000-firmware

当前安装版本:18.168.6.1-72.el7

补丁修复版本:18.168.6.1-80.el7_9

iwl7260-firmware

当前安装版本:22.0.7.0-72.el7

补丁修复版本:25.30.13.0-80.el7_9

iwl6000g2a-firmware

当前安装版本:17.168.5.3-72.el7

补丁修复版本:18.168.6.1-80.el7_9

iwl105-firmware

当前安装版本:18.168.6.1-72.el7

补丁修复版本:18.168.6.1-80.el7_9

iwl5150-firmware

当前安装版本:8.24.2.2-72.el7

补丁修复版本:8.24.2.2-80.el7_9

iwl3160-firmware

当前安装版本:22.0.7.0-72.el7

补丁修复版本:25.30.13.0-80.el7_9

iwl2030-firmware

当前安装版本:18.168.6.1-72.el7

补丁修复版本:18.168.6.1-80.el7_9

iwl6050-firmware

当前安装版本:41.28.5.1-72.el7

补丁修复版本:41.28.5.1-80.el7_9

iwl6000g2b-firmware

当前安装版本:17.168.5.2-72.el7

补丁修复版本:18.168.6.1-80.el7_9

linux-firmware

当前安装版本:20190429-72.gitddde598.el7

补丁修复版本:20200421-80.git78c0348.el7_9

iwl5000-firmware

当前安装版本:8.83.5.1_1-72.el7

补丁修复版本:8.83.5.1_1-80.el7_9

rpm -Uvh iwl1000-firmware-39.31.5.1-80.el7_9.noarch.rpm iwl100-firmware-39.31.5.1-80.el7_9.noarch.rpm iwl105-firmware-18.168.6.1-80.el7_9.noarch.rpm iwl135-firmware-18.168.6.1-80.el7_9.noarch.rpm iwl2000-firmware-18.168.6.1-80.el7_9.noarch.rpm iwl2030-firmware-18.168.6.1-80.el7_9.noarch.rpm iwl3160-firmware-25.30.13.0-80.el7_9.noarch.rpm iwl3945-firmware-15.32.2.9-80.el7_9.noarch.rpm iwl4965-firmware-228.61.2.24-80.el7_9.noarch.rpm iwl5000-firmware-8.83.5.1_1-80.el7_9.noarch.rpm iwl5150-firmware-8.24.2.2-80.el7_9.noarch.rpm iwl6000-firmware-9.221.4.1-80.el7_9.noarch.rpm iwl6000g2a-firmware-18.168.6.1-80.el7_9.noarch.rpm iwl6000g2b-firmware-18.168.6.1-80.el7_9.noarch.rpm iwl6050-firmware-41.28.5.1-80.el7_9.noarch.rpm iwl7260-firmware-25.30.13.0-80.el7_9.noarch.rpm linux-firmware-20200421-80.git78c0348.el7_9.noarch.rpm

28. CentOS 7 : unzip (CESA-2020:1181)

补丁描述

UnZip是一套基于Unix平台的用于对 ".zip" 文件格式进行解压的工具。UnZip中存在安全漏洞,攻击者可利用该漏洞造成拒绝服务。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y unzip

验证信息

unzip

当前安装版本:6.0-20.el7

补丁修复版本:6.0-21.el7

rpm -Uvh unzip-6.0-21.el7.x86_64.rpm

29. CentOS 7 : cpio (CESA-2020:3908)

补丁描述

cpio是一款用于类UNIX系统的文件备份程序。

cpio中存在输入验证错误漏洞,该漏洞源于程序生成TAR归档文件时没有正确验证输入的文件。攻击者可利用该漏洞提升权限,入侵系统。

修复建议

升级相关软件包到最新修复版本。漏洞修复后无需重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y cpio

验证信息

cpio

当前安装版本:2.11-27.el7

补丁修复版本:2.11-28.el7

rpm -Uvh cpio-2.11-28.el7.x86_64.rpm

30. CentOS 7 : systemd (CESA-2020:4007)

补丁描述

systemd是德国Lennart Poettering软件开发者的一款基于Linux的系统和服务管理器。该产品兼容了SysV和LSB的启动脚本,且提供了一个用来表示系统服务间依赖关系的框架。

systemd 中的login/logind-button.c文件的button_open存在安全漏洞。攻击者可利用该漏洞造成内存泄漏。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y systemd systemd-sysv systemd-libs libgudev1

验证信息

systemd

当前安装版本:219-67.el7_7.4

补丁修复版本:219-78.el7

systemd-sysv

当前安装版本:219-67.el7_7.4

补丁修复版本:219-78.el7

systemd-libs

当前安装版本:219-67.el7_7.4

补丁修复版本:219-78.el7

libgudev1

当前安装版本:219-67.el7_7.4

补丁修复版本:219-78.el7

rpm -Uvh libgudev1-219-78.el7.x86_64.rpm systemd-219-78.el7.x86_64.rpm systemd-libs-219-78.el7.x86_64.rpm systemd-sysv-219-78.el7.x86_64.rpm

31. CentOS 7 : perl (CESA-2021:0343)

补丁描述

Perl允许基于堆的缓冲区溢出,因为嵌套常规表达式量词有一个整数溢出。Perl出现整数溢出,与PL_regkind [OP(n)]错误处理有关情况。精心设计的正则表达式可能会导致字节码格式错误,并可能产生命令注入。Perl中的regcomp.c允许通过精心制作的正则表达式导致缓冲区溢出,原因是递归S_study_chunk调用。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y perl-macros perl-Pod-Escapes perl perl-libs

验证信息

perl-macros

当前安装版本:5.16.3-294.el7_6

补丁修复版本:5.16.3-299.el7_9

perl-Pod-Escapes

当前安装版本:1.04-294.el7_6

补丁修复版本:1.04-299.el7_9

perl

当前安装版本:5.16.3-294.el7_6

补丁修复版本:5.16.3-299.el7_9

perl-libs

当前安装版本:5.16.3-294.el7_6

补丁修复版本:5.16.3-299.el7_9

rpm -Uvh perl-5.16.3-299.el7_9.x86_64.rpm perl-libs-5.16.3-299.el7_9.x86_64.rpm perl-macros-5.16.3-299.el7_9.x86_64.rpm perl-Pod-Escapes-1.04-299.el7_9.noarch.rpm

32. CentOS 7 : libcroco (CESA-2020:4072)

补丁描述

libcroco是一个CSS2解析库。

libcroco中的cr-parser.c文件的cr_parser_parse_any_core存在安全漏洞。攻击者可利用该漏洞造成拒绝服务(栈消耗)。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y libcroco

验证信息

libcroco

当前安装版本:0.6.12-4.el7

补丁修复版本:0.6.12-6.el7_9

rpm -Uvh libcroco-0.6.12-6.el7_9.x86_64.rpm

33. CentOS 7 : polkit (CESA-2020:1135)

补丁描述

policykit是一个用于管理管理策略和权限的框架。

PolicyKit错误地检查了用户,本地攻击者可能利用此问题导致身份验证对话框显示给其他用户,从而导致拒绝服务或信息泄露。

修复建议

升级相关软件包到最新修复版本。漏洞修复后需要服务重启。建议业务不繁忙时修复。

修复命令

sudo yum update -y polkit

验证信息

polkit

当前安装版本:0.112-22.el7_7.1

补丁修复版本:0.112

rpm -Uvh polkit-0.112-26.el7.x86_64.rpm

三. 升级容器服务版本

1. Oracle MySQL Server Server 安全漏洞(CVE-2020-14878)

详细描述

Oracle MySQL Server是美国甲骨文(Oracle)公司的一款关系型数据库。

Oracle MySQL Server Server: Security: LDAP Auth 8.0.21 及之前版本存在安全漏洞,该漏洞使攻击者可以访问MySQL服务器执行危害MySQL Server的硬件的物理通信段。

解决办法

厂商补丁:

目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://www.oracle.com/security-alerts/cpuoct2020.html

Oracle MySQL Server 代码问题漏洞(CVE-2020-28196)

详细描述

Oracle MySQL Server是美国甲骨文(Oracle)公司的一款关系型数据库。

MySQL Server 代码问题漏洞,该漏洞源于lib/krb5/asn.1/asn1_encode.c对BER不定长度的支持没有递归限制。。以下产品及版本受到影响:MySQL Server: 8.0.23及之前版本。

解决办法

厂商补丁:

Oracle

----

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://www.oracle.com/security-alerts/cpuapr2021.html

将mysql版本升级到mysql8.0.23及以上的版本:

1. 首先在有网环境下载 mysql8.0.26 的版本

docker pull mysql:8.0.26

2. 将镜像导出

docker save -o mysql.tar mysql:8.0.26

3. 进入政务云服务器,将镜像导入本地镜像仓库

docker load -i mysql.tar

4. 升级mysql容器版本

//停止运行的mysql容器
docker stop mysql
//以防万一,将mysql容器重命名备份
docker rename mysql mysql-bak
//将mysql容器挂载的目录备份
cp -r  mysql mysql-bak
//重新构建mysql8.0.26的容器
docker run --restart always -itd --name mysql -h mysql -v /data/hqx/storm/mysql/conf/:/etc/mysql -v /data/hqx/storm/mysql/data/:/var/lib/mysql -v /data/hqx/storm/mysql/log:/var/log/ -p 3306:3306 -e MYSQL_ROOT_PASSWORD=hqxkj168++  mysql:8.0.26

5. 将旧版本mysql容器删除

docker rm -f mysql-bak

6. 每次mysql重新启动,都需要运行此步骤:

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

2. Apache Tomcat 缓冲区错误漏洞(CVE-2020-13934)

详细描述

Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。

Apache Tomcat中的WebSocket存在安全漏洞,该漏洞源于程序没有正确验证payload的长度。攻击者可利用该漏洞造成拒绝服务(无限循环)。以下产品及版本受到影响:Apache Tomcat 10.0.0-M1版本至10.0.0-M6版本,9.0.0.M1版本至9.0.36版本,8.5.0版本至8.5.56版本,7.0.27版本至7.0.104版本。

解决办法

厂商补丁:

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://lists.apache.org/thread.html/rd48c72bd3255bda87564d4da3791517c074d94f8a701f93b85752651%40%3Cannounce.tomcat.apache.org%3E

Apache Tomcat 安全漏洞(CVE-2021-25122)

详细描述

当响应新的h2c连接请求时,Apache Tomcat可以将请求标头和数量有限的请求主体从一个请求复制到另一个请求,这将导致用户A和用户B都可以看到用户A的请求结果。

解决办法

厂商补丁: Apache Tomcat ----------- 厂商已发布了漏洞修复程序,请及时关注更新: https://tomcat.apache.org/security-10.html

Apache Tomcat 信息泄露漏洞(CVE-2020-17527)

详细描述

Apache Tomcat是美国阿帕奇(Apache)基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat 存在安全漏洞,该漏洞源于可以重用HTTP 2连接上接收到的前一个流的HTTP请求头值,用于与后续流相关联的请求。虽然这很可能会导致错误和HTTP 2连接的关闭,但信息可能会在请求之间泄漏。以下产品及版本受到影响:10.0.0-M1 to 10.0.0-M9, 9.0.0-M1 to 9.0.39 and 8.5.0 to 8.5.59。

解决办法

厂商补丁: Apache Tomcat ----------- 厂商已发布了漏洞修复程序,请及时关注更新: https://tomcat.apache.org/security-10.html https://tomcat.apache.org/security-9.html https://tomcat.apache.org/security-8.html 修复版本下载链接 https://tomcat.apache.org/download-10.cgi https://tomcat.apache.org/download-90.cgi https://tomcat.apache.org/download-80.cgi

Apache Tomcat 安全漏洞(CVE-2021-25329)

详细描述

Apache Tomcat 10.0.0-M1至10.0.0、9.0.0.M1至9.0.41、8.5.0至8.5.61或7.0.0.至7.0.107版本存在安全漏洞,该漏洞为CVE-2020-9484的补丁绕过,如果使用了Tomcat的session持久化功能,不安全的配置将导致攻击者可以发送恶意请求执行任意代码。

解决办法

厂商补丁: Apache Tomcat ----------- 厂商已发布了漏洞修复程序,请及时关注更新: https://tomcat.apache.org/security-10.html https://tomcat.apache.org/security-9.html https://tomcat.apache.org/security-8.html https://tomcat.apache.org/security-7.html 修复版本下载链接 https://tomcat.apache.org/download-10.cgi https://tomcat.apache.org/download-90.cgi https://tomcat.apache.org/download-80.cgi https://tomcat.apache.org/download-70.cgi

将tomcat由现在的8.5.57升级到8.5.65或更高版本:

1. 停止tomcat容器

docker stop tomcat

2. 将tomcat的映射目录备份

cp -r webapps/ webapps.bak/

3. 将之前的tomcat容器重命名备份,以防万一

docker rename tomcat tomcat-old

4. 重新将mysql:8.0.22版本的mysql镜像创建为容器

docker run --restart always -itd --name tomcat -h tomcat -v /data/hqx/storm/tomcat/webapps/:/usr/local/tomcat/webapps -p 8081:8080 tomcat:8.5.65

5. 删除低版本的tomcat容器

docker rm -f tomcat-old

3. nginx 安全漏洞(CVE-2021-23017)

详细描述

Nginx是美国Nginx公司的一款轻量级Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

nginx存在安全漏洞,该漏洞源于一个离一错误在该漏洞允许远程攻击者可利用该漏洞在目标系统上执行任意代码。受影响的产品及版本如下:nginx:0.6.18、0.6.19 0.6.20,0.6.21、0.6.22 0.6.23,0.6.24,0.6.25,0.6.26,0.6.27,0.6.28,0.6.29,0.6.30,0.6.31,0.6.32,0.6.33,0.6.34,0.6.35,0.6.36,0.6.37,0.6.38,0.6.39,0.6.1516,0.7.0,0.7.1,0.7.2,0.7.3,0.7.4,0.7.5,0.7.6,0.7.7,0.7.8,0.7.9,0.7.10,0.7.11,0.7.12,0.7.13,0.7.14,0.7.15,0.7.16,0.7.17,0.7.18,0.7.19,0.7.20,0.7.21 0.7.22 0.7.23 0.7.24 0.7.25 0.7.26

解决办法

厂商补丁:

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://www.nginx.com/blog/updating-nginx-dns-resolver-vulnerability-cve-2021-23017/

因安装的docker服务,所以直接更换nginx镜像版本即可:

将nginx版本升级到nginx1.20.1及以上的版本:

1. 首先在有网环境下载 nginx-1.20.1 的版本

docker pull nginx:1.20.1

2. 将镜像导出

docker save -o nginx.tar nginx:1.20.1

3. 进入政务云服务器,将镜像导入本地镜像仓库

docker load -i nginx.tar

4. 升级nginx容器版本

//停止运行的nginx容器
docker stop nginx
//以防万一,将nginx容器重命名备份
docker rename nginx nginx-bak
//将nginx容器挂载的目录备份
cp -r  nginx nginx-bak
//重新构建nginx1.20.1的容器
docker run --restart always -itd --name nginx -h nginx -p 8082:80 -v /data/hqx/storm/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/hqx/storm/nginx/conf/conf.d/:/etc/nginx/conf.d -v /data/hqx/storm/nginx/html/:/usr/share/nginx/html -v /data/hqx/storm/nginx/log/:/var/log/nginx nginx:1.20.1

5. 将旧版本nginx容器删除

docker rm -f nginx-bak

四. 其余类型漏洞

1. Docker Remote API 未授权访问漏洞【原理扫描】

详细描述

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的LINUX机器上,也可以实现虚拟化。 Docker swarm 是一个将docker集群变成单一虚拟的docker host工具,使用标准的Docker API,能够方便docker集群的管理和扩展,由docker官方提供。 Docker Remote API如配置不当可导致未授权访问,被攻击者恶意利用。 攻击者无需认证即可访问到Docker数据,可能导致敏感信息泄露,黑客也可以删除Docker上的数据。 攻击者可进一步利用Docker自身特性,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。

解决办法

临时解决方案: 1.对2375端口做网络访问控制,如设置iptables策略仅允许指定的IP来访问Docker接口; 2.修改docker swarm的认证方式,使用TLS认证:Overview Swarm with TLS 和 Configure Docker Swarm for TLS这两篇文档,说的是配置好TLS后,Docker CLI 在发送命令到docker daemon之前,会首先发送它的证书,如果证书是由daemon信任的CA所签名的,才可以继续执行。

关闭docker server的远程连接访问:

vim /usr/lib/systemd/system/docker.service
# 取消2375的端口访问
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 查看docker远程访问是否关闭:

docker -H localhost info

lsof -i:2375

2. OpenSSH CBC模式信息泄露漏洞(CVE-2008-5161)【原理扫描】

详细描述

OpenSSH是一种开放源码的SSH协议的实现,初始版本用于OpenBSD平台,现在已经被移植到多种Unix/Linux类操作系统下。 如果配置为CBC模式的话,OpenSSH没有正确地处理分组密码算法加密的SSH会话中所出现的错误,导致可能泄露密文中任意块最多32位纯文本。在以标准配置使用OpenSSH时,攻击者恢复32位纯文本的成功概率为2^{-18},此外另一种攻击变种恢复14位纯文本的成功概率为2^{-14}。

解决办法

临时解决方法: * 在SSH会话中仅使用CTR模式加密算法,如AES-CTR。 厂商补丁: OpenSSH ------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: https://downloads.ssh.com/ 对于具体Linux发行版中使用的版本,可以参考如下链接,确认系统是否受该漏洞影响: Redhat ------- https://rhn.redhat.com/errata/RHSA-2009-1287.html Suse ------- http://support.novell.com/security/cve/CVE-2008-5161.html Ubuntu ------- http://people.canonical.com/~ubuntu-security/cve/2008/CVE-2008-5161.html

vim /etc/ssh/sshd_config   
// 最后面添加以下内容(去掉arcfour,arcfour128,arcfour256等弱加密算法)
Ciphers aes128-ctr,aes192-ctr,aes256-ctr

systemctl restart sshd

 ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

3. 检测到目标主机上运行着NTP服务

详细描述

通过NTP查询可以获取远端主机很多信息,包括操作系统、当前时间等。如果不是十分必要,应该禁用该服务。

解决办法

由于该服务对于常规应用来说并无必要,NSFocus建议您关闭NTPD。

systemctl stop ntpd

systemctl disable ntpd

4. SSH版本信息可被获取

详细描述

SSH服务允许远程攻击者获得ssh的具体信息,如版本号等等。这可能为攻击者发动进一步攻击提供帮助。

解决办法

NSFOCUS建议您采取以下措施以降低威胁: * 修改源代码或者配置文件改变SSH服务的缺省banner。

touch /etc/ssh_banner_change

echo 'Version is empty' >> /etc/ssh_banner_change

echo 'Banner /etc/ssh_banner_change' >> /etc/ssh/sshd_config

systemctl restart sshd

无法处理:sshd_config中的Banner项只是ssh主机前输出的信息,源码处理机制就是telnet其端口就会返回版本信息

5. 远程MySQL/MariaDB/Percona Server版本泄露

详细描述

远程MySQL/MariaDB/Percona Server的版本信息可以获取。这允许攻击者根据版本信息来进行相应的攻击。您应当尽可能的改变或者隐藏这些信息。

解决办法

 无法处理:强制替换mysql版本号字符串 MySQL修改版本号教程 - 诸子流 - 博客园

不推荐,此漏洞综合线上环境运行考虑,暂时未有好的方法解决,未修复。

6. 可通过HTTP获取远端WWW服务信息

详细描述

本插件检测远端HTTP Server信息。这可能使得攻击者了解远程系统类型以便进行下一步的攻击。

解决办法

NSFOCUS建议您采取以下措施以降低威胁: * 改变您的HTTP服务器的缺省banner。

docker容器版镜像,需要源码编译,不处理。

7. 允许Traceroute探测

详细描述

本插件使用Traceroute探测来获取扫描器与远程主机之间的路由信息。攻击者也可以利用这些信息来了解目标网络的网络拓扑。

解决办法

在防火墙中禁用Time Exceeded类型的ICMP包

第一种方法:

iptables -I INPUT -p icmp --icmp-type 11 -m comment --comment "deny traceroute" -j DROP

第二种方法:

//禁traceroute:
/sbin/iptables -A FORWARD -p icmp --icmp-type 11 -j DROP

//禁traceroute和ping:
/sbin/iptables -A FORWARD -p icmp -j DROP

8. 探测到SSH服务器支持的算法

详细描述

本插件用来获取SSH服务器支持的算法列表

解决办法

无法处理:ssh协议协商过程就是服务端需要返回其支持的算法列表。

9. Docker信息获取漏洞

详细描述

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的LINUX机器上,也可以实现虚拟化。 Docker Remote API如配置不当可导致未授权访问,可以获取到Docker的版本信息。

解决办法

临时解决方案: 1.对2375端口做网络访问控制,如设置iptables策略仅允许指定的IP来访问Docker接口; 2.修改docker swarm的认证方式,使用TLS进行安全认证:详细配置信息请查看官网https://docs.docker.com/engine/security/https/。

防火墙关闭2375端口:

// 添加端口
firewall-cmd --add-port=2375/tcp --permanent    // --permanent永久生效,没有此参数重启后失效

// 删除端口
firewall-cmd  --remove-port=2375/tcp --permanent

// 重新载入服务
firewall-cmd --reload

// 查看端口
firewall-cmd  --query-port=2375/tcp

10. ICMP timestamp请求响应漏洞

详细描述

远程主机会回复ICMP_TIMESTAMP查询并返回它们系统的当前时间。 这可能允许攻击者攻击一些基于时间认证的协议。

解决办法

NSFOCUS建议您采取以下措施以降低威胁: * 在您的防火墙上过滤外来的ICMP timestamp(类型 13)报文以及外出的ICMP timestamp回复报文。

iptables -I INPUT -p ICMP --icmp-type timestamp-request -m comment --comment "deny ICMP timestamp" -j DROP

iptables -I INPUT -p ICMP --icmp-type timestamp-reply -m comment --comment "deny ICMP timestamp" -j DROP

 11. OpenSSH 输入验证错误漏洞(CVE-2019-16905)

详细描述

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。

OpenSSH 8.4p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。

解决办法

厂商补丁:

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://www.openssh.com/releasenotes.html

(1)第一种 - 完全卸载后再重新安装(切勿断开xshell的远程连接):

1. 查看ssh相关版本:

ssh -V

  

2. 查看现在版本openssh的rpm包

rpm -qa|grep openssh
# 不存在rpm包,由此确定ssh服务是由源码编译安装的服务

3. 查看服务

 

4. 将旧版的openssh数据备份。以防升级失败做回滚机制

# 查看ssh相关目录
find / -name ssh 
find / -name openssh*     # 多种名字方式查找旧版的编译目录,例如:find / -name contrib 等

# 以下存在的数据目录均备份
# 编译成功,将内容同步后删除
cp /usr/share/doc/openssh-8.0p1  /usr/share/doc/openssh-8.0p1.old
mv /etc/ssh /etc/ssh.old 
mv ~/.ssh/authorized_keys ~/.shh/authorized_keys.old 
mv /etc/init.d/sshd /etc/init.d/sshd.old 
mv /etc/pam.d/sshd.pam /etc/pam.d/sshd.pam.old

5. 停止、卸载服务

# 停止服务以及自启动
systemctl stop sshd 
systemctl disable sshd
 
chkconfig --list    # 列出有哪些chkconfig自启动的服务 
chkconfig sshd off    # 关闭sshd的自启动
chkconfig --del sshd    # 删除sshd的自启动服务
# rpm包安装openssh服务的卸载方法
rpm -e --nodeps `rpm -qa | grep openssh` 

# 源码编译安装openssh的卸载方法
cd /usr/share/doc/openssh-8.0p1
make uninstall
rm -rf /usr/share/doc/openssh-8.0p1

6. 检查服务是否还存在

7. 准备编译安装openssh

tar -zxvf openssh-8.5p1.tar.gz
cd openssh-8.5p1/
./configure --prefix=/usr/ --sysconfdir=/etc/ssh
--prefix 安装目录
--sysconfdir 配置文件目录
--with-ssl-dir 指定 OpenSSL 的安装目录
--with-privsep-path 非特权用户的chroot目录
--with-privsep-user=sshd 指定非特权用户为sshd
--with-zlib 指定zlib库的安装目录
--with-md5-passwords 支持读取通过MD5加密的口令
--with-ssl-engine 启用OpenSSL的ENGINE支持服务器

8. 编译过程的问题:

yum install gcc -y

​yum install zlib-devel -y

yum install openssl-devel -y

yum -y install pam-devel

9. 安装:

make
make install

10. 赋权:

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

11. 配置数据文件

cp -a contrib/redhat/sshd.init  /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd

12. 将原先已配置好的的sshd_config配置文件内容复制到新的配置文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
rm -rf /etc/ssh/sshd_config

cp -a /etc/ssh.old/sshd_config /etc/ssh/

13. 重启服务

systemctl daemon-reload
systemctl restart sshd

14. 添加ssh服务到开机启动项

chkconfig --add sshd
chkconfig sshd on

15. 查看ssh新版本

ssh -V

16. sshd服务升级重启成功后,将之前备份的数据文件恢复或删除

mv ~/.shh/authorized_keys.old ~/.shh/authorized_keys.old 
rm -rf /usr/share/doc/openssh-8.0p1.old
rm -rf /etc/init.d/sshd.old 
rm -rf /etc/pam.d/sshd.pam.old

17. 在测试ssh等命令中失败:最终原因是系统启用了SELinux导致的

(2)第二种 - 直接修改版本号:此种方法只能迷惑漏洞检测机器,实际openssh的版本依然是原版

sed -i 's/OpenSSH-8.0/OpenSSH_8.5/g' /usr/sbin/sshd
sed -i 's/OpenSSH-8.0/OpenSSH_8.5/g' /usr/bin/ssh /etc/ssh

systemctl restart sshd

ssh -V

(3)推荐 - 第三种 - 直接覆盖式版本升级(切勿断开xshell的远程连接):

1. 为避免ssh升级期间shell连接断掉,t提前将需要的各类依赖包上传或安装好。

2. 查看sshd服务和各类数据文件。

3. 将文件备份,以免升级失败可以回转。

// 查看ssh相关目录
find / -name ssh
find / -name openssh*

// 备份以下系统存在的数据目录,以防升级失败
mv /usr/share/doc/openssh-8.0p1  /usr/share/doc/openssh-8.0p1.old
mv /etc/ssh /etc/ssh.old     
mv  ~/.ssh/authorized_keys ~/.shh/authorized_keys.old
mv  /etc/init.d/sshd /etc/init.d/sshd.old
mv  /etc/pam.d/sshd.pam /etc/pam.d/sshd.pam.old

5. 检查服务是否还存在

6. 直接编译安装openssh

tar -zxvf openssh-8.5p1.tar.gz
cd openssh-8.5p1/
./configure --prefix=/usr/ --sysconfdir=/etc/ssh
make
make install

7. 赋权:

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

8. 编译安装成功后,配置数据文件

cp -a contrib/redhat/sshd.init  /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd

9. 将旧版的sshd_config配置文件内容复制还原

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.default
cp -a /etc/ssh.old/sshd_config /etc/ssh/

10. 重新启动服务 

systemctl daemon-reload
systemctl restart sshd

 11. 查看版本

ssh -V

 12. sshd服务升级重启成功后,将之前备份的数据文件恢复或删除

mv ~/.ssh/authorized_keys.old ~/.ssh/authorized_keys
rm -rf  /usr/share/doc/openssh-8.0p1.old
rm -rf /etc/ssh.old/
rm -rf /etc/init.d/sshd.old
rm -rf /etc/pam.d/sshd.pam.old
rm -rf /usr/share/doc/openssh-8.0p1.old

12. Apache Tomcat examples目录可访问【原理扫描】- 高

风险描述

Apache Tomcat的默认安装中包含了examples目录,该目录展示了许多servlets和JSP的样例,其中的一些示例不应该被包在实际生产环境中,因为其具有一定的安全风险。如Session样例、Cookie样例、HTTP请求头部样例等。

风险影响

可能引发绕过HttpOnly策略窃取Cookie。

可能绕过用于防护CSRF的某些Cookie值。

可能引发会话篡改和会话被操纵。

解决方案

限制、禁止外部对examples目录的访问。

删除该页面

删除 /use/local/apache-tomcat-9.0.17/examples 目录

13. Apache Tomcat默认文件泄露 - 中

风险描述

默认错误页面,默认索引页面,示例JSP和/或示例servlet安装在远程Apache Tomcat服务器上。 应删除这些文件,因为它们可能有助于攻击者发现有关远程Tomcat安装或主机本身的信息。

风险影响

有助于攻击者发现有关远程Tomcat安装或主机本身的信息。

解决方案

删除默认索引页并删除示例JSP和servlet。 按照Tomcat或OWASP说明更换或修改默认错误页面。

参考资料

Miscellaneous - Apache Tomcat - Apache Software Foundation

Securing tomcat - OWASP

Apache Tomcat 默认错误页 配置不当信息泄露漏洞【原理扫描】- 低

风险描述

Apache Tomcat是美国阿帕奇(Apache)软件基金会下属的Jakarta项目的一款轻量级Web应用服务器,它主要用于开发和调试JSP程序,适用于中小型系统。默认错误页、默认索引页、示例JSP和/或示例servlet安装在远程ApacheTomcat服务器上。应该删除这些文件,因为它们可以帮助攻击者发现有关远程Tomcat安装或主机本身的信息。

风险影响

未删除默认错误页的服务都将受到影响。

解决方案

删除默认错误页。

参考资料

https://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q6

1. 直接删除docs目录和examples目录;

2. 修改默认错误页面;

①. vim conf/web.xml,在文件的末尾添加以下配置:

    <error-page>
        <error-code>400</error-code>
        <location>/error.html</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/error.html</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/error.html</location>
    </error-page>

 ②. 自定义错误页面:

vim $tomcat-home/webapps/ROOT/error.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta charset="UTF-8" http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
<title>404-对不起!您访问的页面不存在</title>
 
<style type="text/css">
 
.head404{ width:580px; height:234px; margin:50px auto 0 auto; background:url(https://www.daixiaorui.com/Public/images/head404.png) no-repeat; }
 
.txtbg404{ width:499px; height:169px; margin:10px auto 0 auto; background:url(https://www.daixiaorui.com/Public/images/txtbg404.png) no-repeat;}
 
.txtbg404 .txtbox{ width:390px; position:relative; top:30px; left:60px;color:#eee; font-size:13px;}
 
.txtbg404 .txtbox p {margin:5px 0; line-height:18px;}
 
.txtbg404 .txtbox .paddingbox { padding-top:15px;}
 
.txtbg404 .txtbox p a { color:#eee; text-decoration:none;}
 
.txtbg404 .txtbox p a:hover { color:#FC9D1D; text-decoration:underline;}
 
</style>
 
</head>
 
 
 
<body bgcolor="#494949">
 
   	<div class="head404"></div>
 
   	<div class="txtbg404">
 
  <div class="txtbox">
 
      <p>对不起,您请求的页面不存在或已被删除,或暂时不可用</p>
 
      <p class="paddingbox">请点击以下链接继续浏览网页</p>
 
      <p><a style="cursor:pointer" οnclick="history.back()">返回上一页面</a></p>
 
      <p><a href="https://www.baidu.com">返回网站首页</a></p>
 
    </div>
 
  </div>
 
</body>
 
</html>
</html>

③. 重启tomcat。

14. Tomcat 文件读取漏洞(CVE-2020-1938)【原理扫描】- 高

风险描述

Tomcat是Apache软件基金会Jakarta 项目中的一个核心项目,作为目前比较流行的Web应用服务器。Tomcat AJP协议由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步实现远程代码的执行。

风险影响

Tomcat 9.x < 9.0.31

Tomcat 8.x < 8.5.51

Tomcat 7.x < 7.0.100

Tomcat 6.x

关键风险:数据泄露

解决方案

目前,Apache官方已发布9.0.31、8.5.51及7.0.100版本对此漏洞进行修复,建议用户尽快升级新版本。

参考资料

https://cwiki.apache.org/confluence/display/TOMCAT/Miscellaneous#Miscellaneous-Q6

Securing tomcat - OWASP

1. 直接将 Tomcat 升级到 9.0.31、8.5.51或 7.0.100 版本进行漏洞修复,根据官方漏洞修复方案将Tomcat升级到最新版本(停止 - 备份lib、bin - 替换lib、bin - 启动)

2. 查看是否使用了Tomcat AJP协议(此协议使用的几率一般情况下不大):

(1)如未使用 Tomcat AJP 协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本地。

①. 编辑<CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE>):

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

②. 将此行注释或者删除:

<!–<Connectorport="8009" protocol="AJP/1.3" redirectPort="8443" />–>

③. 保存后重新启动服务。

(2)如果使用了Tomcat AJP 协议,为AJP Connector配置secret来设置AJP协议的认证凭证。例如以下配置(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET" />

3. 如果无法立即进行版本更新且需要使用Tomcat AJP协议,建议为AJPConnector配置requiredSecret来设置AJP协议认证凭证。例如如下配置:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS" requiredSecret="YOUR_TOMCAT_AJP_SECRET" />

15. OpenSSH 命令注入漏洞(CVE-2020-15778)

详细描述

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。

OpenSSH 8.6p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。

解决办法

厂商补丁:

目前厂商暂未发布修复措施解决此安全问题,建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法:

https://www.openssh.com/

临时缓解措施:

可以禁用scp,改用rsync等缓解风险(可能会导致小文件机器内拷贝变慢)

1. 查找出scp命令的位置

which scp /usr/bin/scp

2. 禁用scp命令,将其scp命令移动到其余目录

mv /usr/bin/scp /scp.bak/

3. 重启openssh服务

systemctl restart sshd

16. Oracle Java SE 远程安全漏洞(CVE-2015-0469)

详细描述

Java SE 是基于JDK和JRE的Java平台标准版的简称,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。 Oracle Java SE 5.0u81, 6u91, 7u76, 8u40版本中,在实现上存在安全漏洞,远程攻击者利用此漏洞可影响完整性、机密性、可用性。

解决办法

厂商补丁: Oracle ------ Oracle已经为此发布了一个安全公告(cpuapr2015-2365600)以及相应补丁: cpuapr2015-2365600:Oracle Critical Patch Update Advisory - April 2015 链接:http://www.oracle.com/technetwork/topics/security/cpuapr2015-2365600.html

  • java se是java基础;JDK是整个Java的核心,包括了Java运行环境(JRE)。
  • Java SE  =  jdk + jre
  1. jdk是开发Java程序用的
  2. jre是运行java程序用的

1. 查看java的版本

java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2. 进入官网下载最新jdk包

        https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

3. 然后将新下载的jdk包传入服务器,java -zxvf jdk-8u301-linux-x64.tar.gz 命令解压jdk包

4. 查看 /etc/profile 文件的java环境目录配置情况,将原先的jdk版本文件删除,然后替换新的jak目录,并修改配置文件。

5. 最后 source /etc/profile 让文件立即生效。

  

注意:其实本人也不太清楚更换jdk版本能否修复 java SE 的版本漏洞,等下个月漏洞报告出来后,即可知道此结果,到时再反馈结果。

17.  Docker runc容器逃逸漏洞(CVE-2021-30465)

漏洞描述

runc是一个轻量级通用容器运行环境,它允许一个简化的探针到运行和调试的底层容器的功能,不需要整个docker守护进程的接口。

runc存在容器逃逸漏洞,该漏洞是由于挂载卷时,runc不信任目标参数,并将使用“filepath-securejoin”库来解析任何符号链接并确保解析的目标在容器根目录中,但是如果用符号链接替换检查的目标文件时,可以将主机文件挂载到容器中。攻击者可利用该漏洞在未授权的情况下,构造恶意数据造成容器逃逸,最终造成服务器敏感性信息泄露。

解决办法

将 runc 升级到 1.0.0-rc95 及以上版本,下载地址:https://github.com/opencontainers/runc/releases/

1. 查看runc的版本,详细信息

ll /usr/local/bin/runc
-rwxr-xr-x 1 1000 1000 9628672 Mar  4  2020 /usr/local/bin/runc

ll /usr/bin/runc
-rwxr-xr-x 1 root docker 9628672 Aug 25  2020 /usr/bin/runc
[root@host-172-20-130-16 ~]# runc --version
runc version 1.0.0-rc10
commit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
spec: 1.0.1-dev

 2. 下载安全版本的runc到本地电脑

https://github.com/opencontainers/runc/releases/download/v1.0.2/runc.amd64

3. 将下载的文件上传服务器并修改文件名赋权

mv runc.amd64 runc

chmod +x runc

ll runc 
-rwxr-xr-x 1 root root 10051064 Oct  9 13:39 runc

4. 备份原有的runc

mkdir -p /runc.bak/{usr-bin,usr-local-bin}
mv /usr/bin/runc /runc.bak/usr-bin/
mv /usr/local/bin/runc /runc.bak/usr-local-bin/

5. 停止docker

systemctl stop docker

6. 替换新版本runc

cp runc /usr/bin/
cp runc /usr/local/bin/

# 查看文件详细信息
ll /usr/bin/runc
-rwxr-xr-x 1 root root 10051064 Oct  9 14:01 /usr/bin/runc

# 修改runc所属组
chgrp docker /usr/bin/runc
ll /usr/bin/runc
-rwxr-xr-x 1 root docker 10051064 Oct  9 14:01 /usr/bin/runc

chown 1000.1000 /usr/local/bin/runc
ll /usr/local/bin/runc 
-rwxr-xr-x 1 1000 1000 10051064 Oct  9 14:20 /usr/local/bin/runc

7. 重新启动docker

systemctl start docker

8. 检查runc是升级成功

[root@host-172-20-130-16]# runc --version
runc version 1.0.2
commit: v1.0.2-0-g52b36a2dd837
spec: 1.0.2-dev
go: go1.16.7
libseccomp: 2.5.1

五. 基线漏洞

(一)Tomcat基线

1. 按用户分配账号,避免账号共享

基线项类型

身份鉴别

基线项名称

检查是否按用户分配账号,避免账号共享

检查点描述

至少存在两个账号

解决方案:

1. 修改tomcat-users.xml配置文件,添加帐号:

<user username="***" password="***" roles="***">

 2. Tomcat配置设备支持HTTPS加密协议

基线项类型

身份鉴别

基线项名称

检查是否配置设备支持使用HTTPS等加密协议

检查点描述

配置HTTPS加密协议

解决方案:

1. 环境:

        Tomcat:apache-tomcat-9.0.48

        JDK:jdk-8u181

2. 生成密钥:

使用JDK自带工具keytool生成keystore

// 进入jdk家目录下的bin目录
keytool -genkeypair -v -alias tomcat -keyalg RSA -keystore /usr/local/apache-tomcat-9.0.48/cert/tomcat.keystore -validity 365
// 默认的密钥时间为90天

keytool -importkeystore -srckeystore /usr/local/apache-tomcat-9.0.48/cert/tomcat.keystore -destkeystore /usr/local/apache-tomcat-9.0.48/cert/tomcat.keystore -deststoretype pkcs12

 3. 给TOmcat配置密钥

(1)修改server.xml文件

http端口重定向:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

配置https证书:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/usr/local/apache-tomcat-9.0.48/cert/tomcat.keystore"
                         certificateKeystoreType="PKCS12" certificateKeystorePassword="123456" />
        </SSLHostConfig>
    </Connector>
// certificateKeystoreFile 证书文件所在路径
// certificateKeystorePassword 证书密码

(2)修改web.xml文件

文件末尾增加:

    <login-config>
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
        <web-resource-collection>
           <web-resource-name>SSL</web-resource-name>
           <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
           <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

 扩展:

keytool命令选项如下:

 -certreq            生成证书请求
 -changealias        更改条目的别名
 -delete             删除条目
 -exportcert         导出证书
 -genkeypair         生成密钥对
 -genseckey          生成密钥
 -gencert            根据证书请求生成证书
 -importcert         导入证书或证书链
 -importpass         导入口令
 -importkeystore     从其他密钥库导入一个或所有条目
 -keypasswd          更改条目的密钥口令
 -list               列出密钥库中的条目
 -printcert          打印证书内容
 -printcertreq       打印证书请求的内容
 -printcrl           打印 CRL 文件的内容
 -storepasswd        更改密钥库的存储口令

生成密钥对genkeypair的具体参数选项如下:

 -alias <alias>                  要处理的条目的别名
 -keyalg <keyalg>                密钥算法名称
 -keysize <keysize>              密钥位大小
 -sigalg <sigalg>                签名算法名称
 -destalias <destalias>          目标别名
 -dname <dname>                  唯一判别名
 -startdate <startdate>          证书有效期开始日期/时间
 -ext <value>                    X.509 扩展
 -validity <valDays>             有效天数
 -keypass <arg>                  密钥口令
 -keystore <keystore>            密钥库名称
 -storepass <arg>                密钥库口令
 -storetype <storetype>          密钥库类型
 -providername <providername>    提供方名称
 -providerclass <providerclass>  提供方类名
 -providerarg <arg>              提供方参数
 -providerpath <pathlist>        提供方类路径
 -v                              详细输出
 -protected                      通过受保护的机制的口令

3. Tomcat用户具有远程管理权限

基线项类型

访问控制

基线项名称

检查是否设置在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限

检查点描述

tomcat用户具有远程管理权限

解决方案:

在tomcat-users.xml中,修改tomcat用户的role值包含manager,如:

<user username="tomcat" password="***" roles="manager">

4. 禁用非法HTTP方法

基线项类型

访问控制

基线项名称

检查是否禁用非法HTTP方法

检查点描述

禁用非法HTTP方法

解决方案:

1. 编辑web.xml文件,增加 org.apache.catalina.servlets.DefaultServlet 的配置

    <init-param>
        <param-name>readonly</param-name>
        <param-value>true</param-value>
    </init-param>
// 其中param-value为true时,即不允许delete和put操作

5. 配置Tomcat错误页面重定向

基线项类型

软件容错

基线项名称

检查是否配置Tomcat错误页面重定向

检查点描述

配置tomcat错误页面重定向

解决方案:

1. 修改默认错误页面

(1)vim conf/web.xml,在文件末尾添加以下配置;

    <error-page>
        <error-code>400</error-code>
        <location>/error.html</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/error.html</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/error.html</location>
    </error-page>

(2)自定义错误页面

vim $tomcat-home/webapps/ROOT/error.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta charset="UTF-8" http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
<title>404-对不起!您访问的页面不存在</title>
 
<style type="text/css">
 
.head404{ width:580px; height:234px; margin:50px auto 0 auto; background:url(https://www.daixiaorui.com/Public/images/head404.png) no-repeat; }
 
.txtbg404{ width:499px; height:169px; margin:10px auto 0 auto; background:url(https://www.daixiaorui.com/Public/images/txtbg404.png) no-repeat;}
 
.txtbg404 .txtbox{ width:390px; position:relative; top:30px; left:60px;color:#eee; font-size:13px;}
 
.txtbg404 .txtbox p {margin:5px 0; line-height:18px;}
 
.txtbg404 .txtbox .paddingbox { padding-top:15px;}
 
.txtbg404 .txtbox p a { color:#eee; text-decoration:none;}
 
.txtbg404 .txtbox p a:hover { color:#FC9D1D; text-decoration:underline;}
 
</style>
 
</head>
 
 
 
<body bgcolor="#494949">
 
   	<div class="head404"></div>
 
   	<div class="txtbg404">
 
  <div class="txtbox">
 
      <p>对不起,您请求的页面不存在或已被删除,或暂时不可用</p>
 
      <p class="paddingbox">请点击以下链接继续浏览网页</p>
 
      <p><a style="cursor:pointer" οnclick="history.back()">返回上一页面</a></p>
 
      <p><a href="https://www.baidu.com">返回网站首页</a></p>
 
    </div>
 
  </div>
 
</body>
 
</html>
</html>

(3)重启tomcat。

6. 设置连接数

基线项类型

资源控制

基线项名称

检查是否设置连接数

检查点描述

【检查点1】:应根据机器性能和业务需求,设置最小连接数

【检查点2】:应根据机器性能合业务需求,设置最大连接数

解决方案:

1.【检查点1】:

编辑server.xml文件,样例如下:

<Connector   port="8080"  minSpareThreads="25" ……/> 
// minSpareThreads="25"   表示即使没有人使用也开这么多空线程等待

根据实际情况配置连接数。

2. 【检查点2】:

编辑server.xml文件,样例如下:

<Connector   port="8080" maxThreads="150"……/> 
// maxThreads="150"  表示最多同时处理150个连接

根据实际情况配置连接数

7. 设置防止恶意关闭Tomcat服务

基线项类型

访问控制

基线项名称

检查是否设置防止恶意关闭tomcat服务

检查点描述

应避免恶意shutdown TOMCAT服务

解决方案:

1.编辑server.xml,设置复杂的字符串:

<Server port="8005" shutdown="复杂的字符串">
// 避免恶意shutdown TOMCAT服务

(二)MySQL基线

1. 以普通账号运行mysql

基线项类型

访问控制 / 身份鉴别

基线项名称

检查是否禁止mysql以管理员账号权限运行

检查点描述

应以普通账号安全运行mysql,禁止以管理员账号权限运行

解决方案:

1. 创建mysql用户,以普通用户身份运行(不可登录)

useradd -s /sbin/nologin -M mysql

2. 在my.cnf中[mysqld]配置段中添加

[mysqld]
user=mysql

2. 更改默认管理员账号

基线项类型

身份鉴别

基线项名称

检查是否更改默认mysql管理员账号

检查点描述

应该更改默认管理员账号,防止对系统用户穷举的恶意行为

解决方案:

mysql> use mysql;
mysql> update user set user="newname" where user="root"; 
mysql> flush privileges; 
// newname为管理员账号的新名称,改成不易被猜测的用户名

3. 设置最大连接数

基线项类型

资源控制

基线项名称

检查是否根据机器性能和业务需求,设置最大连接数

检查点描述

根据机器性能和业务需求,设置最大连接数

解决方案:

1. 方案一:在mysql的安装目录下,在my.cnf中在[mysqld]配置段添加

[mysqld]
max_connections=1000
// 最后重启mysql服务

2. 方案二:登录MySQL后,通过命令设置最大连接数

mysql> set global max_connections=1000;
mysql> show variables like '%max_connection%';	// 查看是否设置最大连接数

4. 删除进行安装测试的库

基线项类型

访问控制

基线项名称

检查是否删除测试安装的test库

检查点描述

应该删除进行安装测试的test库

解决方案:

mysql> show databases;
mysql> drop database test;
mysql> flush privileges;

5. 禁止mysql对本地文件存取

基线项类型

访问控制

基线项名称

检查是否禁止mysql对本地文件存取

检查点描述

应禁止mysql对本地文件存取

解决方案:

1. 方案一:在my.cnf的mysql字段下添加

[mysql]
local-infile=0	// 需要获取本地文件,设为1
// 重新启动mysql服务

2. 方案二:启动mysql时增加参数local-infile=0

/etc/init.d/mysql start --local-infile=0

  • 10
    点赞
  • 41
    收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论 3

打赏作者

一二三,开花

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值