电银付app安装教程(dianyinzhifu.com):服务器端请求伪造(SSRF)攻击导致大量科技、工业和媒体组织信息泄露

摘要

服务器端请求伪造(SSRF)是一个Web应用程序破绽,可将攻击者的请求重定向到防火墙后的内部网络或内陆主机。由于使用了元数据API,因此SSRF对云服务构成了特殊的威胁,这些元数据API允许应用程序接见底层云基础架构的信息,例如设置、日志和凭证。原本只能在内陆接见这些元数据API,但SSRF破绽使得这些内容可以从网络举行接见。另外,此类破绽也绕过了容器的沙箱珍爱。可以说,SSRF无疑为内部网络侦查、横向移动甚至是远程代码执行打开了一扇新的大门。

默认情形下,容器中的应用程序可以直接接见其主机上的元数据API,从而实现一种特殊的容器逃逸方式。为了深入探讨这一问题的严重性,Unit 42的研究人员仔细剖析了Jira SSRF破绽(CVE-2019-8451),并研究了该破绽对于6个公有云服务提供商(CSP)的影响。这一破绽也是导致2019年7月Capital One数据泄露的罪魁祸首。

我们的破绽扫描器发现:

1. 跨越7000个公有云中的Jira实例露出在互联网上;

2. 在7000多个Jira实例中,有45%(3152个)未安装CVE-2019-8451的补丁或更新,容易受到此CVE的攻击;

3. 在3152台易受攻击的主机中,有56%(1779台)泄露了云基础架构的元数据。

凭据NVD给出的信息,这个CVE破绽最初是在v7.6中引入的,然则我们发现这个CVE实际上最早影响v4.3的版本(公布于2011年3月),而并非v7.6(2017年11月)。泄露的元数据可以是内部网络设置,也可以是源代码或凭证。受到这一破绽影响的组织包罗科技类、工业类和媒体类的企业。

服务器端请求伪造

