安全合规

更新时间:

安全管理的目的是风险管理,识别企业内部、外部的安全要求和监管诉求,在云环境中针对网络安全、身份安全、主机安全、数据安全等全方位地进行规划和实施,同时持续对威胁进行检测和快速响应。

云安全的责任模型是共担的责任模型,基于云的客户应用,云供应商要保障云平台自身安全并提供相应的安全能力和产品给云上的客户。客户则负责基于云供应商提供的服务或原子化能力构建保障应用系统或业务的安全体系。

image..png

安全设计原则

安全需要设计和规划,应在构建基于云或本地数据中心的同时,建设安全系统和相关控制措施,建立配套安全管理流程和机制,建立安全意识管理体系等。将技术控制措施、管理流程、人员组织配套融入云基础设施的构建、业务开发,应用上线和日常运营当中。

(应用上云规划-应用上云实施-图5)  备份 3..jpeg

整体建议如下:

  • 评估当前企业战略目标和云业务一致性。

  • 通过咨询和风险评估工具的方式评估当前云计算环境下风险的类别,发生的可能性和影响。

  • 评估架构风险,管理风险以及合规风险。

  • 参考方法论建设安全体系,包括参考框架,技术控制措施和运营机制。

  • 建立安全运营体系持续识别风险,推动安全框架的更新迭代和技术控制措施的优化。

通用的安全设计原则有:

  • 最小化原则:安全最小化原则是最基本的原则之一,对外提供的服务越少,安全风险越小。其中包含网络最小化原则、身份最小化原则、权限最小化原则。

  • 审计可追溯原则:尽可能确保所有来自用户端的访问请求留有审计记录,以便于在发生网络攻击事件时,能够通过云资源操作日志、云资源访问日志以及变更日志还原攻击事件,追溯攻击过程,帮助企业判断和定位攻击事件的等级、影响和损失。

  • 数据安全保护原则:企业应结合实际应用和业务特性,有意识的建立数据分类分级制度和体系,通过相关技术控制手段对权限、访问途径进行管理,并保护数据在存储和传输过程中的安全。

  • 合规性原则:企业基于阿里云基础设施构建的业务系统和对外提供的服务,应充分考虑当地的法律法规要求。在安全架构设计过程中,应充分分析和理解法规要求,并标记能够满足法规要求的相关技术控制措施,和管理控制措施。

安全风险识别和检测

安全风险识别和检测包含以下4个维度,通过梳理企业客户上云面临的整体风险,才能有针对性的对安全架构进行建议、检测和建设。

  • 基础架构的风险识别和检测:云上基础架构包含了网络架构和身份体系,要评估和识别当前网络的架构设计方法,是否符合安全最小化原则和纵深防御原则。

  • 云平台配置风险识别和检测:企业使用云产品创建的配置文件是否符合安全原则,需要进行识别和自动化检测,可基于云安全最佳实践和行业合规要求建立符合企业自身的云安全基线(Baseline),通过标准识别和检测上云风险。

  • 资产脆弱性的风险识别和检测:云上的资产可分为工作负载(云服务器ECS、容器、函数)、基础网元(EIP、NAT、SLB等)、应用(PaaS服务、域名、镜像等),面对资产的脆弱性(包含资产基线和资产漏洞)应该进行事前的风险识别和检测,并进行维护。

  • 合规风险的识别:合规包含了外部合规和内部合规。外部合规指的是面向监管的合规,内部合规指的是面向内部审计、管理的合规。

安全防护

账号规划

云账号是最基本的资源管理单元,它是云资源的计量、计费及资源归属的基本主体。云账号不仅是资源的容器,也是资源安全隔离的边界。一个云账号对应了云上的一个租户,租户不能访问相互之间未授权的系统资源。借助该特性,建议遵循最小化原则,按应用、环境等维度设计隔离粒度,并创建单独的云账号,用于区分需要完全隔离的IT环境或系统。在发生安全问题时,能够有效缩小爆炸半径,降低故障影响面。

因此建议在上云初期,就参考阿里云云采用框架CAF(Cloud Adoption Framework)进行体系化的上云规划,搭建LandingZone环境。无论是初次上云还是已经上云的客户,都可以通过阿里云云治理中心(Cloud Governance Center)快速搭建符合阿里云最佳实践的多账号云环境。需要创建单独云账号时,可以通过云治理中心账号工厂的能力快速创建符合账号基线定义的云账号,加快业务交付。

身份和访问控制

