CNAPP核心技术和能力解析

最佳答案 匿名用户编辑于2025/01/24 15:34

访问控制技术包括细粒度权限管理和身份认证与授权,其中细粒度权限管理指的是根据员工的角色 和职责,设置不同的访问权限,确保只有授权人员才能访问源代码

一、开发安全

1. 源码安全

云原生应用开发过程中往往面临着诸多安全挑战,这些挑战包括源代码的机密性、完整性和可用性 保护需求,源码安全相关的技术和重要性阐述如下所示。

(1)源码安全的重要性 核心资产保护:源代码是软件开发公司的核心资产,包含了技术细节、创意设计、商业计划等敏感 信息,其安全性直接关系到公司的知识产权和商业利益。 避免经济损失:源代码泄露可能导致被其他公司恶意抄袭,开发类似产品,从而给公司带来巨大的 经济损失。 信誉与信任:源码泄露还可能引发安全问题,损害公司声誉,失去用户信任。

(2)源码安全核心技术解析 ① 数据加密技术 数据加密技术包括透明加密和全磁盘加密两种,透明加密指的是不影响开发人员正常工作的前提下, 对源代码进行加密,确保其在存储和传输过程中的安全性全磁盘加密指的是对整个开发环境或存储设备 进行加密,防止物理介质丢失导致的源码泄露。 其中,透明加密技术,又称自动加密技术或无感加密,是一种在数据保存或传输过程中自动对数据 进行加密,而在用户访问时自动解密的技术。透明加密技术通常与操作系统、文件系统或应用程序紧密 结合,其核心思想是将加密和解密过程隐藏在操作系统内部,使得用户无感知。具体来说,透明加密软 件会在操作系统内核中嵌入一个虚拟加密层,这个层会将用户的文件系统访问请求拦截下来,然后对文 件进行加密或解密操作。加密过程:当数据被写入磁盘、通过网络发送或通过特定应用程序处理时,加 密引擎会自动识别并加密这些数据。解密过程:当用户需要访问这些数据时,加密引擎会再次介入,自 动解密数据以供用户使用。

全磁盘加密技术,又称全卷加密或全驱动器加密,是一种在操作系统级别对磁盘上的所有数据(包 括操作系统本身、用户文件、系统文件等)进行加密的技术。其目的是防止未授权的物理访问(如盗窃 硬盘、非法访问等)导致的数据泄露。即使磁盘被非法获取,未经授权的访问者也无法读取加密后的数 据。全磁盘加密技术通常通过以下步骤实现:首先,进行加密密钥的生成与管理,由系统生成一个或多 个加密密钥,这些密钥用于加密和解密磁盘上的数据。密钥也可以存储在专用的硬件安全模块(HSM)中, 或者通过其他安全方式进行管理和保护。加密过程中,当磁盘写入数据时,加密引擎会自动拦截这些数 据,并使用加密密钥对数据进行加密。加密后的数据以密文形式存储在磁盘上。在解密过程,当系统需 要读取磁盘上的数据时,加密引擎会自动识别并解密这些数据。解密后的数据以明文形式提供给系统或 应用程序使用。

② 访问控制技术 访问控制技术包括细粒度权限管理和身份认证与授权,其中细粒度权限管理指的是根据员工的角色 和职责,设置不同的访问权限,确保只有授权人员才能访问源代码。身份认证与授权指的是通过强身份 认证机制,如多因素认证,确保只有合法用户才能访问源码仓库。 具体而言,细粒度权限管理(Fine-Grained Access Control, FGAC)是指对系统资源或功能的访问 权限进行细致划分的授权方式。它允许对单个数据项或操作进行权限控制,而不是像粗粒度权限管理那 样,仅对整个资源集或操作集进行统一控制。其目的在于提高数据安全性,防止未经授权的访问和滥用, 同时确保合法用户能够高效地使用所需资源。细粒度权限管理技术通常基于以下原则进行工作:一是角 色与权限定义:即定义不同的用户角色,并为每个角色分配相应的权限。权限可以具体到某个数据项、 某个操作或某个时间段等。二是访问控制策略,即制定详细的访问控制策略,明确哪些用户或角色可以 访问哪些资源或执行哪些操作。策略可以基于用户的身份、角色、上下文信息(如时间、地点、设备类型等) 进行动态调整。

权限验证与授权是指当用户尝试访问资源或执行操作时,系统会进行权限验证。根据用户的身份、 角色和访问控制策略,判断用户是否具有相应的权限。如果用户具有相应权限,则允许访问或执行操作; 否则,拒绝访问并可能记录日志或触发警报。身份认证是确认用户身份的过程,它要求用户提供身份证 明(如用户名和密码、生物特征等),系统通过验证这些证明来确定用户是否有权访问系统或资源。常 用方式包括:用户名和密码、多因素认证、单点登录(SSO)、OAuth/OpenID Connect(第三方身份 认证服务)等。

