The dark side

New goproxy.io

Alex 的帮助下, 我们近期优化了goproxy.io的后端服务器,全新的官网也正式上线了。当然也迎来了一波用户的增长。可是好景不长,今天早晨当我日常打开流量图时,发现了异常。

从监控图上可以看到攻击从周五下午下班就已经开始了,只是当时流量不像今天上午这么大,于是快速登陆服务器,查看服务器情况,根据流量图的趋势怀疑是被抓站了。经过日志和流量分析找到了问题的根源,一台 Google cloud 的服务器,IP: 34.92.41.50 在不断的抓取一个库 https://github.com/puppyanger/ppap. 这个账号为14天之前创建的,为一个全新账号,而且只有这一个库。

很有意思的是这个库里面放了一个 100MB 的二进制文件,另外这个库提交了 1000,000 个空白的 commits,种种迹象都表明这个 repo 是给我量身定做的。

Fight

第一时间封掉了抓去的远端服务器IP,很快人家换了几个IP继续搞:

deny 34.92.41.50;
deny 34.85.123.244;
deny 35.189.155.166;
deny 34.85.56.189;
deny 34.97.87.68;
deny 34.97.73.241;

现在云这么方便,想了想只封禁IP不是办法,于是打算把他的这个 repo 封掉,终于,流量得到了控制,

但是很快人家做出了反应:

于是我打算直接把这个github账号封掉,于是人家又做出了反应:

流量又上来了,我继续封:

34.97.87.68 - - [01/Jun/2019:14:35:19 +0800] "GET /github.com/puppyanger2/ppap/@v/v0.0.0-20190519105740-4ac74c55e579.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.87.68 - - [01/Jun/2019:14:35:19 +0800] "GET /github.com/puppyanger2/ppap/@v/v0.0.0-20190519105738-5ef3e821655a.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.87.68 - - [01/Jun/2019:14:35:20 +0800] "GET /github.com/puppyanger2/ppap/@v/v0.0.0-20190519105738-cf270c5ce552.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.87.68 - - [01/Jun/2019:14:35:20 +0800] "GET /github.com/puppyanger2/ppap/@v/v0.0.0-20190519105738-e45ba6b68836.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.87.68 - - [01/Jun/2019:14:35:20 +0800] "GET /github.com/puppyanger2/ppap/@v/v0.0.0-20190519105738-2a6c3362888f.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.87.68 - - [01/Jun/2019:14:35:20 +0800] "GET /github.com/puppyanger2/ppap/@v/v0.0.0-20190519105738-aff1257c4f8c.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"

他发现这个账号github.com/puppyanger2被封后,直接删除了这个账号。

如果说开云服务的代价不大,但是开github账号想要自动化还是要费一番功夫的,终于平息了。

并没有

以为终于搞定了,可以吃点东西,休息下,但是人家并没有闲下来,人家对技术的突破永无止境。虽然流量不大,但是我还是看到了这个异常,继续查看日志,发现人家转移到了 bitbucket 上了,并且不再自己建立 repo, 而是用一些有名的 repo,频繁获取历史版本,实现 DDos goproxy.io 的服务,这样一来我就不敢盲目的封这些 repos 了,毕竟很多用户也在使用。

考虑到服务主要是给中国大陆用户和公司来提供服务的,我打算直接封禁掉整个 GCP 的网段。

34.97.73.241 - - [01/Jun/2019:15:29:24 +0800] "GET /bitbucket.org/!davydov/godon/@v/v0.0.0-20160809154224-981ce677628e.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.73.241 - - [01/Jun/2019:15:29:24 +0800] "GET /bitbucket.org/!davydov/godon/@v/v0.0.0-20160809153448-3c3b06806e83.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.73.241 - - [01/Jun/2019:15:29:24 +0800] "GET /bitbucket.org/!davydov/godon/@v/v0.0.0-20160809140904-a6e6e711803e.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.73.241 - - [01/Jun/2019:15:29:25 +0800] "GET /bitbucket.org/!davydov/godon/@v/v0.0.0-20160809140216-4c51fdb4999f.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
34.97.73.241 - - [01/Jun/2019:15:29:25 +0800] "GET /bitbucket.org/!davydov/godon/@v/v0.0.0-20160809140205-d7efb9caff78.zip HTTP/1.1" 403 169 "-" "Go-http-client/1.1" "-"
...

兄弟,如果你看到这篇文章别搞了,有什么问题不能聊。如果你要想玩,当然我也可以陪你玩下去。