什么是CC攻击?
网上有一个定义:攻击者借助代理服务器生成指向受害主机的合法请求,实现拒绝服务攻击的攻击方式称为CC(Challenge Collapsar)攻击。【据说CC的原意为Chanllenge Fatboy,因为Collapsar(黑洞) 是绿盟科技公司的一款产品,在对抗拒绝服务攻击的领域内具有比较高的影响力,CC更名为Challenge Collapsar,意在表示要向Collapsar发起挑战】
CC 攻击显著的特点,就是攻击者使用“合法”的源IP与访问请求,Collapsar无法判断真假只好放过,成了摆设(这种对于应用层面的攻击,基本上让目前所有的安全网关都没有办法);至于强调通过代理服务器攻击,只是要隐藏攻击者的行踪。其实在流量不大的时候,知道你的IP也无法确认你就是攻击者,不隐藏也同样安全(可以骗过按源路由分析的安全检测,因为代理服务器有很多显著的的路由特征,很容易成为安全监控的怀疑点)。CC攻击区别于DDOS攻击还有一个显著特点:攻击的流量不需要很大,很均匀,访问请求数量也无需很多,占用服务器的资源却很多,其结果也是让服务器“宕机”,被攻击者常常认为是自己的服务器出了“不可知”的问题。
那么CC攻击是如何达到攻击目的呢?
通过构造有针对性的、最为消耗服务器端资源的业务请求,让服务器“劳累过度”而停止服务,比如计算的缓存空间、访问IO通道数量、读写数据库操作、磁盘读写操作…
这好比医院的大夫看病:平时都是感冒发烧之类的病人,大夫一天可看50个病人,若都是美尼尔斯综合症之类的疑难杂症,大夫一天把一个病人弄清楚就不错了;但一天同时来了六个这样的疑难病人,即使你挂上号了,估计大夫也没时间给你看了。
我们都说:做买卖有赔有赚,有优质客户、有难缠客户,若难缠客户的比例超出了正常的范围,成本急剧升高,这买卖想赚钱就困难了。
构造这种有针对性的业务请求,方法有很多,关键是了解服务后台的业务处理机制,下面介绍几种针对一般网站的通用思路:
1、 连续页面翻页
一般针对查询网站,如Google、百度,我们提交一串查询的关键字,一般先返回前20或50的查询结果,正常的访问行为是开始进入链接查看内容。若没有自己想要的结果时,会继续翻页往后看,那么查询网站就把后面的结果再发送给你。而更多的人选择修改查询关键字,试图精确自己的查询目标,而不是选择翻页。所以,我们不断地翻页,就使得服务器不得不读取数据库的后续查询结果,而因为使用的人少,这些结果通常不在缓存内…
首先,我们构造一些“过时”的关键字,因为曾经流行过,查询结果应该非常多,现在不流行了,结果一般不在缓存或CDN加速网络中;然后,你可以再不断的翻页,查看后续的结果。
由于公共查询网站是免费服务,忙了就说没有查询结果,或者干脆不理你了,所以这种构造方式的效果不是很显著,但对一些收费的查询服务来说,就是另一种结果了。
2、 对“老数据”的请求
这个想法是管理员审计日志时碰到的。在安全审计或年度数据总结分析时,我们经常要调用半年前、甚至以往年代的数据,统计也好,对比也好,数据越多,分析越有效果。
日志的特点是连续记录,数量庞大,所以设计者一般定期把“老一些”的数据存档,当前文件只是临近的数据;通常的存储设计架构为:内存数据、Cache缓存、在线文件或数据库、二级备份文件、离线备份文件等几个层次。
你能调用的数据越深,经过查询的级数越多,占用的资源就越多。
构造这种查询做法可以获得几种结果:
Ø 一次调用老数据,该数据被临时放到Cache存储中,由于数据更新快,该数据被再次访问的概率很低,所以很快被调用频率高的新数据“挤出”去,这时,你再次访问这个老数据,刚才的“翻箱倒柜”工作只得又从头来一次;
Ø 一次性大量调入很多老数据在Cache中,大量占用了Cache的空间,造成很多使用频率高的“流行数据”被“挤出”Cache,而这些“老数据”的“老化”也需要时间,这对正常查询的影响更加大;
Ø 周期性地调用老数据,造成老数据在Cache缓存中频繁更替,可以成倍地放大系统数据的管理负担。
3、 对三级页面的请求
网站主页的被访问几率较高,而三级页面的访问量要小几个数量级,即使是网站里众多的“爬虫”也常常忽略它。
这里设计一个对网站的不同三级页面轮询式的申请。这对于较大的网站来说,潜在的影响可能是巨大的:
Ø 大型社交网站与搜索网站的三级页面多达上千万,网站很难发现你是否是恶意重复申请;
Ø 大多的动态页面都是利用读取后台数据库动态生成的,因此页面的提供,驱动了后台对数据库的大量访问;
Ø 由于三级页面访问少,你设计的访问重复度也不是很高,网站的加速、缓存等优化措施基本用不上。
4、 交易申请
对于电子商务网站、银联系统来说,DDOS攻击是要重点防护的,因为越是这个时候,交易量越大,若影响业务提交,经济损失与信誉损失都是相当的大。
我们不可能有那么多的“合法交易”,但可以采用下面的方法:
Ø 多账户关联交易:简单地说就是甲卖给乙,乙卖给丙,丙再卖给甲,当然每次的交易额可以非常低(当然合法避税是必须的),如一元钱,还可以在更多的账户里循环往复,让管理方很难发现你是在“逗你玩”;这好比拿着一大麻袋的零钱到银行柜台,可以让一个服务窗口半天不能正常提供服务;
Ø 空账号交易:就是账户里没钱,也进行交易申请,当然交易是不成功的,但这对交易系统来说,同样是处理一笔交易;
这里仅提到通用的访问。具体的攻击针对要攻击的网站服务器,研究其具体的服务种类、网站结构、查询算法等,才可以构造出有极强针对性的访问。这有些像SQL注入时的语句设计,只是SQL注入是为了获取敏感数据或系统执行权限,而CC攻击时为了让对方的资源耗尽,停止服务。
CC攻击让DDOS攻击从网络层面,走到了应用层面,攻击的是服务器的紧张资源,而不是带宽,可以绕过网络安全的流量清洗设备,对目标系统直接DDOS攻击,业务系统的防护能力往往比我们想象的要脆弱的多。
先下,随着人们安全防护意识的加强,攻击变得越来越难,信息安全行业正面临艰难的转折。究其原因可归结为:1、系统可利用的漏洞越来越少(发现难度加大、经济与政治原因而不公开),利用系统漏洞入侵将更加困难,虽然针对应用的漏洞还非常多,但控制权限较弱,危害小,时间长。2、网络上的安全防御措施越来越完善,以及国家军队的大量介入,让互联网不再“自由”,匿名、隐藏都变得越来越困难。整个信息安全行业酝酿着攻击思路颠覆性的转变。
在这种形式下,CC攻击直接面对应用,面向特定的目标,作为突发性的DDOS工具,与眼下流行的APT(高级持续性威胁)攻击配合得很完美,所以说:CC攻击很有可能成为让业务中断、“突发性”攻击的新宠儿,前景看好。
- Linux CC攻击脚本
CC(ChallengeCollapsar)主要是用来攻击页面的.大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库 ...
- 浅谈iptables防SYN Flood攻击和CC攻击
------------------------本文为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击------------------ ...
- 基于日志数据分析以防御CC攻击的想法
1. What - 什么是CC攻击 CC攻击,即针对应用层HTTP协议的DDos攻击,攻击者在短时间内向目标服务器发送大量的HTTP请求,使得服务器会非常繁忙,资源消耗会增加:同时,如果请求中包含基于 ...
- 简单的cc攻击防御
简单的cc攻击防御cckiller 一.下载#wget wget --no-check-certificate https://zhangge.net/wp-content/uploads/files ...
- 网站防止CC攻击的方法
CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...
- linux中防CC攻击两种实现方法(转)
CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...
- PHP 防范CC攻击
CC攻击就是对方利用程序或一些代理对您的网站进行不间断的访问,造成您的网站处理不了而处于当机状态,下面是PHP方法:将以下代码另存为php文件,然后首行include入你的common.php文件中. ...
- DDoS攻防战(二):CC攻击工具实现与防御理论
我们将要实现一个进行应用层DDoS攻击的工具,综合考虑,CC攻击方式是最佳选择,并用bash shell脚本来快速实现并验证这一工具,并在最后,讨论如何防御来自应用层的DDoS攻击. 第一步:获取大量 ...
- 什么是CC攻击,如何防止网站被CC攻击的方法总汇
CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...
随机推荐
- 理解Xaml标记语言
理解XAML XAML基于XAML,因而具有与XAML相似的特性.在XAMl中,同样必须区分大小写,但是Xaml以.xaml作为扩展名,表示这是一个应用程序的标记扩展文件.WPF中的XAML主要用于创 ...
- HttpContext在多线程异步调用中的使用方案
1.在线程调用中,有时候会碰到操作文件之类的功能.对于开发人员来说,他们并不知道网站会被部署在服务器的那个角落里面,因此根本无法确定真实的物理路径(当然可以使用配置文件来配置物理路径),他们唯一知道的 ...
- 使用Electron开发桌面应用
Electron 框架的前身是 Atom Shell,可以让你写使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序.它是基于io.js 和 Chromium 开源项目,并用于在 ...
- Spring系列之Alias标签的解析与使用
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- clean code 第一章笔记
我们都曾有过这样的经历:自己写的烂程序竟然可以运行,然后就认为能运行的烂代码总比什么都没有强.还会有这样的想法:总有一天我会修改它.但是,LeBlanc(勒布朗)法则表示:稍后等于永不(Later e ...
- 关于开发Cesium造成的电脑风扇狂飙的问题
最近在开发Cesium的项目,每次一打开浏览器渲染3D 模型.风扇就狂飙起来,进任务管理器查看发现集显使用率100%,独显使用率0%.使用的是集显进行渲染.怪不得风扇会飙起来.既然知道问题所在,解决的 ...
- 移动端meta标签的使用和设置
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale= ...
- Scrapy爬虫requests
requests 模块 模块的由来: 浏览器可以浏览网站, 是由于浏览器发送了requests , 各种请求.打开一个网站可能有几十到几百个请求. 从而服务器端会反馈各种因应不同请求生成的数据. 我们 ...
- Excellent JD
Job description About the role We are looking for a talented engineer who has excellent cloud skills ...
- 如何定位 Node.js 的内存泄漏
基础知识 Node.js 进程的内存管理,都是有 V8 自动处理的,包括内存分配和释放.那么 V8 什么时候会将内存释放呢? 在 V8 内部,会为程序中的所有变量构建一个图,来表示变量间的关联关系,当 ...