深度详解:如何安全地使用公有云

admin 2022年11月9日21:58:54评论38 views字数 28616阅读95分23秒阅读模式

关注我们

带你读懂网络安全

深度详解:如何安全地使用公有云

前言

说起公有云安全,大家总是会想到Antiddos,waf,主机安全,态势感知这些安全软件或服务。这些东西是重要的安全能力,但对公有云来说,仅看到这些,是非常不全面的。公有云作为一种替代传统IDC网络的基础设施,在设计之初,就对安全有了充分的考虑,并对主要功能做了完整的实现。租户可以基于这些实现,云设计,配置自己的网络和应用,以满足安全要求和基础防护,这些是云安全的基础。

云上应用的设计,需要重点考虑权限管理及访问控制,严格的网络隔离,数据的生命周期安全,安全检测与响应,安全合规等。这些设计,要充分参考和使用云厂商提供的基础能力,并结合自身要求及成本要求,形成完整的安全方案,并能够持续检查。

本文基上以上考虑,介绍云厂商提供的安全能力和使用方法。

注:相关功能各个云在方案上大体一致,若无特殊说明,本文以华为云为例。

第一章 安全责任共担模型

传统的机房,网络,硬件,软件都归一个组织所有,所以安全责任非常清晰。但到了公有云环境,部分基础设施由云提供商(CSP)掌握,部分虚拟机,操作系统,应用由客户掌握,如何分工及配合,保持安全无缝连接,显得尤为重要。

为了解决这个问题,AWS首先制定并发布了责任共担模型(Shared Security Responsibility Model),用于明确云厂商和客户之间的责任分工,之后,各云厂商均发布发相关的策略,并且随时时间推进,策略也在不停进化。

1.1 AWS模型定义 

深度详解:如何安全地使用公有云AWS IaaS安全责任共担模型

AWS 负责“云本身的安全” – -AWS 负责保护运行所有 AWS 云服务的基础设施。该基础实施由运行 AWS 云服务的机房、硬件、软件、网络和设备、底层软件等组成。简单地说,在VM及虚拟网络以下,安全责任由AWS负责。

客户负责“云内部的安全” – 客户责任由客户所选的 AWS 云服务确定。这决定了客户在履行安全责任时必须完成的配置工作量。

对上图的进一步解读,由上至下:Customer Data,客户的数据,责任人完全在客户。AWS提供了存储能力,比如S3,S3提供访问控制,加密,异地复制等能力,具体采取什么手段和措施,由客户根据自己的需要来实施,并负担相应的成本。

Platform,Applications,是指客户的平台和应用,这些运行于AWS之上,可以应用AWS提供的能力,但结果完全由客户负责。

 Identity & Access Management(IAM)。可以认为IAM分成两类,一个是AWS提供的IAM,这是一个完整的身份管理系统,但AWS只提供了系统,基于该系统的配置及信息维护,由客户完全负责。另外,IAM提供了对接外部IAM的能力,比如AD域控,以更适合企业的管理模式,此类能力,也完全由客户配置和负责。(IAM对云非常重要,后边会专题讲)

Operating Systems。AWS的Amazon Elastic Compute Cloud (Amazon EC2)提供了虚拟机及根据客户需求安装的操作系统,但操作系统的安全,包括帐号管理,补丁,安全加固等相关工作,需要客户自己完成。

Network & Firewall Configration。AWS 提供了虚拟网络及其之上的VPC,子网,ACL,安全组等,客户需要准确设计配置自己的网络,以确保正确的隔离和防护。AWS还提供相关自营或第三方安全服务,如防火墙,IDS,主机安全等,均由客户自行选择配置。

Client Side Data Encrytption & Data integrity Authtication 客户端数据,在云外,客户自己处理。

Server Side Encryption (File system and/or data) 服务端的数据(一般指ECS或裸金属类服务器内,包含硬盘和文件系统),需要加密,可以采用AWS的加密方案(内置提供,需要配置),或其它三方的加密方案(比如,Bitlock),由客户按需求处理。

Network Traffic Protection (Encryption,integrity,Identity) AWS给客户提供的网络默认不加密,与普通企业的网络基本一致,客户如果需要加密,完整性保护等,需要自己实现相关功能。

简单总结,责任共担模型暗含一个基本规则,那就是权限在谁手上,安全责任在谁手上。比如:在ECS上安装一个mysql数据库,从操作系统,到mysql的所有权限,都在客户手上,那么所有的安全责任也在客户手上。如果申请一个RDS的mysql数据库服务,则操作系统的权限在云厂商手上,相关的安全责任由云厂商负责,客户只负责mysql内部的权限管理和配置基本就可以。

这个规则比较合理,所以,安全责任模型已经被各云厂商和客户接受。

1.2 华为云安全责任模型深度详解:如何安全地使用公有云

上图可以看出,在华为云的责任模型里,租户数据的安全同样由租户负责,平台安全和应用安全则非常强调租户的定制配置,本质上,和AWS的模型是一致的。

参考链接 https://www.huaweicloud.com/securecenter/compliance/shared-responsibility-model.html

1.3 Azure安全责任模型

深度详解:如何安全地使用公有云

Azure的模型强调的共同的部分,尤其是PaaS的部分比较多,包括Network controls,Applications和Identity and directory infrastructure。这些部分有个共同的特征,是微软开发,客户配置,配置依赖于具体的实现,所以可以这么理解,安全配置的责任仍然是客户的,但相关功能出问题,也可能是微软的问题,双方共同责任。

参考链接 https://docs.microsoft.com/zh-cn/azure/security/fundamentals/shared-responsibility

第二章 IAM

无论哪个组织,哪个系统,权限管理都是个极其挑战的问题。统一身份认证(Identity and Access Management,简称IAM)是云提供权限管理的基础服务,可以帮助您安全地控制云服务和资源的访问权限。

IAM通过对用户,用户组,策略等相关资源的管理,可以使租户完整的控制对云资源的访问,包括谁(主体)在特定条件下(Attribution) 对某资源(客体)的访问是否被允许(Action)。IAM是云的最基本组件,是云上权限管理的基础,公有云基本都实现了基于RBAC或ABAC的访问控制,并支持第三方IAM的扩展。正确理解和配置IAM,是云上安全的前提。 

2.1 常见访问控制模型

在业界,访问控制模型有多种,主要包括DAC,MAC,RBAC,ABAC等。

自主访问控制(Discretionary Access Control,DAC)是一种接入控制服务,通过执行基于系统实体身份及其到系统资源的接入授权。DAC常见于文件系统,LINUX,UNIX、WindowsNT版本的操作系统都提供DAC的支持。在实现上,先对用户鉴权,然后根据控制列表(ACL)决定用户能否访问资源。用户控制权限的修改通常由特权用户或者管理员组实现。DAC最大缺陷就是对权限控制比较分散,比如无法简单地将一组文件设置统一的权限开放给指定的一群用户。主体的权限太大,无意间就可能泄露信息。

强制访问控制(Mandatory Access Control,MAC)在计算机安全领域指一种由操作系统约束的存取控制,目标是限制主体或发起者访问或对对象或目标执行某种操作的能力。在实践中,主体通常是一个进程或线程,对象可能是文件、目录、TCP/UDP端口、共享内存段、I/O设备等。主体和对象各自具有一组安全属性。每当主体尝试访问对象时,都会由操作系统内核强制施行授权规则——检查安全属性并决定是否可进行访问。任何主体对任何物件的任何操作都将根据一组授权规则(也称策略)进行测试,决定操作是否允许。MAC属于强访问控制,很难绕过。象Linux的Selinux就是MAC的典型实现。

DAC和MAC适合小规模的系统,随着用户数的增加,策略管理会越来越复杂。为了提升管理效率和准确性,基于角色的访问控制(Role Based Access Control,RBAC)应运而生。RBAC是一种用于控制用户在公司 IT 系统中能够执行的操作的方法。RBAC的核心是角色(Role),在这个模型中,访问权限是由为每个个体分配角色的人预先隐式定义的,但最终由客体属主在确定角色权限时明确。一个角色拥有一个权限组,可以执行一定操作。新增或改变一个成员,只需要将其赋予某一个角色就行。比如,财务部员工都有A B C三个权限,先把ABC的权限赋予给一个角色(财务部普通员工),这时候财务部增加一个员工,只需要将这个员工分配为财务部普通员工的角色,即自动拥有ABC三个权限。如果要让财务部普通员工增加或减少权限,只需要在角色中增加或减少权限,即自动应用到财务部所有普通员工上,非常高效和准确。

