`
zhengdl126
  • 浏览: 2542660 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

一次大规模网站攻击防御报告

 
阅读更多

http://www.hackbase.com/tech/2012-08-07/66718.html

 

笔者所在的网站在某一个晚上出现大范围的攻击,据事后统计而知,这次用了攻击方用了大约50万并发持续攻击网站,一看网站应用服务器的负载很高,怪不得很慢呢。接下来开始分析和解决问题。

一、   攻击描述

年初开始,网站应用服务器网卡流量普遍蹿升到100M以上,其中几台服务器网卡流量更是达到了204Mbps。随之带来的就是访问速度逐渐变慢,网络带宽数次被用完。 

二、 攻击分析

1、 既然是网卡流出100M以上,那么一定有不正常的请求地址过来,接着服务器才会响应并发送到客户端。由此判断是请求的地址有异常

应用服务器受到攻击时的网卡流量图

应用服务器受到攻击时的网卡流量图

网站应用服务器受到攻击时的负载现象

网站应用服务器受到攻击时的负载现象

2、 分析web日志,可以发现很多IP同时在一秒钟对的多个地址发送GET请求,且返回的地址的流量在200k-300k之间。 试想一下,返回一个php地址,怎么会有200多k的流量,那么就一定是恶意的请求。看下面url中的 232347,这个232347,就是返回给客户端的流量。

123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-116-20.html HTTP/1.0" "200" 232347 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-1402-1.html HTTP/1.0" "200" 253872 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-63-1.html HTTP/1.0" "200" 118163 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-1342-1.html HTTP/1.0" "200" 235327 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum.php?mod=forumdisplay&fid=58 HTTP/1.0" "200" 283377 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"

3、攻击主要针对php应用,php并发跟nginx差了好几个数量级 。这次攻击,平均每台php 每秒最高承受200个并发,绝大部分的针对列表页,直接对数据库造成影响。

四、解决方案

1 、防火墙封IP(不推荐)

用封IP的方式来阻止攻击源IP,是一种方法,起初,我是采用了这种方法,但是这样封IP,还需要到日志中去搜索。比较繁琐,而且效果不明现。

2 、Nginx被动防御(推荐)

还记得日志中的相同的user-agent的没有,nginx这次利用了user-agent来防御攻击。

在的nginx的配置文档的上面加入了

if ( $http_user_agent ~* "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.0\;\ .NET\ CLR\ 1.1.4322\)" )
 {
     return 444;
 }

重启nginx后,nginx 在日志中检测到该类user-agent时,就会返回444 http 状态码,既请求失败。这样设置后,各应用服务器负载恢复到正常,网卡流量正常。

218.5.73.245 - - [07/Mar/2012:10:53:12 +0800] "GET /forum-222-1.html HTTP/1.0" 444 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.5.73.245 - - [07/Mar/2012:10:53:12 +0800] "GET /forum-222-1.html HTTP/1.0" 444 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.5.73.245 - - [07/Mar/2012:10:53:12 +0800] "GET /forum-222-1.html HTTP/1.0" 444 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"

Nginx 处理攻击ip的结果

五、总结

1、本次nginx 在防小型ddos或者cc有自己的特色:处理请求高效,消耗资源极低。

缺点:需要分析日志,找到规律,比如:user-agent等等。

2、疑问?

Q: 有些同学要问了,这样屏蔽该类user-agent,造成误杀率有多大?

A: cc攻击者攻击时,都会有自己特殊的user-agent,屏蔽该类user-agent,不会造成额外的误杀。这是通过观察屏蔽日志的得出来的结论,服务器用上该类策略后,从来木有一个网友因为这事找过。

Q: 如果cc攻击软件伪装成正常的user-agent,这样的造成误杀多大?

A: 1):并不是所有的攻击者都具备修改user-agent的,相当部分的攻击者用的都是购买的攻击软件,如果要修改,则要付出金 钱的代价。这不是攻击者想要的结果。2):就算是伪装成了正常的user-agent,也会有自己的特点,可以从其共有特征来分析,比如来源地址是否相同 等等,这里就可以作为共同点来设置策略。在做策略时应注意观察nginx屏蔽日志中,是否其他的正常的请求也被屏蔽了?

124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -
124.133.235.202 - - [08/Mar/2012:10:33:37 +0800] "GET / HTTP/1.1" 302 163 "/zhuanti/nzpp/zonghegr.jsp?group=2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" -

例如上面的日志,这次攻击者将user-agent伪装成正常的,再用user-agent做关键字,就会有部分误杀了。所以针对此类攻击,可以以来源地址作为关键字,nginx防护策略可以这么做,

if ($http__referer ~ * "/zhuanti/nzpp/zonghegr.jsp?group=2")
{
  return 444;
}

这样就不会有误杀了

3、经验教训

教训:去年的一次CC攻击,跟这次攻击有异曲同工之处,都是打的是php;那时我们在启用了黑洞防护墙后效果并不明显。

经验:当天晚上,我仔细分析了web日志,发现其user-agent,都是相同的,例如windows 5.0,跟正常的windows NT 5.0有本质区别,那可不可以在这上面做文章呢。带着这个问题,在网上搜索了nginx 防cc方面的资料,果然发现网上的高手的想法跟我的相同,都从其相同点user-agent入手,用nginx 来匹配该类user-agent,然后返回503 http状态码,当然这里我做了修改,返回了444状态码。所以,在吸取了上次的教训后,在今年网站遭受攻击时,我果断采用该条策略,结果证明效果很明 显。虽然cc攻击一直在持续,但是网站访问依然流畅。

作者简介:崔晓辉,网名coralzd,大众网系统管理员,精通网站系统架构、Unix技术。

分享到:
评论

相关推荐

    DOS攻击介绍与防御

    6. **DDoS防护服务**:利用专门的DDoS防护服务提供商,他们有更强大的硬件设施和算法来抵御大规模攻击。 **网络基础知识** 网络基础知识是理解DOS攻击及防御策略的基础,包括网络协议、网络层次模型(如OSI七层...

    SDN下基于深度学习混合模型的DDoS攻击检测与防御.pdf

    整体而言,SDN下基于深度学习混合模型的DDoS攻击检测与防御为网络安全领域带来了一次技术革新,为网络攻击检测和防御提供了新的方向和方法。这项研究不仅促进了深度学习和网络安全交叉领域的发展,也为相关专业研究...

    关于D D O S中S Y N F l o o d 攻击的防御算法 研究

    DDoS攻击,即分布式拒绝服务攻击,是一种基于拒绝服务(DoS)的特殊形式,通过分布式的、协同的大规模攻击,利用受控机器群同时向目标发起攻击,其破坏性和难以防御的特点使其成为了网络安全领域的一大挑战。...

    计算机安全技术大作业实验报告-DDoS攻击的原理及防范.pdf

    最后,监控网络流量和日志,及时发现并响应攻击,以及与其他机构合作,共享威胁情报,共同抵御大规模的DDoS攻击。 总的来说,理解和防范DDoS攻击需要深入了解网络协议、攻击手段以及系统资源管理,通过综合防御策略...

    基于CDN云分发平台的DDoS攻击防护方案

    - **Prolexic帮助某亚洲电子商务网站缓解了峰值约为45Gbps的DDoS攻击**:这表明即使是在2012年,也有针对大型电子商务平台的大规模攻击行为。 - **美团网、米奇网、WordPress、劲舞团游戏等遭受过DDoS攻击**:这些...

    帕拉迪综合防御网关

    这就需要引入一种全新的技术——入侵防御系统(Intrusion Prevention System, IPS)防火墙是一次性的防护手段,根据防火墙的策略规则(IP地址,端口等)只允许通过策略规则所允许的数据包,但它不能发现和阻断隐藏在...

    思科2018年度网络安全报告

    思科公司在2018年发布的这份网络安全年度报告,为我们提供了一系列有关企业网络安全状况和企业对攻击防御效力看法的调查结果。报告详细地探讨了网络攻击的形势、攻击种类以及如何应对未来可能出现的威胁。 首先,...

    预防DDOS攻击-流量清洗中心解决方案

    传统防火墙在防御DDoS攻击方面存在明显不足,尤其是在处理大规模攻击流量时。 ##### 5.5 入侵检测 入侵检测系统能够识别异常流量,但对于缓解攻击效果有限。 #### 四、DDoS防护的基本要求 有效的DDoS防护应满足...

    CC攻击原理及防范

    传统的防护CC攻击的方法包括限制每个IP地址的连接数,但这在面对大规模IP池的攻击时效果有限;另一种是限制代理访问,通过识别HTTP头中的X-FORWARDED-FOR字段,但这种方法并不能完全阻止不携带该字段或使用无标识...

    破坏之王 DDoS攻击与防范深度剖析.pdf

    - **与ISP合作**:与互联网服务提供商合作,共同应对大规模攻击。 - **法律手段**:对于恶意攻击行为,可以通过法律途径追究责任。 #### 五、案例分析 ##### 5.1 典型案例 - **GitHub遭受大规模DDoS攻击**:2018年...

    快快网络2024 年DDoS 攻击趋势白皮书.pdf

    - **僵尸网络**:攻击者利用物联网(IoT)设备建立大规模僵尸网络,发动记录级别的DDoS攻击。 - **零日漏洞**:利用协议层面的未知漏洞进行攻击。 - **攻击频率与复杂度**:全年DDoS攻击更加频繁、持续时间更长、...

    2021-2025年中国PVC弹性地板行业调研及防御型战略咨询报告.pdf

    企业防御型战略是企业为了保护自身免受竞争者攻击,维持市场份额,以及抵御市场变化和外部冲击等风险而采取的一系列策略。本报告从PVC弹性地板行业的角度出发,对防御型战略进行了深入研究。 #### 研究原则与方法 ...

    ns-2 分布式攻击的模拟

    网络安全是信息技术领域不可或缺的重要部分,而分布式拒绝服务(Distributed Denial of Service, DDoS)攻击则是网络安全的一大威胁。DDoS攻击通过大量的恶意请求,使目标服务器过载,从而无法正常提供服务。本文将...

    大规模分布式蜜网技术研究与应用.pdf

    文章提到的中心从2006年开始进行的大规模分布式蜜网技术研究及应用工作,是对上述技术领域的一次全面尝试和实践。这不仅代表了蜜罐技术研究和应用的一个重要方向,也为网络安全防护工作提供了新的思路和工具。 通过...

    基于免疫原理的大规模分布式入侵检测模型.pdf

    《基于免疫原理的大规模分布式入侵检测模型》探讨了如何利用生物免疫原理来构建适应大规模分布式网络环境的入侵检测系统。随着网络规模的扩大和结构的复杂化,传统的入侵检测系统在应对安全挑战时显得力不从心。生物...

    OPNET下的网络攻击建模

    本文作者团队使用OPNET进行了一次网络攻击仿真,重点研究了DoS攻击对网络性能的影响,并评估了一种新型入侵检测算法的表现。通过对仿真过程中收集的数据进行分析,研究人员得出了以下结论: - DoS攻击能够显著降低...

    CSRF攻击与防御,Web安全的第一防线

    CSRF(跨站请求伪造)攻击是Web安全领域的一个重要话题,它允许攻击者通过诱使用户在不知情的情况下执行非预期的操作来滥用用户在某个网站上的权限。这种攻击方式通常涉及两个网站:一个受信任的网站(Web A)和一个...

    工业控制系统网络攻击事件.docx

    这是第一次公开确认的对电力基础设施的大规模网络攻击,标志着网络战已经延伸至关键基础设施领域。 7. 安全防护措施:这些事件提醒我们,工业控制系统必须加强网络安全防护。这包括定期更新和打补丁,隔离关键系统...

    隐秘的角落——基于某款游戏利用的反射攻击分析.pdf

    文档主要围绕一次针对特定游戏业务的反射攻击案例进行深入分析,详细阐释了攻击手法、分析过程、攻击复现,以及如何通过安全防护措施来应对这类攻击。 首先,攻击者在针对某款游戏业务发起攻击时,使用了多种手段,...

Global site tag (gtag.js) - Google Analytics