近日,Docker官方發布了一份安全公告,稱Docker daemon在默認配置下存在一個嚴重漏洞CVE-2019-14271。簡單來說,這個漏洞是因為Docker daemon將2375端口(默認端口)開放至外網而造成的安全問題。
具體來說,如果攻擊者能夠直接訪問Docker daemon的2375端口,那么他們就可以通過API調用來獲取敏感的Docker主機內部信息,甚至能夠在攻擊機器上運行惡意容器來攻擊Docker主機。
if __name__ == '__main__':
APP.run(host='0.0.0.0', port=2375)
因此,如果你使用了默認配置且將Docker daemon的2375端口開放到互聯網,那么你的Docker主機就存在無法避免的安全風險。
不過,Docker官方也同時提供了解決方案。最有效的方法就是關閉2375端口的外網訪問權限。你可以在Docker daemon配置文件(如/etc/docker/daemon.json)中配置“hosts”,限制Docker daemon監聽指定的接口及端口:
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
這里,我們把“0.0.0.0”改為“127.0.0.1”,限制Docker daemon只監聽本地回環地址。這樣,攻擊者就無法通過外網直接訪問Docker daemon了。
總而言之,雖然Docker是一款非常強大便捷的容器化管理工具,但由于其默認配置存在安全漏洞,因此我們一定要格外注意Docker的安全管理,及時采取措施來保證Docker主機的安全。