但RBAC仍然有局限性,一是随着组织的增大,角色越来越多,会越来越难管理。另外,随着技术的发展,我们需要更灵活的管理方式。比如,有些权限只能在公司用,远程接入公司不能用,或者有些权限只能在上班时间用,下班时间不能用等等,这些在传统的RBAC模型里无法实现,为了应对这种更灵活的需求,基于属性的访问控制开始发展。

2014年,Nist 800-162(Guide to Attribute Based Access Control (ABAC) Definition and Considerations )正式发布,对ABAC做出了准确的定义和描述。

ABAC 是一种逻辑访问控制方法,其中执行一组操作的授权是通过评估与主体、客体、请求的操作相关的属性来确定的,在某些情况下,对于给定的一组属性,还根据描述允许操作的策略、规则或关系来评估环境条件是否允许访问。(ABAC is a logical access control methodology where authorization to perform a set of operations is determined by evaluating attributes associated with the subject, object, requested operations, and, in some cases, environment conditions against policy, rules, or relationships that describe the allowable operations for a given set of attributes. ) 

属性是主体、客体或环境条件的特征。属性信息以“名称-值”对的形式定义。

一个典型ABAC的系统如下图  

深度详解:如何安全地使用公有云

说明:图中Subject 是主体,Object是客体,ABAC Access Control Mechanism(ACM)是策略控制机制,Access Control Policy(ACP)是预定义策略,Environment,Subject,Object均有属性特征,可用于ACM的判断。对于主体对客体的每一次访问要求,ACM是根据预定义策略(ACP)和主体属性、客体属性,环境属性综合判断,该访问是否允许。

在ABAC中,策略定义及策略执行可以根据主体属性,客体属性,环境条件等要素。显然,这种定义和实现非常灵活。如果把角色(Role)也作为主体属性之一的话,可以认为,ABAC对RBAC是有兼容能力的,ABAC是对RBAC的扩展。

简单举个例子,RBAC是有权限就可以执行,没权限就拒绝。但在ABAC中,每一次允许或拒绝是根据一系列的条件来决定的,比如,公司内部办公可以访问绝密级文件,但远程办公可以访问机密级文件。财务部的员工可以访问财务部的绝密级文件,行政部的员工可以访问财务部的机密文件。上述内容可以定义为策略,按这个策略,行政部的员工无论什么条件下无法访问财务部的绝密文件,财务部的员工在公司内工作可以访问绝密级文件,但如果居家办公,远程访问则只能查阅机密级文件。以上规则的定义远比RBAC在灵活得多。

目前看, 各云厂商基本采用以RBAC为主体,可以添加访问控制条件的策略方式,可以认为是ABAC的访问控制模型。

2.2 IAM功能介绍

访问控制模型是比较抽象的概念,在一个访问控制系统实现的时候,一般通过4A(帐号 Account,授权Authorization,鉴权Authentication,审计Audit)的形式呈现,我们从这四个纬度展开分析IAM。

2.2.1 帐号(Account)

当您首次使用华为云时注册的帐号,该帐号是您的华为云资源归属、资源使用计费的主体,对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。帐号统一接收所有IAM用户进行资源操作时产生的费用账单。

帐号不能在IAM中修改和删除,您可以在帐号中心修改帐号信息,如果您需要删除帐号,可以在帐号中心进行注销。帐号相当于超级管理,且兼具计费能力,一般应避免在业务中使用。

帐号在登录后,右上角的帐号信息中可以找到 

深度详解:如何安全地使用公有云

IAM用户(IAM Users)

由帐号在IAM中创建的用户,是云服务的使用人员,具有独立的身份凭证(密码和访问密钥),根据帐号授予的权限使用资源。这个相当于RBAC中的用户。用户组则相当于RBAC里的Role。

IAM用户和用户组可以从IAM服务中找到。在控制台选IAM服务: 

深度详解:如何安全地使用公有云

IAM 用户组(IAM Group)

用户组是用户的集合,IAM可以通过用户组功能实现用户的授权。您创建的IAM用户,加入特定用户组后,将具备对应用户组的权限。当某个用户加入多个用户组时,此用户同时拥有多个用户组的权限,即多个用户组权限的全集。(若多个组有权限冲突,以最先执行到的策略为准),这个相当于RBAC中的角色。 

深度详解:如何安全地使用公有云

身份凭证

身份凭证是识别用户身份的依据,您通过控制台或者API访问华为云时,需要使用身份凭证来通过系统的鉴权认证。身份凭证包括密码和访问密钥,您可以在IAM中管理自己以及帐号中IAM用户的身份凭证。密码:常见的身份凭证,密码可以用来登录控制台,还可以调用API接口。访问密钥:即AK/SK(Access Key ID/Secret Access Key),调用API接口的身份凭证,不能登录控制台。访问密钥中具有验证身份的签名,通过加密签名验证可以确保机密性、完整性和请求双方身份的正确性。

2.2.2 授权Authorization

权限

权限是由策略定义的。策略是IAM提供的一种细粒度授权的能力,可以精确到具体操作、资源、条件等。使用基于策略的授权是一种更加灵活地授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对ECS服务,管理员能够控制IAM用户仅能对某一类(批)云服务器的资源进行指定的管理操作。策略包含系统策略和自定义策略。云服务在根据客户需求及常见使用方式,为方便客户使用,在IAM预置了常用授权项,称为系统策略。如果系统策略无法满足授权要求,管理员可以根据各服务支持的授权项,创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制,自定义策略是对系统策略的扩展和补充。目前基本都支持可视化视图、JSON视图两种自定义策略配置方式。

以OBS为例,IAM预置了四种系统权限:

深度详解:如何安全地使用公有云

在obsAdmin用户组中编辑权限,增加上图中OBS Administrator权限,由该组用户即拥有OBS的完整控制权限。将userA加入到obsAdmin用户组中,则userA具备OBS的完整控制权限。

同理,可以将OBSReadOnlyAccess权限加入到obsMonitor用户组中,把userB加入到obsMonitor用户组中,则userB只拥有OBS查看的相关权限。

细粒度授权

上述授权是对所有对象的操作,且操作内容均已定义好,如果需要更精细的权限管理,可以选择自定义策略,自定义策略可以实现更细粒度授权。

在IAM中选择权限管理—权限—创建自定义策略,可以从资源(某个桶),权限(Action), 允许/拒绝,请求条件等来定义一条策略。

比如,我们允许某一个用户只能在桶上路径/userpost有上传权限,可以只选择上传权限(object.PutObject),并指定资源 OBS:*.*:object:/userpost。这个策略不限制哪个桶,只限制桶下的目录。 

深度详解:如何安全地使用公有云

深度详解:如何安全地使用公有云

如果需要增加更多属性限制,可以在特定条件中添加。用策略文件可以表示如下

深度详解:如何安全地使用公有云

上述策略保存,然后赋予某些组或用户,就可以实现权限控制。

由于可见,ABAC实现的细粒度权限管理非常灵活。

2.2.3 鉴权Authentication

IAM的策略解析,鉴权的过程均由其内部实现,租户不需要干预。

需要了解的是,基于API的鉴权方法。

2.2.3.1 API鉴权的使用

相对传统数据中心部署,云的最大优点是自动化能力,所有的操作不仅可以通过console实现,还可以通过API实现自动化。比如创建删除虚拟机,网络,OBS桶等,console上几乎所有操作,都可以编程实现。以创建ECS为例,可以通过CreateServers实现。

详见 https://console.huaweicloud.com/apiexplorer/#/apidoc/ECS/CreateServers

其简单的go 代码如下:

package main
import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" ecs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/region")
func main() { ak := "<YOUR AK>" sk := "<YOUR SK>"
auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build()
client := ecs.NewEcsClient( ecs.EcsClientBuilder(). WithRegion(region.ValueOf("cn-east-3")). WithCredential(auth). Build())
request := &model.CreateServersRequest{} request.Body = &model.CreateServersRequestBody{ } response, err := client.CreateServers(request) if err == nil { fmt.Printf("%+vn", response) } else { fmt.Println(err) }}

其中,   

auth := basic.NewCredentialsBuilder().        WithAk(ak).        WithSk(sk).        Build()

即实现了鉴权过程。鉴权还支持用户名/密码取token的方式,但推荐还是AK/SK的方式。AK/SK可以在 控制台--我的凭据 中下载。

