击溃防御攻击

击溃防御攻击,第1张

DDoS攻击--CC攻击防护详解(HTTP) 前言

HTTP的中文名称是超文本传输协议,常用于Web服务请求和响应数据的传输。有两种常见的HTTP请求:GET请求和POST请求。GET请求一般用于从Web服务器获取数据和资源,如请求页面、获取图片和文档等。

POST请求用于向Web服务器提交数据和资源,例如发送用户名/密码、上传文件等。Web服务器在处理这些HTTP请求的过程中,通常需要解析请求、处理和执行服务器端脚本、验证用户权限以及多次访问数据库,这些都会消耗大量的计算资源和IO访问资源。

CC攻击原理

HTTPFlood,俗称CC攻击(ChallengeCollapsar),是DDOS(分布式拒绝服务)的一种。它的前身是Fatboy攻击,也是一种常见的网站攻击方式。这是对Web服务第七层协议的攻击。与其他三层和四层相比,攻击方不需要控制大量的肉鸡。而是他通过端口扫描器在互联网上搜索匿名HTTP代理或SOCKS代理,攻击者通过匿名代理向目标发出HTTP请求。匿名代理服务器广泛存在于互联网上。因此,攻击容易发动并能保持长期高强度的持续攻击,还能隐藏攻击者的来源,避免被追踪。

