内容简介:背景是这样,一个朋友网站业务被DDoS了,先是威胁要800元RMB,然后又转成提供DDOS的服务,然后又变成了DDOS培训, 又变成了卖DDOS软件,最后又变成了DDOS高防护提供者,最后到警察叔叔那里,报警立案成功的故事。就在这几天,一个朋友传来了他被DDoS的消息,正在搬砖中看到他发的消息,说他们的客服收到到0118号客人的威胁信息,说要马上干掉你们。
*本文原创作者:糖果L5Q,本文属于FreeBuf原创奖励计划,未经许可禁止转载。
0×01 背景
背景是这样,一个朋友网站业务被DDoS了,先是威胁要800元RMB,然后又转成提供DDOS的服务,然后又变成了DDOS培训, 又变成了卖DDOS软件,最后又变成了DDOS高防护提供者,最后到警察叔叔那里,报警立案成功的故事。
0×02 来自黑客的威胁
就在这几天,一个朋友传来了他被DDoS的消息,正在搬砖中看到他发的消息,说他们的客服收到到0118号客人的威胁信息,说要马上干掉你们。
这位朋友可能见过大场面的人,这点威胁就能吓倒他吗, 太天真了。
大家可看看下面这个图。
看到上面这个流量激增你们也能看出来,之后服务器真的就挂了,真的挂了,挂了。
这位朋友默默的看了眼高仿的价格,这个价格再次击穿了他的心量防线。 我买,我买, 我买不起。买不起是开玩笑,但这也太贵了。
不过这个时候这位朋友想起来了,客服留言中的那个黑客微信联系方式, 先加个微信会会这位朋友。
这么长的对话内容,大概的意思是说, 对方要800块钱,并且还能帮助搞其它竞争对手。这位朋友的回答就比较艺术了,没钱,要钱向老板要去。
0×03 常见流量攻击的形式
到这了,我们插入一段技术内容,流量攻击的几种常见形式。
到7层的攻击
1.大量肉鸡产生的CC(ChallengeCollapsar)。
2.向WEB服务端口发送的大量的,巨型垃圾包(其实也不是很大,单条1MB以上)。
到4层的攻击
3.TCP sync攻击,每一次tcp握手就跑,纯撩闲式的方式。
除了sync方式攻击,其它的两种,都可以达到7层,形成WEB服务日志。
第1种和第2种,我们都可以看到nginx日志,大post的垃圾请求有一个问题是,发送的请求数据,可能都不符合HTTP规范。
比较粗爆的请求,可以通过下面简单的方法, 加入到nginx.conf配置中,进行非http请求的协议数据的过滤。
1.限定请求方法:
if ($request_method !~ ^(GET|HEAD)$ ) { return 444; }
2.限定主机名:
if ($host !~* xxx\.com$) { return 444; }
0×04 WAF防护
我们的服务有很多都是用nginx、openresy、tengine搭建的,所以用nginx lua做WAF防护也是一件很正常的事, 看看下面的配置就能知道这位朋友用的是那个WAF了吧。
用 LUA 写CC的安全策略是一个相对很便捷的过程。
威胁请求产生了大量的501和444。
命中了策略后,产生了对应的命中日志。
就算我们明确知道攻击源,要进行拦截也是有问题的,我们在服务器上部署了WAF,但前端服务还有CDN和LVS,可以在后端分析出威胁,但不能在这些设备上进行ip block阻断。
并且,这位朋友的日志分析还没有用到大数据层面,在手动分析日志阶段, 这样分析和响应速度很难和WAF协同工作。
但就算WAF可以拦截一部分威胁,当小规模的机房和服务器还是有带宽上限的,一旦请深求拥堵带宽大于这个上限,还是一样无响应。
并且有机房根本没有阻断功能,只有报警功能,一般贷款占大,业务就会被机机房业断网。
0×05 左右互博
攻击是消停了,可是这位朋友感觉还是不对, 要不就模拟一下自己DDoS自己机吧。
拿起心爱的 GO 开撸:
package main import ( "fmt" "io" "io/ioutil" "net/http" "os" "time" "strconv" ) func main() { start := time.Now() ch := make(chan string) var count int64 = 1 times,_ := strconv.ParseInt(os.Args[1],10,64) url := os.Args[2] for count = 0; count <= times; count++ { go fetch(url, ch, count) // start a goroutine } for count = 0; count <= times; count++ { fmt.Println(<-ch) // receive from channel ch } fmt.Printf("%.2fs elapsed\n", time.Since(start).Seconds()) } func fetch(url string, ch chan<- string,count int64) { start := time.Now() resp, err := http.Get(url) if err != nil { ch <- fmt.Sprint(err) // send to channel ch return } nbytes, err := io.Copy(ioutil.Discard, resp.Body) resp.Body.Close() // don't leak resources if err != nil { ch <- fmt.Sprintf("while reading %s: %v", url, err)
return
}
secs := time.Since(start).Seconds()
ch <- fmt.Sprintf("%7d %.2fs %7d %s",count, secs, nbytes,url)
}
你的代码写的真棒,也许有的朋友需要这代码,老规矩放到github上: go-attacker
0×06 采用高防
朋友这段自创的GO就是模拟产生大量的GET请求。结果朋友发现自己针对自己的,服务也一样抗不住,有反正都是造成拥塞,干脆就用WRK得了,就模拟正常的HTTP请求就行。
wrk -c1000-t10 -d10 --latency http://127.0.0.1:8080 /find
结果一样扛不住,还得找那个哥哥聊聊。
结果这个发起DDoS的哥们,从攻击改成培训了, 传授相关技术培训费1200,上手快,时间段,经济效益高,但是犯法,这个不能干!
朋友先给200人家不要,不过有新情况, 不但可以培训,还可以卖软件,黑产现在都这么会做生意了吗,这么多才多艺。
0×07 取证报官
朋友一看,请救兵吧,高防还是得买,然后报官,这时候就得去找警察叔叔。
前行100米和警察叔叔友好交流,和警察叔叔聊了一下,发现了一个问题。
800元也够不到5000元啊,但是警察叔叔让回去收集证据了。
0×08 高仿测试
这位朋友最后还是找到一家公司提供高仿服务,希望在自动切换以外,可以手动切换到高仿。
因为有很多的域名接入,在测试阶段发现,接入高仿以后,貌似有很多的正常流量和CDN的流理被清洗掉了,这样一天下来掉了很多单的销量。因为还是在测试阶段,还需要进一步的测试确认和加白。
用户->CDN->高仿->服务。
上了高防护了好不好用啊,这朋友想问问DDoS的朋友,接收不接收测试的活。
到这个,就想问一句,抗DDOS的硬盘能不能也给来一块。
持续一段时间的攻击来了,但是服务貌似应该没挂。
0×09 立案成功
文章的最后就是,这位朋友成功的立案了,还是警察叔叔给力, 能不能抓到威胁要800元的朋友要看后续。
0×10 学习安全技术
这位朋友高仿也上了,也立案了,利用间歇时间赶紧抓紧间学习安全知识, 上Freebuf找公开课看,安全技术书到用时方恨少。有人问安全有什么用,像这位朋友如果服务被攻击,每天会丢失的订单,订单的成本应该远远不是800元这个金额。
*本文原创作者:糖果L5Q,本文属于FreeBuf原创奖励计划,未经许可禁止转载。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 记一次被DDoS敲诈的历程
- 勒索病毒冒充《王者荣耀》外挂敲诈20元 黑客被找到
- 敲诈手段升级换代 网络勒索成“黑产”新掘金术
- 敢再无耻点吗?日本黑客PS用户裸照,敲诈551美元比特币
- 【安全帮】 一夫妻联合百余位黑客攻击国内公司,敲诈解密费获利700余万
- 我的前端学习历程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Designing for Emotion
Aarron Walter / Happy Cog / 2011-10-18 / USD 18.00
Make your users fall in love with your site via the precepts packed into this brief, charming book by MailChimp user experience design lead Aarron Walter. From classic psychology to case studies, high......一起来看看 《Designing for Emotion》 这本书的介绍吧!