从上述代码可以看到,AK/SK会出现在代码中,或者配置文件中,无论哪种方式,都非常容易泄露,事实上也发生过多次AK/SK在github等网站上泄露的问题。AK/SK的泄露相当于密码的泄露,如果有人拿到,可以用来做任何该AK/SK权限内的事情,是云安全的TOP风险之一。

解决这个问题有两个办法:

1. AK/SK定期轮转。密码类凭据丢失问题,解决的最好的办法是快速轮转,让密码在尽可能短的时间内失效,这样,即使丢失,造成的损失也会尽可能的小。Ak/sk的轮转可以通过api来实现。

CreatePermanentAccessKey可以创建一个新的AK/SK. DeletePermanentAccessKey则可以删除一组AK/SK。UpdatePermanentAccessKey则可以让一组ak/sk失效或重新生效。

详情及代码可以参见 

https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=CreatePermanentAccessKey

2.使用临时凭据

2.2.3.2 使用ECS委托获取临时凭据

既然AK/SK容易丢失,且轮转是解决问题的办法,那有没有更好的办法来确保安全?答案是使用ECS委托获得临时凭据。

元数据MetaData

云上有一个特殊的IP,169.254.169.254,这个IP全网的ECS都可以访问,并通过这个IP取得本ECS的元数据。比如,如果一个ECS配置弹性IP,直接使用操作系统的命令并不能查到弹性IP的地址,但是可以通过169.254.169.254来获取,方法很简单

curl http://169.254.169.254/latest/meta-data/public-ipv4

返回的就是该ECS的弹性IP。通过这个IP可以查询的元数据有很多,详见

https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html#section7

委托

委托就是将一个用户/帐号(委托方)的部分权限,资源,委托给另一个用户/账号(被委托方),使被委托方可以使用委托方授权范围内,使用委托方的权限,对委托方的资源进行管理。

如果你想把运维外包给第三方服务,使用委托做权限管理是个非常合理的方法。

华为云还提供了一种委托,叫做弹性云服务器(ECS)委托,可以把某个权限直接委托给一台或一组ECS,让ECS直接具备权限,这个方法可以非常好的规避凭据丢失的风险。

它的原理和流程如下:

深度详解:如何安全地使用公有云

深度详解:如何安全地使用公有云

深度详解:如何安全地使用公有云

深度详解:如何安全地使用公有云

然后在ECS里设置使用委托 深度详解:如何安全地使用公有云

授权完成后,可以在虚拟机里查看

curl http://169.254.169.254/openstack/latest/securitykey

会返回AK,SK,Token等相关信息。类似 

深度详解:如何安全地使用公有云

此种方法获得的临时凭据有效期短,需要定期刷新,但丢失风险小,同时免了存盘等相关操作,安全性非常高。

更详细的信息,可以参考 https://support.huaweicloud.com/bestpractice-iam/iam_0511.html

2.2.4 审计 Audit

系统所有的审计信息均保存在云审计服务CTS里。(详见第六章 合规与审计)

2.2.5 常见安全配置

由于公有云的特点,管理员有最高权限,全球随时可访问,导致管理员的密码,访问凭据丢失等带来的风险会非常大,所以,相关安全配置至关重要。基于此,有以下安全建议:

  1. 设置强密码策略,要求密码复杂度。密码最好包括大小写字母,数字等,同时密码长度至少为8,并要求定期修改密码。

  2. 确保管理员帐号启用MFA 。多因素认证是解决密码丢失的好办法,即使密码丢失,有第二验证手段,会有效地防止权限失控。

  3. 管理员帐号禁用 AK/SK 。AK/SK是API权限入口,所有的API操作都不应该使用管理员,应该使用IAM用户并对每种使用API的应用做严格的访问控制。

  4. 创建非管理员权限的 IAM 用户。日常工作应该尽量避免使用管理员帐号,相关的操作建立IAM用户和用户组,以确保权限最小化。

  5. 启用登录保护。IAM可以设置会话超时策略,帐号锁定策略,帐号停用策略,最近登录提示等,相关策略有助于确保登录安全。

以上设置可以在 帐号-安全设置 中设置。

深度详解:如何安全地使用公有云

第三章 虚拟网络

相对传统网络,云上的虚拟网络带来了最大的不同。传统网络一旦设计实施完成,基本固定,改动是个非常挑战的工作,一般需要多级申请,多人审批及操作,灵活性差,但相关的改配风险也小。

云的网络则不同,所有的网络连接,隔离,ACL等,全部通过软件配置完成,非常高效,改变非常容易,管理难度大。比如,可能某个人有意或无意创建一个虚拟机,带上一个弹性IP,网络就产生了一个对外的接口,导致攻击面的改变。所以,正确设计、配置、使用及持续监控网络变化,对云网络是非常挑战的问题。

3.1 主要概念介绍

Region(区域)

从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region,比如北京一,就是一个通用Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region,比如,金融Region等。

AZ(Availability Zone 可用区)

个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。AZ内的连接时延很低。

VPC (Virtual Private Cloud)虚拟私有云

用户在华为云上申请的隔离的、私密的虚拟网络环境。用户可以基于VPC构建独立的云上网络空间,配合弹性公网IP、云连接、云专线等服务实现与Internet、云内私网、跨云私网互通。一个VPC相当于一个专属网络。

用户在创建虚拟私有云VPC时,需要指定虚拟私有云VPC使用的私网网段。当前虚拟私有云VPC支持的网段有10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24。

VPC的网络容量:每个VPC内实际使用的IP地址建议不超过5000个。超过需要考虑使用多VPC来承载业务。

VPC互通

PC间是隔离性大于连通性:VPC间默认隔离,确实需要互通,在Region内,可以通过VPC Peering互通,跨Region的场景,可以通过云连接(CC)互通。

Subnet 子网

子网是虚拟私有云下管理云资源的网络平面,所有的云资源(例如云服务器、云数据库等)都必须部署在子网内。

子网的网段设置都在VPC的网段之内。

默认情况下,同一个VPC的所有子网内的弹性云服务器均可以进行通信,不同VPC的弹性云服务器不能进行通信。

网间是连通性大于隔离性:子网间默认互通,但可以通过访问权限控制实现隔离。

Security Group 安全组

它是一个逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问控制。安全组创建后,用户可以在安全组中定义各种访问规则,当弹性云服务器加入该安全组后,即受到这些访问规则的保护。系统会为每个用户默认创建一个默认安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的弹性云服务器不用添加规则即可互相访问;

NACL (网络访问控制)

网络NACL是一个子网级别的可选安全层,通过与子网关联的出方向/入方向规则控制出入子网的数据流。

网络ACL与安全组类似,都是安全防护策略,当您想增加额外的安全防护层时,就可以启用网络ACL。安全组对云服务器、云容器、云数据库等实例进行防护,网络ACL对子网进行防护,两者结合起来,可以实现更精细、更复杂的安全访问控制。

以上各部分的关系大体如图所示

深度详解:如何安全地使用公有云

弹性公网IP(Elastic IP,简称EIP)

提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。拥有多种灵活的计费方式,可以满足各种业务场景的需要。

终端节点(VPC Endpoint)

可以在VPC内提供便捷、安全、私密的通道与终端节点服务(华为云服务、用户私有服务)进行连接,该服务使用云内部网络,无需弹性公网IP,提供性能更加强大、更加灵活的网络。典型连接如图:

深度详解:如何安全地使用公有云

连接OBS,用VPC Endpoint是最好选择。

3.2 一个典型的网络架构的策略配置

我们用一个实例看一下相关组件的使用及配置。如下图,假设A企业有一个面向互联网的Web服务,Web服务器由ECS搭建,下边连接Redis和Mysql数据库。该系统同时还有一个测试环境,生产和测试有部分连接的需求。所有的管理通过云堡垒机进行。

深度详解:如何安全地使用公有云

 按上述拓扑,Subnet-生产 主要隔离要求如下:

1)所有的管理通过云堡垒机完成,所以所有节点的22端口只对堡垒机开放。

2)Redis 的6379端口只对Web服务器开放,即SG2只对SG1开放6379端口。

3)Mysql的3306端口只对Web服务器开放,即SG3只对SG1开放3306端口。

4)SG1对互联网开放80端口,其它端口均不开放。

5)禁止测试子网访问生产子网。

按以上要求,SG1的安全组配置如下:(192.168.5.5为云堡垒机的地址)

