菜鸟贴:DDoS攻击的原理和防范

发布于: 修改于:雪球转发:20回复:46喜欢:41

先说故事。


你开了一家快餐店。多大的店面,多少员工,心里有数,既不会浪费太多,又要满足客流高峰时段的需求。


DoS攻击


有一天,来了一位客人,张口就要1万份快餐,而你的小店平时每天只卖出几百份。于是店里现存的快餐全被他包揽(其他客人没得买了),后台厨房立马高速运转,还不知道多久能完成几千份的缺口。悲剧的是,这客人最后不要快餐也没给钱就跑了。最后啥生意都没做成。


这就是典型的DoS攻击(Denial of Service)。通过单点(单个人)发起虚假的巨量的需求,把正常的客人都赶跑,把店铺拖垮。


有了这次惨痛教训后,下次再遇到狮子开大口的客人,你要求他先交钱,“要多少我造多少”;或者将他拒之门外;甚至报警。捣乱者的风险大、成本高、容易被识别。


DDoS攻击


又有一天,来了许多许多的人,有老有少,有男有女,里里外外将店挤满了。但是你无法分清楚,哪些人是来买快餐的,哪些是来挤店的。即使你强行规定,1分钟之内不买快餐的人就赶走,也没用,因为还有源源不断的人群涌进来。


最后,真正的顾客没挤进来几个,你的店根本无法正常营业,关门了。这就是DDoS攻击(Distributed Denial of Service,分布式拒绝服务)。


肉鸡


为什么这些与你无冤无仇、而且看起来和顾客完全一样的人来挤店呢?因为他们脑子里被种了病毒,他们收到命令,就马上从世界各个角落汇集过来挤店,但这些人完全不知道中毒,也不清楚自己所做的行为,如同僵尸。中了类似病毒的电脑,就被称为“肉鸡”。有的电脑常年带毒运行,不一定发作,平时都是潜伏,有需要时再控制“肉鸡”参与攻击。


“肉鸡”被谁控制? 可能是当初的病毒传播者,也有可能是购买“肉鸡”的人,或者直接购买攻击服务的人,或者其他人。因为他们躲在幕后遥控,不容易暴露身份,即使抓到几只“肉鸡”严刑拷问,也不一定有什么线索。


图个啥? 敲诈勒索,收保护费,对手攻击,离职员工报仇,显摆一下技术.....一切皆有可能。


攻防

1,清洗:


虽然“肉鸡”和普通顾客长得没啥区别,但有些还是能从神态、衣着上粗略识别。你请了几个保安(软件防火墙、硬件防火墙、路由等)在快餐店把门,冒着被人恶骂歧视的风险,将乞丐模样的都拦下。这方法有时候有点效果,但是成本不低(雇佣保安很贵),对快餐店的服务多少也有影响。


2,硬抗


别人发动了1000个人来挤店,你干脆临时将整条街道包下来变成店面,还从别的店调来大批现成的盒饭。最后,就是比拼攻击者的“肉鸡”多,还是你的带宽、服务器牛。


1999年,中国驻前南斯拉夫大使馆被炸,当时有人号召大家在某天上午同一个时间,一起使用ping命令向美国白宫网站发出请求,企图挤垮白宫网站。曾作为热血青年的俺,也参与了这圣战般的人肉攻击。


结果,很悲催。那年代,学生是上网和参与攻击的主要人群,但是中国教育网到中国电信骨干网,以及中国整个网络到国际互联网的出口,总共也没几兆带宽。这方式,即使大家把自己挤死了,也奈何不了人家。就如,准备到你蛋糕店里来捣乱的“肉鸡”,都要从河南、陕西、山东偏远地区运过来的,结果“肉鸡”都还没出县城,就被截访办拦下了。


3,CDN


现在,你生意做大了,将快餐店做成了肯德基,光北京就有100多家分店。“肉鸡”接到挤店的攻击命令后,不知道去哪家。最后他们选择就近的原则,中关村店去了10个,国贸店去了5个......都是小儿科。即使攻击者改进方式,下达指令里,增加了具体某一家分店的地址,但是也只是单店受到影响,除非“肉鸡”数量庞大到,每个地方都能发起远超过当地店面容量的攻击。


如果自己还是个小店怎么办?有一种叫CDN的服务,全名是内容分发网络(Content Delivery Network),主要是用来做网络加速的,后来发现用来抗DDoS攻击效果很好。原理和上面说的肯德基连锁店类似,加上自己冗余的带宽,将DDoS的“肉鸡”全部抗下来。另外,云服务,也能实现同样的效果。(梁剑 发表于 雪球xueqiu.com )


后记:这是和上一篇《菜鸟贴:我家是10兆的宽带,上网为什么巨慢?》网页链接  同系列的菜鸟谈技术文章,供@范卫锋 等老师参考;供 @Fenng @virushuo @wguo @fire9 等老师批判

全部讨论

2021-03-15 13:23

学习

2012-06-16 01:38

梁老师的文笔真好,精彩!!

2012-06-15 23:49

形象易懂[赞]

2012-06-15 23:42

大哥,你啥时出书啊,我必买啊。