使用CloudFront发布EC2上的应用并使用Managed prefix功能限制EC2只接受CloudFront回源流量

一、背景

CloudFront使用的一般场景是发布ALB上的应用,而ALB又是发布一组EC2应用。CloudFront也支持直接发布EC2不使用ALB。当然这是不推荐的,因为ALB会提供了更好的多机流量调度,通过目标组实现健康检查,确保要发布的应用正常对外提供服务,并具备水平扩展能力。

此前,如果希望对ALB和EC2做限制,使其只允许来自CloudFront回源流量,并且不再接受其他互联网访问,那么这个需求常见的解决方案是:

Continue reading “使用CloudFront发布EC2上的应用并使用Managed prefix功能限制EC2只接受CloudFront回源流量”

使用WAF检查Referer Header对外部引用进行干预

一、背景

在CloudFront的控制台上,提供了一个TOP Refer的报表,这个报表用于显示本站的用户来源是来自哪个原始网站。这个机制是如何工作的呢?

假设如下的场景:

  • 主网站名为 https://www.abc.com/index.html
  • 图片的域名为 https://image.abc.com/image01.png

当客户端浏览器打开主网站时候,浏览器会向图片域名image.abc.com服务器的发送一个图片访问请求,并包含一个特殊的HTTP Header名为Referer。Referer Header的内容就是之前所在页面的域名,即www.abc.com。因此,图片服务器只需要检查Referer域名,即可获知引用此图片的原始网址。Referer Header可以被WEB应用服务器获取,并在应用层代码做判断。更高效的办法,是从客户访问前端的CloudFront和WAF上进行干预,来判断是否是合法的引用。

需要注意的是:检查Referer并不能完全阻断所谓的“盗链”和非法链接,因为攻击者可以简单去构造Referer Header来模拟一个正常请求。所以实施Referer检查的意义是可以避免图片等素材被其他网址的浏览器简单引用,可减少由此产生的外部流量等问题。如果需要100%的阻止外部访问且必须所有资源都经过身份验证,请参考CloudFront Signature签名功能。

下边介绍如何通过WAF检查Referer Header。

Continue reading “使用WAF检查Referer Header对外部引用进行干预”

在EC2 Linux操作系统上部署ClamAV并开启实时防护、集中日志采集和统一告警

一、背景

计算机信息系统等级保护(俗称等保)的要求之一是应用服务器具有病毒防护手段,并定期升级病毒特征库。这个防护场景通常被称为Endpoint Detection and Response(EDR),也可简称终端防护。EDR一般是采用侵入性的防护方式。所谓侵入性意味着需要在EC2虚拟机内植入专门的Agent才可以进行安全防护。在亚马逊云科技上,可通过Marketplace方式订阅多个第三方厂家的EDR,也可以线下采购。

商用的EDR方案有完整的检测、识别、发现、预防、干预、强化、集中管控等一整套管理功能,不过相对带来的问题是成本较高。在一些非严格等保的场合,如果只是要求实现病毒扫描和防护能力,那么可使用本文介绍的ClamAV方案进行替代。

Continue reading “在EC2 Linux操作系统上部署ClamAV并开启实时防护、集中日志采集和统一告警”

使用Route53 Log Query记录VPC内的DNS请求

一、背景

Route53支持对特定VPC内发起的DNS请求进行记录,由此可以记录VPC内应用对外访问的请求信息。仅限域名,通过IP直接访问的不会记录。

本文介绍如何开启Route53的DNS日志,然后将其输出到CloudWatch的日志组的这样一个简单场景。在生产环境中,日志信息还可以输出到Kinesis或者OpenSearch,以便于各种分析。如果是低频分析,审计用途为主,也可以将日志输出到S3存储桶。

请注意:Query logging功能是记录日志的审计能力,不是实时阻断。如果您需要实施阻断,那么应该考虑Route53 DNS Firewall(2022年10月AWS中国区也上线了此功能),或者使用Network Firewall(简称NFW),或者使用网络流量深度检测的终极解决方案Gateway Load Balancer(简称GWLB)。因此基于以上的信息,可选择一个合适的方案。

本文以中国区为例进行配置,配置将默认VPC的日志输出到CloudWatch日志组。

Continue reading “使用Route53 Log Query记录VPC内的DNS请求”

HIPAA 定义的PHI

HIPAA 是《健康保险流通与责任法案》。 制定 HIPAA 是为了提高医疗保健系统的效率和有效性,并建立美国联邦安全标准来保护受保护的健康信息 (PHI) 的安全和隐私。

HIPAA is the Health Insurance Portability and Accountability Act. HIPAA was enacted to improve the efficiency and effectiveness of the health care system and establishes federal security standards to protect the security and privacy of Protected Health Information (PHI).

Continue reading “HIPAA 定义的PHI”

使用STS服务和STS Tag标签、通过AssumeRole方式为应用生成临时授权

一、背景

在某些环境内,需要为某个系统生成一个临时访问授权,例如某应用允许用户发起对S3存储桶的特定目录的写入操作,而且有超时时间,过期后失效。此时,可使用STS服务临时生成AK/SK密钥,然后将临时AK/SK作为应用程序上传时候调用的角色即可。

本文编写参考了这篇博客,并针对AWS中国区的IAM策略添加了aws-cn标签。

Continue reading “使用STS服务和STS Tag标签、通过AssumeRole方式为应用生成临时授权”

AWS Network Firewall (NFW) Demo

AWS Network Firewall 是一项新推出的 AWS 托管服务,可使您轻松地为所有 Amazon Virtual Private Cloud (VPC) 部署必要的网络保护。您只需单击几下鼠标就可以设置此服务,它随着网络流量而自动缩放,因此无需担心基础设施的部署和管理问题。AWS Network Firewall 适用于要检查和筛选 Amazon VPC 进出流量或 Amazon VPC 之间流量的客户。 

AWS官网
Continue reading “AWS Network Firewall (NFW) Demo”

GWLB系列3: 使用GWLB+TGW方案时跨AZ访问的场景打开Transit Gateway Appliance Mode

在使用GWLB+TGW方案时候,运行应用系统的VPC(可叫做Spoke VPC或叫做Application VPC)访问其他VPC时候出现了同AZ可访问,跨AZ无法访问。经调查是Transit Gateway Appliance Mode默认是关闭模式,没有打开。

Continue reading “GWLB系列3: 使用GWLB+TGW方案时跨AZ访问的场景打开Transit Gateway Appliance Mode”