一次防CC***案例
本文来自 :http://baiying.blog.51cto.com/1068039/1113087
名词解释:摘自百度百科
名称起源 CC = Challenge Collapsar,其前身名为Fatboy***,是利用不断对网站发送连接请求致使形成拒绝服务的目的,
CC***是DDOS(分布式拒绝服务)的一种,相比其它的DDOS***CC似乎更有技术含量一些。这种***你见不到真实源IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。最让站长们忧虑的是这种***技术含量低,利用工具和一些IP代理一个初、中级的电脑水平的用户就能够实施***。因此,大家有必要了解CC***的原理及如果发现CC***和对其的防范措施。
CC***的原理
CC***的原理就是***者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来***页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
防CC***
CC***可以归为DDoS***的一种。他们之间的原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接***。CC***又可分为代理CC***,和肉鸡CC***。代理CC***是***借助代理服务器生成指向受害主机的合法网页请求,实现DOS,和伪装就叫:cc(Challenge Collapsar)。而肉鸡CC***是***使用CC***软件,控制大量肉鸡,发动***,相比来后者比前者更难防御。因为肉鸡可以模拟正常用户访问网站的请求。伪造成合法数据包。
CC***主要是用来***网站的。想必大家都有这样的经历,就是在访问某个网站时,如果这个网站比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。
一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛之类的动态网站就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。
CC***就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面,比如asp/php/jsp/cgi)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。当然也可以使用肉鸡发动CC***。肉鸡的CC***效果更可观。致使服务器CPU%100,甚至死机的现象。
使用代理***还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。
当然,CC也可以利用这里方法对FTP、游戏端口、聊天房间等进行***,也可以实现TCP-FLOOD,这些都是经过测试有效的。
防御CC***可以通过多种方法,禁止网站代理访问,尽量将网站做成静态页面,限制连接数量等。
事发前:本来我的这个受***站点是公司下线的一个业务,但网站仍在运行,已经没什么访问量了。可是受***当天我发现监控上此站点的连接数从8点开始往上飙升,于是登录网站查看在线人数,结果实际登录人数就我一个!而网卡流量还不到50K,问题出现了就得解决啊
于是打开访问日志查看,日志里不停的记录着非本站点的访问,比如我站点域名为www.51cto.com 但是日志里记录的内容如下(此日志是我处理cc***后的,只是让大家看个访问的现象):
199.201.122.141 - [10/Jan/2013:10:45:03 +0800] GET http://www.7xgj.com:81/login.jsp?id=106&name=%C7%C1%A6%A7%D1%F3 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:04 +0800] GET http://www.7xgj.com:81/login.jsp?id=106&name=%C7%C1%A6%A7%D1%F3 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:04 +0800] GET http://www.7xgj.com:81/login.jsp?id=512&name=%B4%B4%C6%A0%A7%C7 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:05 +0800] GET http://www.7xgj.com:81/login.jsp?id=512&name=%B4%B4%C6%A0%A7%C7 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:05 +0800] GET http://www.7xgj.com:81/login.jsp?id=898&name=%F1%B0%E8%D2%C5%F1 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:06 +0800] GET http://www.7xgj.com:81/login.jsp?id=898&name=%F1%B0%E8%D2%C5%F1 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:06 +0800] GET http://www.7xgj.com:81/login.jsp?id=173&name=%E7%C5%A0%D5%A2%E5 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
199.201.122.141 - [10/Jan/2013:10:45:07 +0800] GET http://www.7xgj.com:81/login.jsp?id=173&name=%E7%C5%A0%D5%A2%E5 HTTP/1.1 "403" 564 "http://www.7xgj.com:81/login.jsp?id=+N3&name=+C3" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 5.1)" "0.000" "340" "-"
此ip短时间发送大量这种非对本站访问的连接,于是先把他给在防火墙上毙掉:
#!/bin/sh
IP=`tail -n 1000 /data/logs/test.log | awk '{print $1}' | sort | uniq -c | sort -rn| awk '$1 > 100 {print $2}'`
for i in $IP
do
iptables -I INPUT -p tcp --dport 80 -s $i -j DROP
done
这样连接数立马下降到正常水平,除了在iptables上这么处理,还有就是禁用了nginx虚拟主机的空主机头:
server {
listen 80 default;
location / {
return 403;
}
}
对以ip访问的请求统统拒绝访问。开始以为是某地区dns解析问题,经分析日志,来源的ip分布全球各地。初步判断,这是被其他代理服务器发起的***。
转载于:https://blog.51cto.com/94j69/1143287
相关文章:

