关于配置不安全使我的手机被用于 DDOS 这件事

4 月 5 日早上起来,发现昨天晚上充满电的手机关机了,开机之后剩 30% 的电。现在想起来应该是夜里过热关机了。晚上为了其他事情看了眼服务商的网站,发现一天跑了五六十 GB 的流量。赶紧去看手机上的 Clash for Android,自这次开机以来用了三十多 GB,而且还在继续跑,速度在 200KB/s 到 2MB/s 之间。这时候手机又在发烫了。

赶紧看了一下 Clash 的 log,发现它在以极快的速度发出大量请求,请求中出现较多的有两个域名:simonemazzuca.comwww.rbc.ua,都是 web 端口,一个 80 一个 443 。起初我以为是手机中了毒,这俩是木马在沟通的可疑域名。后来意识到不对,不管上传还是下载,这手机总共都没有六十 GB 的东西。况且这请求速度也太快了。用浏览器尝试访问了一下,它们都不能正常访问。前者是 empty response,后者拒绝我的 ip 访问,估计是被 ddos 了。

另一个特征是,Clash 一关掉,网速指示计里的上下行速度就全没了。当时我没有仔细想这个现象,依然在怀疑手机里有恶意软件。仔细想想的话,它又不知道 Clash 开没开着,关掉Clash之后应当依然有流量才对。

后来科协群里的群友建议我把 Clash 设置里的“允许来自局域网的连接”从“不修改”设为“已禁用”。这项设置的意思是说,代理软件一般会开个端口来接收代理请求,但这个端口一般只接收来自本机的连接。打开这个设置可以使它 bind 到 0.0.0.0 来监听,从而允许外部连接,也就是从另一台机器上使用这个代理。然而校园网给的是公网 ip,打开这个设置意味着这个端口暴露到了公网上,允许任何人通过这个端口,使用这个代理发出请求。

这项设置有三个选项:“已启用”、“已禁用”和“不修改”。这个不修改是什么意思我暂且蒙在鼓里,但把它改成已禁用之后确实解决了问题,说明它确实是启用了这个功能的,而黑客通过向我的 7890 端口发代理请求来 DDOS 这两个域名。

这其实是个很严重的问题,一般来说我们会希望默认的配置会是(在大多数情况下)安全的,不会打开什么危险的功能。然而 Clash 的默认配置打开了这个,我觉得算是挺糟糕的设计。而且用户界面也不够直观,“不修改”到底是啥啊…

有趣的后续:我去查了下这两个域名是啥:Simone Mazzuca 是个人名,用这个名字能查到一个银行 CEO,不知道是不是和那个网站有关,也不知道看上去像个个人网站的域名为啥会被 DDOS。rbc.ua 难查一些,找到的基本都是俄语,根据一些中文新闻里的引用可以推测出它是个乌克兰新闻网,它被 DDOS 的原因是可以想象的。