③ 安全审计技术 安全审计主要指的是审计日志,即记录所有对源代码的访问和操作行为,形成审计日志,便于后续追溯和审查。审计日志是一种记录系统或应用活动详细信息的日志,它记录了用户操作、系统事件、错 误信息等关键数据,用于后续的安全分析、问题排查和合规性检查。审计日志通常包含以下内容:一是 用户活动,如登录、注销、权限变更、文件操作等;二是系统事件,如服务启动、停止、异常、错误等。 三是时间戳:记录事件发生的确切时间,以便进行时间线分析和追溯。四是来源 IP:记录操作或事件的 发起者 IP 地址,有助于追踪攻击者。五是详细操作信息:如操作的具体内容、参数、结果等,以便进 行深入的安全分析。

④ 代码审查与安全扫描 代码审查与安全扫描是源码安全的核心部分,主要包括静态代码分析,指的是在代码编写阶段,通 过工具自动检查代码中的安全漏洞和潜在错误。静态代码分析能够在不执行代码的情况下,通过检查源 代码的语法、结构、数据流等特性,来发现潜在问题、错误和安全漏洞的技术。不仅能够在早期发现问题, 在编译和运行代码之前就发现潜在的问题,如语法错误、逻辑错误、安全漏洞等,减少后期调试和修复 的成本。而且提高代码质量:帮助开发人员遵循最佳实践和代码规范,如代码风格、命名规则、注释等, 提高代码的可读性和可维护性。还能够增强安全性,识别和修复代码中的安全漏洞和潜在的安全风险, 如 SQL 注入、跨站脚本攻击(XSS)、缓冲区溢出等,提高应用程序的安全性。静态代码分析的工作原 理主要包括以下几个步骤:

词法分析:将源代码分解为一系列的标记(token),如变量名、关键字、运算符等,建立代码的基 本语法结构。 语法分析:将词法分析器生成的标记按照语法规则进行解析,建立抽象语法树(AST),表示代码的 结构和关系。 数据流分析:通过分析代码中的数据流和变量的使用情况,来检测未初始化的变量、空指针引用、 不可达代码等问题。 规则检查:基于预定义的规则或模式,检查代码中的常见问题、最佳实践和安全漏洞。 生成报告:将发现的问题、潜在影响以及修复建议生成详细的报告,供开发人员参考。

⑤ 物理与网络安全措施 源码安全中的物理安全措施技术是一系列旨在通过物理手段保护源代码不被非法访问、窃取或破坏 的技术和策略。这些措施主要关注于硬件、网络环境和物理空间的安全管理。物理隔离是最直接且有效 的防止源代码泄露的手段之一。企业应将开发环境与外部网络物理隔离,使用专用的开发网络,并禁止 外部设备(如 U 盘、移动硬盘)连接到开发环境。这样可以从物理层面切断潜在的泄露途径,确保源代码在封闭、可控的环境中运行和存储。同时,为了防止源代码因意外情况(如硬件故障、自然灾害)而丢失, 企业应建立完善的备份与恢复策略。这包括定期备份源代码、将备份数据存储在安全的物理位置、以及 制定详细的恢复计划等。在发生意外情况时,企业能够迅速恢复源代码,减少损失。网络安全措施则是 通过使用专用的 VPN 设备和 https 安全隧道等技术,与源码仓库进行对接,从而进行数据交互,能够 确保远程访问源代码时的数据传输安全性。

2. 制品安全

在云原生环境中,制品通常指的是应用程序的构建块,如容器镜像、软件包等。这些制品在开发、构建、 部署和运行的各个阶段都可能面临安全风险。因此,确保制品的安全性是保障云原生应用整体安全性的 关键。 企业能够通过整合多种安全功能,为制品安全提供了全面的保护。这些功能包括但不限于:

(1) 容器镜像扫描 越来越多的企业采用容器化应用来加速软件开发和部署。然而,容器镜像作为创建容器的模板,其 安全性直接关系到整个应用的安全性。因此,对容器镜像进行安全扫描,及时发现并修复其中的安全漏洞, 成为保障云原生应用安全的重要手段。

(2)软件供应链安全 软件供应链包括软件产品的开发、编译、构建、部署、运营等全过程,涉及到众多的参与方和组件。 软件供应链安全旨在确保软件产品在整个生命周期内都是可信的、安全的。这包括对软件开发过程中的 代码审查、漏洞扫描、组件来源管理等,以及对软件部署和运营过程中的安全加固、风险评估和监控等 措施。软件供应链安全是保障企业信息安全和业务连续性的重要环节。近年来,由于软件供应链安全问 题导致的安全事件频发,给企业和个人带来了巨大的经济损失和声誉损失。同时,软件供应链安全也是 国家信息安全的重要组成部分,对于保障国家安全和社会稳定具有重要意义。 软件供应链安全面临的挑战多种多样,主要包括:一是恶意代码注入:攻击者通过在软件供应链中 注入恶意代码,实现对软件的篡改和破坏,从而达到窃取数据、破坏系统等目的。二是组件漏洞:软件 组件中存在的漏洞往往会被攻击者利用,导致软件产品的安全性受到威胁。三是非法软件组件:软件产 品中可能存在非法的软件组件,这些组件可能携带恶意代码或者存在版权问题。四是供应链管理不规范: 软件供应链管理不规范可能导致参与方之间的信息不透明,使得攻击者有机可乘。

