k8s安全测评漏洞:SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

一、问题复现

漏洞详细信息:

漏洞概况:

漏洞原因:

k8s组件使用了IDEA、DES和3DES等算法,修改配置文件禁用上述算法即可。

复现方法:

服务器上安装nmap:

#官网下载:https://nmap.org/dist/nmap-7.93-1.x86_64.rpm,上传后安装:
rpm -ivh nmap-7.93-1.x86_64.rpm

#执行检测
nmap --script ssl-enum-ciphers -p 10250 10.165.3.45

Nmap scan report for yfdxvm000003164.novalocal (10.165.3.45)
Host is up (0.000066s latency).

PORT      STATE SERVICE
10250/tcp open  unknown
| ssl-enum-ciphers: 
|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ecdh_x25519) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (ecdh_x25519) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: server
      warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|   TLSv1.3: 
|     ciphers: 
|       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
|       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
|       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|     cipher preference: server
|_  least strength: C

Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds

扫描结果重点关注warnings,64-bit block cipher 3DES vulnerable to SWEET32 attack,漏洞修复成功则没有该项提示。

二、漏洞修复

k8s主节点:

etcd修复:

修改配置文件/etc/kubernetes/manifests/etcd.yaml,增加如下配置:

--cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA

增加后的截图:

增加后etcd漏洞即修复成功

nmap --script ssl-enum-ciphers -p 2380 10.165.3.45

可以看到没有了warnings这项了

kube-apiserver修复:

修改配置文件/etc/kubernetes/manifests/kube-apiserver.yaml,增加一行:

- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA

如图所示:

增加后kube-apiserver漏洞即修复成功

nmap --script ssl-enum-ciphers -p 6443 10.165.3.45

可以看到没有了warnings这项了

修复kubelet:

修改配置文件/var/lib/kubelet/config.yaml,增加一行配置:

tlsCipherSuites: [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]

如图所示:

重启服务:

systemctl restart kubelet

在执行检查

nmap --script ssl-enum-ciphers -p 10250 10.165.3.45

可以看到没有了warnings这项了

k8s从节点:

只需要修复最后一项即可

修复kubelet:

修改配置文件/var/lib/kubelet/config.yaml,增加一行配置:

tlsCipherSuites: [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]

如图所示:

重启服务:

systemctl restart kubelet

在执行检查

nmap --script ssl-enum-ciphers -p 10250 10.165.3.45

可以看到没有了warnings这项了

CVE-2016-2183 是一个影响 SSL/TLS 协议安全漏洞,称为“SLOTH”攻击。这个漏洞允许攻击者通过中间人攻击(MITM)来破解加密通信,从而获取敏感信息。为了修复这个漏洞,以下是一些常见的步骤: 1. **更新 OpenSSL**: 确保你的系统使用的是最新版本的 OpenSSL。旧版本的 OpenSSL 可能存在这个漏洞。可以通过以下命令更新 OpenSSL: ```bash sudo apt-get update sudo apt-get install --only-upgrade openssl ``` 2. **禁用弱密码套件**: 在你的 Kubernetes 配置文件中禁用弱密码套件。编辑你的 API 服务器和 etcd 的配置文件,确保只启用强密码套件。例如: ```yaml apiVersion: v1 kind: Pod metadata: name: kube-apiserver spec: containers: - name: kube-apiserver image: k8s.gcr.io/kube-apiserver-amd64:v1.18.0 command: - kube-apiserver - --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ``` 3. **重启服务**: 在修改配置文件后,需要重启相关的 Kubernetes 服务以使更改生效。可以使用以下命令重启服务: ```bash sudo systemctl restart kube-apiserver sudo systemctl restart etcd ``` 4. **验证更改**: 验证更改是否生效,确保只有强密码套件被启用。可以使用以下命令来检查: ```bash openssl s_client -connect <your-api-server>:6443 -cipher 'ALL' | grep 'Cipher is' ``` 5. **监控和日志**: 定期监控和检查日志,确保没有异常活动。可以通过以下命令查看日志: ```bash kubectl logs <pod-name> ``` 通过以上步骤,可以有效地修复 k8s SSL/TLS 协议信息泄露漏洞CVE-2016-2183)。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值