在整体的云上安全架构设计中,身份和访问控制是云计算环境下非常重要的安全措施,良好的身份和权限的设计,能够确保只有授权的身份才能够在指定的条件下访问对应的云资源。它涉及到识别用户和身份(身份验证),确定该身份可以访问哪些资源(授权),以及审计相应身份的访问和操作记录(监控和审计)。

身份管理

身份是指在云环境中执行操作的实体。云上主要有两种身份类型:人员身份和程序身份。

人员身份通常代表组织中的个人,比如企业中的安全管理员、运维管理员、应用开发者。通常通过阿里云的控制台、CLI、特定场景下的客户端等方式对云上的资源进行操作。人员身份的管理有以下最佳实践:

  • 避免使用Root身份:在阿里云官网注册阿里云账号后,即可通过用户名和密码的方式登录到阿里云控制台,登录成功后,即获得了Root身份。该身份具有该账号下所有的权限,一旦账号密码泄漏,风险极高。应该尽可能的使用阿里云访问控制RAM(Resource Access Management)身份进行云上资源的访问。

  • 实现人员身份的统一认证:通过集中化的身份提供商(Identity Provider,简称 IdP)来进行人员身份的统一认证,能够简化人员身份的管理,确保组织内在云上、云下的人员身份的一致性。阿里云支持基于 SAML 2.0 协议的单点登录(Single Sign On,简称 SSO)。在阿里云上,我们建议通过云SSO或RAM SSO的方式跟组织内的IdP进行集成,实现人员身份的统一认证。

  • 建立更安全的登录机制:对于人员身份来说,保护好登录凭证(如用户名和密码)能够有效降低身份泄漏风险。可以从以下几种方式提升登录方式的安全性:提升密码强度、避免混用凭证、定期轮转密码、设置多因素验证。

程序身份则代表应用程序或服务,往往是通过阿里云的OpenAPI来访问云上的资源和数据。程序身份的管理有以下最佳实践:

  • 不使用云账号AccessKey:云账号AccessKey等同于阿里云账号的Root权限,一旦泄漏风险极大。对于程序访问的场景,请使用RAM用户的AccessKey来进行阿里云API的调用。

  • 避免共用AccessKey:多种身份共用AccessKey,容易导致权限扩大,同时,一处泄漏会导致所有应用都受到影响,风险敞口扩大。因此,不同应用、不同环境都需要避免共用AccessKey。

  • 定期轮转AccessKey:AccessKey创建和使用时间越长,泄漏的风险越高。通过定期替换旧AccessKey的方式实现轮转。在阿里云上,可以通过阿里云密钥管理服务KMS(Key Management Service)的凭据管家功能,实现自动化的定期AccessKey轮转。

  • 使用临时凭据代替固定凭据:通过给RAM用户或云账号的Root身份创建AccessKey供程序调用,都属于固定凭据类型。在阿里云上,我们建议尽可能通过角色扮演的方式获取临时凭据STS Token,代替固定AccessKey的使用,降低因固定凭据存在周期长导致的泄漏风险。

权限管理

云上的权限管理是为了控制某个身份在什么条件下对哪些资源能够执行哪些操作。云上的权限管理的核心原则就是权限最小化,只给身份授予必要的权限,确保权限最小够用。基于该原则,针对不同的身份类型,在阿里云上有以下最佳实践可以参考。

人员身份的权限管理有以下最佳实践:

  • 基于人员职能进行授权:针对人员所属职能(如管理员、运维、安全等)进行权限划分,并进行权限的抽象,简化授权过程,降低管理成本。在对职能权限进行抽象后,可以通过将人员身份加入到指定职能用户组的方式进行组织,提升授权效率。

  • 按资源范围授权:在云上,建议通过阿里云账号或资源组两种方式,区分不同业务应用的资源。在资源合理分类的基础上,按照人员所管理的业务应用对应的资源范围进行授权,能够简化授权逻辑,提高权限策略复用率,进而在权限最小化和管理效率中取得平衡。

针对程序身份,建议进行精细化授权。除一些特定业务场景外,应用程序所需要访问的阿里云资源,对应进行的操作是可以预期的,尽可能的通过自定义权限策略来定义该程序身份所需要的最小权限。

另外,对于两种身份的权限管理,建议:

  • 定期审查权限:关注特权身份和闲置权限,确保每个身份的权限持续满足最小够用原则。

  • 设置权限边界:多账号场景下,通过管控策略,限制成员账号内的 RAM 身份权限范围,禁用一些高危操作降低身份泄漏风险。

基础设施安全

网络安全保护

