Linux内核会根据需要从磁盘自动加载内核模块,与Kubernetes特别相关的是,即使没有特权的进程也可以通过创建适当类型的套接字来加载某些与网络协议相关的内核模块,这可能使攻击者可以利用管理员认为未使用的内核模块中的安全漏洞。
lsmod 查询系统模块
root@vms82:~/cks# lsmod |wc -l
124 **运行pod机器的内模块数量**
[root@web1 /]# lsmod |wc -l
124 **容器内模块数量**
**说明---容器里的模块跟系统加载的模块一样 lsmod**
**modprobe 模块名----加载模块**
**modprobe -r 模块名----删除模块**
root@vms82:~# modprobe pcspkr
root@vms82:~# lsmod |wc -l
125
[root@web1 /]# lsmod |wc -l
125
root@vms81:~/cks# cat /proc/sys/vm/swappiness
60
[root@web1 /]# cat /proc/sys/vm/swappiness
60
说明–宿主机修改模块会影响到pod内加载的模块,如果宿主机有模块漏洞,pod也会存在漏洞
防止自动加载模块
vim /etc/modprobe.d/blacklist-xxxx.conf
blacklist 模块名 # 设置开机不加载模块
root@vms81:~/cks# ll /etc/modprobe.d/
amd64-microcode-blacklist.conf blacklist-firewire.conf intel-microcode-blacklist.conf
blacklist-ath_pci.conf blacklist-framebuffer.conf iwlwifi.conf
blacklist.conf blacklist-rare-network.conf mdadm.conf