二、云原生基础设施安全

1. 云基础设施权限管理

云基础设施权限管理(Cloud Infrastructure Entitlement Management, CIEM)是确保云环境中 访问权限和身份验证得到有效控制的关键组件,主要用于管理和控制云平台的使用和访问权限。通过对 云平台进行身份权限管理,检测用户账号是否存在过度授权、密码过期等问题,帮助管理人员及时发现 并解决授权管理方面的问题,提高云平台的安全性和可靠性。 大多数 CIEM 解决方案都提供了一个集中的仪表板,用于跟踪和控制分散在云上的资源、服务和管 理帐户的访问权限。领先的 CIEM 解决方案提供了人工智能分析和评估工具,可以智能地识别和排序与 配置错误、影子管理帐户以及人员、应用程序和机器身份的过度授权相关的风险。这有助于云安全团队 优先处理补救措施,同时制定积极主动、知情的分阶段降低风险的方法。

2. 基础设施即代码(IaC)

IaC 是一种将基础设施、工具和服务以及对这些基础设施的管理作为软件系统来处理的方法。它采 用软件工程实践,以可重复的、可靠的方式来设计、改变和部署软件环境。通过代码来管理和配置基础 设施,可以极大地提高基础设施的自动化程度,减少人为错误,提高部署效率。

三、运行时安全

1. 云工作负载安全

云工作负载安全是 CNAPP 里重要组成部分,云上的工作负载是一套支撑 IT 业务系统运行的相关功 能或一些原子能力,诸如服务器、VM、容器、等。通常情况下企业在云上使用最多的工作负载环境就 是 VM 和容器,当然近些年也兴起了一些 serverless 类型的工作负载。云工作负载安全主要以主机、容器、 和 serverless 防护进行展开,从云的服务类型恰好对应 IaaS、PaaS、SaaS ,从用户的角度考虑用户的 安全职责也略有不同,非自建部分不负责主要安全指责,而是由云厂商承担。

(1)主机安全(IaaS 模式) 在 IaaS 云的模式下,用户需要负责主机和虚拟的安全,主机安全是一套关键的保护措施,适用于 物理服务器、虚拟机、云主机以及各种终端设备,确保它们免受恶意软件、未授权访问和其他安全威胁 的侵害。它在保护组织的关键资产和数据、确保业务连续性和数据完整性方面发挥着至关重要的作用。 通过实施主机安全措施,组织能够有效防止数据泄露、抵御恶意软件攻击、增强合规性、降低业务风险、 提高系统稳定性,并快速响应安全威胁,为维护网络安全提供了坚实的基础。主机工作负载保护主要包 含基线检查、风险发现、入侵检测、资产管理等能力。

(2)容器安全 (PaaS 模式 ) 容器安全是针对容器化技术特别设计的保护措施,适用于使用 Docker、Kubernetes 等容器技术的 各种场景,包括持续集成和持续部署(CI/CD)流程、微服务架构、云原生应用开发和 DevOps 实践。 容器安全的目标是确保容器镜像的安全性、容器运行时的安全性以及资产管理和风险发现的能力。

(3)serverless 安全 Serverless 提供了一种“无服务器”的计算模式,允许开发人员构建和运行应用程序和服务,而无 需管理基础设施或服务器端。这种模式简化了 CI/CD、服务器配置维护更新、IT 资源容量的规划和伸缩 等工作,使研发人员专注于业务逻辑的编写,而运维人员则转向确保服务水平协议(SLA)的实现。在 Serverless 架构下,用户需要对代码、身份权限、应用安全负责,而不需要考虑基础设施的安全。

2. Web应用和API保护

WAAP 是 Web 应用程序和 API 保护的缩写,这是一种旨在保护 Web 应用程序和 API 免受各种日益 复杂的网络攻击的安全技术。

一个优秀的基于云的 WAAP 建设方案,可在减少工作量和开销的同时,保护应用程序和 API 免受各 种网络和应用程序层的威胁。从爬虫程序监测和抵御,到 DDoS 防护和自我调整建议,实现自动化和简 单化,一个多维自适应安全引擎可将威胁情报与每个 Web 和 API 请求的数据 / 元数据相关联,从而提 供基于威胁的检测。

3. 网络微隔离

微隔离是一种高效的网络安全策略,适用于数据中心虚拟化、云服务、容器化部署、微服务架构和 大型网络分段等多种场景。它通过创建网络中的细微隔离边界,显著减少攻击面,有效防止攻击者在网 络内部的横向移动,同时提高网络流量的可见性,使安全团队能够快速监测、识别并响应潜在威胁。