服务器端请求伪造(SSRF)是一个Web应用程序破绽,它会将恶意请求重定向到服务器的受限资源。攻击者通过诱骗易受攻击的应用程序,将恶意请求转发到随便域名,包罗内部网络和内陆主机,从而规避了防火墙。SSRF请求的最常见类型是HTTP,但其他有用的统一资源标识符(URI)方案,例如主机文件系统(file:////)、字典服务(dict://)、Redis服务(redis://)都可以实现。只要应用程序支持URI方案,攻击者就可以接见与易受攻击服务器具有信托关系的任何目的。攻击者可以轻松到达目的,而无需举行任何其他身份验证。

SSRF的根本原因在于,Web应用程序需要从另一个域名检索资源来知足请求,然则输入URL未被准确清算,并允许攻击者操作自定义目的地址。在CVE-2019-8451中,容易受到攻击的API /plugins/servlet/gadgets/makeRequest?url=endpoint从服务提供商终端获取数据,以填充到小工具中。服务器确实验证了查询字符串,而且仅允许白名单内的终端。然则,由于JiraWhiteList类中的逻辑错误,参数字符串中的@符号可以绕过白名单验证。因此,发送到http://vulnerablehost.com/plugins/servlet/gadgets/makeRequest?url=http://vulnerablehost.com@http://targethost.com的请求将会重定向到targethost.com。因此,这个逻辑破绽使攻击者可以将HTTP请求发送到易受攻击的服务器可以接见的任何目的。

公有云中的元数据API

险些所有的云服务提供商都市提供一个元数据API,这个API允许VM实例中的历程掌握特定于该VM的信息。元数据服务为应用程序提供了一种简朴的方式,可以领会其运行的环境,并响应地调整设置。元数据API提供了诸如实例ID、映像ID、私有IP、公有IP和网络设置之类的信息。有时,还会在元数据服务中放置VM启动和关闭剧本,以便可以使用差别的设置建立基于统一映像的多个VM实例。一些CSP还允许应用程序将动态数据写入元数据API,并将其用作暂且数据存储。

元数据API只能从VM实例内部接见,纰谬主机外部公然。只管可以将任何私有IP分配给这个API,但大多数公有云服务提供商都使用不能路由的(内陆链接)IP地址169.254.169.254。举例来说,一个历程可以在AWS EC2实例中发出curl下令,以检索与该角色相关联的平安凭证,如下图所示:

curl
http://169.254.169[.]254/latest/meta-data/iam/security-credentia
ls/role-name

默认情形下,任何用户或历程都具有对元数据API的完全接见权限。一个有趣的发现是,即使是容器中的应用程序(例如:Docker、Kubernetes、ECS、EKS),也可以接见主机的元数据API。从容器接见主机元数据的这种场景既利便又危险。一方面,容器中的应用程序可以查询主机元数据API,并使用附加的凭证来接见其他云服务,例如S3和RDS。另一方面,主机元数据APAI建立了一个容器“逃逸路径”,允许容器化的应用程序直接接见敏感的主机元数据。若是容器遭到损坏,攻击者可以行使这个路径来攻击云中的其他主机或其他服务。这样一来,这一功效的潜在风险要高于收益,由于主机可以通过其他方式与容器共享数据,而不会露出元数据。

从元数据API检索凭证:

只管元数据服务永远不会露出到互联网上,然则它可能会被一些懦弱的、面向互联网的应用程序间接露出。SSRF破绽实质上是将元数据服务露出给整个互联网。攻击者可能使用泄露的元数据进一步攻击VPC中的其他主机,甚至接受整个云基础架构。其中,我们列举了一些敏感的元数据,以及这些元数据可能发生的潜在影响。

1. IAM数据:可以用于接见其他云服务,例如S3 Bucket或容器注册表。若是将治理员身份附加到实例,或者为该身份提供了过多的特权,那么攻击者另有可能会乐成攻击整个云基础架构。

2. 用户数据:用户指定的数据可以存储在元数据中。VM启动和关闭剧本通常也放置在用户数据中。这些数据可以泄露VM能够接见的应用程序设置、VM设置以及其他云资源。在剧本中,也经常能找到硬编码的一些凭证。

3. VM映像ID:若是该映像是公然的,那么恶意攻击者就可以检查VM并设计渗透计谋。

4. 网络设置:这部分内容可能会泄露网络信息,例如VM的私有/公用IP、MAC地址、内陆主机名、子网以及VPC。

为了防止滥用元数据API,一些云服务提供商在元数据HTTP请求中需要检查特殊的标头。例如,Azure VM会检查是否存在“Metadata: True”标头,而Google Compute Engine检查“Metadata-Flavor: Google”标头。若是不包罗特定标头,HTTP请求将会被拒绝。标头的强制要求有用阻止了SSRF接见元数据API的破绽,由于攻击者无法控制重定向请求中的标头。下面我们列举了6个云服务提供商的元数据API。

来自差别云服务提供商的元数据API服务:

,

电银付激活码

电银付(dianyinzhifu.com)是官方网上推广平台。在线自动销售电银付激活码、电银付POS机。提供电银付安装教程、电银付使用教程、电银付APP使用教程、电银付APP安装教程、电银付APP下载等技术支持。面对全国推广电银付加盟、电银付大盟主、电银付小盟主业务。

,

* 其中,GCP最先在元数据API V1中强制执行标头要求。

公有云中存在的CVE-2019-8451破绽

为了领会SSRF对公有云的真正影响,我们需要找到一个存在SSRF破绽而且普遍部署在公有云中的应用程序。Jira引起了我们的注重,由于它存在2019年8月发现的SSRF破绽CVE-2019-8451,而且在无需身份验证的情形下就可以行使这个破绽。只管该破绽对应的补丁立刻被公布,但与营业运营慎密相关的Jira软件很少会立刻获得更新。系统治理员往往倾向于延迟应用补丁的时间,以制止营业运营的中止。凭据Shodan的搜索效果显示,现在有约莫25000个Jira实例露出在互联网上。然后,我们选取了Jira部署数目最多的6个云服务提供商举行了研究。我们研究的目的是确定公有云中易受CVE-2019-8451破绽攻击的Jira实例数目、这些Jira实例的可行使情形以及泄露元数据的主机数目。我们针对6个公有云服务提供商找到了7002个Jira实例,下图展示了Jira版本的漫衍情形。

公有云中露出的Jira版本统计:

考虑到CVE-2019-8451首先在v8.4中举行了修复,上图中有80%的Jira实例版本都低于8.4%,若是没有实时举行修复,则这些实例都容易受到攻击。我们的扫描效果显示,在7002个Jira实例中,有3152个(占比45%)实例尚未打补丁,而且确认为是易受攻击的。下图展示了尚未修复破绽的10个主要Jira版本。在3152个易受攻击的Jira实例中,其中有1779个(占比56%)实例泄露了主机的元数据。下面的表格中总结了所有云服务提供商的统计信息。DigitalOcean客户的元数据泄露率最高,达到了93%,其次是Google Cloud客户(80%)、阿里云客户(71%)、AWS客户(68%)和Hetzner客户(21%)。唯一的元数据泄露数目为0的云服务提供商是Microsoft Azure,由于它对元数据API标头的严酷要求有用阻止了所有SSRF请求。只管GCP在最新的元数据API(v1)中强制执行标头要求,然则若是未明确禁用旧版本API终端(v0.1和v1beta1),攻击者就仍然可以使用旧版本API接见到大多数元数据。

容易受到CVE-2019-8451攻击的10个主要Jira版本:

公有云中易受攻击的主机数目和元数据泄露数目:

从上图中,我们还能获得一个分外发现,排名最高的10个Jira版本中,有2个(v7.3.6和v6.3.6)不在Jira公布的易受攻击版本局限之中。凭据Jira和NVD公布的破绽说明,CVE-2019-8451最初是在v7.6中引入,而且在v8.4中修复。然则,我们的扫描效果解释,这一局限之外的许多版本也容易受到攻击。为了找出受破绽影响的真正版本局限,我们检查了导致SSRF的破绽类JiraWhiteList。我们发现,从v4.3最先,这个只有一种方式的简朴Java类就已经存在于Jira中。对旧版本Jira软件的进一步研究解释,该破绽确实影响了早在8年前(2011年3月)公布的v4.3版本。

修复建媾和最佳实践

导致SSRF破绽的根本原因,是缺少适当的输入清算功效。为了从根本上解决问题,开发人员应该在将用户输入传递给应用程序逻辑之前,严酷验证用户输入的花样和模式。对于仅卖力安装和治理Web应用程序的系统治理员,我们提出了一些建议的预防性措施,可以缓解SSRF破绽发生的潜在影响,详细包罗:

1. 域名白名单:大多数应用程序仅需要于少数域名举行通讯,例如数据库和API网关。设置一个允许应用程序举行通讯的域名白名单可能会大大削减攻击者能够攻击的服务数目。

2. 零信托网络:一个应用程序永远不应该仅仅由于它们位于统一个内部网络中,就信托另一个应用程序。若是目的服务需要身份验证,那么SSRF破绽攻击也就无法实现了。认证和授权应该实现在每个应用程序上。

3. Web应用程序防火墙(WAF):WAF可以检测HTTP请求中的异常模式或恶意内容。然则,WAF通常适用于为已知破绽或具有显著模式的攻击(例如:SQL注入、XSS)而建立的规则。0-day破绽可能仍然会绕过WAF。

4. 修复程序和更新:实时修复和更新应用程序,是提防任何破绽的最简朴、最有用方式。然则,这种方式仅限于供应商提供了修复的支持。若是超出支持生命周期的应用程序,可能将不会收到更新。

如上文所述,元数据API也可以由云服务提供商举行充实的珍爱。然则,若是云服务提供商暂时没有接纳珍爱措施,云用户也可以接纳如下预防措施以削减元数据泄露的风险:

1. 启用云服务提供商的数据API珍爱:一些云服务提供商提供可以设置的选项,可以珍爱元数据API。GCP用户可以禁用旧版本的元数据API并强制执行HTTP标头要求。DigitalOcean用户可以在cloud-config剧本中禁用元数据API服务。

2. 阻止元数据IP:可以在VM内部建立防火墙规则,以完全阻止元数据API的IP。还可以建立更为精致的防火墙规则,以仅允许特定的应用程序或用户接见元数据API。

3. 元数据署理:元数据署理和aws-metadata-proxy等开源工具在本机元数据API上方建立一个新层,并为需要接见元数据的应用程序提供粒度控制。

4. 最小特权IAM:IAM角色被附加到VM,以允许VM上的应用程序接见其他云服务。将IAM特权限制为仅应用程序所需的服务是至关重要的。最小特权的做法可以最大限度地削减凭证露出的风险。

总结

就现在而言,SSRF自身可能并不是一个严重的破绽,然则当它与元数据API和云基础架构中的错误设置连系使用时,SSRF就为许多其他攻击前言打开了大门。诸如凭证和网络体系架构之类的敏感元数据可能会泄露,而且可能露出诸如数据库和存储之类的内部服务。在最坏的情形下,整个云基础架构可能会受到威胁。这项研究仅以Jira破绽CVE-2019-8451为例,说明晰SSRF对云基础架构的影响,但另有数百种其他已知SSRF破绽的应用程序都可以在云中行使。我们发现云服务提供商已经最先着手珍爱元数据API,但要完全实行可能还需要一些时间。因此,我们建议系统治理员或云服务用户使用VM系列和Prisma Cloud举行防护,VM系列通过应用程序流量剖析来珍爱云事情负载,Prisma Cloud在公有或私有云环境中提供全栈监控。

发表评论
商标网声明:该文看法仅代表作者自己,与本平台无关。请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

您可能还会对下面的文章感兴趣: