LOADING STUFF...

保护网站免受攻击的有效方法

保护网站免受攻击的有效方法

电报联系方式

在网站受到攻击的情况下,首先需要仔细分析攻击手段,常见的攻击之一是流量型的DDoS攻击。这种攻击通过消耗目标服务器带宽、占用主机资源等方式,对网站造成影响。其中,一种主要的DDoS攻击方式是CC攻击,那么什么是CC攻击呢?

保护网站免受攻击的有效方法

CC攻击

HTTP Flood,通常称为CC攻击(Challenge Collapsar),是DDoS(分布式拒绝服务)的一种形式,最初称为Fatboy攻击,是一种常见的网站攻击方式。这种攻击专注于Web服务的第七层协议,攻击者与其他三层和四层攻击不同,无需控制大量僵尸计算机。相反,他们通过端口扫描程序在互联网上寻找匿名的HTTP代理或SOCKS代理,然后利用这些代理服务器对攻击目标发起HTTP请求。由于匿名代理服务器广泛存在于互联网上,攻击者能够轻松发起并保持长时间高强度的持续攻击,同时隐藏攻击来源,避免被追踪。

CC攻击的特点

HTTP/CC攻击具有以下特点:

  • 攻击中使用的IP地址都是真实的,并且分散在不同的地方。
  • 攻击所使用的数据包均为正常的数据包,不容易被识别为恶意。
  • 攻击发起的请求都是有效的,难以通过拒绝服务来阻止。
  • 攻击的对象是网页,服务器能够正常连接且可以ping通,但是实际上无法访问网页。

Web服务与DNS服务相似,同样具备缓存机制。当攻击者的大量请求命中服务器缓存时,攻击的主要影响仅表现在网络带宽资源的消耗上,而计算和IO资源的消耗相对较低。因此,高效的HTTP/CC攻击需要不断向服务器发出针对不同资源和页面的HTTP请求,同时尽量请求那些无法被缓存的资源(如关键词搜索结果、用户相关资料等),以更有效地增加服务器负担,达到理想的攻击效果。

当然,HTTP/CC攻击也会引发严重的连锁反应。不仅直接导致被攻击的Web前端响应变慢,还会间接影响后端的业务逻辑(如Java等业务层逻辑)以及更深层次的数据库服务,增加它们的负担。此外,HTTP/CC攻击生成的大量日志数据甚至可能对日志存储服务器造成影响。

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

其一,在进行 HTTPS 通信时,Web 服务器需要消耗更多的资源用来认证和加解密。

其二,目前一部分防护设备无法对 HTTPS 通信数据流进行处理,HTTPS都是加密数据,无法区分正常用户和恶意流量,处理难度更高。

CC攻击防御方法

利用Session做访问计数器

使用Session实现IP-based页面访问或文件下载计数器,以防止用户对特定页面的频繁刷新导致数据库频繁读取或对某个文件的频繁下载产生大量流量。值得注意的是,为了防止在服务端代码中遭受CC攻击,不要直接使用下载地址,而应该通过Session进行控制和过滤处理。

把网站做成静态页面

大量实例表明,将网站尽可能设计成静态页面不仅极大提高了抗攻击能力,而且给入侵者带来了更多麻烦。迄今为止,HTML溢出的问题尚未显现。值得一提的是,像新浪、搜狐、网易等主要门户网站主要采用静态页面。如果确实需要动态脚本调用,建议将其部署在另一台独立的主机上,以免在受到攻击时影响主服务器。

增强操作系统的TCP/IP栈

作为服务器操作系统,Win2000和Win2003本身具备一定的抗DDoS攻击能力,但默认情况下未启用。一旦启用,系统可抵挡大约10000个SYN攻击包,而未启用则仅能抵御数百个。具体的启用方法请参考微软的文章《强化TCP/IP堆栈安全》。

在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间

这是一种非常有效的方法。在防御CC攻击时,需要从代码层面入手。事实上,一个良好的页面代码应该注重考虑这些问题,包括SQL注入。这不仅是一种入侵工具,更是一个DDoS攻击的漏洞,因此大家在编写代码时都应该引起注意。

举例来说,有一台服务器启动了5000线的CC攻击,但却毫不起眼,这是因为所有访问数据库的请求都必须携带一个随机参数放置在Session中,而且该服务器全是静态页面,因此攻击无效。然而,突然发现其中一个请求需要与外部服务器联系,而这个请求耗时较长,且没有有效的认证机制。于是,开启800线的攻击后,服务器立即超负荷。代码层面的防御需要从细微之处开始,一个脚本代码的错误可能导致整个站点受到影响,甚至是整个服务器。

接入SCDN

引入云防护来抵御攻击,可以考虑购买安全加速SCDN服务,用于隐藏服务器真实IP。通过域名解析使用CDN的IP,所有解析的子域名都采用CDN的IP地址。此外,为了增强安全性,服务器上部署的其他域名也应该使用CDN进行解析,而不使用真实IP。

另外,为了防止服务器对外传送信息时泄漏真实IP地址,一种常见的做法是避免使用服务器发送邮件功能。因为邮件头可能泄漏服务器的IP地址。如果确实需要发送邮件,可以考虑通过第三方代理(例如sendcloud)来发送,以确保对外显示的IP是代理的IP地址,而非真实服务器的IP。这有助于保护服务器的隐私和安全。

取消域名绑定

通常,CC攻击主要集中在特定网站域名上。攻击者会在攻击工具中设置目标为该域名,然后发动攻击。我们采取的防御措施是解除该域名的绑定,使CC攻击失去了明确的目标。

域名欺骗解析

当检测到针对域名的CC攻击时,我们可以将受攻击的域名解析到本地回环IP地址127.0.0.1。这个IP地址主要用于进行网络测试。通过将被攻击的域名解析到这个地址,实际上是将攻击者引导到自身,使其攻击自己。无论攻击者拥有多少僵尸计算机或代理,这样的操作都会导致他们自身的系统崩溃,让其自食其果。

更改Web端口

通常,Web服务器通过80端口对外提供服务,攻击者会利用这一点对默认的80端口发动攻击。因此,为了防范CC攻击,我们可以通过修改Web服务的端口来增强安全性。在运行IIS管理器并定位到相应站点后,打开站点的“属性”面板。在“网站标识”下,可以找到TCP端口,默认为80。我们可以通过将该端口修改为其他值来提高防护效果。

屏蔽IP

我们通过命令或在查看日志发现了CC攻击的源IP,就可以在防火墙中设置屏蔽该IP对Web站点的访问,从而达到防范攻击的目的。
© 版权声明

相关文章

暂无评论

暂无评论...