什么是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攻击很有可能成为让业务中断、“突发性”攻击的新宠儿,前景看好。
本文转自 zhaisj 51CTO博客,原文链接:http://blog.51cto.com/zhaisj/735103,如需转载请自行联系原作者