(日期:][下一个日期][线程:][线程下][日期索引][线程索引]

定义什么是CVE值得下载/安装和容器



所以我看过经典的“CVE安全漏洞,是一个安全漏洞是跨越信任边界”。

显然这是开放,各种各样的解释,例如密码我们都同意一个秘密与硬编码的密码是一个CVE后门,但应用程序的默认密码,然后被迫改变一旦你登录吗?什么必须暴露在网络应用程序(引入种族攻击者可能会在第一次)?一般来说我们有一个好主意的界限的密码(记录?多变的吗?有一个现实的安全的方法来部署这个产品?)。

首先一个小故事:我的儿子玩"我很多,所以我要设置一个服务器。我发现了一些软件,设置当然是恼人的(有些奇怪的依赖关系不打包我的平台选择的)。所以我想“嘿,让我们找到一个集装箱码头工人!”,幸运的是有几个:

https://github.com/5t111111/docker-pocketmine-mp/blob/master/Dockerfile

你会注意它的线:

运行cd PocketMine-MP & & wget - q - o -http://cdn.pocketmine.net/installer.sh| bash - s -β- v

这是一个奇特的方式说“去吗http://cdn.pocketmine.net/installer.sh并运行它“幸运的是这是稍微减轻了

用户pocketmine

声明,这意味着该命令运行作为一个用户,而不是根。但github的快速搜索显示:

https://github.com/search?utf8=%E2%9C%93&q=RUN + bash + wget + + http&type = Code&ref = searchresults

例如显示:

https://github.com/wyvernnot/docker-minecraft-pe-server/blob/master/Dockerfile

不降级到用户,而是作为根用户运行脚本。所以点做我们在沙地上画一条线”“下载随机的东西,并运行它作为CVE值得吗?我的想法:

让它少CVE值得:

1)文件提及这是做什么,这是很危险的
2)降低到更少的特权用户
3)使用HTTPS服务内容
4)使用一个众所周知/信任的网站服务内容


使它更CVE值得:

1)没有文档/提到它在做什么
2)以特权用户身份运行命令(如根)
3)使用HTTP下载内容(和没有端到端签字/检查)
4)使用基本随机服务器没有人听说过
5)广泛应用(例如集装箱在码头工人注册表中)

例如从Nginx Dockerfile:

https://github.com/nginxinc/docker-nginx/blob/11fc019b2be3ad51ba5d097b1857a099c4056213/mainline/alpine/Dockerfile

TL;博士:他们GPG密钥指纹作为Dockerfile env变量:

ENV GPG_KEYS B0F4253373F8F6F510D42178520A9993A1C052F8

他们后来下载键和用它来验证nginx tarball下载:

& & gpg——keyserverha.pool.sks-keyservers.net——recv-keys \“GPG_KEYS美元”
& & gpg——批量验证nginx.tar.gz。asc nginx.tar。广州\

所以他们肯定是想做正确的事(我需要确认这个会错误出在构建如果键不能使用/错误的关键是为asc签名是坏的)假设它能够正常工作(一个错误触发码头工人建立中止)然后显然是安全的,不需要反暴力极端主义。

但大多数容器没有做这样的事情,甚至没有关闭,我想我们需要开始分配CVE看起来像很多流行的集装箱Dockerfiles很没有安全感,他们如何构建软件。




- - -
Kurt Seifried——红帽产品安全——云
PGP A90B F995 7350 148 f 66高炉7554 160 d 4553 5 e26 7993
红帽产品安全联系: secalert@redhat.com

页面最后更新或审查:2016年6月8日