滴滴联合比亚迪:首款定制网约车D1发布
11月16日,滴滴出行举办“滴滴开放日”,正式发布全球首款定制网约车D1。这款车基于滴滴平台上5.5亿乘客、上千万司机需求、百亿次出行数据,针对网约车出行场景,在车内人机交互、司乘体验、车联网等多方面进行定制化设计。作为第一款…

表格对决CSS--一场生死之战
表格对决CSS--一场生死之战作者:阿捷 2004-7-19 21:00:54原文作者:Sergio Villarreal 作者简介:墨西哥网页设计师,1993年接触网络,个人主页为Overcaffeinated.net 原文出处:sitepoint.com 原文发表时间&…

使用Docker-Docker for Web Developers(2)
1. 使用镜像 1.1 在Docker Hub上查找镜像 我们查找一下之前博客里面,推送到Docker Hub里面的bage88/docker-demo,能看到有2个仓库,第一个就是我们上次上传的镜像。点击“Details”进入到详细页面。 1.2 拉取镜像到本地机器 在我们本地虚拟机上…
赠书 | 图像分类问题建模方案探索实践
作者 | 中国农业银行 陆春晖责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国*文末有赠书福利背景图像分类,是计算机视觉领域的一个核心问题,顾名思义就是输入一张图像,根据内容将其划分到某一个特定的类别。与其他分类问题相比&a…

数据库开发个人总结(ADO.NET小结)
一.用SqlConnection连接SQL Server 1..加入命名空间using System.Data.SqlClient;2.连接数据库SqlConnection myConnection new SqlConnection();myConnection.ConnectionString "user idsa;passwordsinofindb;initial catalogtest;data source127.0.0.1;Con…

PHP 调用C的代码
用php调用C函数,常通过调用系统命令函数的方式来实现,其中主要有system()和exec()两种,还有一种是passthru(),这种方法没有尝试,暂不作讨论。 system()方法输出并返回最后一行的shell结果。 exec()不输出结果,返回最后…

态势“知”多少,点开就知道
2019独角兽企业重金招聘Python工程师标准>>> 态势感知,最核心的是“知” 关于“知” 典故不少 《孙子兵法》六千多字,“知”出现了79次,只有《势篇》与《行军篇》中没有“知”字。 史称两个半完人之一的王阳明 在经过五溺三变的曲…

17 种正则表达式
作者:http://blog.csdn.net/hivak47/archive/2004/10/31/161006.aspx"^/d$" //非负整数(正整数 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-/d)|(0))$" //非正整数(负整数 0)…
程序员如何乘风破浪?从数据库历史看技术人发展 | CSDN 高校俱乐部
2009 年我国数据库软件市场规模为 35.03 亿元,2017 年我国数据库软件市场规模增长至 120.00 亿元。8年时间内,我国数据库软件市场始终保持平稳增长,年均复合增长率为 17.5%,且增速呈现递增趋势。根据中研产业研究院估计࿰…

陶哲轩实分析 定理 13.3.5 :紧致度量空间上的连续函数一致连续
设 $(X,d_X)$ 和 $(Y,d_Y)$ 都是度量空间,假定 $(X,d_X)$ 是紧致的,如果 $f:X\to Y$ 是函数,那么 $f$ 是连续的当且仅当 $f$ 是一致连续的.证明:当 $f$ 是一致连续时,$f$ 显然是连续的.我们主要证明 $f$ 连续时一致连续.我们采用反证法,假若 $f$ 不是一致收敛的,意味着无论如何…

SQLServer------插入数据时出现IDENTITY_INSERT错误
详细错误信息: 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 Student 中的标识列插入显式值。 原因: 表中存在某个字段是自动增长的标识符 解决方法: set IDENTITY_INSERT Student ON //设置为OFF时表示不能手动给拥有标识符的列插…

ASP.NET 制作让搜索引擎可以友好访问的链接
作者:http://www.donews.net/lealting/archive/2004/03/31/9759.aspx今天看了一篇文章,主要是讲,如何制作让搜索引擎可以友好访问的链接,大概的内容是这样的:很多的时候我们在进行查询的时候,总是会以这样的…
机器学习中的7种数据偏见
作者 | Hengtee Lim翻译 | Katie,责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国机器学习中的数据偏差是一种错误,其中数据集的某些元素比其他元素具有更大的权重和或表示。有偏见的数据集不能准确地表示模型的用例,从而导致结果…

windows7 下arp 绑定的实现
局域网的arp***常常让人头痛,绑定IP/MAC地址是解决方式之一; 在xp下面绑定mac地址很简单,只需“arp -s IP地址 MAC地址 ”就ok, 在win7下的命令有所不同; 首先,需要查看可用网卡的id,使用命令n…