深度详解:如何安全地使用公有云

SG2的安全组配置如下:

深度详解:如何安全地使用公有云

SG3的配置与SG2类似,可以参考。

禁止测试子网访问生产子网,可以使用NACL策略,在subnet-生产上设置如下: 

深度详解:如何安全地使用公有云

由于ACL按优先级执行,优先级数字越小,执行优先级越高,*为默认规则,优先级最低。以上策略,第一条,拒绝所有测试子网的访问,第二条,允许外部对80端口的访问,第三条,其它全部拒绝。

网络ACL,加上安全组,可以比较完善地完成访问控制的要求。

通过以上配置,攻击面已经基本缩到最小,对外只有一个业务端口,该端口外部可以接WAF和Antiddos,管理控制用堡垒机,有比较好的防护。参考上述方案可以对大部分应用场景做好防护。

注1:192.168.5.5为堡垒机IP地址,可按需要修改。注2:若要限制SG1的80端口只能从ELB访问,则可需要修改上述80端口策略,增加ELB的端口限制,或允许子网网段访问(将ELB创建到Subnet-生产中)。一般情况下web服务需要使用waf防护,需要基于waf要求确定安全组策略。

3.3 跨Region网络连接及云上云下的连接

云连接(Cloud Connect)为用户提供一种能够快速构建跨区域VPC之间以及云上多VPC与云下多数据中心之间的高速、优质、稳定的网络能力,帮助用户打造一张具有企业级规模和通信能力的全球云上网络。

云专线(Direct Connect)用于搭建企业自有计算环境到华为云用户计算环境的高速、稳定、安全的专属通道。您可使用专线接入服务将本地数据中心的计算机与华为云上的云服务器或托管主机实现私网相连,实现安全可靠的混合云部署。

深度详解:如何安全地使用公有云

一个典型的多连接环境如上图,企业IDC通过云专线接入某一个Region的VPC(云专线走运营商网络,需要单独购买,云内各Region可以采用云连接(CC)互通。

云连接可以直接连通VPC的子网,所以,子网的ACL可以在云连接中生效,作为安全控制手段。

云连接的作用类似于路由器,所以在使用云连接前,各VPC规划的IP不能冲突(至少保证要连接的IP段不能冲突)

3.4 对外连接

NAT网关 (NAT Gateway) 可为您提供网络地址转换服务,使用NAT网关可为您节约EIP资源,通过NAT网关还可以实现VPC内云主机与远端私网(外部数据中心或其他VPC)互相访问。

NAT网关分为SNAT和DNAT两个功能。

  • SNAT功能通过绑定弹性公网IP,实现私有IP向公有IP的转换,可实现VPC内跨可用区的多个云主机共享弹性公网IP,安全,高效的访问互联网。

  • DNAT功能绑定弹性公网IP,可通过IP映射或端口映射两种方式,实现VPC内跨可用区的多个云主机共享弹性公网IP,为互联网提供服务。

一般分为公网NAT网关和私网NAT网关两种,功能基本一致,区别是公网NAT网关是很多租户公用的,私网NAT网关是租户独享的。

第四章 数据安全

随着数据作为生产要素的重要性凸显,数据安全的地位不断提升,尤其是随着《数据安全法》的正式颁布,数据安全在国家安全体系中的重要地位得到了进一步明确。

数据安全是安全最核心的内容。所有网络安全,信息安全系统,最终需要保护的最重要的资产是数据。安全里边最重要的技术,加密,及数据安全里边很重要的领域,DLP,都是用来保护数据的。最近几年令业界最为头疼的勒索病毒,针对的是数据。数据泄露造成的损失也非常大。针对数据安全的问题,公有云有相关的设计。

4.1 数据生命周期安全

GB/T37988-2019 信息安全技术数据安全能力成熟度模型 定义了数据生命周期的六个阶段:

  • 数据采集:组织机构内部系统中新产生数据,以及从外部系统收集数据的阶段。

  • 数据传输:数据从一个实体通过网络流动到另一个实体的阶段。

  • 数据存储:数据以任何数字格式进行物理存储或云存储的阶段。

  • 数据处理:组织机构在内部针对数据进行计算、分析、可视化等操作的阶段。

  • 数据交换:组织机构与外部组织机构及个人进行数据交互的阶段。

  • 数据销毁:通过对数据及数据存储介质通过相应的操作手段,使数据彻底消除且无法通过任何手段恢复的过程

同时,对数据生命周期的各阶段也给出了关键处理过程的要求。

深度详解:如何安全地使用公有云

4.2 数据安全治理

数据安全,不仅仅是个技术问题,更重要的是个管理问题,技术与管理结合,形成数据安全治理。

对一个组织来说,数据安全治理是指在组织的数据安全战略的指导下,为确保数据处于有效保护和合法利用的状态,多个部门协作实施的一系列活动集合。包括建立组织数据安全治理团队,制定数据安全相关制度规范,构建数据安全技术体系,建设数据安全人才梯队等。它以保障数据安全、促进开发利用为原则,围绕数据全生命周期构建相应安全体系,需要组织内容利益相关方统一认识,协同工作,平衡数据安全与发展。

数据安全治理的目标是在合规保障及风险管理的前提下,实现数据的开发利用,保障业务的持续健康发展,确保数据安全与业务发展的双向促进。

深度详解:如何安全地使用公有云

可见,数据安全的治理是一个系统的管理过程和技术方案。本文只讨论云上的技术方案部分。

注:以上内容来源于信通院《数据安全治理实践指南1.0》http://www.caict.ac.cn/kxyj/qwfb/ztbg/202107/P020210720377857004616.pdf

4.3 公有云与数据存储相关的服务

4.3.1 EVS(Elastic Volume Service) 云硬盘服务

可以为云服务器提供规格特性丰富、性能优越、安全可靠并且可弹性扩展的块存储服务,可满足不同场景的业务需求,适用于分布式文件系统、开发测试、数据仓库以及高性能计算等应用场景。

简单地说,EVS就是一个可以挂到虚拟机上或服务器上的硬盘,并可根据需要动态扩展。EVS是块存储系统(相当于传统的SAN),不是文件存储系统。有高吞吐量,低时延的特点。并支持自动备份,加密等安全特性。

4.3.2 弹性文件服务(Scalable File Service)

为用户的弹性云服务器(ECS)提供一个完全托管的共享文件存储(相当于传统的NAS)),符合标准文件协议(NFS),能够弹性伸缩至PB规模,具备可扩展的性能,为海量数据、高带宽型应用提供有力支持。

因为有文件系统,SFS支持多节点共享,也支持加密,自动备份等安全功能。

4.3.3 OBS(Object Storage Service)对象存储系统

是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。

对象存储源于AWS,相对传统存储(SAN,NAS),是一种完全不同的存储形式。由于其具备低成本,大容量,共享方便,完整的安全设计,是目前互联网上存储数据量最大的应用。

对象存储服务OBS的基本组成是桶和对象。

对象(Object): OBS中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息的集合体,包括Key、Metadata、Data三部分:

Key:键值,即对象的名称,为经过UTF-8编码的长度大于0且不超过1024的字符序列。一个桶里的每个对象必须拥有唯一的对象键值。

Metadata:元数据,即对象的描述信息,包括系统元数据和用户元数据,这些元数据以键值对(Key-Value)的形式被上传到OBS中。

系统元数据由OBS自动产生,在处理对象数据时使用,包括Date,Content-length,Last-modify,ETag等。

用户元数据由用户在上传对象时指定,是用户自定义的对象描述信息。

Data:数据,即文件的数据内容。

对象的含义非常象一个文件系统里的文件,有名字(键值),有属性(元数据),有内容(数据)。

桶是OBS中存储对象的容器,每个桶都有自己的存储类别、访问权限、所属区域等属性,用户在互联网上通过桶的访问域名来定位桶。一个桶看上去象一个文件系统,可以建立各级目录,可以存储各种对象。

OBS的权限控制

OBS的权限控制分两种,一种是基于IAM的控制策略(见IAM部分的细粒度授权),可以指定用户,用户组,对某些桶做具体的操作控制。另一种是基于资源的访问控制,主要控制直接在OBS上进行,但访问凭据依然用的是IAM的AK/SK,这种一般称为桶策略,可以控制到具体对象:

1)桶策略在桶中创建,可以指定用户,目录,前缀后缀,具体动作,以及附加条件,做出允许或拒绝访问的控制。

