云原生安全模型与实践

访客4年前黑客文章1225

在传统的研发中,我们经常关注的安全有数据安全、代码安全、机器(运行环境)安全、 *** 运维安全,而云原生时代的到来,如果还是按几个维度切分的话,显然容易忽略很多云原生环境引入的新的挑战,我们需要基于 *** 安全更佳实践——纵深防御原则,来逐步剖析云原生的安全,并且对不同层次的防御手段有简单的了解,最重要的是,建立自己云原生安全的理念,真正搭建一个内核安全的云原生系统。

纵深防御指在计算机系统中的多个层面使用多种 *** 安全技术,从而减少攻击者利用关键业务资源或信息泄露到系统外部的总体可能性。在消息传递和协作环境中,纵深防御体系可以确保恶意攻击活动被阻止在基础结构内的多个检查点,降低了威胁进入内部 *** 的可能性。

以IDaaS系统为例,可以把一个云原生系统安全模型分为4个层面和3条规则(身份认证/访问控制/审计),由外至内层层布防:

v2-498422aa938a2177d54288c7b73f54c3_720w.jpg

对于这里安全模型的每一层,都是单向依赖于外层的。也就是说,外层的云、集群、容器安全如果做得好,代码层的安全就可以受益,而反过来,我们是无法通过提高代码层的安全性来弥补外层中存在的安全漏洞或问题。

基于上述这一点原理,我们的纵深防御策略是「自外而内」地进行“设防”。

一、云/数据中心/ *** 层安全

这一层也可以称之为基础设施安全,不管从何角度,公有或私有云或企业数据中心以及对应的 *** 安全,是K8s集群最根本的安全基础,如果这一层存在安全漏洞或者过于脆弱,则整个系统都不能在此基础上保证组件的安全。我们除了需要防御传统的攻击-ARP伪装、DDOS、 *** 层各类报文等攻击,应该针对Kubernetes集群采取以下保护措施:

  1. 不允许在 Internet 上公开对 Kubernetes 管理平台(Control Plane)的所有访问,同时仅开放部分可信 IP 可以访问 Kubernetes 管理 API;
  2. 根据 Rule-BAC(基于规则访问控制),只暴露指定的端口,包括对管理平台的内部端口和来自 NodePort 和 LoadBalancer 类型的 Kubernetes 服务的连接,并且不暴露到 Internet;
  3. 所有计算节点施行 *** 分层规则,通过云提供商或机房的 *** 层安全组(例如 AWS 的 Security Group)对管理平台以及节点授予最小权限控制,能够在更大程度上,减少黑客产生的危害,也就保护了数据的安全性。
v2-e0bff70327cfaac4f9d7d3a5bf24d71a_720w.jpg

4. 对 etcd(Kubernetes的基础存储)的访问进行严格控制(仅允许来自集群管理平台的访问),应强制所有连接都使用TLS,并确保所有信息都是在持久化层被加密的(Encryption at rest);

5. 审计报警系统针对每个平台的访问信息进行实施过滤分析,如发现非授权访问,之一时间通知安全管理人员,并跟踪处理。例如:当黑客进入内网后,往往会进行数据“挖掘“,这些非常规操作区别于常规员工操作。

6. 堡垒机针对 Linux 服务器访问控制,并开启密码策略,同时收集并分析访问、事件、进程等日志,使用堡垒机进行访问控制。

7. 办公 *** 接入和机房 *** 接入仅需要增加身份认证。如:Wi-Fi 接入,VPN 接入绑定 OIDC 认证。

二、集群层

保护 Kubernetes 集群有两个主体需要关注:

  • 集群与组件
  • 运行的服务或应用

针对这两个主体的保护,实现最小权限管理原则.由专门安全工程师进行权限管理.我们的保护可以分为 4 大块:管理API的访问控制、Kubelet 的访问控制、Runtime(运行时)工作负载或用户功能的访问控制、集群组件的安全漏洞防护,如下图所示。

v2-7efd86c1bfdaf8b82a4881ab1882d773_720w.jpg

1. 管理 API 的访问控制

a. 强制 TLS 保护传输层

b. 强制 API 认证

c 强制API授权机制(RBAC)

d. 限制API访问源(PBAC)

2. Kubelet 的访问控制

a. 生产环境启用身份验证

b. 身份授权(RBAC)

c. 强制 TLS 保护传输层

3. Runtime(运行时)工作负载或用户功能的访问控制

a. 限制使用特权容器

b. 合理限制资源负载