HTTP/CC攻击的特征:

  • HTTP/CC攻击的Ip是真实的,分散的。
  • HTTP/CC攻击的包都是正常包。
  • HTTP/CC攻击请求都是有效请求,不能拒绝。
  • HTTP/CC攻击网页,服务器可以连接,ping也没问题,但是网页就是上不去。
  • 如果打开IIS,服务器很快就会死,很容易丢包。
  • 如何造成更大的伤害?Web服务和DNS服务一样,也有缓存机制。如果攻击者的大量请求命中服务器缓存,这种攻击的主要效果只是消耗网络带宽资源,计算和IO资源的消耗非常有限。因此,一个高效的HTTP/CC攻击应该不断发出对不同资源和页面的HTTP请求,尽可能多地请求无法缓存的资源(如关键词搜索结果、用户相关信息等。),从而更好的增加服务器的负担,达到理想的攻击效果。当然,HTTP/CC攻击也会造成严重的连锁反应,不仅直接导致被攻击的Web前端响应缓慢,还会间接攻击后端的Java等业务层逻辑和后端的数据库服务,增加他们的压力。HTTP/CC攻击产生的海量日志数据甚至会影响到日志存储服务器

    如果Web服务器支持HTTPS,那么HTTPS洪水攻击是一种更有效的攻击方法。有两个原因:

  • 首先,当进行HTTPS通信时,Web服务器需要消耗更多的资源来进行认证和加密解密。
  • 其次,目前一些保护设备无法处理HTTPS通信数据流,会导致攻击流量绕过保护设备,直接攻击Web服务器。
  • CC攻击防御

    靠攻击演技,保护当然是靠犀利的眼神。

    防御性思维

    HTTP/CC攻击防御主要通过缓存进行,设备的缓存会尽可能直接返回结果,保护后端业务。当高级攻击者穿透缓存时,清理设备会拦截HTTP请求进行特殊处理。因为CC攻击是由工具软件发起的,而普通用户通过浏览器访问,会有一些区别。试着判断两者,有选择地屏蔽来自机器的流量。

    主要

    普通浏览器发起请求时,除了要访问的地址,Http头还会包含Referer、UserAgent等多项信息。遇到攻击时,可以通过日志查看访问信息,看看攻击流量是否有明显的特征,比如固定Referer或UserAgent。如果能找到特征,可以直接屏蔽。

    中间

    如果攻击者伪造Referer、UserAgent等信息,需要从其他地方下手。一般来说,攻击软件的功能比较简单,只有固定的合约发放功能,浏览器会全面支持Http协议,我们可以利用这一点进行防御。

    首先,为每个访问者定义一个字符串,并作为令牌保存在Cookies中。您必须拥有正确的令牌才能访问后端服务。当用户第一次访问时,会检测到用户的Cookies中没有这个令牌,会返回一个302重定向,返回当前页面的目标地址。同时,setCookies字段将被添加到返回的Http头中来设置cookie,以便用户携带这个令牌。

    如果客户端是普通浏览器,它会支持设置的cookie和http头中的302重定向指令,并且它会携带正确的令牌再次访问页面。此时,后台将在检测到正确的令牌时释放它。之后用户的Http请求都会携带这个令牌,所以不会被屏蔽。

    如果客户端是CC软件,一般不会支持这些指令,所以会一直屏蔽在最外层,不会对服务器造成压力。

    高级

    更高级的,还可以返回一个网页,在页面中嵌入JavaScript来设置Cookies和跳转,这样虚假请求的可能性就小了。

    令牌生成算法:令牌需要满足以下要求

  • 每个IP地址都有不同的令牌。
  • 无法伪造
  • 一致性,即每次为同一个客户端生成同一个令牌。
  • 改变令牌的IP地址是为了防止令牌被机器获取,然后被代理服务区攻击。一致性是为了避免在服务器端存储生成的令牌。

    建议使用以下算法来生成令牌,其中Key是服务器独有的秘密字符串。该算法生成的令牌可以满足上述要求:

    Token=Hash(UserAgent+client_ip+key)

    摘要:

  • 早期的方法是对源IP的HTTP请求频率设置一个阈值,高于阈值的IP地址被列入黑名单。这种方式过于简单,容易误杀,无法屏蔽代理服务器的攻击,因此逐渐被废止,取而代之的是基于JavaScript跳转的人机识别方案。
  • HTTPFlood是一个模拟HTTP请求的程序。一般来说,它不会解析服务器返回的数据,更不用说JS之类的代码了。那么当清洁设备拦截的时候?HTTP请求时返回一段特殊的JavaScript代码,正常用户的浏览器会处理并正常跳转,不影响使用,而攻击者则会攻击空。由于HTTP/CC攻击的伪装千变万化,很少有策略或硬件防护可以完美清洗。所以对于HTTP/CC攻击,很多时候需要具备一定技能的网络维护人员来采取行动。
  • 简易CC攻击防御方法

    1。使用会话作为访问计数器:

    Session作为每个IP的页面访问计数器或文件下载计数器,防止用户频繁刷新某个页面,导致频繁读取数据库或频繁下载某个文件,产生大量流量。(下载文件时不要直接使用下载地址,这样可以过滤服务器代码中的CC攻击)

    2。将网站设为静态页面:

    大量事实证明,让网站尽可能的静态化,不仅可以大大提高抗攻击能力,也会给黑客的入侵带来很多麻烦。至少到现在为止,HTML的溢出还没有出现。看一看!新浪、搜狐、网易等门户网站主要是静态页面。如果不需要动态脚本调用,就拿到另一台单独的主机上,这样可以避免主服务器被攻击时遇到麻烦。

    3。增强 *** 作系统的TCP/IP堆栈

    Win2000和Win2003作为服务器 *** 作系统,有一定的抵御DDOS攻击的能力,但默认不开启。如果开启的话,可以抵御10000个左右的SYN攻击包,不开启的话只能抵御几百个。如何打开它们?亲自阅读微软的文章!增强TCP/IP堆栈的安全性。有人可能会问,如果我用Linux和FreeBSD呢?很简单。关注这篇文章!《合成饼干》.

    4。在有多个工作站的服务器上,严格限制每个工作站允许的IP连接数和CPU使用时间

    这是一个非常有效的方法。CC的防御要从代码开始。其实一个好的页面代码应该注意这些东西,还有SQL注入,它不仅是一个入侵工具,还是一个DDOS缺口。大家在代码中要注意。举个例子,一个服务器启动了5000行的CC攻击,但是没有响应,因为它所有访问数据库的请求都要在会话中有一个随机参数,都是静态页面,没有效果。突然发现它有一个请求,会通过联系外面的服务器获得,需要很长时间,而且没有认证。当我开始800行攻击的时候,服务器马上就满了。代码层的防御需要从一点一滴做起。一个脚本代码的错误可能会带来全站甚至整个服务器的影响!

    5。服务器前端加CDN中转

    (百度云加速360网站卫士、加速音乐、安全宝等。都是免费的)。如果资金充足,可以买一个安全性高的盾构机,隐藏服务器的真实IP。域名解析使用CDN的IP,所有解析的子域都使用CDN的IP地址。另外,部署在服务器上的其他域名都是真实IP无法解析的,都是CDN解析。
    另外,为了防止服务器对外传递信息时泄露IP地址,最常见的情况是服务器不要使用邮件发送功能,因为邮件头会泄露服务器的IP地址。如果必须发送邮件,可以通过第三方代理(如sendcloud)发送,这样显示的IP就是代理的IP地址。
    总之,只要不泄露服务器的真实IP,10G以下的小流量DDOS的防范不会花多少钱,免费的CDN也能应付。如果攻击流量超过20G,那么免费的CDN可能就撑不住了,需要买高安全性的盾构机来应对,服务器的真实IP也需要隐藏。

    简易CC攻击防御策略

    确定Web服务器正在或者已经被CC攻击,那么如何有效防范?

    (1)。取消附加域
    一般cc攻击都是针对网站的域名。比如我们的网站域名是“www.abc.com”,那么攻击者就会在攻击工具中将攻击对象设置为这个域名,然后实施攻击。对于这样的攻击,我们的措施是解绑这个域名,让CC攻击失去目标。

    (2)。域名欺骗解析
    如果发现针对域名的CC攻击,我们可以将被攻击的域名解析到127.0.0.1的地址。我们知道127.0.0.1是本地环回IP,用于网络测试。如果被攻击的域名解析到这个IP,攻击者就可以攻击自己,这样无论他有多少鸡或者代理,都会被打倒,让自己遭殃。

    (3)。更改Web端口
    一般情况下,Web服务器通过端口80向外界提供服务,所以攻击者在攻击时会使用默认的端口80进行攻击。因此,我们可以修改Web端口来防止CC攻击。运行IIS管理器,导航到相应的站点,并打开该站点的“属性”面板。“网站ID”下有一个TCP端口,默认值为80,我们可以将其更改为另一个端口。

    (4)。拦截IP
    当我们通过命令或者通过查看日志找到CC攻击的来源IP时,就可以设置防火墙拦截该IP对网站的访问,从而阻止攻击。

    End

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/755374.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-04-30
    下一篇 2022-04-30

    发表评论

    登录后才能评论

    评论列表(0条)

    保存