深度详解:如何安全地使用公有云

也有Json格式的策略

深度详解:如何安全地使用公有云

 非常类似于IAM的策略控制方法,但由于OBS里有更多的桶和对象数据,而IAM里不具备这些信息,所以这里的控制更加精准。

2)桶ACLs

桶ACL是基于帐号或用户组的桶级访问控制,桶的拥有者可以通过桶ACL授予指定帐号或用户组特定的访问权限。

桶ACL一般用于数据共享,其授权目标为帐号(Account),控制桶可能被哪些用户读或写。

深度详解:如何安全地使用公有云

3)在ACL中内置了两种权限,可以编辑

深度详解:如何安全地使用公有云

其中匿名用户用于无访问控制的数据分享,需要非常注意。一旦打开,就意味着任何人只要知道或扫描到这个桶的地址,就可以随意访问其中的数据。

很多互联网著名的数据泄露事件都是有意或无意打开了这个控制。

OBS的其它安全特性

1.OBS支持桶加密,打开后,桶里的所有对象均为加密保存。

打开的方式非常简单,建桶的时候选择加密就可以

深度详解:如何安全地使用公有云

2.OBS支持传输加密,可以完整支持https.

3.支持临时凭据,API调用更安全。

4.支持多版本和跨区域复制,能够更好地确保数据可用性。

OBS的其它重要特性

OBS支持静态网站托管功能,开启后,静态网页存放于桶中,可以直接对互联网开放访问,并且支持独立域名。该功能还支持CORS和防盗链等功能。

OBS的安全最佳实践,见https://support.huaweicloud.com/bestpractice-obs/obs_05_2100.html

4.3.4 KMS(密钥管理系统)

密钥管理,即密钥管理服务(Key Management Service, KMS),是一种安全、可靠、简单易用的密钥托管服务,帮助您轻松创建和管理密钥,保护密钥的安全。

对于数据加密来说,加解密相对来说是容易的,但密钥管理一直是个比较麻烦的问题,KMS就是解决这个问题的。

KMS通过使用硬件安全模块HSM(Hardware Security Module)保护密钥的安全,所有的用户密钥都由HSM中的根密钥保护,避免密钥泄露。所有的软件保护,都容易被破解,而HSM有完整的硬件保护,相对安全很多。

KMS对密钥的所有操作都会进行访问控制及日志跟踪,提供所有密钥的使用记录,满足审计和合规性要求。

KMS支持小数据量直接加解密。当您有少量数据(例如:口令、证书、电话号码等)需要加解密时,用户可以通过KMS界面使用在线工具加解密数据,或者调用KMS的API接口使用指定的用户主密钥直接加密、解密数据。当前支持不大于4KB的小数据加解密。

当有您有大量数据(例如:照片、视频或者数据库文件等)需要加解密时,用户可采用信封加密方式加解密数据,无需通过网络传输大量数据即可完成数据加解密。

加密过程:

深度详解:如何安全地使用公有云

1.用户需要在KMS中创建一个用户主密钥。一个用户在一个KMS里只需要一个主密钥。

2.用户调用KMS的“create-datakey”接口创建数据加密密钥。用户得到一个明文的数据加密密钥和一个密文的数据加密密钥。其中密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。

3.用户使用明文的数据加密密钥来加密明文文件,生成密文文件。

4.用户将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。

注:按以上流程,如果用户主密钥被删除,则所有密文无法解决。

解密过程:

深度详解:如何安全地使用公有云

1.用户从持久化存储设备或服务中读取密文的数据加密密钥和密文文件。

2.用户调用KMS的“decrypt-datakey”接口,使用对应的用户主密钥(即生成密文的数据加密密钥时所使用的用户主密钥)来解密密文的数据加密密钥,取得明文的数据加密密钥。

若对应的用户主密钥被误删除,会导致解密失败。因此,需要妥善管理好用户主密钥。KMS支持密钥轮换功能,如果要更换密钥,使用密钥轮换功能来替换主密钥。

3.用户使用明文的数据加密密钥来解密密文文件。

4.3.5 专属加密(Dedicated Hardware Security Module,DHSM)

是一种云上数据加密的服务,可处理加解密、签名、验签、产生密钥和密钥安全存储等操作。Dedicated HSM提供经国家密码管理局检测认证的加密硬件,帮助您保护弹性云服务器上数据的安全性与完整性,满足FIPS 140-2安全要求。同时,能够对专属加密实例生成的密钥进行安全可靠的管理,也能使用多种加密算法来对数据进行可靠的加解密运算。

可以理解为一个虚拟的加密机,在某些要求使用加密机的场景,可以直接使用。

Dedicated HSM提供以下功能:

  • 生成、存储、导入、导出和管理加密密钥(包括对称密钥和非对称密钥)。

  • 使用对称和非对称算法加密和解密数据。

  • 使用加密哈希函数计算消息摘要和基于哈希的消息身份验证代码。

  • 对数据进行加密签名(包括代码签名)并验证签名。

  • 以加密方式生成安全随机数据

专属加密一般对国际通用的摘要和对称,非对称加密算法,象SHA256,AES,RSA,及国密的加密算法,象SM1,SM4,SM7,SM2,SM3等,均有较好的支持

金融等行业,对加密机有特定的要求,可以使用专属加密。

4.3.6 数据安全中心服务(Data Security Center,DSC)

华为云DSC是新一代的云化数据安全平台,提供数据分级分类、数据安全风险识别、数据水印溯源和数据静态脱敏等基础数据安全能力,通过数据安全总览整合数据安全生命周期各阶段状态,对外整体呈现云上数据安全态势。

DSC可以直接扫描OBS,EVS,数据库等的数据,并根据定义进行分类,脱敏等处理,是数据安全合规的重要工具。

4.3.7 数据库安全服务

数据库安全服务(Database Security Service,DBSS)是一个智能的数据库安全服务,基于机器学习机制和大数据分析技术,提供数据库审计,SQL注入攻击检测,风险操作识别等功能,保障云上数据库的安全

4.4 数据生命周期与云服务安全的结合

再看一下数据的生命周期 

深度详解:如何安全地使用公有云

在该周期中,采集是个数据开始的动作,销毁意味着生命周期的结束。

对数据安全来说,采集的安全,重要的是设计过程,知道采集到的数据是什么,哪些是敏感数据,哪些是一般数据,最好能直接分级分类,以便在后续的处理过程中采取不同的手段和方法来处理。

数据销毁一般包括数据的擦除和介质的销毁。机械硬盘数据擦除比较著名的标准是美国国防部的DoD 5220 及德国的 VSITR,都要求对硬盘进行多次的写入,包括全0,全1,随机等,以实现硬盘数据的不可恢复。更彻底的方法是介质销毁,包括对硬盘的销磁,对机械硬盘,光盘,SSD的硬盘,使用专用粉碎机进行彻底粉碎。在云服务中,数据擦除和介质销毁均有云服务商完成,个人不需要操作。

但普通租户的数据在删除后,介质有可能被分配到其它应用或租户使用,这时候,理论上有可能被其它租户读到。解决这个问题的办法是加密,数据删除后,只要再删除加密密钥,则数据彻底不可恢复。

数据传输过程中的数据保护,一般通过传输加密来完成。流量需要租户自己加密,或者启用https,对外的传输还可以使用vpn等方案来实现数据加密。

数据存储需要重点解决可用性和保密性的问题。可用性包括备份,异地备份,实时多活等手段。保密性一般包括加密和权限控制。

数据交换则需要控制权限及交换通道的安全。

数据处理在内存中,一般安全手段不是太多,确保处理的机器不被非常控制是关键。另外,有类似联邦学习、多方计算等方法可以使用。

注:云服务商提供的存储方案,包括硬盘加密,OBS加密等,均为透明加解密,即拥有数据读权限的人,自动拥有解密权限,所以,访问控制至关重要。如果要增加更多控制手段,可以采用第三方加密手段。

4.5 典型数据安全网络架构

深度详解:如何安全地使用公有云

 在上图中,EVS,SFS,OBS的数据实现加密,密钥由DEW(KMS)实现管理。

数据库增加数据库安全审计。

同时,相关的数据定期使用DEW扫描,以发现并处理敏感数据,防止数据泄露及敏感数据明文保存,达到基本的数据安全合规要求。

第五章 防护、检测与响应

互联网上的攻击无处不在,随着互联网的发展,网络攻击也随之发展,尤其最近几年,以勒索软件为代表的攻击给重要基础设施,政府组织,企业等都带来了巨大损失。

