您好,欢迎访问一九零五行业门户网
博尔塔拉行业信息网

云安全:内部共享责任模型

2019/10/16 6:59:07发布5次查看

如今,很多组织遭遇网络攻击,这表明云计算安全是一个复杂的技术和合同问题。
在最近发生的主要云安全事件中,capital one公司的数据泄露事件影响了美国的1亿人和加拿大的600万人。其实并不只有capital one公司遭遇网络攻击,黑客paige a. thompson与此同时窃取了其他三十多家公司、教育机构和其他实体的数tb的数据。
正如这位被指控的网络攻击者在谈到aws配置时所说,“很多组织在其安全方面都做错了。”
那么,只有这一家公司在安全方面严重失误?并不是,这个事件与众不同。首先需要了解一些事情。调查表明,capital one公司的业务在很大程度上依赖亚马逊网络服务(aws)的云计算服务。并且网络攻击是在amazon简单存储服务(s3存储桶)中保存的数据上进行的。但是,由于防火墙配置错误,这次攻击并不是在没有任何安全措施的情况下对s3存储桶进行的攻击。
简而言之,这些违规行为不是因为企业犯下了愚蠢的安全错误,而是因为在维护自身安全方面做得很差。
capital one公司的modsecurity web应用程序防火墙(waf)配置错误使得网络攻击者(前aws员工)能够欺骗防火墙,并将请求转发给关键的aws后端资源。攻击者使用服务器端请求伪造(ssrf)攻击来欺骗防火墙让攻击者进入。
人们今后将会看到更多此类攻击。正如cloudflare公司产品安全团队经理evan johnson所说的那样,“这个问题很常见,并且众所周知,但很难预防,而且aws平台没有任何应对或缓解措施。”
因此,显然很多人可以将一些责任归咎于aws公司的公共云服务。但是,正如所谓的攻击者自己对aws的配置所说的那样,很多公司在这方面做错了。正如gartner公司在调查报告中预测,“其实95%的云安全故障都是客户的错。”
然而有些人(例如参议员ron wyden)却将此次数据泄露的大部分责任推给aws公司,aws公司确实需要为此进行解释,但真正的问题是如果企业的安全措施不佳,就会在遭遇攻击时损失惨重。并且采用的云服务规模越大,损失越大。
正如安全专家brian krebs指出的那样,这一漏洞并不是由先前未知的‘零日’缺陷或内部攻击造成的,而是由使用众所周知的错误进行攻击造成的。
但是,在这一系列安全灾难事件中,谁真正犯了安全错误呢?是云计算提供商还是使用云服务的公司?答案是他们都有责任。
云安全的共享责任模型
客户和云计算提供商各自负责云堆栈的不同部分。这个概念称为共享责任模型(srm)。快速思考此模型的方法是云计算提供商负责云平台的安全性,采用云平台的用户则需要负责在云中的业务安全性。
aws和microsoft azure公司都明确支持此模型。但是,所有公共云都在某种程度上使用它,它是企业目前处理云安全的技术和合同方式的基础。
在最基本的层面上,它意味着企业负责管理程序级别以上的所有内容。其中包括客户操作系统、应用程序软件、云计算实例的防火墙以及传输和空闲时的加密数据。云计算提供商负责主机操作系统、虚拟化层及其设施的物理安全性。
当然在现实世界中,它从未如此简单,人们需要了解一些最新的安全事件。
aws公司表示,“安全与合规是aws与用户之间的共同责任。这种共享模式可以帮助减轻用户的运营负担,因为aws公司可以运行、管理和控制从主机操作系统和虚拟化层到组件的物理安全性的组件,以及服务运营的设施。客户承担操作系统的责任和管理(包括更新和安全补丁),其他相关的应用软件以及aws提供的安全组防火墙的配置。”
对于capital one公司来说,他们没有正确设置防火墙。但是,获得aws身份和访问管理(iam)角色临时凭据变得更容易。有了这些临时凭证,进行服务端请求伪造(ssrf)攻击相对容易。
johnson声称有几种方法可以减少临时凭证的使用。netflix公司还表明,企业可以在aws云平台中发现临时安全凭证的使用。所以aws公司可以更好地锁定防火墙,但是,capital one公司首先设置防火墙。简而言之,这一切都变得相当混乱。
这并不奇怪。正如行业专家指出的那样,将云安全要求视为一种范围。云计算服务客户将适用于其组织的所有监管法规、行业和业务要求(gdpr、pci dss、合同等),其总和等于该组织的所有特定安全要求。这些安全要求将有助于确保数据的机密性、完整性、可用性。
安全要求范围的一端是云计算服务提供商,另一端是采用云计算服务的用户。提供商负责其中一些安全要求,用户对其余部分负责,但都应该满足一些安全要求。云计算服务提供商和采用云服务的用户都有义务保护数据。
但是,在谁负责什么之间划清界限也不容易。没有一种适合所有云平台安全性的解决方案。例如,如果使用软件即服务(saas)办公套件,例如谷歌的gsuite,显然是由谷歌负责而不是由用户负责。如果在平台即服务(paas)上运行自己的应用程序,那么可以同时承担该程序运行的信誉和责任。
如果仔细观察,人们会发现aws公司提供三种不同的共享责任模型(srm)。这些是基础设施服务、容器服务、抽象服务。azure和其他公共云服务商也具有类似的安全策略设置。
基础设施包括计算服务(如ec2)和支持服务,例如弹性块存储(ebs)、自动扩展和虚拟专用网络(vpc)。使用此模型,用户可以像在本地部署或自己的数据中心一样在aws云平台中安装和配置操作系统和平台。除此之外,还可以安装应用程序。最终,用户可以将数据驻留在自己的应用程序中,并由自己进行应用程序管理。
容器服务与docker和类似技术几乎没有关系,这些技术在用户考虑容器时会浮现在脑海中。相反,这些服务通常在单独的amazon ec2或其他基础设施实例上运行,但有时用户不用管理操作系统或平台层。
aws提供托管服务,但用户负责设置和管理网络控制(例如防火墙规则),以及与身份和访问管理(iam)分开管理平台级别身份和访问管理。容器服务的示例包括amazon 关系数据库服务(amazon rds)、amazon 弹性映射还原(amazon emr)和aws elastic beanstalk。
在这里,aws公司管理底层基础设施和基础服务、操作系统和应用程序平台。例如,使用amazon rds aws管理容器的所有层,包括oracle数据库平台。但是,aws平台提供数据备份和恢复工具;用户的工作是维护其业务连续性和灾难恢复政策。还负责数据和防火墙规则。因此,虽然amazon rds提供防火墙软件,但其工作是管理防火墙。
抽象服务是高级存储、数据库和消息传递服务。它们包括amazon 简单存储服务(amazon s3)、amazon dynamodb、amazon simple email service。这些抽象了用户可以构建和运行云应用程序的平台或管理层。可以使用他们的aws api执行此操作。aws公司来管理底层服务组件或操作系统。
在这里,用户的安全工作是使用身份和访问管理(iam)工具管理数据,以便对平台级别的各个资源应用访问控制列表(acl)样式权限,或者在身份和访问管理(iam)用户/组级别应用用户身份或用户责任权限。
以下了解一个简单的例子。亚马逊公司将amazon elastic compute cloud(amazon ec2)归类为基础设施即服务(iaas)云平台。有了它,用户负责管理客户操作系统(包括更新和安全补丁),在实例上安装的任何应用程序软件或实用程序,以及aws每个实例提供的防火墙(也称为安全组)的配置。但是,需要使用amazon s3运行基础设施层、操作系统和平台,客户访问端点以存储和检索数据。用户负责管理其数据(包括加密选项),对其资产进行分类以及使用身份和访问管理(iam)应用适当权限的工具。
了解其重点了吗?这两者都是基础设施即服务(iaas),但它们有不同的规则。
这个故事的寓意是,用户必须仔细研究每一个云计算存储资源管理服务(srm)服务协议。不过,尽管必须准确地了解其使用的每项服务的内容以及谁负责每项服务,但基本概念并不太复杂。云计算提供商负责云平台的安全,而用户负责其云平台业务的安全。
未来的云计算复杂度更高
云原生计算已经混淆了共享责任模型(srm)中的内容。例如,aws公司现在提供aws lambda。这是一种无服务器云计算方法,可让用户在不配置或管理服务器的情况下运行代码。因此,如果没有服务器,那么谁为服务器负责?
亚马逊公司表示,采用lambda,aws公司管理底层基础设施和基础服务、操作系统和应用程序平台。用户负责代码的安全性、敏感数据的存储和可访问性以及身份和访问管理(iam)。
这就留下了问题。例如,既然用户正在使用lambda来运行代码,那么代码的责任在哪里结束,lambda的责任从哪里开始?
正如gadi naor公司首席技术官和全栈云原生安全平台提供商alcide公司联合创始人司所说,“使用无服务器架构意味着组织有新的盲点,只是因为他们不再能够访问架构的操作系统,防止他们在这些工作负载中添加防火墙,基于主机的入侵防护或工作负载保护工具。”
这只是个开始。例如,kuberrnetes正在使混合云同时在多个云平台上运行。那么,如果用户正在运行一个跨越新的基于red hat的ibm云平台和aws的程序,那么谁负责保护整个项目?当出现问题时谁负责?而且,最后但并非最不重要的是,当最终用户起诉时谁来支付费用?
这是一个很好的问题。对于人们正在进入的这个新的复杂云世界,仍然没有很好的答案。
那么,用户可以做些什么?首先,确保了解自己的云安全需求。用户不能选择云计算服务提供商并制定云安全协议,直到知道什么对自己有用。这些不仅仅是技术问题。它们也是需要关注的法律问题。
有了这些信息,用户就可以与云计算提供商制定安全协议。这应该在其服务级别协议中明确规定。
最后,无论合同中有什么内容,用户和其安全人员都必须确保基于云计算的数据和服务尽可能安全。毕竟,这是自己的数据和工作,如果出了问题,将需要承担不可推托的责任。

【博尔塔拉行业信息网】