一、可能出現(xiàn)的漏洞
限制容器之間的網(wǎng)絡流量
限制容器的內(nèi)存使用量
為Docker啟用內(nèi)容信任
將容器的根文件系統(tǒng)掛載為只讀
審核Docker文件和目錄
?
默認情況下,同一主機上的容器之間允許所有網(wǎng)絡通信。 如果不需要,請限制所有容器間的通信。 將需要相互通信的特定容器鏈接在一起。默認情況下,同一主機上所有容器之間都啟用了不受限制的網(wǎng)絡流量。 因此,每個容器都有可能讀取同一主機上整個容器網(wǎng)絡上的所有數(shù)據(jù)包。 這可能會導致意外和不必要的信息泄露給其他容器。 因此,限制容器間的通信。
?
"默認情況下,Docker主機上的所有容器均等地共享資源。 通過使用Docker主機的資源管理功能(例如內(nèi)存限制),您可以控制容器可能消耗的內(nèi)存量。
默認情況下,容器可以使用主機上的所有內(nèi)存。 您可以使用內(nèi)存限制機制來防止由于一個容器消耗主機的所有資源而導致的服務拒絕,從而使同一主機上的其他容器無法執(zhí)行其預期的功能。 對內(nèi)存沒有限制可能會導致一個問題,即一個容器很容易使整個系統(tǒng)不穩(wěn)定并因此無法使用。"
"默認情況下禁用內(nèi)容信任。 您應該啟用它。
內(nèi)容信任提供了將數(shù)字簽名用于發(fā)送到遠程Docker注冊表和從遠程Docker注冊表接收的數(shù)據(jù)的功能。 這些簽名允許客戶端驗證特定圖像標簽的完整性和發(fā)布者。 這確保了容器圖像的出處"
"容器的根文件系統(tǒng)應被視為“黃金映像”,并且應避免對根文件系統(tǒng)的任何寫操作。 您應該顯式定義用于寫入的容器卷。
您不應該在容器中寫入數(shù)據(jù)。 屬于容器的數(shù)據(jù)量應明確定義和管理。 在管理員控制他們希望開發(fā)人員在何處寫入文件和錯誤的許多情況下,這很有用。"
除了審核常規(guī)的Linux文件系統(tǒng)和系統(tǒng)調(diào)用之外,還審核所有與Docker相關(guān)的文件和目錄。 Docker守護程序以“ root”特權(quán)運行。 其行為取決于某些關(guān)鍵文件和目錄。如 /var/lib/docker、/etc/docker、docker.service、 docker.socket、/usr/bin/docker-containerd、/usr/bin/docker-runc等文件和目錄
二、修復建議:
在守護程序模式下運行docker并傳遞'--icc = false'作為參數(shù)。
例如,
```
/usr/bin/dockerd --icc=false
```
若使用systemctl管理docker服務則需要編輯
```
/usr/lib/systemd/system/docker.service
```
文件中的`ExecStart`參數(shù)添加 `--icc=false`選項
然后重啟docker服務
```
systemctl daemon-reload
systemctl restart docker
```"
"僅使用所需的內(nèi)存來運行容器。 始終使用'--memory'參數(shù)運行容器。 您應該按以下方式啟動容器:
```
docker run --interactive --tty --memory 256m <Container Image Name or ID>
```"
"要在bash shell中啟用內(nèi)容信任,請輸入以下命令:`export DOCKER_CONTENT_TRUST=1`
或者,在您的配置文件中(/etc/profile或/etc/profile.d/docker.sh)設(shè)置此環(huán)境變量,以便在每次登錄時啟用內(nèi)容信任。
內(nèi)容信任目前僅適用于公共Docker Hub的用戶。 當前不適用于Docker Trusted Registry或私有注冊表。"
"添加“ --read-only”標志,以允許將容器的根文件系統(tǒng)掛載為只讀。 可以將其與卷結(jié)合使用,以強制容器的過程僅寫入要保留的位置。
您應該按以下方式運行容器:
```
docker run --interactive --tty --read-only --volume <writable-volume> <Container Image Name or ID> <Command>
```
如果您是k8s或其他容器編排軟件編排的容器,請按照相應的安全策略配置或忽略。"
"找到/etc/audit/audit.rules與/etc/audit/rules.d/audit.rules文件(若沒有則先確認是否已安裝auditd服務),
在文件中添加以下行:
```
-w /var/lib/docker -k docker
-w /etc/docker -k docker
-w /usr/lib/systemd/system/docker.service -k docker
-w /usr/lib/systemd/system/docker.socket -k docker
-w /usr/bin/docker-containerd -k docker
-w /usr/bin/docker-runc -k docker
-w /usr/bin/containerd -k docker
```
然后,重新啟動audit程序。 例如
```
service auditd restart
```"
?
三、修復樣例:
一、限制容器之間的網(wǎng)絡流量
vim ?/etc/docker/daemon.json
添加以下內(nèi)容到 daemon.json 文件中:
{
? ? "icc": false
}
?
?
sudo service docker restart
docker restart apollo-configservice?
docker restart apollo-portal
docker restart ?apollo-adminservice
docker restart ?ctg-eureka?
docker restart ?nginx
systemctl start docker
二、限制容器的內(nèi)存使用量
?
docker stats {container_id/container_name}
?
docker stats ?apollo-portal
docker stats apollo-configservice?
docker stats apollo-adminservice
docker stats ctg-eureka
docker stats nginx
?
docker update --memory 1GiB --memory-swap -1 apollo-portal
docker update --memory 1GiB --memory-swap -1 apollo-configservice?
docker update --memory 1GiB --memory-swap -1 apollo-adminservice
docker update --memory 10GiB --memory-swap -1 ctg-eureka
docker update --memory 10GiB --memory-swap -1 nginx
三、為Docker啟用內(nèi)容信任
?vim ?/etc/profile
export DOCKER_CONTENT_TRUST=1
source ?/etc/profile
四 、將容器的根文件系統(tǒng)掛載為只讀
docker run --interactive --tty --read-only --volume <writable-volume> <Container Image Name or ID>?
docker run --interactive --tty --read-only --volume ?/home/docker/apps/eureka/ ctg-eureka
docker run --interactive --tty --read-only --volume ?/home/docker/apps/nginx/ nginx
例子:
?docker run --read-only -v /icanwrite busybox touch /icanwrite/here
五、審核Docker文件和目錄
在/etc/audit/audit.rules與/etc/audit/rules.d/audit.rules文件中添加以下行:
-w /var/lib/docker -k docker
-w /etc/docker -k docker
-w /usr/lib/systemd/system/docker.service -k docker
-w /usr/lib/systemd/system/docker.socket -k docker
-w /usr/bin/docker-containerd -k docker
-w /usr/bin/docker-runc -k docker
vim ?/etc/audit/audit.rules
vim ?/etc/audit/rules.d/audit.rules
-w /var/lib/docker -k docker
-w /etc/docker -k docker
-w /usr/lib/systemd/system/docker.service -k docker
-w /usr/lib/systemd/system/docker.socket -k docker
-w /usr/bin/docker-containerd -k docker
-w /usr/bin/docker-runc -k docker
service auditd restart文章來源:http://www.zghlxwxcb.cn/news/detail-802216.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-802216.html
到了這里,關(guān)于Docker安全基線檢查需要修復的一些問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!