如今,上云的企业数量稳步增加。中小型企业更喜欢物理基础设施的经济选择,而大型企业则喜欢充分利用云服务的灵活性。然而,现在他们都面临着挑战,尤其是那些刚刚上云的企业。他们还不熟悉云上业务的运行模式,以及与纯本地系统的区别。云设置通常涉及不止一个设施,通常与物理数据中心相结合。因此,这种挑战将延伸到安全层面。当云安全部署不足或配置参数不熟悉时,会存在很多风险。许多因素都可能导致工作负载和应用程序暴露在网络攻击之下,包括错误配置、技术的合理使用、操作经验和云系统保护,甚至一些开发人员和云工程师的风险无知。构成云系统的元素以多种方式交织在一起,使得潜在的攻击媒介难以追踪。对于刚刚开始使用云平台和服务的IT安全人员来说,安全的任务是非常艰巨的。无论是云平台还是云服务,事实证明,错误配置一直是云安全的主要隐患之一,它还会影响订阅云服务的企业和托管在云上的软件用户。全球可写的AmazonS3BucketsAWS现在凭借其广泛的产品成为云行业的主要参与者。在AWS稳定的产品中,AmazonS3可能是最受欢迎的,Netflix、Reddit和Pinterest等公司都在使用它的基础设施。我们在研究AmazonS3存储桶时看到的一个一致趋势是,许多组织将它们置于全局可写状态,这是一种允许未经授权的用户写入存储桶的错误配置。一个著名的例子是《洛杉矶时报》,它之前配置了一个网络控制列表(ACL),允许公众将访问路径写入托管在其一个凶杀案报告网站上的存储桶。攻击者可以在JavaScript代码中注入加密矿工。遥测数据还显示,针对一些全局可写存储桶网站的攻击大多发生在2019年,还涉及一些恶意代码注入攻击,最终以网站表单的形式提取数据。我们遇到的另一个问题是存储在AmazonS3存储桶中的恶意文件的分类。大多数恶意文件使用旧的路径寻址方案。这意味着存储桶使用通用的AmazonS3主机名,而不是虚拟存储方案,其中存储桶的名称包含在主机名中。这会给安全过滤器带来问题,因为阻止使用路径方案的恶意网站的主机名也会阻止其他非恶意网站。云上可用的第二大服务是计算,这些服务目前主要集中在容器技术上。与一般的云部分一样,容器在过去几年中的采用率很高。Docker、Kubernetes和AWSLambda等软件推动了容器技术的发展,为寻求简化开发操作的企业提供了轻便高效的云部署。但是,错误配置或错误很常见,这些配置错误的系统有受到攻击的风险。1.Docker交付越来越多的加密货币挖矿一直困扰着Docker用户,这也是由于Docker容器在网络上的暴露。由于自动缩放云部署的CPU使用率很高,挖矿会严重影响用户的计算机并造成金钱损失。攻击者有多种技术可以将挖掘代码注入未加密的Docker服务器。最简单的方法是直接在包含代码的映像中安装加密矿工。另一种方法是使用像Ubuntu这样的通用基础镜像在引导过程中安装挖矿软件。2.AWSLambdaAWSLambdas是一个无服务器事件驱动平台,无需设置使用模式,即可为应用程序提供轻量级且经济高效的解决方案。一个常见的误解是Lambda受白帽保护,无法直接检索函数名称。这种误解通常会导致在没有适当身份验证的情况下执行功能。但是,攻击者可以使用多种方法找到Lambda,例如使用嗅探器监听网络流量,或者通过检查Lambda使用和运行的API网关站点的源代码。如果没有安全的Lambda身份验证,敏感信息就有暴露的风险。此外,由于开发人员的编码方式,许多基于Python的Lambda函数在给定不正确的参数时会打印堆栈跟踪,这可能导致攻击者学习Lambda配置的基础知识。3.KubernetesKubernetes是一个用于管理容器工作负载的开源容器编排平台。我们使用Shodan发现2019年1月网络上暴露了32,000台Kubernetes服务器。与其他错误配置示例一样,恶意行为者可以利用网络获得对Kubernetes服务或其任何组件的公共访问权限。(1)KubeletesKubernetes使用其Kubeletes子组件的API来管理各个节点中的容器。在1.10之前的旧版本Kubernetes中,Kubelet暴露了数据端口10255和控制端口10250,这两个端口都可以被利用。控制端口的滥用更为明显,例如用于安装加密货币挖矿软件,10255端口可能包含潜在的敏感信息。(2)etcdEtcd是一个分布式和复制的键值存储,作为Kubernetes的主要数据存储。它负责存储Kubernetes安装配置,并为服务发现提供存储后端。除了Kubernetes,CoreDNS和Rook等其他应用程序也使用etcd。公开暴露的etcd如果用作数据存储,可能会泄露敏感数据,包括服务器和应用程序的凭据。使用Shodan,我们发现超过2,400个暴露的etcd服务器包含Kubernetes和其他软件的组合。管理不善的凭据虽然经常被忽视,但凭据使用是云计算最重要的方面之一。由于企业无法像在数据中心那样在物理上保护云系统,因此对凭证安全的需求变得更大。保护凭据的一项挑战是,许多流程通常需要访问身份验证数据和其他资源,这意味着用户需要保护数据和凭据免遭泄露。程序员常犯的一个错误是他们无意中泄露了GitHub等公共存储库中的凭证信息。API密钥等敏感数据有时会出现在在线发布的代码片段中,攻击者随后可以使用这些数据接管凭据所使用的帐户,然后再进行犯罪活动,例如窃取客户数据、在暗网上出售这些数据。我们发现的另一个问题是,许多没有经验的程序员经常遵循错误的云教程,其中许多教程鼓励在代码本身中硬编码凭据。如果将代码发布到任何人都可以访问的存储库,这就会成为一个问题。随着云服务采用率的增长,企业需要充分了解他们面临的威胁,并做好适当的准备来保护他们的云系统。如果没有可靠的安全实施措施,就无法实现云技术的优势。本文分析的威胁并未涵盖云中的所有潜在威胁和风险,包括一些最重要的威胁和风险。这对于需要了解云结构及其保护策略的IT和安全人员来说尤为重要。