网络安全防护中最重要的原则就是零信任。无论是云上和云下,还是VPC与VPC之间,以及VPC内部的流量,都需要设计系统化的安全防护方案。相关的设计建议如下:

  • 合理规划网络分区进行网络隔离。云上的VPC默认是互相隔离的。不同业务、不同环境、不同组件通过VPC进行分区,如数据库往往不需要和公网通信,可以单独放在一个无公网路由的VPC内。

  • 在东西向、南北向进行流量控制。

    • 在东西向(VPC内部、VPC之间)使用安全组、网络ACL(Network Access Control List)、云防火墙(Cloud Firewall)进行流量控制。不受信任的VPC之间,可以通过PrivateLink方式提供服务。

    • 在南北向,使用云防火墙进行流量控制。对于应用暴露公网可访问的端口,建议使用WAF、API Gateway等产品安全暴露服务。使用DDoS防护应对未知的网络攻击。

工作负载安全保护

工作负载相关的安全保护主要是指计算资源的防护。根据工作负载部署的方式(如ECS、容器等),会有不同的防护方案,通用的最佳实践如下:

  • 构建安全的镜像:无论对于ECS,还是容器化的部署方式,都需要关注镜像的安全,尤其是规模化的部署场景。建议通过自动化流水线的方式定期构建黄金镜像(Golden Image),通过云安全中心进行镜像安全的扫描,确保应用运行环境的安全。

  • 配置漏洞防护:针对应用运行环境,通过云安全中心定期进行部署环境漏洞、木马、勒索软件扫描,并进行修复。针对应用本身,在应用上线或变更之前,对代码进行漏洞扫描和修复。

  • 避免人员身份直接接触计算资源:通过自动化流水线、ECS云助手等方式实现自动化运维,降低人工操作失误导致的安全风险。在一些需要人工操作的场景下,建议使用阿里云堡垒机远程运维,设置高危行为自动阻断,并记录操作日志确保能够溯源。

数据安全

云上数据安全,是云用户的生命线,也是云上架构安全整体水位的一个最重要具象表现。数据安全应从以下三个维度入手:

数据分类和识别

在数据创建的源头就需要保障数据的识别和分类分级在第一时间能够完成,这样才能保证后续对云上数据的保护做到有的放矢。其中,第一步是对数据中的敏感信息,如个人验证信息(Personal Identifiable Information,PII),进行发现和检测。第二步是针对数据中的敏感信息,根据用户的使用场景、合规需求和安全要求,对数据进行分类分级。在阿里云上,可以通过数据安全中心DSC(Data Security Center)产品实现对MaxCompute、RDS和OSS中的数据进行识别和分类。

静态数据保护

静态数据保护主要是指数据在存储过程中的安全防护。建议从以下几个方向实施防护:

  • 数据加密:数据存储安全主要通过数据落盘加密进行保障。阿里云上已经有不同的云产品提供了数据存储加密功能,如块存储EBS、对象存储OSS、RDS数据库等。对于有明确的更强加密诉求(如自选密钥、密钥轮转等)的用户,可以基于阿里云密钥管理服务KMS(Key Management Service)实现密钥的管理,并用于数据存储加密。

  • 设置数据访问控制:遵循最小化原则为相应身份设置合适的权限。对人员身份来说,建议尽可能避免直接接触数据。对于程序身份来说,则采用精细化授权的方式来进行合理的访问授权,确保明确定义需要访问的数据范围、所需要的操作以及对应的权限生效条件。对于一些特定的存储场景,如OSS,还可以进行Bucket Policy的设置,进行更精细化的管控。

  • 设置规则确保数据加密:在完成数据加密的配置后,通过配置审计(Cloud Config)规则,来识别未经加密的资源;对于多个云账号的用户,可以设置管控策略(Service Control Policy),在特定场景下实现禁止修改云产品加密配置,禁止使用未经加密磁盘等。

动态数据保护