5.1 常见攻击介绍

针对网络攻击,思科整理的攻击类型主要包括:

恶意软件

“恶意软件”一词用于描述具有险恶意图的软件,包括间谍软件、勒索软件、病毒和蠕虫。恶意软件通常会在用户点击危险链接或邮件附件时通过漏洞侵入网络,而这些链接或附件随后会安装危险的软件。一旦进入系统内部,恶意软件会执行以下操作:

阻止对网络关键组件的访问(勒索软件)安装恶意软件或其他有害软件通过从硬盘驱动器传输数据,隐蔽地获取信息(间谍软件)破坏某些组件并使系统无法运行

网络钓鱼

是一种发送欺诈性通信的行为,此类通信往往貌似发自信誉良好的来源,通常是通过电子邮件发送。其目的是窃取信用卡和登录信息等敏感数据或在受害者的设备上安装恶意软件。网络钓鱼是当今日益常见的网络威胁。

中间人 (MITM) 攻击

也称为窃听攻击,是攻击者将自身插入双方事务中时发生的攻击。攻击者中断流量后,他们会过滤并窃取数据。

MITM 攻击有两个常见入口点:

  1. 在不安全的公共 Wi-Fi 网络中,攻击者可将自身插入访客的设备与网络之间。在不知情的情况下,访客的所有信息都会经由攻击者传输。

  2. 恶意软件侵入设备后,攻击者可以安装软件来处理受害者的所有信息。

拒绝服务攻击

利用大量流量对系统、服务器或网络发动泛洪攻击,使其耗尽资源和带宽,最终导致系统无法满足正当的请求。攻击者还可以利用多台受感染的设备发动此攻击。这种攻击也称为分布式拒绝服务 (DDoS) 攻击。由于僵尸网络大量存在,DDoS攻击非常容易发起,目前仍然是云面临的主要攻击类型。

SQL注入

当攻击者将恶意代码插入使用结构化查询语言 (SQL) 的服务器中并强制服务器透露通常不会透露的信息时,即为 SQL 注入攻击。攻击者只需在易受攻击网站的搜索框中提交恶意代码,即可实施 SQL 注入攻击。

零日漏洞攻击

发生在网络漏洞宣布后但补丁或解决方案还没来得及实施前。攻击者在这段时间内以披露的漏洞为目标发起攻击。零日漏洞威胁检测需要始终保持警惕。

DNS 隧道

利用 DNS 协议在端口 53 上进行非 DNS 流量通信。它通过 DNS 发送 HTTP 和其他协议的流量。使用 DNS 隧道有各种正当的理由。但是,也存在出于恶意原因使用 DNS 隧道 VPN 服务的情况。攻击者可能会利用 DNS 隧道将出站流量伪装成 DNS,隐藏通常通过互联网连接共享的数据。在用于恶意用途时,攻击者操纵 DNS 请求,将数据从受感染系统泄露到攻击者的基础设施。此外,攻击者还将其用于从攻击者基础设施到受感染系统的命令与控制回调。

https://www.cisco.com/c/zh_cn/products/security/common-cyberattacks.html#~types-of-cyber-attacks

这些攻击,在传统网络上发生,也会在云上发生,是主要的威胁形式。但云上的系统除了面对这些攻击以外,还有更多的威胁。

CSA(云安全联盟)每年发布云的TOP 威胁,最新的威胁包括:

1.Insufficient Identity, Credentials, Access, and Key Management (4)
身份,凭据,密钥等管理不足。身份和权限是安全的根本,凭据则是身份的代表。无论何种情况,丢失凭据,权限错误配置,都会带来巨大的安全问题。
2.Insecure Interfaces and APIs (7)
不够安全的接口和API。随着云原生,微服务等的发展,以API为基础的调用无处不在。API安全的关键,一是良好的权限设计,二是严格的参数检查,否则,非常容易被突破。有一些API Gateway的方案对安全有一定的帮助。
3.Misconfiguration and Inadequate Change Control (2)
不合理的配置和变更控制。云的整体架构及实现是通过配置完成的,这意味着实现简单,同时意味着错误也特别容易出现。比如,可能一个不小心的配置,给一个vm加了弹性IP,则网络即向外暴露了一个攻击面。Gartner曾断言,到2025年,云上95%的数据丢失是由错误配置导致的。所以,必须谨慎对待配置及严格控制变更。
4.Lack of Cloud Security Architecture and Strategy (3)
缺乏合理的安全战略和架构设计
5.Insecure Software Development
不安全的软件开发。漏洞大体分成两类,一类是软件代码问题,还有一类是配置问题。漏洞的问题必须通过严格的设计和开发流程、规范来解决。当前非常流行的DevSecOps重点解决的就是软件设计开发的安全问题。
6.Unsecured Third-Party Resources
不安全和三方资源。近一两年来,供应链攻击越来越多,比较著名的就是Solawinds事件,多家政府单位,大型跨国组织,均受到攻击。
7.System Vulnerabilities (8)
系统漏洞,包括0Day和NDay漏洞,是攻击最常用的手段。
8.Accidental Cloud Data Disclosure
意外数据泄露,大部分跟配置有关,有些也跟设计有关。
9.Misconfiguration and Exploitation of Serverless and Container Workloads
对无服务和容器的不合理配置。由于Serverless和容器比较新,且配置复杂,容易出现配置错误。
10.Organized Crime/Hackers/APT (11)
有组织的犯罪,黑客和APT攻击。最难防范的一类攻击,由于攻击方能力强,投入大,绝大部分组织在此类攻击下均不能幸免。西工大遭受美国TAO攻击就属于此类。
11.Cloud Storage Data Exfiltration
云存储数据泄露。近年来,随着OBS的发展,OBS存储大量的数据,同时,互联网可访问,支持编程接口,且ak/sk容易失窃,造成以上的TOP11威胁基于调查产生,所以在分类上有一些重合,比如,3和9都和配置有关,2和5都和软件开发有关。但总体表现出各类问题对云安全的影响,目前在业界比较受到认可。

5.2 公有云常用安全服务

5.2.1 DDoS防护

分布式拒绝服务 (DDoS) 攻击中,攻击者发出海量实际上并不需要的互联网流量,耗尽其目标的资源,造成正常流量无法到达其预定目的地。

DDoS是互联网上最古老的攻击类型之一,但由于目前僵尸网络泛滥,导致发动攻击容易但防护困难,仍然是最难解决的问题之一。

https://www.akamai.com/zh/our-thinking/ddos

据绿盟的统计,2022H1攻击仍然大幅增加

深度详解:如何安全地使用公有云

同时,超过百G的攻击也持续增加,防护越来越困难。

DDoS攻击由于流量大,在对云上的租户发动攻击时,不仅会攻击到该租户,同时可能会导致整个云平台的流量被打满,导致很多租户受影响。所以,各云平台对DDoS攻击一般都有快速响应机制,包括:

1.小流量攻击,一般指小于5Gb/s或10Gb/s,平台一般会自动启动过滤清洗,且免费。
2.对于超过上述范围的攻击,客户需要购买DDoS高防服务,否则IP会被拉入黑洞。一旦IP拉入黑洞,该服务将完全无法访问,攻击实际上达成了效果。
3.DDoS高防服务是指通过高防IP代理源站IP对外提供服务,将恶意攻击流量引流到高防IP清洗,确保重要业务不被攻击中断。可服务于华为云、非华为云及IDC的互联网主机。
4.由于DDoS高防服务,需要将流量引入到三方的高防机房清洗,而三方的高防机房离云服务商自己的机房有一定距离,会产生时延,且需要提前配置,使用有一定不便。
5.针对问题4,目前各家云服务商也开始推本地清洗,即在云的入口进行清洗,好处是不增加时延,但防护的能力一般较高防机房要稍弱。
6.更复杂的情况,可以使用阶梯调度。针对不同的攻击流量使用不同的防护类型。

深度详解:如何安全地使用公有云

5.2.2 WAF 

Web应用防火墙WAF对网站业务流量进行多维度检测和防护,结合深度机器学习智能识别恶意请求特征和防御未知威胁,全面避免网站被黑客恶意攻击和入侵。由于云上web应用众多,WAF是必备的防护手段。

云上的WAF和传统WAF技术原理及能力基本一致,不做过多介绍。

5.3 业界常见的云安全防护系统介绍

