我过去三年在做什么?对云安全的一些(误人子弟的)思考

最近离职了,准备休息一段时间再开启下一段职业生涯,想用这篇文章回顾下自己过去三年先后参与过的三款安全产品,虽然形态不同,但是业务(云安全)方向总体是一致的,整体选择思路上也是连贯的,本文就我在做什么,以及它们之间的联系做一下回顾。

我的新书《LangChain编程从入门到实践》 已经开售!推荐正在学习AI应用开发的朋友购买阅读!
LangChain编程从入门到实践

云安全是什么

我经历的所有产品都是围绕云安全这个方向的,但是每个产品团队侧重点又有所不同,下面我从比较权威的机构( Gartner、Microsoft 以及代表性安全厂商)扒下对云安全解决方案的一些关键概念定义,吃透了这些概念的含义,基本就弄清楚这方面业务的侧重点。具体到产品的落地,综合考虑公司的规模和资源,以及执行层面产品经理的理解,就出现多样化的产品形态和选择。

CWPP

云工作负载保护平台(Cloud Workload Protection Platforms)为所有类型的工作负载(包括物理服务器,虚拟机(VM),容器和无服务器)提供了以工作负载为中心的安全保护解决方案

类型 服务模式 抽象位置 主机位置 环境
服务器 自托管 Physical hardware 本地 Its own hardware
虚拟机 IaaSPaaS 虚拟机监控程序 云或本地 Its own virtual hardware
容器 IaaS、PaaS Operating system kernel Its own operating system
无服务器功能 FaaS Depends on provider 取决于供应商

根据 Gartner 的说法,CWPP 有以下八项功能:

what-is-cloud-workload-protection-platform-cwpp

CSPM

云安全态势管理(Cloud Security Posture Management),关注IaaS和PaaS的错误配置导致的安全风险,应当具备发现错误配置、评估数据风险、主动监控云环境、监测合规性等能力,发现问题后报告用户或直接自动修复,是确保云计算基础设施安全运营的有效工具。

Wiz是目前市面上最好的CSPM产品,它所具备的能力基本代表了这类解决方案:

  1. 使用多个API和日志数据源来解决庞大的多云资产问题,并通过分析传统的CSPM配置和工作负载数据(VM映像、容器映像和功能代码),识别整个公有云或非云部署中的潜在攻击维度。
  2. 使用图形技术在云工作负载中创建多个场景关系,包括网络暴露、漏洞、密码、用户和机器身份及衍生物,从而能对IaaS+PaaS部署提供优化建议的预测性安全评估。
  3. 提供一个预先构建的图形查询数据库,用于持续监控并快速生成安全洞察和证据,旨在缩短安全调查周期并减少修复时间。
  4. 可以只读权限运行,从而限制攻击面和工具泄露的影响。
  5. 有超过1400条云配置评估规则,在云环境(GCP、Azure、AWS、OCI、Alibaba、VMware)和IaC代码 (Terraform、CloudFormation、Azure ARM templates)实现了统一的策略配置。

CNAPP

云原生应用保护平台(Cloud-Native Application Protection Platforms)是CWPP和CSPM理念的融合,可扫描开发中的工作负载和配置并在运行时对其进行保护,贯穿整个应用程序的生命周期(SDLC)。结合了“向左倾斜”和“向右防御”安全概念,通过将安全向左移动,可以从应用程序的最开始开发阶段就开始安全控制、漏洞扫描和合规性检查,“向右防御”概念侧重于在应用程序运行时阶段能够实时检测和响应安全事件。

下面以 Palo Alto Networks 为例,一整套解决方案由代码构建、部署、运行中三个阶段组成,市面上很多同类但不同规模的安全产品,无非是其中部分环节的组合,进行差异化竞争。

代码和构建
  • 此阶段的风险
  1. 易受攻击的开源软件 (OSS)
  2. 基础架构即代码 (IaC) 错误配置
  3. 不安全的版本控制系统 (VCS)
  4. 密钥暴露
  • 阻止方式
  1. IaC 安全
  2. 软件构成分析(SCA)
  3. 软件供应链安全
  4. 软件材料清单(SBOM)
  5. 密钥扫描
  6. 存储库中的漏洞管理和合规性
部署
  • 此阶段的风险
  1. 恶意镜像
  2. 镜像感染
  3. 不安全的 CI/CD 管道
  • 阻止方式
  1. 容器访问控制
  2. CI/CD 安全
  3. 受信任的镜像
  4. 镜像分析沙盒
