什么是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攻击很有可能成为让业务中断、“突发性”攻击的新宠儿,前景看好。

学习“CC攻击”的更多相关文章

  1. Linux CC攻击脚本

    CC(ChallengeCollapsar)主要是用来攻击页面的.大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库 ...

  2. 浅谈iptables防SYN Flood攻击和CC攻击

    ------------------------本文为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击------------------ ...

  3. 基于日志数据分析以防御CC攻击的想法

    1. What - 什么是CC攻击 CC攻击,即针对应用层HTTP协议的DDos攻击,攻击者在短时间内向目标服务器发送大量的HTTP请求,使得服务器会非常繁忙,资源消耗会增加:同时,如果请求中包含基于 ...

  4. 简单的cc攻击防御

    简单的cc攻击防御cckiller 一.下载#wget wget --no-check-certificate https://zhangge.net/wp-content/uploads/files ...

  5. 网站防止CC攻击的方法

    CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...

  6. linux中防CC攻击两种实现方法(转)

    CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...

  7. PHP 防范CC攻击

    CC攻击就是对方利用程序或一些代理对您的网站进行不间断的访问,造成您的网站处理不了而处于当机状态,下面是PHP方法:将以下代码另存为php文件,然后首行include入你的common.php文件中. ...

  8. DDoS攻防战(二):CC攻击工具实现与防御理论

    我们将要实现一个进行应用层DDoS攻击的工具,综合考虑,CC攻击方式是最佳选择,并用bash shell脚本来快速实现并验证这一工具,并在最后,讨论如何防御来自应用层的DDoS攻击. 第一步:获取大量 ...

  9. 什么是CC攻击,如何防止网站被CC攻击的方法总汇

    CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...

随机推荐

  1. mybatis学习之入门实例

    测试版本 mybatis:3.2.8 数据库:mysql 项目结构 jar包准备 mybatis-3.2.8.jar mysql-connector-java-5.1.39-bin.jar junit ...

  2. [javaEE] 开源数据库连接池

    一些开源组织提供了数据源的独立实现: DBCP数据库连接池 C3P0数据库连接池 Apache Tomcat内置的连接池 DBCP连接池 apache提供的连接池实现,需要导入common-dbcp. ...

  3. mysql5.7忘记密码修改方法

    mysql5.7忘记密码修改方法 mysql是开发中最常用的关系数据库之一.一般在安装数据库到时候会自定义root密码,有时候会忘记该密码,这时候需要对数据库进行密码修改. 一.windows下更改m ...

  4. css flexbox 弹性布局

    flexbox 即css flexible box layout. ie9及以下不支持flexbox. flex详细规范(https://www.w3.org/TR/css-flexbox/) 为什么 ...

  5. C++基础--struct的大小

    在修改别人的代码的过程中,发现很多人会把struct和struct的定义混淆,在这里主要是为了提醒自己Struct定义的规范性. #include <stdio.h> struct x{ ...

  6. js 数据格式化

    //金额增加千分号formatPrice(123456.78) = 123,456.78 function formatPrice(val) { var parts = val.toString(). ...

  7. Virtualenv-windows

    1.下载 pip3 install virtualenv 2.创建虚拟化环境 3. 进入虚拟化目录 4.推出虚拟化环境 5.指定python版本 二.virtualenvwrapper的使用 1.下载 ...

  8. double转换long的疑问

    在lua(5.1.4)下面测试的时候使用0x100000000的时候出现了问题,打印结果很明显,如下所示: Lua Copyright (C) - Lua.org, PUC-Rio > prin ...

  9. C# 转换运算符:implicit(隐式),explicit(显示)

    //A类 class Cls1 { public string name; //构造函数 public Cls1(string name) { this.name = name; } //implic ...

  10. February 11 2017 Week 6 Saturday

    Love means never having to say you're sorry. 爱就是永远不必说对不起. Yesterday I heard an interesting story fro ...