月度归档: 2020年12月

盗链行为与 AWS 防盗链技术

“盗链”是互联网用语。通常指未经源网站允许的情况下,通过超链接引用源网站内容,如图片,视频等。盗链行为会造成受害网站数据泄露以及经济损失。
在现代互联网公司业务中防盗链技术扮演者越来越重要的角色,例如:网站通常会对内容进行防盗链处理,仅仅对特定用户开放,而没有权限的用户即使获得链接地址,也无法访问该链接所指向的内容。本文根据常见盗链方法及其特点,介绍盗链对受害网站与用户造成的危害,以及如何利用AWS服务阻止盗链访问,从而确保网站数据访问安全。

盗链的形式与危害

目前,互联网上常见盗链过程如下图所示:

图1:盗链过程

由上图中可以看出,盗链过程中,盗链网站自身不提供全部网页所需内容。部分网页内容来自受害网站。在以上过程中,受害网站实际承载盗链网站的部分业务流量和压力,而盗链网站则盗取该部分数据流量和计算资源甚至客户流量用以支撑自己的业务。受害网站则需要承担被盗取流量和计算资源所带来的运营成本,从而造成受害网站的经济损失。

同时,由于盗链的过程具有隐秘性,最终用户往往难以及时察觉盗链行为,在一些场景下盗链甚至会造成最终用户经济损失。

基于Referer的防盗链解决方案

根据HTTP标头决定是否允许访问

HTTP协议规范在HTTP标头中定义了referer字段(见RFC 1945RFC 7231),用于表示HTTP请求来源。该字段值由浏览器在发起HTTP请求时指定。该字段值代表当前HTTP请求的来源,例如在点击网页链接时,浏览器会向服务器提交一个HTTP请求,请求中HTTP标头的referer字段值为引用该资源的网页地址,即用户点击的网页地址。

以下即为从https://aws.amazon.com/cn/点击链接跳转到其他页面时,HTTP标头内容。注意其中referer字段:

