转自:http://www.aqniu.com/news/7527.html
每个网站都会面对网络攻击。唯一的区别在于,如何建设防御,以及如何进行警报和响应。
在 网络上很难找到关于防御黑客攻击的真实案例。一方面,信息披露可能会引发官司,另一方面,披露这些信息往往会导致不良的财务后果,因此各公司往往不情愿分 享相关细节。然而,如果我们完全不披露这些故事,会使其它人在不知情的情况下犯相同的错误。如果我们为建立威胁情报共享体系做出贡献,分享网络安全战场上 的真实经验,可以让事情变得更好。
乙方是一家SaaS(软件即服务)公司,为大中型企业提供网页内容管理服务。其服务的客户A公司专注于帮助医疗供应商提高运营和财务绩效,A公司为数千家医院和医疗保健机构客户提供服务,管理数十亿美元的开支。
要分析的这次DDoS攻击的规模极大:在攻击高峰时,8600万个用户同时从世界各地的超过10万台主机上访问网站(当事方联系了FBI)。当攻击结束39小时后,防护方艰难的取得防御性胜利。下面是事件过程:
疯狂攻击
A 公司的年度会议即将召开,会议将有15000人参加。会议的前一天晚上,乙方收到了警报消息。A公司的网站服务器正承载着难以置信的网络流量。需要说明的 是,A公司也是一家SaaS提供商,为客户提供数据内容和分析,因此这种程度的访问量会极大地影响该公司的服务质量和信誉。没有多少时间,必需快速做出响 应。
所有访问请求都来自百分百合法的URL。所以很难分辨出其中的恶意流量
攻击来源遍布世界各地:北朝鲜、爱沙尼亚、立陶宛、中国、俄罗斯、南美
60%的访问量来自美国本土
攻击者直接解除DNS和攻击IP地址的关联
一开始,防御方使用AWS(Amazon Web Service)Route 53,重新配置了一些文件,然后立即切断了与这些IP地址的通信。在成功抵御了最初的几波攻击后,网络似乎恢复了正常,但事实证明,这只是第一波,而接下来的才是更疯狂的攻击。
当天傍晚,攻击再次发起并直接指向DNS域名,这意味着之前的IP拦截策略不再奏效,眼看着数据流量急剧上升。
放弃还是抵抗
乙方和A公司的首席信息官进行了讨论,最后达成一致意见:决定抵抗到底。作为一家SaaS公司,提供持续、可靠的服务,维持公司信誉是重中之重。双方同意分担预计为数万美元的防御成本,为正义而战。
经过仔细审视第二波攻击,防御方意识到可以立即采取一些缓解措施:
1. A公司的业务只面向美国客户,不过也有少部分流量来自国外。因此防御方迅速地建立了一些防火墙规则,这些规则只允许来自美国的流量通过。于是,40%的攻击流量被拒之门外。
2. 在AWS(Amazon Web Service)Route 53后面加了一道网络应用防火墙,配置了一些HA代理,这可以为FBI收集大量的登录信息,便于他们进行事后分析工作。
3. 调整流量自动缩放的配置。自动缩放会根据接入流量规模大小调整自己的上下阈值。将下阈值调整得比上阈值大得多,这意味着系统在流量变大时会做出合适的反 应,但永远不会达到流量下阈值。结果,每个运行的实例都会在服务列表中永续存在,记录完整无损的登录信息,以备FBI分析。
兵来将挡,水来土淹
攻击者放大攻击强度,AWS就放大防御强度。攻击者进一步放大攻击强度,AWS就进一步放大防御强度,这样的情景在第二天反复上演。与此同时,乙方每小时就向A公司的董事会负责人汇报一次情况。
在 DDoS攻击的最高峰,共部署了18台大型、计算机能力加强版的HA代理服务器,40台大型网页服务器。网页服务器群特别大,因为尽管阻隔了美国本土外的 流量,降低了总数据流量的40%,但剩下的60%来源于美国本土的连接中也包括合法的URL。大多数连接都在访问动态服务,这部分访问记录不太容易抓取。
攻 击者的目标是一个非常大型的全球化机构。防御方通过非常稳定的HA代理防火墙和负载均衡配置,部署了高度延展的网页服务器群。然后就是云防护 (CloudFront),这是AWS的全球内容分发网络。再然后是Route 53,Route 53是AWS的全球冗余DNS平台。这些设备共同组成了关键基础设施,提供了在每一层上的可扩展性和安全性。
在第二天晚上7点左右,事情开始发生转变。在加强了防御强度后,攻击者并没有进一步增加攻击强度。此时此刻,服务器正承载着来自全球10万台主机的8600万个攻击连接,通过AWS基础设施的流量达到每秒20GB。
攻击者无计可施,只能反复地发动攻击,最后直到完全放弃。事后A公司的首席执行官告诉我们,如果他们的网站托管在自己的数据中心,防御的选择就会非常少,而且可能在攻击开始仅仅八个小时之内就会完全无力应对。
最后核算一下防御成本,本次通过亚马逊网络服务成功进行的这次长达36个小时的防御,费用不超过1500美元。双方平摊的话,各方还不到750美元。
下面是这次在大规模DDoS攻击中存活下来的经验,以及一些可以用来加强数据中心,并保护公司网站的策略:
1. 针对DDoS攻击设计、配置、测试你的设备。借助你的托管服务商的经验来进行这些测试,善用他们的援助。
2. 确认你的网络环境中的“正常”是什么样子。这样在网络状态进入“不正常”状态时可以即时设置报警。
3. 将你面向公共的域名别名化(alias)到内部域名。这可以让你在幕后进行快速响应,并实时做出DNS修正,而不需要依赖第三方服务供应商。
4. 学会如何有效地在可能受到威胁的情况下进行DNS修正。经常进行练习。
5. DDoS攻击会用到数百个攻击向量,试图耗尽服务器的资源。流量测试会启动许多并行线程,这可能使DDoS攻击更加凶猛。每个测试都至少应当运行三小时, 以维持响应时间,但在两次测试之间应留出足够的响应区间。在进行显著性测试、风险悬浮以及取消服务之前应当授予明确的许可。
6. 在进行自动放大配置时,不要将CPU负载作为量度。DDoS攻击的最好证据就是接入HTTP请求的数量上升,因此最好将接入连接数作为触发警报的量度。
7. 防御规模应当增加得迅速,但下降得缓慢。增加和下降的速度比应当设置为4:1或2:1。这会使系统在应对第一波攻击时响应快速,之后也不需要反复增加规模。特别是在攻击者采取放风筝战术,即撤退后又杀回来的情况下。
8. 如果使用AWS弹性负载均衡(AWS Elastic Load Balancing),激活“交叉地带负载均衡”选项。这对于均衡后端服务器群的流量而言是最好选择,会显著地减轻DNS设施上的负载。
安全行业需要集体合作,更好地了解敌人的战术、技术和攻击流程,以在和恶意黑客的战斗中取得先机。
ps:本文给人的感觉像是一篇AWS的一篇软文,不过对于如何防御大规模DDOS任然有参考意义。
————————————————————————————-
Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service. It is designed to give developers and businesses an extremely reliable and cost effective way to route end users to Internet applications by translating human readable names like www.example.com into the numeric IP addresses like 192.0.2.1 that computers use to connect to each other. Route 53 effectively connects user requests to infrastructure running in Amazon Web Services (AWS) – such as an Amazon Elastic Compute Cloud (Amazon EC2) instance, an Amazon Elastic Load Balancer, or an Amazon Simple Storage Service (Amazon S3) bucket – and can also be used to route users to infrastructure outside of AWS.
Amazon Route 53是一个高可用、可扩展的域名系统(DNS)的网络服务。它提供给开发者和公司一个非常可靠并且划算的方法使终端用户能够通过把人类可识别的名称(例 如:www.example.com) 转换为ip地址(例如192.0.2.1,ip地址是计算机之间互相连接的标识)能够使用到网络应用.Route 53 有效地把用户请求连接到基础设施-例如亚马逊弹性计算云(Amazon EC2)实例,亚马逊弹性负载均衡,或者亚马逊简单存储服务(Amazon S3)的集群-并且也用于引导用户访问aws之外的基础设施。
Much like a phone book, the Internet’s DNS system manages mapping between names and numbers. In DNS’s case, the names are domain names (www.example.com) that are easy for your users to remember. Instead of phone numbers, in DNS, these names are mapped to IP addresses (192.0.2.1) that specify the location of computers on the Internet. Route 53 performs two DNS functions. First, it lets you manage the IP addresses listed for your domain names in the Internet’s DNS phone book. These listings are called DNS “records.” Second, like a directory assistance service, Route 53 answers requests to translate specific domain names into their corresponding IP addresses. These requests are called “queries.”
类似于电话本,互联网的DNS系统管理域名和ip的对应关系。在dns记录里,名字就是很容易记住的域名(例如 www.example.com)。类似于电话号码,在DNS系统里,名字对应的是表示因特网里计算机的位置的ip地址(例如192.0.2.1)。 Route 53平台有两个DNS功能。第一,它能使在DNS系统里你管理你的域名下的ip地址列表。这些列表项称为DNS记录。第二,像字典一样可以查 询,Route 53 会针对查询某些域名应答出这些域名的正确ip地址。这些请求称为dns查询。
Route 53 is designed to be fast, easy to use, and cost-effective. It answers DNS queries with low latency by using a global network of DNS servers. Queries for your domain are automatically routed to the nearest DNS server, and thus answered with the best possible performance. With Route 53, you can create and manage your public DNS records with an easy-to-use API. It’s also integrated with other Amazon Web Services. For instance, by using the AWS Identity and Access Management (IAM) service with Route 53, you can control who in your organization can make changes to your DNS records. Like other Amazon Web Services, there are no long-term contracts or minimum usage requirements for using Route 53 – you pay only for managing domains through the service and the number of queries that the service answers.
Route 53 是快速,易用,划算。它通过一个全球的DNS服务器网络实现低时延地应答DNS请求。对于你的域名的查询的会被引到最近的DNS服务器上,并且这样应答能 够达到最好的效果。在 Route 53平台里,你可以通过易用的API创建和管理你的DNS记录。他也和其它的亚马逊网络服务联成一体。例如在Route 53里通过使用aws的认证访问管理服务,你可以控制你的公司里谁能够修改你的DNS记录。像其它的亚马逊网络服务,对于使用Route 53没有长期的联系或者最小限度的需求-你花的钱用于通过服务管理域名和服务应答次数。
Highly Available – Route 53 is built using AWS’s highly available and reliable infrastructure. The distributed nature of our DNS servers helps ensure a consistent ability to route your end users to your application. Route 53 is designed to provide the level of dependability required by important applications.
高有效-Route 53是使用AWS的高有效和可用的基础设施。我们的dns服务器分布特性有利于确保有能力让你的终端用户访问到你的应用。Route 53能够提供重要应用等级的需求。
Scalable – Route 53 is designed to automatically scale to handle very large query volumes without any intervention from you.
可扩展性- Route 53设计为不需要你的介入,能够自动扩展处理大量请求。
Designed for use with other Amazon Web Services – Route 53 is designed to work well with other AWS features and offerings. You can use Route 53 to map domain names to your Amazon EC2 instances, Amazon S3 buckets, Amazon CloudFront distributions, and other AWS resources. By using the AWS Identity and Access Management (IAM) service with Route 53, you get fine grained control over who can update your DNS data. You can use Route 53 to map your zone apex (mydomain.com versus
www.mydomain.com)to your Elastic Load Balancing instance using a feature called Alias records. In the future, we plan to add additional integration features such as the ability to route your customers to the closest EC2 region.
设计用于其它的亚马逊网络服务-Route 53 能够很好地和其它的AWS产品协同工作。你可以用 Route 53把域名对应你的Amazon EC2实例,Amazon S3 集群,Amazon CloudFront 分布,和其它的AWS资源。在Route 53里通过使用aws的认证访问管理服务,你可以很好地控制谁能更新你的DNS记录。你可以使用Route 53 把你的一级域名(mydomain.com 对应
www.mydomain.com)映射到你的弹性负载均衡实例,这种方法叫做别名记录。将来,我们计划添加完备的特性,例如使你的客户访问到最近的EC2区域。
Simple – With self-service sign-up and a few simple API calls to configure your DNS settings, Route 53 can start to answer your DNS queries within minutes. You can also programmatically integrate the Route 53 API into your overall web application. For instance, you can use Route 53’s API to create a new DNS record whenever you create a new EC2 instance.
简单-通过自服务登录和一些简单API调用可以配置你的DNS设置,Route 53能够在几分钟内开始响应你的DNS请求。你也可以用程序的方式把 Route 53 的API整合到你的网络应用里。例如每次你创建一个EC2实例是,可以使用 Route 53 的API去创建一个新的DNS记录。
Fast – Using a global anycast network of DNS servers around the world, Route 53 is designed to automatically route your users to the optimal location depending on network conditions. As a result, the service offers low query latency for your end users, as well as low update latency for your DNS record management needs.
快速-使用全球的一个全球泛播DNS服务器网络,Route 53 根据网络环境能够自动引导你的用户到一个优化的位置。最终提供一个时延短的服务给你的终端用户,并且同时提高你的dns记录更新时延。
Cost-Effective – Route 53 passes on the benefits of AWS’s scale to you. You pay only for managing domains through the service and the number of queries that the service answers for each of your domains, at a low cost and without minimum usage commitments or any up-front fees.
划算-Route 53 把一个可以达到盈利的aws给你。你只需要为管理域名服务和应答你的所有域名请求的次数付费,付费低而且没有义务和任何预付费。
Secure – By integrating Route 53 with AWS Identity and Access Management (IAM), you can grant unique credentials and manage permissions for every user within your AWS account and specify who has access to which parts of the Route 53 service.
安全-Route 53里,通过aws的认证访问管理服务完备 ,你可以授权唯一的证书和管理你aws帐号下任意用户的权限,并且可以让某个人去管理某一部分Route 53服务。
Flexible – Route 53 offers Weighted Round-Robin (WRR), also known as DNS load balancing. This lets you assign weights to your DNS records that specify what portion of your traffic is routed to various endpoints.
灵活性-Route 53提供加权循环策略(WRR),这是DNS负载均衡的一种。这个可以让你给你的DNS记录赋予权重,特别是把你的带宽分流到一些特别的点上。
Reliable – Route 53 is built using Amazon’s highly reliable infrastructure. The distributed nature of edge locations used by Route 53 automatically routes end users to the closest location as required by network conditions. Amazon Route 53 is backed by the Amazon Route 53 Service Level Agreement.
可靠性-Route 53 是用亚马逊的高可靠性的基础设施建立的。这些分布的边缘节点被Route 53用作根据网络条件自动引导最终用户去最近的节点。亚马逊Route 53是由亚马逊Route 53服务等级协议支持的。
转载请注明:jinglingshu的博客 » 一次对抗大规模DDoS的真实经历