运行中
  • 此阶段的风险
  1. API 攻击
  2. Web 应用漏洞利用
  3. 过度宽松的权限控制
  4. 命令和控制
  5. 敏感数据暴露
  • 阻止方式
  1. 合规性检测
  2. 威胁检测
  3. Web 应用及 API 安全
  4. 主机安全
  5. 容器安全
  6. 无服务器安全
  7. IAM 安全
  8. 数据安全
  9. 网络安全

SASE

安全访问服务边缘 (Secure Access Service Edge) 是一种新型云安全架构模型,将软件定义的广域网 (SD-WAN) 功能与一些网络安全功能相结合,所有这些功能都由一个云平台提供。通过这种方式,SASE 让员工能够从任何地方进行身份验证并安全地连接到内部资源,让企业更好地控制进出其内部网络的流量和数据。

SASE 包括四个核心安全组件:

  1. 安全 Web 网关 (SWG)::SWG 可从 Web 流量中过滤不需要的内容,阻止未经授权的用户行为,并执行企业安全策略,从而预防网络威胁和数据泄露。
  2. 云访问安全代理 (CASB)::CASB 为云托管服务执行多项安全功能,包括:揭示影子 IT(未经授权的公司系统)、通过访问控制数据丢失防护 (DLP) 保护机密数据,以及确保符合数据隐私法规。
  3. 零信任网络访问 (ZTNA):ZTNA 平台将内部资源锁定在公众视野之外,并通过要求对每个受保护应用程序的每个用户和设备进行实时验证来帮助防御潜在的数据泄露。
  4. 防火墙即服务 (FWaaS):FWaaS 是指从云中作为服务交付的防火墙。FWaaS 可保护基于云的平台、基础架构和应用程序免受网络攻击。与传统防火墙不同,FWaaS 不是物理设备,而是一组安全功能,包括 URL 过滤、入侵防御和跨所有网络流量的统一策略管理。

总结

总体而言,云安全的含义包含三方面:

  • 关注云这种基础设施本身的安全问题,比如虚拟机、容器、K8s服务的安全,CWPP的理念侧重这方面
  • 关注部署在云上承载业务的安全,比如查找漏洞和配置、网络和身份问题,CSPM 的侧重点
  • 对传统安全能力进行云服务形式改造,比如防火墙、抗DDos、终端安全等,通常也叫做云化,SASE 里面涉及这类服务

我在做什么

云安全资源池(Cloud Security Resource Pool)

云安全资源池是一个基于软件的集成的安全工具集,具备统一管理、统一监控、编排和自动化能力,是符合CWPP品类能力要求的代表性产品。资源池集成了厂商自身生态系统的各种安全工具,并开放第三方安全工具的集成,提供了与云服务资源类似、可按需获取和弹性使用的安全资源。主要是私有云场景,旁挂部署在客户的机房的防火墙出口,由于云安全资源池与同一家供应商的多个安全工具集成,无法对所有工具进行测试,因而难以确保所有工具都符合要求,需要第三方解决方案,且需要安全资源池厂商提供集成和测试支持,且任何特定工具或组件需要可插拔。

这个产品里我在做什么

云安全资源池待了14个月,也是从入司开始做的最久的项目,学习QEMU+KVM的虚拟化方案,掌握Open vSwitch 做网络虚拟化管理,使用DPDK 做网络性能优化,还有服务器集群监控和进出安全设备的网络流量监控,收获最大。

容器安全防护(Container Security Solution)

算是CNAPP理念的产品实践,但还不具备代码构建环节的能力,主要涵盖的能力包括部署环节的资产清点、镜像安全、镜像控制;运行时环节的容器入侵检测、网络可视化、网络微隔离、Web应用防火墙,此外还有基于CIS Benchmark实践对镜像、容器、主机进行检测,对容器引擎、编排系统、镜像仓库、操作系统等基础设施的脆弱性风险检测。

这个产品里我在做什么

容器安全防护只做了 8个月,就因为另一个项目缺人就被调走了,做的内容整体不算核心,主要是运行时安全(Falco)规则更新,容器入侵检测引擎规则升级,合规基线几个方面,但好处是对 Kubernetes 的掌握更深入了,自己上手了解 CRD Operator 实现,接触了 Golang语言和文档数据库MongoDB,做的内容不核心,但是项目驱动学到不少内容,事后也发现是比较流行的技术🤣

安全访问服务边缘(Secure Access Service Edge)