c. 防止加载非必要内核模块

d. 限制 Pod 越权访问其他节点

e. 基础数据凭证的访问控制

4. 集群组件的安全漏洞防护

a. 禁止未授权访问 etcd

b. 启用审核日志记录

c. 定期轮换基础架构凭证

d. 定期升级修复漏洞

三、容器层

到了这一层,由于跟 Kubernetes 特性不是强相关,我们能提供一些通用的安全措施和建议:

v2-5c7bdfd086dc49c4783cbcc13e3cfbc7_720w.jpg

四、代码层

程序代码层是最容易受攻击,但也是最可控的部分之一。虽然一般负责这块安全的人员不一定是运维开发(DevOps),可能是专门的安全工程师(Sec Eng),但有一些基本共性理念和建议是可以互相借鉴的。

v2-e2be19ec6574527b9c4eafdd1204126f_720w.jpg

总得来说,安全的本质是数据被合理使用. 云原生时代的这四层架构:云/数据中心/ *** 层、集群层、容器层、代码层,与传统架构比起来更加细化和更易受攻击,自外而内地践行每一层的安全更佳实践,我们的纵深防御才能算是成功的,每个在云原生技术上想长期获益的团队需要对此有共识。

安全体系的简历可以参考主流安全框架如 ISO27001 或国家等级保护三级等.所有的安全措施都不能保证100%安全,但是1%的安全故障会造成100%的危害。所以安全体系建立是一个长期的过程,持续更新改进的过程,需要公司从上至下的进行管理和推动。

这里给大家在搭建安全体系的意见是:先快再好。更先选择最容易部署和实施的安全模块,如WAF、防火墙、身份认证等安全工具,再继续深入、逐步完善。

参考资料:

[1]https://baike.baidu.com/item/%E7%BA%B5%E6%B7%B1%E9%98%B2%E5%BE%A1/8282191?fr=aladdin

[2]https://kubernetes.io/docs/concepts/security/overview/

[3]https://www.stackrox.com/post/2020/09/protecting-against-kubernetes-threats-chapter-8-lateral-movement/

作者介绍:陈伟嘉,毕业于加州大学尔湾分校,曾就职于Facebook、Splunk,现任玉符科技 CTO,负责玉符 IDaaS 技术架构设计和实现,带领研发团队从 0 到 1 实现产品自主研发,搭建无状态化支持、轻量化容器打包、运维自动化等微服务架构。

相关文章

我要打败你 庞麦郎(庞麦郎我的滑板鞋)

约瑟翰庞麦郎,本名庞明涛,在2014年的时候凭借歌曲《我的滑板鞋》受到了广泛的关注,他其他的代表作品还有《西班牙的。 《我的滑板鞋》歌曲歌词:有些事我都已忘记但我现在还记得在一个晚上我的母亲问我今天怎...

黑客学信网修改学历(学信网学历查询官网)-黑客攻击别的平台带你赚钱

黑客学信网修改学历(学信网学历查询官网)-黑客攻击别的平台带你赚钱

黑客学信网修改学历(学信网学历查询官网)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑...

互联网大数据时代,要怎样保证网站信息安全?_网站信息安全

随着“互联网+”、“数字经济”、“工业互联网”、“智能制造”、“互联网改造”等关键词的提出,互联网和大数据普遍应用于各行各业。互联网的疾速开展给经济、金融、消费习气、思想习气等带来了宏大的影响和变化。...

合肥外围商务QQ群-【李发弟】

“合肥外围商务QQ群-【李发弟】”来源于大连市的qq群匿名点评:帮公司总裁预定的国际商务外围模特,老板非常高兴,到时候要预定在校生,有没有陪伴要求细则陪伴的地点:北京上海广州(2良?放时站坐姿态,时一...

人工钻石和普通钻石有什么区别 人工钻石和普通钻石的区别

培养人工钻石的信息传出之后,很多人更想要知道的是人工钻石和一般裸钻有什么不同,终究简易从外型上分辨难以区别,那麼,人工钻石和一般裸钻有什么不同?下边我就而言说。 合成钻石和一般裸钻有什么不同...

做黑客一般学什么(做黑客要学什么)

做黑客一般学什么(做黑客要学什么)

黑客要学那些东西 1、学习Web安全需要理解Web运作机制,包括浏览器与服务器间的通信协议。掌握HTML、CSS、JavaScript以及服务器端PHP等基础知识至关重要。 仅会用现成漏洞工具而不知其...