Asp.net(c#)实现多线程断点续传
http://www.cnblogs.com/bestcomy/archive/2004/08/10/31950.html以前一直错误的认为在ASP.NET中无法通过编程方式实现多线程断点续传,今天终于获得了这样一个解决方案,让我明白要学习的东西还很多。此解决方案基于其它解决方案及相关资料,根…
0.7秒完成动漫线稿上色,爱奇艺发布AI上色引擎
出品 | AI科技大本营(ID:rgznai100)中国漫画的需求量在不断增加,而动漫制作成本一直居高不下。究其原因为动漫制作是一个复杂且耗时的过程,需要大量工作人员在不同阶段进行协作。动漫制作过程中,需先创作关键帧草图&am…

Java Web整合开发读书笔记
下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载Eclipse: http://www.eclipse.org/downloads/ 下载Tomcat: http://tomcat.apache.org/download-70.cgi 正则表达式:http://www.cnblogs.com/deerchao…
ListView中CheckBox使用问题
因为CheckBox的点击事件优先级比ListView的高,所以当ListView中使用CheckBox会导致ListView的setOnItemClickListener失去响应。 解决的方法:在CheckBox中加入android:focusable"false"。使得CheckBox初始的时候没有获取焦点。 假设想在单击C…

网页播放的视频代码
网页播放的视频代码 第一种是通过调用window media player进行播放诸如:wmv,asf等格式文件: <object alignmiddle classOBJECT classidCLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 height320 idMediaPlayer width356> <param name"ShowStatusBar…

[Ruby] 模块
1. 命名空间模块定义了一个命名空间,方法和常量可以在其中任意使用而不必担心被其他方法或常量干扰,例如:module Testdef Test.method()end end模块常量的命名和类常量一样,都以大写字母开头,方法定义类似于类方法的定…
10个工程师,9个不合格!
如果你想问最近这些年什么编程语言最值得学习,我会毫不犹豫的告诉你是Python。无论是刚入门的程序员,还是年薪BATJ的技术大牛,都无可否认现在Python对于一个程序员职业发展的重要性。所以不仅是开发小白,甚至很多开发老手…

云计算(2)it 是什么
2015年,全世界在it上面的花费达到3亿8千亿美金之多。 云数据中心:核心基础架构,云计算的物理载体,提供数据处理、存储和高性能计算支撑,包括服务器、存储、冷却、机房空间和能耗管理等。 超大规模的云数据中心…
大批量生成假数据,faker.js获得近28k个Star
整理 | 夕颜图源 | 视觉中国来源 | CSDN(ID:CSDNnews)近日,GitHub上一个生成假数据的项目faker.js火了,攀升Trendinging榜单第二,标星目前已超过27.1k。只需要简单几步操作,就可以在浏览器和node.js中生成大…

C++代理类,句柄(智能指针)_C++沉思录笔记
代理类 首先定义三个类: class Animal{ public:virtual void getName()0;virtual void clone()0; };class Cat:public Animal{ public:void getName(){cout<<"this is Cat"<<endl;}Animal* clone(){return new Cat;} };class Dog:public Animal{ public:…

浅析C语言的一个关键字——register
1、register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码, /* Procedure for the assignment of structures, */ /* if the C compiler doe…

《Haskell趣学指南》—— 第1章,第1.2节小朋友的第一个函数
本节书摘来自异步社区《Haskell趣学指南》一书中的第1章,第1.2节小朋友的第一个函数,作者 【斯洛文尼亚】Miran Lipovaca,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.2 小朋友的第一个函数函数的声明与它的调用形式大体相同&…

ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
关键字:DataGrid、存储过程、分页出自: http://blog.csdn.net/yzx110/archive/2004/08/18/78525.aspx摘要:在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现分页. 下…
看清头秃元凶,腾讯AI首度揭示真相
出品 | AI科技大本营(ID:rgznai100)11月17日,腾讯公布了一项人工智能助力药物发现的新进展。通过腾讯自研的提升蛋白质结构预测精度的新方法,联合研究团队首次解析了II型5a还原酶(SRD5A2)的三维结构&#x…

UNIX--stat、fstat和lstat函数
2019独角兽企业重金招聘Python工程师标准>>> stat、fstat和lstat函数(UNIX) #include #include int stat(const char *restrict pathname, struct stat *restrict buf); 供给文件姓名,获取文件对应特点。感受通常是文件没有翻开的时分这样操作。 int fst…

UVA 1482 - Playing With Stones(SG打表规律)
UVA 1482 - Playing With Stones 题目链接 题意:给定n堆石头,每次选一堆取至少一个。不超过一半的石子,最后不能取的输,问是否先手必胜 思路:数值非常大。无法直接递推sg函数。打出前30项的sg函数找规律 代码ÿ…