云安全是个非常大的领域,除了云厂商提供安全服务以外,很多安全公司也提供云上的安全能力。

2018年,Gartner比较了三个重要的云安全产品分类:CWPP,CSPM,CASB.

CWPP,全称是Cloud Workload Protection Platform,顾名思义,云工作负载安全防护平台。事实上,云工作负载主要就是指虚机和容器,因此CWPP就是虚机和容器的安全防护产品和解决方案,由于同时涉及到主机安全和网络安全,覆盖面很大。

CWPP对云上的工作负载,提供多个维度、全方位的保护能力,Gartner把这种能力分成了8大类别,从上到下,重要程度逐层递增。

深度详解:如何安全地使用公有云

http://blog.nsfocus.net/cloud-cwpp/

目前的情况,很多的主机安全,EDR类,容器类安全方案基本都被归入CWPP的范围。

云安全态势管理 (Cloud Security Posture Management,CSPM) 可有效应对云安全风险和公有云服务配置错误,满足日益增长的企业安全需求。它能够为企业提供风险评估、可视化、事件响应、合规性、监视和 DevOps 集成支持。在现实中,企业通常利用 CSPM 服务检测配置不当的资源;识别云应用和服务中的风险活动和非安全活动;提高可见性,帮助安全管理员鉴别和解决云安全问题。

当定义和运行云环境时,用户通常要配置和维护数千个设置项。随着云成为今天 IT 界的“常态”,云系统的安全和保护正变得越来越复杂。越来越多的配置错误持续发生,常见的配置错误象:

  • 过于宽松的安全访问策略

  • 为非加密存储桶配置开放访问权限

  • 不安全的互联网连接路径

  • 配置不当的虚拟化网络功能

  • 每个实例的特定于应用的设置

这些配置错误,经常会导致比入侵更严重的问题,CSPM持续检查配置是否出现问题,并对安全态势作出评估,是非常重要的云安全工具。

CSPM和CWPP有一个根本的区别,在于CSPM通过API取云里的配置数据,而CWPP则直接在应用的操作系统或容器里获取数据来分析。从CSA的风险来看,CSPM就是针对配置风险来设计的,对配置的持续检查,以排除风险,对云安全极其重要。但目前国内CSPM刚起步,发展尚不理想。国外的checkpoint,Paloalto等公司,则有比较成熟的方案。

云访问安全代理(Cloud Access Security Broker,CASB)是位于云服务消费者和云服务提供商(CSP)之间的内部或基于云的策略实施点,用于监视与云相关的活动,并应用与基于云的资源的使用相关的安全性、合规性和治理规则。CASB允许组织将其应用于本地基础设施的相同类型的控制扩展到云中,并可以组合不同类型的策略实施,例如:

用户凭据身份验证,因此仅向批准的云服务提供访问权限通过加密、令牌化或其他方式保护数据,因此敏感信息不会暴露在云服务或CSP中云服务活动监视,以便记录、标记和分析用户和实体的行为,以了解异常使用模式或受损的凭据数据丢失预防(DLP),因此敏感信息不能离开组织的网络,以及恶意软件检测和修复,使敏感信息无法进入组织的网络。

简单地说,CASB是在SAAS的前边加一个反向代理,对访问实现过滤,以达到安全的目的。

https://jiagoushi.pro/what-casb-cloud-access-security-broker

Gartner的图很形象的反映了三者的关系:

深度详解:如何安全地使用公有云

其中,CSPM负责管理面的安全,CWPP负责数据面的安全,CASB则只负责SaaS服务的安全。

注意,CSPM和CWPP有一些功能名字重合的,比如,都涉及配置管理,合规管理等,但其具体的内涵不太一致。CSPM的配置,重点是通过云平台实现的配置,比如网络配置,IAM配置等,它的数据是从云的API获取的。而CWPP的配置更多是负载(比如虚拟机,容器)等的配置,它的数据是通过agent获取的。CSPM的配置标准大部分来源于云平台的最佳实践,而CWPP的配置标准大部分来源于CIS Benchmark。所以二者是互补关系,而不是冲突关系。所以作为客户,两类产品同时需要,就产生了使用上的麻烦。从实际发展看,CSPM和CWPP有逐步融合的趋势,CNAPP基本就可以看成CWPP+CSPM。

什么是CNAPP?CNAPP是今年新加入Gartner技术成熟度曲线的技术。它是一套用于帮助保障和保护跨开发和生产云原生应用的集成安全和合规功能。

CNAPP集成了多个云原生安全工具和数据源,包括容器扫描、云安全态势管理、基础设施即代码扫描、云基础设施授权管理和运行时云工作负载保护平台。

近年来,CASB的声音相对较弱,主要是随着网络架构的变化,向另一个更广泛的类别延伸,这就是SASE。

安全访问服务边缘简称 SASE,是一种基于云的 IT 模型,它将软件定义的网络与网络安全功能捆绑在一起,并从单一服务提供商交付。“SASE”一词由全球研究和咨询公司 Gartner 在 2019 年提出。

深度详解:如何安全地使用公有云

在SASE里,CASB被定义成一个子集。

https://www.cloudflare.com/zh-cn/learning/access-management/what-is-sase/

5.4 一个典型的完整安全防护系统模型

深度详解:如何安全地使用公有云

模型说明:

1.对外提供业务的接口,需要部署DDoS防护。如果是Web服务,需要部署WAF防护。
2.主机及容器侧,需要部署主机安全类的CWPP。确保配置合规,漏洞及恶意软件能够被及时发现和处理。
3.相关存储的数据需要加密。存储重点数据的部位需要定期扫描,以确保数据安全合规。
4.数据库需要部署数据库安全的相关服务,包括防注入,日志分析等。
5.系统需要开通审计功能。收集所有安全日志,用于大数据分析,以及时发现入侵及其它风险。
6.部署CSPM,实时监控及解决配置风险。

第六章  合规与审计

6.1 什么是合规?

合规是指遵守规则、法律和法规的行为。它适用于国家、行业机构制定的法律和法规要求,也适用于公司内部政策。这些法律法规基本都包括技术和管理的部分。技术和管理都合规,才能算合规。例如,在欧洲设立的机构,或有业务处理欧盟个人数据的主体,均需按GDPR的要求处理个人数据,这些包括技术上的,比如个人数据的识别,加密,脱敏等,也包括管理上的,比如,数据控制者,数据处理者之间需要遵守的协议,相关管理义务等。

合规是安全要求的基础,是一个普遍存在的商业问题,部分原因是越来越多的法规要求公司保持对合规监管要求的全面了解。为了遵守合规标准,组织必须遵守其自身或政府立法规定的要求或法规。

国外常见的法律法规包括PCI-DSS,HIPAA,GDPR,萨班斯等,国内目前最重要的是等保2.0。我们以PCI-DSS和等保2.0做更详细的说明。

6.2 PCI 数据安全标准(PCI DSS)概述

6.2.1 标准简介

PCI DSS 是面向所有存储、处理或传输持卡人数据和/或敏感验证数据的所有实体的全球性安全标准。PCI DSS 为消费者设定了一个基准保护级别,能够帮助减少整个支付系统的欺诈和数据泄露问题。它适用于任何接受或处理支付卡的组织。

PCI DSS 合规涉及 3 项主要内容:

  • 处理来自客户的信用卡数据的准入,即安全地收集和传输具体的敏感支付信息。

  • 安全地存储数据,这在 PCI 标准的 12 个安全域中有所概述,例如加密、持续监控和对支付卡数据的访问进行安全测试。

  • 每年都要验证所需的安全控制措施是否到位,这可以包括表单、问卷、外部漏洞扫描服务及第三方审核。

相关的认证要求分为4级

深度详解:如何安全地使用公有云

最新的安全标准,PCI DSS 版本 3.2.1,包括 12 个安全域,其中300 多个次级要求反映了最佳安全实践方式。

主流的云厂商基本都通过了PCI-DSS的认证,这就表示,需要PCI DSS认证的业务系统可以运行在云上,其基础设施已经满足要求,只需要客户自己的应用系统满足认证要求就可以了,更详细的,12个安全域的要求在云上落地建议:

深度详解:如何安全地使用公有云

更详细的内容可以参考 https://listings.pcisecuritystandards.org/pdfs/chinese_simplified_pci_dss_audit_procedures_v1-1.pdfhttps://www.huaweicloud.com/content/dam/cloudbu-site/archive/china/zh-cn/securecenter/security_doc/HUAWEI_CLOUD_Practical_Guide_for_PCI_DSS_chn_cn.pdf注:PCI-DSS认证比较复杂,一般需要寻找专业机构帮助。