动态数据保护指的是数据传输和交换过程中的安全保护。

  • 数据传输安全通过数据传输链路加密进行保障。传输加密是指在数据传输过程中,通过如SSL/TLS协议或自行通过密钥加密等方式实现传输过程中的数据加密。阿里云数字证书管理服务(Certificate Management Service),可以在云上签发第三方知名CA证书颁发机构的SSL证书,帮助用户实现其网站HTTPS化,使网站可信,防劫持、防篡改、防监听。阿里云的网关产品(如VPN网关、智能接入网关等)也提供传输链路的加密功能,确保不同的网络域之间的通信链路是加密的。

  • 在跟第三方进行数据交换的过程中,数据脱敏尤为重要。可以使用阿里云数据安全中心DSC(Data Security Center)产品提供的内置脱敏算法或客户自定义的脱敏算法,确保脱敏后的数据保留原有数据特征和分布,确保数据的有效性和可用性。

  • 数据异常访问分析及监控:用户数据的泄露检测,主要体现在对数据的权限控制的完整度和数据使用中的监控和检测能力。如果想要防止数据泄露,首先需要实现对云上存储产品和传输产品权限的有效管控。其次,需要对用户数据的流转和操作过程有全面的监控和检测能力,及时发现数据使用中可能的异常行为。可以使用数据安全中心DSC产品针对数据流转过程中的异常情况进行有效监控和告警,并进行及时处理。

监控和分析

对安全事件进行监控和分析首先需要对云上各个服务、资源等产生的事件进行收集,从安全角度看,同时需要保证日志完整性,不被篡改、不存在未经授权的访问。针对日志收集,有以下最佳实践:

  • 收集所有使用的云服务、资源产生的日志:云服务产生的日志主要有两种,管控平面日志和数据平面日志。管控平面日志主要通过阿里云操作审计(ActionTrail)提供,通过创建日志跟踪,可以将日志投递到指定的OSS存储空间或SLS日志库。针对云产品的数据平面,如VPC流日志、OSS的访问日志等,SLS中提供了日志审计服务,方便的将不同的云产品的日志投递到统一的SLS日志库中。其他产品需要在对应云产品侧单独配置日志投递,如容器服务集群,需要单独为集群开启相应的日志收集和归档。

  • 设置合理的保存时间和存储方式:根据安全要求、合规要求、不同云产品特点,设置合理的日志保存时间。较长的保存时间也意味着更多的成本支出,可以将近期日志保存在SLS方便快速查询,将较远期的日志归档到 OSS,并结合OSS的对象生命周期能力,将更久的日志存储在归档存储中,在满足安全要求的前提下,控制成本。

  • 保护日志完整性:对于云上企业来说,建议通过资源目录构建多账号体系,将日志存储在单独的云账号中进行归档,该云账号不用于日常的其他操作,只用于日志存储。同时仅给必要的人(如安全团队、审计团队)授予该账号的访问权限,严格控制各类身份对于该日志的权限,尤其关注写、删类型的权限。对于存储在OSS中的日志,可以开启合规保留策略,实现“不可删除、不可篡改”方式保存和使用数据。

在日志收集的基础上,接下来需要系统化的构建日志分析能力,并构建相应的指标和告警。最佳实践是将安全事件的发现流程深度集成到工作流系统中,如工单系统或缺陷系统,或者是安全信息与事件系统(SIEM)。在云上,通过SLS可以将存储的事件日志通过HTTPS或Syslog等方式投递到SIEM或第三方的日志分析系统中。接下来根据事件类型、等级进行进一步的响应。

响应和恢复

为了降低安全事件发生后对业务造成的影响,企业应该尽早构建安全应急和响应流程。可以参考业界中已有的标准和建议,如NIST SP 800-61等,结合阿里云上相关的云产品,进行流程的设计与验证。有以下最佳实践建议:

  • 根据不同的安全事件等级设置合适的响应时间目标,明确标准动作。

  • 对数据进行备份:可以参考稳定性支柱中关于数据灾备的建议。

  • 尽可能的使用自动化方式进行响应:安全事件发生后,通过自动化方式能够更快的实现事件的处理,同时降低人为操作导致的失误情况。

  • 使用云产品能力实现自动化响应:利用云上的配置审计产品设置规则并自动化修复。如检测OSS开启公共读后,自动修复为私有模式,提升响应效率。另外,也可以通过阿里云事件总线EventBridge产品,在安全事件触发时,执行运维编排产品中定义的任务,或者函数计算中自定义的代码,实现自动化的响应能力。

  • 定期对安全流程进行演练,确保安全流程中相关干系人都能够明确最新的响应流程以及自身职责。演练结束后,对演练过程进行复盘,寻找改进点。

阿里云也提供了安全管家的应急服务,该服务是依靠阿里巴巴多年的安全攻防实战技术能力和管理经验,参照国家信息安全事件响应处理相关标准,在发生安全事件后,按照预防、情报信息收集、遏制、根除、恢复流程,提供专业的7X24远程紧急响应处理服务,帮助云上用户快速响应和处理信息安全事件并从中恢复业务,同时事后帮助您规划和设计最佳的云上安全管理方案,从根本上遏制安全事件的发生,降低业务影响。