码迷,mamicode.com
首页 > 其他好文 > 详细

GitHub遭受的DDoS***到底是个什么鬼?

时间:2020-10-30 13:08:29      阅读:20      评论:0      收藏:0      [点我收藏+]

标签:文字   信息安全   接管   mem   来源   book   受害者   没有   lin   

GitHub遭受的DDoS***到底是个什么鬼?

点击上方“Hollis”关注我,精彩内容第一时间呈现。
全文字数: 2800
阅读时间: 7分钟

据外媒消息,美国东部时间2018年2月28日下午12点15分左右,GitHub 遭遇了可能是迄今为止最大的 DDoS ***,最高访问量为 1.35Tbps。
技术图片

当地时间2月28日起,GitHub 经历了两次间歇性不可访问。***发生 10 分钟后,GitHub 向 CDN 服务商 Akamai 请求协助,访问 GitHub 的流量交由后者接管。***在 Akamai 介入 8 分钟后结束,GitHub 确认该网站上用户数据的机密性或完整性未受到威胁。

什么是DDoS***
分布式拒绝服务(DDoS:Distributed Denial of Service)***,是指***者利用大量“肉鸡”对***目标发动大量的正常或非正常请求、耗尽目标主机资源或网络资源,从而使被***的主机不能为正常用户提供服务。
做一个形象的比喻,我们可以把***者视为无赖,被***者视为商场。无赖为了让一家商场无法正常营业,无赖们扮作普通客户一直拥挤在商场,赖着不走,真正的购物者却无法进入;或者总是和营业员有一搭没一搭的东扯西扯,让工作人员不能正常服务客户;也可以为商铺的经营者提供虚假信息,商铺的上上下下忙成一团之后却发现都是一场空,最终跑了真正的大客户,损失惨重。一个无赖去胡闹,就是 DoS***,而一群无赖去胡闹,就是 DDoS***。
技术图片

DoS(拒绝服务,Denial of Service)就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。这是早期非常基本的网络***方式。

在信息安全的三要素——保密性、完整性和可用性中,DoS(Denial of Service)针对的目标正是可用性。该***方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。一般来说,DDoS ***可以具体分成两种形式:带宽消耗型以及资源消耗型。它们都是透过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的。其中,DDoS 带宽消耗***可以分为两个不同的层次:洪泛***或放大***。

当服务器被DDos***时,一般会出现以下现象:

  • 被***主机上有大量等待的TCP连接;
  • 网络中充斥着大量的无用的数据包;
  • 受害主机无法正常和外界通讯;
  • 受害主机无法处理所有正常请求;
  • 严重时会造成系统死机。
  • 对于用户来说,在常见的现象就是网站无法访问。

反射型DDoS***
本次是GitHub遭受***的手段是DDos***手段中的反射型DDoS***。反射型DDos***也被称为放大***。***者并不直接***目标服务 IP,而是利用互联网的某些特殊服务开放的服务器,通过伪造被***者的 IP 地址、向有开放服务的服务器发送构造的请求报文,该服务器会将数倍于请求报文的回复数据发送到被*** IP,从而对后者间接形成 DDoS ***。
执行反射***,需要具备四个因素:

  • 一个服务器:用于执行 IP 地址欺骗;
  • 一个脆弱的、易于反射/放大的协议:任何设计不完善的、基于UDP请求的协议都可能被利用;
  • 反射服务器列表:支持脆弱协议的服务器;
  • 一个目标IP地址:受害者的IP地址
    ***的整体思路如下:

  • ***者发送虚假的UDP请求;
  • 伪造源IP地址:将请求包中的源IP地址替换成受害者的IP地址,这些请求包中通常不会出现***者自己的IP地址;
  • 每个请求包都发往一个随机的反射服务器;
  • 经过伪造的数据包通过网络传输最终到达反射服务器;
  • 反射服务器接收到这些虚假的请求包,遵从约定的协议规则,发送响应;无疑,这些响应都是针对受害目标的。

技术图片
如图所示,***者不直接把***包发给受害者,而是冒充受害者给放大器发包,然后通过放大器再反射给受害者。受害目标最终会收到大量的响应包,而这些包都不是它请求的。在***足够大的情况下,受害目标可能会发生网络拥塞或中断风暴。

传送给受害目标的响应可能远远大于伪造的请求,这就是这类***被称为“放大***”的原因。经过精心设计,***者可以利用有限的资源,有效的扩大DDOS***的流量。
技术图片

在反射型***中,***者利用了网络协议的缺陷或者漏洞进行 IP 欺骗,主要是因为很多协议(例如 ICMP,UDP 等)对源 IP 不进行认证。同时,要达到更好的***效果,***一般会选择具有放大效果的协议服务进行***。总结一下就是利用 IP 欺骗进行反射和放大,从而达到四两拨千斤的效果。

针对GitHub的***

上面介绍提到过,想要完成***,需要有一个开放服务的支持UDP协议的服务器,而本次针对GitHub的***利用的是我们Java开发人员很熟悉的Memcached。
什么是 Memcached ?

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。经过Memcached缓存技术处理的动态网页应用可以减轻网站数据库的压力,让网站管理员可以进一步提升网站的性能,世界上很多大型网站,例如Facebook, Flickr, Twitter, Reddit, YouTube, Github都使用了这种技术。

为什么是 Memcached ?

由于Memcache(版本低于1.5.6)默认监听UDP,天然满足反射DDoS条件。

很多用户将服务监听在0.0.0.0,且未进行iptables规则配置,这导致可以被任意来源IP请求

Memcache作为企业应用组建,其业务特性保证了具有较高上传带宽。

Memcache不需要认证即可进行交互。

Memcached反射的倍数达到数万倍,非常利于用于放大报文倍数行成超大流量的DDoS***

本次针对GitHub的***,其实是***者把自己的IP地址伪装成GitHub的IP地址,然后向Memcached缓存服务器的UDP端口11211,发出大量假请求,Memcached对请求回应。大量的并发回应报文汇聚到被伪造的IP地址源(也就是GitHub),形成反射型分布式拒绝服务***。
技术图片

如何避免自己的Memcached被利用?

  • 将服务器放置于可信域内
  • 一定要放置有外网时不要监听 0.0.0.0
  • 有特殊需求可以设置acl或者添加安全组
  • 禁用或限制11211的UDP端口号
    如何避免被Memcached DDoS反射***?

对于网络安全防护,其实没有任何办法能够彻底避免被***,网站维护者能做的其实都只是在提高***者的***成本而已。对于DDoS反射***,可以做以下事情:

  • 使用高性能的负载均衡软件,使用多台服务器,并部署在不同的数据中心。
  • 优化资源使用提高 web server 的负载能力。
  • 启用路由器或防火墙的反IP欺骗功能。
  • 使用高可扩展性的 DNS 设备来保护针对 DNS 的 DDOS ***。
  • 准备足够多的带宽。
  • 使用第三方的服务来保护你的网站。
    PS:本文参考了很多业内安全手册及文章,由于公众号限制无法增加链接,参考资料请前往原文查看。

扩展阅读

各大互联网公司架构演进之路汇总
Java开发必会的Linux命令
Java开发2018年值得学习的10大技术
都说IPv6的时代马上就要来了,到底什么是IPv6 ?

如果你看到了这里,说明你喜欢本文。
那么请长按二维码,关注Hollis
技术图片

GitHub遭受的DDoS***到底是个什么鬼?

标签:文字   信息安全   接管   mem   来源   book   受害者   没有   lin   

原文地址:https://blog.51cto.com/13626762/2545130

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!