Accept: */*

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN

Host: a0.awsstatic.com

If-Modified-Since: Wed, 02 Sep 2020 15:58:15 GMT

If-None-Match: “b9ec147e4cfd12659b26c5df5a97f68c”

Referer: https://aws.amazon.com/cn/

表1:HTTP请求标头referer字段示例

通过对HTTP标头中referer字段内容跟进行判断,可以判定请求是正常用户发起的请求还是来自盗链网站。

利用AWS服务实现referer检查

  • 方案一:通过WAF实现referer检查

WAF是由AWS提供的应用防火墙功能。WAF配合CloudFront,ALB或API Gateway使用,支持通过访问控制列表对Web请求进行过滤,从而实现拒绝盗链请求的功能。

WAF相当于在CloudFront,ALB或API Gateway前部署一套防火墙,其架构如下图所示:

图2:WAF部署架构

部署WAF时,首先创建一个ACL用于检查referer字段。在服务中搜索WAF,并选择“WAF & Shield”。

在打开的页面中点击“Create web ACL”按钮

图3:创建ACL

在打开的页面中输入ACL名称,本例中使用“testACL”,并选择ACL所属区域,单击Add AWS resources添加关联的资源。此处可以关联CloudFront分发,ALB或API Gateway。之后单击“Next”继续。

图4:设置ACL名称

本示例中,Web服务器默认拒绝所有不符合referer匹配规则的连接。因此,在新打开的页面中需要将“Default web ACL action for requests that don’t match any rules”设置成“Block”。设置完成后单击“Add rules”,并选择“Add my own rules and rule groups”添加请求匹配规则。

图5:设置阻止没有匹配到任何规则的请求

本示例中,Web服务器默认拒绝所有不符合referer匹配规则的连接。因此,在新打开的页面中需要将“Default web ACL action for requests that don’t match any rules”设置成“Block”。设置完成后单击“Add rules”,并选择“Add my own rules and rule groups”添加请求匹配规则。

在弹出的页面上选择“Rule Builder”创建一条规则。

图6:选择Rule Builder创建规则

填写规则名称,规则类型选择“Regular rule”,匹配方式选择“matches the statement”,在Statement处选择Inspect “Header”,在Header field name字段中填写“referer”,Match Type选择“Contains string”,在String to match中输入允许访问的域名。本示例使用example.com。在Text transformation中选择“Lowercase”,以确保大小写不影响判断结果。之后在Action中选择“Allow”以允许访问。完成后单击“Add Rule”添加规则。

图7:配置规则

规则配置完毕后,检查“Web ACL rule capacity units used”,确保总WCU不超过1500。同时检查“Default web ACL action for requests that don’t match any rules”为“Block”。检查无误后,单击“Next”继续。

图8:检查规则

“Set rule priority”和“Configure metrics”配置页面均使用默认配置即可,可以直接点击“Next”跳过。

图9:设置规则优先级

图10:配置CloudWatch指标监控

在“Review and create web ACL”页面,检查各项配置,配置无误则单击“Create Web ACL”创建Web ACL。

图11:检查并创建ACL

在完成了配置工作之后,即可对WAF ACL进行测试。当使用了正确的referer字段时(本例中使用example.com),则返回HTTP 200 OK。

curl -H “Referer: https://example.com/” -I 52.83.57.155//example.com/

HTTP/1.1 200 OK

Date: Sun, 06 Sep 2020 12:00:16 GMT

Content-Type: text/html

Content-Length: 703

Connection: keep-alive

Last-Modified: Sun, 06 Sep 2020 11:21:32 GMT

Accept-Ranges: bytes

表2:WAF验证通过允许访问测试效果

当使用的referer字段与预期值不匹配时,则返回HTTP 403禁止访问。

curl -H “Referer: https://example.net/” -I 52.83.57.155//example.com/

HTTP/1.1 403 Forbidden

Server: awselb/2.0

Date: Sun, 06 Sep 2020 12:01:21 GMT

Content-Type: text/html

Content-Length: 134

Connection: keep-alive

表3:WAF验证未通过拒绝访问测试效果

  • 方案二:使用Lambda@Edge实现复杂条件下

某些应用场景下,用户需要配置复杂的访问控制规则。而图形界面往往难以适应复杂访问控制规则的需要。此时Lamba@Edge与CloudFront配合使用,可以有效应对复杂访问策略带来的挑战。

Lambda@Edge是AWS利用Lambda无服务器计算服务结合CloudFront内容分发网络,在边缘站点运行Lambda代码,从而在边缘站点实现动态Web应用程序的技术。

由于Lambda@Edge通过编写代码实现对Web请求的精确过滤,因此可以为用户提供更加灵活的过滤条件和数据处理方式。

Lambda@Edge功能支持使用Lambda在CloudFront边缘节点对HTTP请求和响应进行按需调整。当CloudFront收到用户请求,CloudFront从源端请求资源,CloudFront接收到源端反馈资源和CloudFront即将向用户返回资源时,均支持调用Lambda对HTTP请求或响应进行按需处理。

图12:利用Lambda@Edge调整HTTP请求和响应

Lambda@Edge只需要在CloudFront创建分发时,在Lambda函数关联中指定查看请求所对应的Lambda函数即可。

图13:在CloudFront创建分发时指定Lambda函数

Lambda函数内容则如下图所示,用户可以在“handler”函数中编写自定义处理流程,在必要时,可以创建response对象,并将response对象的状态设置为403,从而达到禁止访问的效果。

图14:Lambda函数内容

由于采用了编程的方式,Lambda@Edge为网站访问控制提供了极大的灵活性。同时,由于Lambda函数运行于CloudFront边缘节点,因此不会占用核心节点计算资源,同时其无服务器架构支持自动扩展也有利于承载海量用户请求。

利用URL验证提升数据访问安全性

使用HTTP标头字段实现防盗链可以应对常见的盗链情形。但盗链者仍然可以通过更加复杂的手段如客户端脚本去生成一个具有合法HTTP标头的请求,从而获取访问文件的能力。

为了进一步提升文件访问的安全性,可以通过对请求的URL添加一个具有时效性的随机验证码作为签名。用户通过签名的地址访问相关资源。系统在后台对签名信息进行比对,确认签名正确性和时效性,从而识别当前请求是否有权访问对应文件。

AWS CloudFront Signed URL提供一整套签名管理方案,包括签名URL生成API,与CloudFront集成的签名验证机制,从而简化资源访问控制。

图15:Lambda函数内容

如上图所示,客户端在访问CloudFront资源前,需要通过签名URL生成器获取经签名的URL地址。AWS签名URL生成器支持包括Java,C#,PHP,Perl等多种开发语言。开发人员可以根据需要选择自己熟悉的语言完成签名URL生成工作。

当CloudFront收到资源请求时,会自动识别URL中签名部分是否正确,是否仍在有效期内,从而确定是否返回对应资源。

在对CloudFront进行配置前,建议首先完成签名URL生成器。一下为URL生成器的示例代码片段。

图16:生成签名URL代码示例

从以上代码示例中可以看出,签名URL主要包含几个要素:被签名的文件访问路径,签名URL生效和失效时间,请求客户端IP地址范围,以及签名URL使用的密钥信息。

生成的签名URL格式如下,高亮部分为签名URL内容,未高亮URL参数为原始请求所需参数:

52.83.57.155//d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Expires=1357034400&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6

&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

表4:WAF验证未通过拒绝访问测试效果

签名URL生成器就绪后,就可以配置CloudFront使用签名URL了。配置过程也很简单,只需要在创建或者编辑CloudFront分发时,将Restrict Viewer Access选项设置为“Yes”即可。

图17:配置CloudFront分发启用签名URL访问

上图配置中Trusted Signer配置项用于指定可以生成签名URL的AWS账户。只有被授权的AWS账户才能为指定的CloudFront分发生成签名URL,从而确保数据访问安全性。

配置完成后,用户直接访问CloudFront分发时会提示禁止访问。效果如下:

curl -I 52.83.57.155//d2znl5ds23rvha.cloudfront.net/Picture1.png

HTTP/1.1 403 Forbidden

Server: CloudFront

Date: Mon, 07 Sep 2020 02:45:18 GMT

Content-Type: text/xml

Content-Length: 146

Connection: keep-alive

X-Cache: Error from cloudfront

表5:在CloudFront启用签名URL后,未签名的URL无法访问

至此,访问CloudFront上的资源均需要使用临时生成的签名URL进行访问。由于签名URL具有时效性,因此难以被盗链者使用。从而改善了访问安全性。

开发人员还可以选择使用签名Cookie用于简化指定用户访问CloudFront资源的过程。相比签名URL,签名Cookie可以授予制定用户访问多个资源的能力,而无需为每个独立的资源生成签名URL。

部分场景下,由于实际业务需要,使得资源访问URL难以修改时,也可以是使用签名Cookie实现资源访问授权。

开发人员可以通过在生产签名URL或签名Cookie时增加资源请求客户端身份验证功能进一步提升资源访问的安全性。例如当收到生成签名URL请求时,检查资源请求客户端是否有登陆操作并对Cookie进行验证,从而使得资源访问过程更加安全。

适用于媒体资源的防盗链技术

媒体资源可以通过DRM数字版权管理技术实现更安全的资源访问管理。

DRM数字版权管理技术通过对媒体资源进行加密,并将媒体节目授权中心URL和密钥ID保存在媒体资源文件头部,从而实现更加安全的媒体资源访问控制。用户在播放媒体资源时,还需要从媒体节目授权中心获得对应密钥才能解密媒体内容。未经授权的用户即使获得媒体文件,也无法播放媒体内容。

AWS Elemental MediaPackage服务支持将DRM数字版权管理信息打包到媒体文件中,从而提供更加安全的媒体内容访问管控。

AWS云中的WEB应用防火墙

大型的Web应用易受多种攻击,造成宕机、效率降低、数据失窃、违规罚款、品牌受损、服务中断、客户不满等。企业通常利用Web应用防火墙来保护Web应用程序。AWS WAF 是一种 Web 应用程序防火墙,让您能够监控转发到 Amazon API Gateway、Amazon CloudFront 或 应用程序负载均衡器 的 HTTP 和 HTTPS 请求,支持识别并阻拦常见的web攻击,比如SQL注入、XSS跨站、HTTP协议异常、HTTP协议畸形、命令注入、非法扫描等。

工作原理

AWS WAF可以让您可以在几分钟内设置并开始保护您的应用程序。您只需创建一个或多个Web访问控制列表(Web ACL),每个列表包含规则(定义可接受或不可接受请求/IP地址的条件集)和满足规则时要采取的操作。然后将Web ACL附加到应用程序的Amazon CloudFront分发。

从这一刻开始,通过分发到达的传入HTTP和HTTPS请求将根据相关Web ACL中的每个规则进行检查,规则的条件可以为正(允许某些请求或IP地址)或负(阻止某些请求或IP地址)。

优势和功能

针对 Web 攻击灵活提供保护

AWS WAF 规则的传播和更新只需不足一分钟时间,因此您可以在问题出现时在您的环境中快速进行安全更新。WAF 支持数百条规则,这些规则可以检查 Web 请求的任意部分,同时尽可能降低延迟对传入流量的影响。AWS WAF 可以根据您创建的规则筛选流量,从而保护 Web 应用程序免遭攻击。例如,您可以筛选 Web 请求的任意部分,例如 IP 地址、HTTP 标头、HTTP 正文或 URI 字符串。这样一来,您可以防范常见攻击模式,例如 SQL 注入或跨站点脚本。

易于部署和维护

无论是作为 CDN 解决方案的一部分部署在 Amazon CloudFront 上,还是部署在位于所有来源服务器之前的 Application Load Balancer、适用于您的 REST API 的 Amazon API Gateway 或者是适用于您的 GraphQL API 的 AWS AppSync 上,AWS WAF 都能轻松部署和保护应用程序。无需部署其他软件、无需配置 DNS、无需管理 SSL/TLS 证书,也无需进行反向代理设置。使用 AWS Firewall Manager 集成,您可以集中定义并管理规则,并在您需要保护的所有 Web 应用程序中反复使用这些规则。

使用托管规则节省时间

使用AWS WAF 托管规则,您可以快速入门并保护您的 Web应用程序或 API 免遭常见的威胁。有多种规则类型供您选择,例如解决诸如开放式 Web 应用程序安全项目 (OWASP) 十大安全风险、内容管理系统 (CMS) 特有的威胁或新出现的常见漏洞和泄露 (CVE) 等问题的规则。托管规则会随新问题的出现而自动更新,这样您就有更多的时间来构建应用程序。 

经济高效的 Web 应用程序防护

使用 AWS WAF,您只需按使用量付费。AWS WAF 属于可自定义的自助服务,基于您部署的规则数量和您的 Web 应用程序收到的 Web 请求数量进行定价。既没有最低费用,也无需预先承诺。

提高 Web 流量可见性

AWS WAF 让您能够近乎实时地查看 Web 流量,借此在 Amazon CloudWatch 中创建新的规则或警报。您可以精确控制指标的发出方式,因此可以从规则级别到完整入站流量进行监控。此外,AWS WAF 还会捕获每个接受检查的 Web 请求的完整标头数据,用于自动提供安全保护、分析或审计用途,从而提供全面的日志记录。

集成于应用程序开发流程中的安全性

AWS WAF 中的所有功能都可以通过 AWS WAF API 或 AWS 管理控制台进行配置。因此,您的开发运营团队可以在应用程序开发流程中定义特定于应用程序的规则,从而增强 Web 安全性。而且,您可以将 Web 安全问题放到开发流程链中的多个环节:从最初撰写代码的开发人员,到部署软件的开发运营工程师,再到跨组织实施安全规则组的安全管理员等。

如何收费

您需要为创建的每个 Web ACL 和针对每个 Web ACL 创建的每个规则付费。此外,您还需要为 Web ACL 处理的 Web 请求数付费。

Web ACL 每月 5.00 USD(按小时收取)

规则 每月 1.00 USD(按小时收取)

请求 每 100 万个请求 0.60 USD

如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。

陈汉卿

云业务事业部 | 高级系统架构师

神州泰岳软件股份有限公司·AWS战略合作伙伴

AWS Solution Provider | Migration | DevOps | Cloud Management Tools(CMT) ISV Partner

轻松完成AWS云中数据备份

AWS Backup 是一种完全托管的备份服务,可以轻松集中和自动管理 AWS 服务中数据的备份。使用 AWS Backup,您可以集中配置备份策略并监控 Amazon EBS 卷、Amazon EC2 实例、Amazon RDS 数据库、Amazon DynamoDB 表、Amazon EFS 文件系统和 AWS Storage Gateway 卷等 AWS 资源的备份活动。AWS Backup 可以自动执行并整合以前按服务执行的备份任务,不需要您创建自定义脚本和手动流程。只需在 AWS Backup 控制台中单击几下,您就可以创建各种备份策略,从而自动执行备份计划和保留管理工作。AWS Backup 可以提供完全托管并且基于策略的备份解决方案,简化了备份管理工作,让您能够满足业务和法规备份合规性要求。

优势

集中管理备份

从中央备份控制台配置备份策略,简化备份管理,并轻松确保各种 AWS 服务中的应用程序数据得到备份和保护。通过 AWS Backup 的中央控制台、API 或者命令行界面针对 AWS 服务进行备份、还原和设置保留策略。

自动执行备份流程

利用 AWS Backup 完全托管并且基于策略的解决方案节省时间和资金。AWS Backup 支持自动备份计划、保留管理和生命周期管理,不需要使用自定义脚本和手动流程。利用 AWS Backup,您只要标记 AWS 资源就可以将备份策略应用于AWS 资源,从而轻松地对所有 AWS 资源实施备份策略,并确保所有应用程序数据都得到正确备份。

提高备份合规性

在中央控制台执行备份策略、加密备份以及审核备份活动,满足备份合规性要求。备份策略可以轻松与内部要求或监管要求保持一致。AWS Backup 可以加密动态数据和静态数据,保证备份的安全性。不同 AWS 服务采用统一的备份活动日志,可以简化合规审核工作。AWS Backup 符合 PCI、ISO 和 HIPAA 的规定。

使用场景

原生云备份

AWS Backup 提供中央控制台,可以自动执行和管理不同 AWS 服务的备份工作。AWS Backup 与 Amazon EBSAmazon RDSAmazon DynamoDBAmazon EFSAmazon EC2 和 AWS Storage Gateway 集成,让您可以备份存储卷、数据库和文件系统等重要数据存储。

混合备份

AWS Backup 与 AWS Storage Gateway 集成,而 AWS Storage Gateway 是一种混合存储服务,让您的本地应用程序能够无缝地使用 AWS 云存储。您可以使用 AWS Backup 来备份存储在AWS Storage Gateway 卷内的本地应用程序数据。AWS Storage Gateway 卷的备份安全地存储在 AWS 云中并且与 Amazon EBS 兼容,可以将卷还原到 AWS 云或本地环境中。这种集成让您能够将同样的备份策略应用到 AWS 云资源和存储在 AWS Storage Gateway 卷内的本地数据中。

计费

使用 AWS Backup,您只需为实际使用的备份存储量以及当月恢复的备份数据量付费即可。没有最低消费和设置费用。

每月计费的存储量是按照全月内使用的平均存储空间来计算的。您的存储使用情况按“GB 月”来衡量,月底合计该值,得出您的月度费用。

每月计费的还原量是按照当月还原的数据量来计算的。一个月内还原的数据以 GB 为单位,表示当月执行的所有还原的数据总和。

示例 1:
假设您的 Amazon EFS 备份存储在美国东部(弗吉尼亚北部)地区。您在 4 月份的 15 天内使用 400GB 的 Amazon EFS 备份存储空间,在另外 15 天内使用 800GB。那么在 4 月底,您的备份存储使用量按照 GB 小时为单位计算如下:

总使用量(GB 小时)= [400GB x 15 天 x(24 小时/天)] + [800GB x 15 天 x(24 小时/天)] = 432000GB 小时

我们将 GB 小时加起来并换算成 GB 月,以计算月度费用:

月度总存储费用 = 600GB 月 x 0.05 USD = 30.00 USD

另外,让我们假设您已还原了 10 个备份,每个为 1GB。那么在 4 月底,您的备份还原使用量按照 GB 为单位计算如下:

总使用量 10 次还原 x 1GB = 10GB

月度还原总费用 = 10GB x 0.02 USD = 0.20 USD

将备份存储费用和备份还原费用相加获得 AWS Backup 月度总账单:

AWS Backup 月度总账单 = 30 USD + 0.20 USD = 30.20 USD

*这适用于除按需 DynamoDB 表备份之外的所有备份存储,按需 DynamoDB 表备份将创建 Amazon DynamoDB 表数据和设置的完整备份。

实践参考

动手实践可参考AWS官方博客:AWS 备份 – 自动化和集中管理您的备份

https://aws.amazon.com/cn/blogs/china/aws-backup-automate-and-centrally-manage-your-backups/

如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。

陈汉卿

云业务事业部 | 高级系统架构师

神州泰岳软件股份有限公司·AWS战略合作伙伴

AWS Solution Provider | Migration | DevOps | Cloud Management Tools(CMT) ISV Partner

AWS云中安全合规中心

C:\Users\jiayf\AppData\Local\Temp\WeChat Files\9389aec478fcd1aaf30c98585160e19.jpg

AWS Security Hub 是一项安全与合规性服务,于2019年6月25日正式推出通用版本。Security Hub在各个区域的统一仪表板中为用户提供涵盖多个AWS账户的安全性与合规性状态的直观支持。通过此项服务,您可以监控各关键设置,保证AWS账户始终安全可靠,同时确保能够时刻关注环境中出现的各类变化、并有针对性地做出快速反应。

工作原理

优势和功能

全面查看安全问题

AWS Security Hub 会收集和整合您环境中启用的 AWS 安全服务的检测结果,例如来自 Amazon GuardDuty 的入侵检测结果、来自 Amazon Inspector 的漏洞扫描和来自 Amazon Macie 的 S3 存储桶策略检测结果。AWS Security Hub 还会整合来自集成的 AWS 合作伙伴网络 (APN) 安全解决方案的检测结果。所有检测结果都将在 AWS Security Hub 存储至少 90 天。

自动化、持续的安全性检查

使用行业标准和最佳实践,进行自动化、持续的账户和资源级配置与安全性检查。例如,AWS Security Hub 会自动执行互联网安全中心(CIS) AWS Foundations 基准,后者是一组 AWS 的安全配置最佳实践。如果您的任何账户或资源偏离最佳实践,AWS Security Hub 会标记问题并建议补救措施。

自定义响应和补救措施

将 AWS Security Hub 与 Amazon CloudWatch Events 集成后,您将能创建自定义响应和补救工作流程。您可以轻松地将检测结果发送到 SIEM、聊天工具、开单系统、安全业务流程自动化和响应工具及呼叫待命管理平台。您也可以使用 AWS System Manager 自动化文档、AWS Step Functions 和 AWS Lambda 函数构建可从 Security Hub 启动的自动补救工作流程。

多账户支持

在 AWS Security Hub 控制台中单击几次,您即可连接多个 AWS 账户并整合这些账户的检测结果。通过指定主安全账户,您可以让您的安全团队查看所有账户的整合检测结果,不过各账户拥有者仅可查看与其账户相关的检测结果。

使用场景

安全扫描

使用各种安全性标准连续扫描您的 AWS 账户,检查是否存在配置错误,并在账户和多账户级别汇总安全性检查结果,以了解您的整体安全性状态。

分类安全问题并确定优先级

使用 AWS Security Hub 的摘要控制面板以及筛选条件规则来识别 AWS 安全服务和合作伙伴安全集成中的检测结果并确定其优先级,确定哪些最重要,以及哪些需要最直接的关注。

如何收费

安全性检查 定价

每账户每区域每月前 100000 次检查 每次检查 0.0010 USD

每账户每区域每月接下来的 400000 次检查 每次检查 0.0008 USD

每账户每区域每月 500000 次以后的检查 每次检查 0.0005 USD

检查结果提取事件

与 Security Hub 安全性检查关联的检查结果提取事件 免费

每账户每区域每月前 10000 个事件 免费

每账户每区域每月 10000 个以后的事件 每个事件 0.00003 USD

如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。

C:\Users\jiayf\AppData\Local\Temp\WeChat Files\1a85fa68f8ae79e77c5c5439b168133.jpg

AWS云中的WEB应用防火墙

C:\Users\jiayf\AppData\Local\Temp\WeChat Files\9389aec478fcd1aaf30c98585160e19.jpg

大型的Web应用易受多种攻击,造成宕机时间、效率降低、数据失窃、违规罚款、品牌受损、服务中断、客户不满等。企业通常利用Web应用防火墙来保护Web应用程序。AWS WAF 是一种 Web 应用程序防火墙,让您能够监控转发到 Amazon API Gateway API、Amazon CloudFront 或 应用程序负载均衡器 的 HTTP 和 HTTPS 请求,支持识别并阻拦常见的web攻击,比如SQL注入、XSS跨站、HTTP协议异常、HTTP协议畸形、命令注入、非法扫描等。

工作原理

AWS WAF可以让您可以在几分钟内设置并开始保护您的应用程序。您只需创建一个或多个web访问控制列表(Web ACL),每个列表包含规则(定义可接受或不可接受请求/IP地址的条件集)和满足规则时要采取的操作。然后将Web ACL附加到应用程序的Amazon CloudFront分发。

从这一刻开始,通过分发到达的传入HTTP和HTTPS请求将根据相关Web ACL中的每个规则进行检查,规则的条件可以为正(允许某些请求或IP地址)或负(阻止某些请求或IP地址)。

优势和功能

针对 Web 攻击灵活提供保护

AWS WAF 规则的传播和更新只需不足一分钟时间,因此您可以在问题出现时在您的环境中快速进行安全更新。WAF 支持数百条规则,这些规则可以检查 Web 请求的任意部分,同时尽可能降低延迟对传入流量的影响。AWS WAF 可以根据您创建的规则筛选流量,从而保护 Web 应用程序免遭攻击。例如,您可以筛选 Web 请求的任意部分,例如 IP 地址、HTTP 标头、HTTP 正文或 URI 字符串。这样一来,您可以防范常见攻击模式,例如 SQL 注入或跨站点脚本。

易于部署和维护

无论是作为 CDN 解决方案的一部分部署在 Amazon CloudFront 上,还是部署在位于所有来源服务器之前的 Application Load Balancer、适用于您的 REST API 的 Amazon API Gateway 或者是适用于您的 GraphQL API 的 AWS AppSync 上,AWS WAF 都能轻松部署和保护应用程序。 无需部署其他软件、无需配置 DNS、无需管理 SSL/TLS 证书,也无需进行反向代理设置。使用 AWS Firewall Manager 集成,您可以集中定义并管理规则,并在您需要保护的所有 Web 应用程序中反复使用这些规则。

使用托管规则节省时间

使用 AWS WAF 托管规则,您可以快速入门并保护您的 Web应用程序或 API 免遭常见的威胁。有多种规则类型供您选择,例如解决诸如开放式 Web 应用程序安全项目 (OWASP) 十大安全风险、内容管理系统 (CMS) 特有的威胁或新出现的常见漏洞和泄露 (CVE) 等问题的规则。托管规则会随新问题的出现而自动更新,这样您就有更多的时间来构建应用程序。

经济高效的 Web 应用程序防护

使用 AWS WAF,您只需按使用量付费。AWS WAF 属于可自定义的自助服务,基于您部署的规则数量和您的 Web 应用程序收到的 Web 请求数量进行定价。既没有最低费用,也无需预先承诺。

提高 Web 流量可见性

AWS WAF 让您能够近乎实时地查看 Web 流量,借此在 Amazon CloudWatch 中创建新的规则或警报。您可以精确控制指标的发出方式,因此可以从规则级别到完整入站流量进行监控。此外,AWS WAF 还会捕获每个接受检查的 Web 请求的完整标头数据,用于自动提供安全保护、分析或审计用途,从而提供全面的日志记录。

集成于应用程序开发流程中的安全性

AWS WAF 中的所有功能都可以通过 AWS WAF API 或 AWS 管理控制台进行配置。因此,您的开发运营团队可以在应用程序开发流程中定义特定于应用程序的规则,从而增强 Web 安全性。而且,您可以将 Web 安全问题放到开发流程链中的多个环节:从最初撰写代码的开发人员,到部署软件的开发运营工程师,再到跨组织实施安全规则组的安全管理员等。

如何收费

您需要为创建的每个 Web ACL 和针对每个 Web ACL 创建的每个规则付费。此外,您还需要为 Web ACL 处理的 Web 请求数付费。

Web ACL 每月 5.00 USD(按小时收取)

规则 每月 1.00 USD(按小时收取)

请求 每 100 万个请求 0.60 USD

如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。

C:\Users\jiayf\AppData\Local\Temp\WeChat Files\1a85fa68f8ae79e77c5c5439b168133.jpg

AWS云中的DDos防护

C:UsersjiayfAppDataLocalTempWeChat Files9389aec478fcd1aaf30c98585160e19.jpg

分布式拒绝服务 (DDoS) 攻击是指多个被入侵系统尝试用流量来“淹没”目标 (如网络或 Web 应用程序) 的攻击。DDoS 攻击会阻止合法用户访问服务,并可能导致系统由于流量过大而崩溃。AWS 提供两级防护 DDoS 攻击: AWS Shield Standard 和 AWS Shield Advanced.

简介

AWS Shield Standard

全部 AWS 客户受益于的自动保护 AWS Shield Standard,无需额外收费。 AWS Shield Standard 抵御最常见的、经常发生的网络和传输层 DDoS 针对您的网站或应用程序的攻击。虽然 AWS Shield Standard 有助于为所有 AWS 客户提供保护,但如果您使用 Amazon CloudFront 和 Amazon Route 53,则可以获得特殊的优势。这些服务获得全面的可用性保护,可以防范所有已知的基础设施(第 3 层和第 4 层)攻击,参考下图。

D:backupbakyoudaonuno_3023@163.com(1)5bede8d8e97a4fce99d24b71d4a2a9f1clipboard.png

AWS Shield Advanced

要获得更高级别的攻击防护,您可以订购 AWS Shield Advanced。当您订阅 AWS Shield Advanced 并添加需要保护的特定资源, AWS Shield Advanced 对在资源上运行的Web应用程序提供扩展的 DDoS进行攻击保护。

AWS哪些资源可以被保护

您可以为任何以下类型的资源添加保护:

Amazon CloudFront 分发

Amazon Route 53 托管区域

AWS Global Accelerator 加速器

应用程序负载均衡器

Elastic Load Balancing (ELB) 负载均衡器

Amazon Elastic Compute Cloud (Amazon EC2) 弹性 IP 地址

Shield和Shield Advanced的对比

如何选择

您可以将 AWS WAFAWS Firewall Manager 和 AWS Shield 一起使用来创建全面的安全解决方案。

一切都从 AWS WAF 入手。您可以实现自动化,然后简化 AWS WAF 使用 AWS Firewall Manager。 Shield Advanced 在的顶部添加其他功能 AWS WAF,例如来自 DDoS 响应小组 (DRT) 和高级报告。

如果您希望对添加到您的资源的保护进行精细控制,单独使用 AWS WAF 是正确的选择。如果您希望跨账户使用 AWS WAF、加快您的 AWS WAF 配置或自动执行新资源的保护,请将 Firewall Manager 与 AWS WAF 结合使用。

最后,如果您拥有高可见度的网站,或者容易频繁 DDoS 攻击时,您应该考虑购买 Shield Advanced 提供。

如何收费

AWS Shield Standard 为所有 AWS 客户提供保护,使其免受以网站或应用程序为目标的最频繁发生的常见网络和传输层 DDoS 攻击,且无需支付额外费用。

AWS Shield Advanced 是付费服务,可为在 Amazon Elastic Compute (EC2)、Elastic Load Balancing (ELB)、Amazon CloudFront、AWS Global Accelerator 和 Amazon Route 53 上运行的面向互联网的应用程序提供额外保护。AWS Shield Advanced 对所有客户开放,但只有 AWS Premium Support 的企业支持计划或商业支持计划客户才能联系 DDoS 响应团队。它需要为期 1 年的订购承诺,按月收费3000美金。数据传输资费情况如下表:

如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。

C:UsersjiayfAppDataLocalTempWeChat Files1a85fa68f8ae79e77c5c5439b168133.jpg

AWS云中的CMDB

CMDB是自动化运维的基石、是构建ITIL流程的基础。AWS Config是一个托管服务,是AWS云中资源的CMDB,它可以维护AWS资源的配置历史,并根据最佳实践和内部策略来评估配置。您可以将此信息用于操作故障排除、审计和遵从性用例。

AWS Config原理

打开 AWS Config 之后,它会先查找您账户中受支持的 AWS 资源,并为每个资源生成一个配置项。AWS Config 还会在某个资源的配置更改时生成配置项,并在您启动配置记录器后,保留配置项的历史记录。如果您使用的是 AWS Config 规则,则 AWS Config 会持续评估您的 AWS 资源是否具备所需设置。当某个资源的合规性状态发生更改时,AWS Config 会向您的 Amazon SNS 主题发送通知。

使用场景

资源管理

为了更好地管理您的资源配置并检测资源的错误配置,您需随时详细了解存在哪些资源以及这些资源的配置方式。AWS Config 可以在资源被创建、修改或删除时向您发送通知,不需要您通过对各个资源进行轮询来监控这些资源更改。

您可以使用 AWS Config 规则来评估您的 AWS 资源的配置设置。当 AWS Config 检测到不符合某项规则中的条件的资源时,AWS Config 会将其标记为不合规资源并发送通知。AWS Config 会在您的资源被创建、更改或删除时持续对其进行评估。

审计与合规性

您使用的数据可能需要频繁审计,以确保其符合内部策略与最佳实践。为了证实合规性,您需要了解资源的历史配置。AWS Config 可以提供这一信息。

对配置更改进行管理与故障排除

当您使用相互依赖的多个 AWS 资源时,一项资源配置的更改可能对相关资源造成意外后果。利用 AWS Config,您可以查看您准备修改的资源如何与其他资源相关联,并评估更改所产生的影响。

您也可以使用 AWS Config 提供的资源历史配置来解决问题,并确定问题资源的最后正确配置。

安全分析

要分析潜在的安全漏洞,您需要了解有关您的 AWS 资源配置的详细历史信息,例如向您的用户授予的 AWS Identity and Access Management (IAM) 权限或者控制对资源的访问的 Amazon EC2 安全组规则。

您可以使用 AWS Config 随时查看 AWS Config 正在记录的分配给 IAM 用户、组或角色的 IAM 策略。这一信息可以帮助您确定用户在特定时间内具备的权限:例如,您可以查看用户 John Doe 在 2015 年 1 月 1 日是否拥有修改 Amazon VPC 设置的权限。

您也可以使用 AWS Config 来查看您的 EC2 安全组的配置,包括在特定时间打开的端口规则。这一信息可以帮您确定安全组是否会阻止传入 TCP 流量传输至特定端口。

如何收费

使用 AWS Config 时,您将根据账户中记录的配置项数量、活动 AWS Config 规则评估数量和一致性包评估数量付费。配置项是对您的 AWS 账户中资源配置状态的记录。AWS Config 规则评估是由 AWS 账户中的 AWS Config 规则对资源进行的合规性状态评估,一致性包评估是由一致性包内的 AWS Config 规则对资源进行的评估。

定价示例

假设您在给定月份在美国东部(弗吉尼亚北部)区域的使用量如下。

10000 个各种资源类型的记录配置项

50000 次账户中存在的所有单个 Config 规则的 Config 规则评估

5 个一致性包,每个包含 10 个 Config 规则,每个 Config 规则有 300 次规则评估(即 5*10*300 总共为 15000 次评估)

配置项费用

10000 * 0.003 USD = 30 USD

Config 规则费用

前 100000 次评估(每次 0.001 USD)= 50 USD

一致性包费用

前 1000000 次一致性包评估(每次 0.0012 USD)= 18 USD

Config 账单总额

30 USD + 55 USD + 18 USD = 98 USD

如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。

 

陈汉卿

云业务事业部 | 高级系统架构师

神州泰岳软件股份有限公司·AWS战略合作伙伴

AWS Solution Provider | Migration | DevOps | Cloud Management Tools(CMT) ISV Partner