客户私有代码在容器中运行,安全性如何保证?

容器引擎通过Linux系统安全策略来实现。不同的容器引擎实现的能力不同。Docker支持Namespace隔离性,Cgroup配额资源限制,Capability权限划分,SELinux/AppArmor访问控制权限。Kubernetes通过API可以实现Namespace隔离性、资源分配和资源限额。相当于重新做了一次虚拟化,确保资...显示全部

容器引擎通过Linux系统安全策略来实现。不同的容器引擎实现的能力不同。Docker支持Namespace隔离性,Cgroup配额资源限制,Capability权限划分,SELinux/AppArmor访问控制权限。Kubernetes通过API可以实现Namespace隔离性、资源分配和资源限额。相当于重新做了一次虚拟化,确保资源不会被某一容器耗尽。
那么客户私有代码在容器中运行,安全性如何保证?

收起
参与3

返回宁科的回答

宁科宁科架构师博云

可从如下方面保证容器的安全性:
1.保证容器运行环境的安全。
检测docker和K8S未授权的访问漏洞;
镜像仓库越权漏洞;
linux内核的漏洞等。

2.镜像检查。
使用镜像工具,比如clair等,使用T-SEC,小红伞等病毒库,对仓库以及宿主机的镜像进行扫描,防护病毒木马,发现镜像中的敏感信息/操作,如ssh-key,环境变量中的用户密码,镜像中的数据文件,保证授信的镜像等;

3.镜像运行时阻止。
可自定义规则,阻止不符合安全要求的镜像运行,比如阻止以root用户运行的镜像,阻止特定软件版本的镜像,阻止存在泄密的镜像等。

4.容器运行时入侵检测。
基于多锚点行为的检测,Web RCE检测,Web后门检测,反弹shell检测,敏感目录访问的检测等,对容器内越权行为/木马进行检测。

5.对容器逃逸的检测。
privileged特权模式运行容器引起的逃逸;
危险挂载导致的逃逸,比如挂载docker socket;
内核漏洞导致的容器逃逸,如CVE-2016-5195。

6.异常情况下的快速隔离。
在检测到入侵事件或者容器运行异常时,可通过快速关闭容器暴露端口,暂停,杀死容器等方式快速隔离。

互联网服务 · 2020-07-26
浏览940

回答者

宁科
架构师博云
擅长领域: 云计算容器容器云

宁科 最近回答过的问题

回答状态

  • 发布时间:2020-07-26
  • 关注会员:2 人
  • 回答浏览:940
  • X社区推广