传统IT架构,机构分中心通过MLPS,个人通过VPN连接机构主中心(企业内网的边缘),大部分流量进入IDC,部分经安全策略过滤后进入Internet,而SASE场景直接进行访问Internet上的SaaS服务和云资源

  • 访问身份:人,设备,服务,应用程序——》身份决定资源
  • SASE 解决方案:提供由身份驱动的网络接入控制以及下沉到边缘的安全防护能力,由此可将 SASE 关键技术归纳为以下三大类:
    1. 网络技术:软件定义广域网(SD-WAN)、内容分发网络(CDN);
    2. 安全技术:零信任访问(ZTNA)、安全即服务;
    3. 统一管控:云化部署、流量编排。
  • 边缘组件(SD-WAN设备,智能引流器,VPN应用或者浏览器插件)接入就近的PoP点(边缘接入节点,保证任何地方都提供高质量网络和安全服务)

SASE架构包括管控平台、云化POP、CPE和客户端4个层次,主要包括

  • SASE管控平台:相比传统SD-WAN控制器,增加了用于实现客户零信任认证与授权的SDP&4A功能模块,控制器需要同时实现对POP、CPE、云安全资源池、云CPE内所部署各类安全能力的统一命令控制,由安全编排器、网络编排器分别实现网络安全、网络路由的业务编排。
  • 云POP与云安全资源池:部署在边缘云或者骨干网节点,通过云POP的加密隧道构建一张高质量虚拟化骨干专网,为了实现对多客户的高质量网络支撑,云POP点部署范围应尽量实现广域分布,云POP具备智能选路、流量聚合、流量加解密等功能,并采用虚拟机或者容器化部署方式,以支持弹性伸缩;云安全资源池和云POP部署在云内同一个VPC,可共享底层流量处理引擎以加速性能,资源池内部署防火墙、WAF、APT、IPS、上网行为管理等各类云安全能力,由上层控制器统一实现对云安全能力与客户的资源匹配、安全策略配置、安全能力顺序编排、安全能力启停、客户流量牵引与回注等操作。
  • 云CPE/盒式CPE/虚拟化CPE:部署在边缘云或者客户现场,采用何种CPE部署方式,取决于客户端访问形式、客户侧资源等因素,CPE除了具备流量汇聚、加解密等功能,还需要实现零信任认证、访问控制、上网策略管理、威胁情报同步等安全功能,也可提供防火墙、IPS、上网行为管理等高级安全功能,实现安全能力的下沉与近端处置。
  • 客户端:SASE支持移动手机APP、电脑客户端、浏览器、SDK等多种安全接入方式,为实现更安全的接入认证,客户端应具备本地计算环境的安全扫描与安全信息搜集能力,也可与本地的防病毒等安全软件实现一体化集成。

这个产品里我在做什么

资源池内部署防火墙、WAF、APT、IPS、上网行为管理等各类云安全能力,需要包装为各种安全即服务产品,用户看到的都是可以直接进行购买的各种规格(Agent数量,带宽大小等)的服务,客户购买服务后,由控制器统一实现安全能力与客户的资源匹配、安全策略配置,安全能力顺序编排等,我所在部门就负责这一块。从上面介绍可以看到这是一个很庞大的解决方案,就做成了跨部门的平台型产品,整体采用云原生架构,基础设施层由中间件团队维护,业务部门只需要将自己业务模块以 Helm Chart 方式提供。我负责自己团队的应用封装,以及Web应用框架(基于Gin,开发了日志模块,API文档生成,通用配置读写等)的搭建,由于对Go语言还不擅长,在软件设计方面能力还有些不足,发现搭的框架大家用的不太舒服🥲,看了一些设计模式的书,也在研究一些开源代码(go-zero),希望能不断学习,写出更让人愉悦的代码吧。由于项目也在推行敏捷开发,然后就学习了DevOps和敏捷开发思想,做了团队内部CI/CD流程的建设,收获满满,在这个项目里明显感觉身份从一个程序员向软件工程师转变。

联系

对我而言,涉及的业务涵盖从底层的物理服务器和虚拟化技术,逐步扩展到容器化和容器编排,最终延伸至直接面向客户的云安全产品。这个过程是逐层往上的,从整个IT基础设施的角度来看,每个层次都是在前一个层次的基础上建构起来的。尽管涉猎面较为广泛,广而不精🥲,但这种拓展有助于提升我的技术视野,为我在感兴趣的领域深耕提供知识基础。

参考链接

我过去三年在做什么?对云安全的一些(误人子弟的)思考

https://liduos.com/what-is-cloud-security-and-what-does-it-do.html

作者

莫尔索

发布于

2023-05-23

更新于

2024-05-09

许可协议

评论