6.3 等保2.0

6.3.1 标准简介

2017年,《中华人民共和国网络安全法》的正式实施,网络安全法明确“国家实行网络安全等级保护制度。”(第21条)、“国家对一旦遭到破坏、丧失功能或者数据泄露,可能严重危害国家安全、国计民生、公共利益的关键信息基础设施,在网络安全等级保护制度的基础上,实行重点保护。”(第31条)。在此要求的基础上,等保从1.0升级到2.0。

等保2.0简单地说,可以分为三部分,包括技术要求,管理要求,测评。其依据的标准体系主要如下:

  • 网络安全等级保护条例(总要求/上位文件)

  • 计算机信息系统安全保护等级划分准则(GB 17859-1999)(上位标准)

  • 网络安全等级保护实施指南(GB/T25058-2020)

  • 网络安全等级保护定级指南(GB/T22240-2020)

  • 网络安全等级保护基本要求(GB/T22239-2019)

  • 网络安全等级保护设计技术要求(GB/T25070-2019)

  • 网络安全等级保护测评要求(GB/T28448-2019)

  • 网络安全等级保护测评过程指南(GB/T28449-2018)

深度详解:如何安全地使用公有云

具体要求说明

深度详解:如何安全地使用公有云

针对云计算,还有一条扩展要求:

1.云计算安全扩展要求是针对云计算平台提出的安全通用要求之外额外需要实现的安全要求。主要内容包括“基础设施的位置”、“虚拟化安全保护”、“镜像和快照保护”、“云计算环境管理”和“云服务商选择”等。

对这一条,等保网有完整的分析,《云计算安全扩展要求测评指标适用性探讨》,其中都是对云平台的要求,部分涉及租户的要求,类似于责任划分模型。详细可参考:云计算安全扩展要求测评指标适用性探讨 (djbh.net)http://www.djbh.net/webdev/web/HomeWebAction.do?p=getGzjb&id=8a81825680dbc18f0181c3c16fb70081

6.3.2 云租户的等保合规指导

按等保2.0的标准,在技术上是从物理安全、通信网络、区域边界、计算环境、管理中心五个部分完整要求的。但在云上,部分设施由云服务商负责,部分功能由云租户负责,所以责任也有区分。其中,物理安全,通信网络及扩展要求,基本由云服务商负责,在认证时可以直接要求云服务商提供相关认证资料。

等保共分五级,从低到高,要求逐步提高。

深度详解:如何安全地使用公有云

我们以二级为例,进行分析,看看如何在云上实现。(详见GBT/22239-2019, 7 第二级安全要求),其它级别也可以参考。

深度详解:如何安全地使用公有云

注:等保2.0不要求100%满足,一般满足到75%即可。

6.4 安全审计

计算机网络安全审计(Audit)是指按照一定的安全策略,利用记录、系统活动和用户活动等信息,检查、审查和检验操作事件的环境及活动,从而发现系统漏洞、入侵行为或改善系统性能的过程。

《中华人民共和国网络安全法》 对审计的要求

第二十一条 国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改:
****
(三)采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月;
****
第五十五条 发生网络安全事件,应当立即启动网络安全事件应急预案,对网络安全事件进行调查和评估,要求网络运营者采取技术措施和其他必要措施,消除安全隐患,防止危害扩大,并及时向社会发布与公众有关的警示信息。

《互联网安全保护技术措施规定》

第七条互联网服务提供者和联网使用单位应当落实以下互联网安全保护技术措施:
****
(三)记录并留存用户登录和退出时间、主叫号码、账号、互联网地址或域名、系统维护日志的技术措施;
****

等保2.0 安全区域边界,安全计算环境,安全管理中心均对审计提出了明确的要求。

PCI DSS等相关安全规范也对审计有明确要求。这些要求,在技术上体现在对审计日志的要求,一般认为,所有对系统产生影响的用户活动、操作指令必须记录日志,记录日志的内容应该包括用户id,时间,事件类型,被访问资源,访问结果等。

对审计日志的访问要有访问控制,应该提供防止非法获取,修改,删除日志的能力。严格的模型称为三权分立模型,三权一般指配置,授权,审计,对应三个角色,系统管理员,安全管理员,安全审计员。所有审计操作应该由安全审计员完成,系统管理员,安全管理员不具备操作审计日志的权力。三个角色对系统的所有修改动作及敏感数据的查询动作等都应该有详细的日志记录。

审计日志应该集中管理,系统应该具备审计日志的分析能力,以便事件调查。将用户所有的操作日志集中记录管理和分析,不仅可以对用户行为进行监控,并且可以通过集中的审计数据进行数据挖掘,以便于事后的安全事故责任的认定。

https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%AE%A1%E8%AE%A1/1986498

6.4.1 云的安全审计及日志管理

云审计服务CTS

一个系统在设计和开发的过程中,应该有完整的审计功能。由于云服务的设计开发均由云厂商来实现,所以,云服务的审计功能也有云厂商来实现。

云厂商一般由一个统一的审计服务来实现的所有服务的审计功能,这就是云审计服务(CTS),它是云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。

云审计服务的功能主要包括:

记录审计日志:支持记录用户通过管理控制台或API接口发起的操作,以及各服务内部自触发的操作。默认一般储存的时间不长。若要合规,需要转储,但默认不转储。

审计日志转储:支持将审计日志周期性的转储至对象存储服务OBS下的桶,转储时会按照服务维度压缩审计日志为事件文件。

事件文件加密:支持在转储过程中使用数据加密服务(Data Encryption Workshop,简称DEW)中的密钥对事件文件进行加密。

审计日志查询:支持在管理控制台短期(未转储)的操作记录按照事件类型、事件来源、资源类型、筛选类型、操作用户和事件级别等多个维度进行组合查询。

打开云审计的页面如图

深度详解:如何安全地使用公有云

其中,事件列表比较简单,就是提供了近期所有事件的列表并支持查询功能

深度详解:如何安全地使用公有云

追踪器有一个默认的system的追踪器,可以获取所有华为云产生的审计事件,并确定转储的OBS桶。

关键操作通知是指如果系统出现特定操作,可以及时发送消息,方便处理处置,比如对RDS的敏感操作直接发送消息。

云日志服务LTS

云日志服务是一个云上的综合性的日志服务基础设施,对日志的收集,查询,分析,归档等做端到端管理,它可以处理云厂商的服务日志,也可以处理客户应用的日志。

深度详解:如何安全地使用公有云

 1.日志收集

CTS支持云服务审计日志的收集,但一般情况下,我们说管理面的日志是审计日志,数据面的日志CTS并不收集。比如ELB的请求日志,云防火墙的阻断日志等。如果需要这些日志,可以在日志接入中配置接收,然后可以对日志进行分析转储。

主机日志。默认操作系统的日志会不停滚动,新的日志覆盖老的日志,以防止硬盘被塞满。如果需要收集主机日志,LTS支持得很好,只要安装agent,配置和收集都很方便。

自研服务的日志,可以通过API或SDK接入,直接实现日志的合规,很方便。

POST https://{接入点IP:8102}/v2/{project_id}/lts/groups/{log_group_id}/streams/{log_stream_id}/tenant/contents
{ "log_time_ns": "1586850540000000000", "contents": [ "Fri Feb 1 07:48:04 UTC 2019 0n", "Sat Apri 18 16:04:04 UTC 2019" ], "labels": { "user_tag": "string" }}

详情可以参考https://support.huaweicloud.com/usermanual-lts/lts_04_0216.html

2.日志分析

LTS支持一些常见的日志分析功能,参见日志管理和仪表盘,同时,日志分析过程,支持告警,可以根据预定义的规则,发送告警消息。 

深度详解:如何安全地使用公有云

其能力基本类似于Elastic Search 和Kibana的组合功能。

3.日志转储和归档

LTS支持将日志转储到OBS,可以满足合规和备份的要求。

同时支持将日志转储到DIS,转到其它服务做进一步的高级分析。

这是完整的LTS应用框架。

深度详解:如何安全地使用公有云

推荐阅读



文章来源:数世咨询

点击下方卡片关注我们,
带你一起读懂网络安全 ↓

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月9日21:58:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   深度详解:如何安全地使用公有云http://cn-sec.com/archives/1392321.html

发表评论

匿名网友 填写信息