开发者学堂课程【5分钟玩转阿里云容器服务:容器安全-如何为运行中的容器提供主动防护】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1038/detail/16057
容器安全-如何为运行中的容器提供主动防护
内容介绍
一、容器安全-如何为运行中的容器提供主动防护
一、容器安全-如何为运行中的容器提供主动防护
运营时安全的一些关键产品特性原生为应用带来了敏捷、高效、分布式和不可等架构特征。相较于传统的安全模式,我们也需要在容器应用所进行相应的原生化安全转型。
这其中应用运势安全尤为重要。容器特性给安全架构带来了新的攻击面,各种针对容器逃逸和体权的攻击意识的攻击者可以直接威胁诸级安全。同时容器应用不再具有传统基于边界的安全模型中像 IP 地址这样的静态标识符,如何基于原生中动态的标签属性和源数据管理,容器应用资产也是运营是安全的关键。
为此我们可以选择使用阿里云安全中心,提升整个集群应用运行时的安全水位与安全中心旗舰版内置了针对容器运行时的威胁检测、告警和阻断能力,可以实时检测如恶意竞价、启动病毒和恶意程序、容器内部入侵逃逸等攻击行为,并提供相应的分析和溯源能力。
知道 service count 是集群 POD 中连接 API server 一个非常常见的凭证。而很多开发人员因为开发或调试的方便,会给 service count 绑定一个比较大的权限。而这样的思维思考会给攻击者留下可乘之机,攻击者可以利用或者窃取这样的思维思考的对机器人 PS 或者发起下一步的横向攻击。
在这个 demo demo 中我们会去演示利用 POD 中的 service count 对集群的 API server 发起一些疑似的请求。然后看一下我们是否能够收到实施的一个 runtime 的一定时刻安全的告警。这里我们首先选择一个目标的测试集群。
可以看到我们已经在集群中部署了一个测试的 POD 然后我们通过命令行的方式进入到这个 POD 中。
在 var,run,secrets 这个路径下,我们可以看到这个 service count 对应的 token 信息。我们首先去Pod一个环境变量。
然后我们利用一个这样的 curl 命令,去请求API Server 获取对应的 secrets 信息,可以看到我们这次请求的身份,是这个 ServiceAccount 身份。
这里我们进入到云安全中心的页面。我们首先可以看一下这个资产中心。在这个容器的 tab 中,我们可以看到我们当前容器侧的一些关键的资产,包括集群和镜像等关键信息。在安全告警处理页,我们可以看到所有的收到的实时的一些 runtime 的告警。可以看到我们已经收到了这次关于 k8s Secrets 的一个异常访问的一个提醒。
点击详情我们可以看到这次提醒的一些详细信息,包括这次请求的路由地址、发起请求的一个 size count 身份以及审计和集群的信息。通过这样的信息就可以及时提醒我们的集群的安全管理员去做好相应的访谈工作。在这个 demo 中我们会去展示针对挖矿攻击的一个预警时刻的监控和告警。我们知道挖空攻击是近年来一个比较常见的攻击形式,而 QS 节点也是挖矿程序一个重点的攻击目标。这里我们首先选择一个测试的目标集群。我们事先准备好了一个带有恶意的这个挖矿程序的一个镜像,我这段模板去以 department 的形式去部署。好这里可以看到我们的 deployment 已经等部署,在我们的容器控制台也可以看到我们的预定时刻的一个实时的安全监控的告警。
点击这个安全监控的链接,可以在这个页面看到我们的安全告警处理的一个展示,可以看到我们已经收到了刚才这个挖矿攻击的一个实时的告警,然后这里会显示相应的包括节点集群以及 deployment 的对应的一些资产信息。
点击详情可以看到这次抨击的一个详细信息,包括我们这次这个曝光程序的路径,以及它的执行的命令行,包括一些描述以及集群容器镜像的关键信息,来提醒我们的容器管理员进行相应的这个 department 删除等止血操作。我们会去来一起看一下对异常行为的一个实时检测以及危险响应的能力。
首先首选择我们的目标集群,然后进入到我们刚刚部署的这个 POD 中去执行一条我们恶意命令。在这个命令中我们会去尝是以这个删除系统日志的这种匿名的方式去注入这个可以的 web shell 执行这条命令回到我们的安全管理的这个实时运行时刻的监控页面,看一下我们是否能够收到告警。
首先是这个匿名的系统日志删除的这个告警,在这里可以看到相应的这个命令执行的信息以及它的这个容器 ID 镜像信息等等。我说我们可以点击溯源这个 tab 来查看整个供应链的一个消息信息。在可以命令执行中也是同样的一个展示。然后这里我们可以去点击处理,去做一个趋势的威胁的响应能力。
可以点击停止容器去把这个受到攻击的这个 POD 去停止。来看一下 POD 这个容器是不是会自动被停止掉,容器已经被停掉。通过上面的这个处理,我们可以去实时地做到一个微信响应的能力。