没想到在腾讯云上的服务器遭受到了来自腾讯云的重放攻击

2022-06-18 11:46:47 +08:00
 NanoApe

在腾讯云上搭了一个自用的 Web Server ,用来简单控制一些智能设备的开关,端口和请求路径什么的只有自己知道。

最近发现设备总会莫名其妙地处于关闭的状态,明明自己也没有操作。登陆服务器检查了下日志发现了一些来自未知 IP 的请求,溯源了下发现是腾讯云的 IP 。腾讯云重放了我关闭设备的请求,导致设备就被关闭了。

简单来说,位于腾讯云的服务器遭受到了重放攻击,来源是腾讯云自己……

迫不得已给 Server 加了个随机 Token 防御一下,也的确防下来了(下图日志)

只能说,腾讯云真的垃圾……

4646 次点击
所在节点    程序员
17 条回复
villivateur
2022-06-18 12:00:10 +08:00
这个是否可以通过加 https 来防御呢?
JensenQian
2022-06-18 12:12:46 +08:00
良心云变凉心云了
最近这还有隔壁,一堆人被山鸡的
billlee
2022-06-18 12:20:22 +08:00
是腾讯云自己的漏洞扫描?印象中最可以关的
eason1874
2022-06-18 12:23:50 +08:00
是不是服务器自带的 agent 插件在做可用性监控?

说到私有 API 设计,必须得验证,URL 是保密不了的,现在浏览器和软件都会主动去检测用户访问的 URL ,不可避免造成重放,区别只是有多少
wooyuntest
2022-06-18 12:24:11 +08:00
这是漏扫吧 配合机器上的“云镜”来实现对“只有你知道的“端口和请求路径”做漏扫。
NanoApe
2022-06-18 12:34:48 +08:00
@eason1874 得看具体使用场景吧,我一般是脚本访问,所以不存在别的中间件能够获得请求 URL ,除了流量嗅探
opengps
2022-06-18 13:20:07 +08:00
能重放说明具备某些能力。。。
opengps
2022-06-18 13:21:02 +08:00
话说,你的案例可以拿来当案例,告诉后面的 iot 同学协议包校验的重要性
jim9606
2022-06-18 13:54:57 +08:00
HTTP GET 的语义是幂等的,也就是说重放请求和缓存请求不应该产生副作用,所以很多组件会基于这个假设做一些功能,例如透明代理缓存和漏洞扫描器。非幂等请求应该用 POST 。
用 TLS 保护是个好主意,但依然要注意 GET 的语义问题,例如浏览器只允许 GET 请求使用 TLS1.3 0RTT Early Data ,因为请求包有被重放的可能性。
依赖端口号和路径来保密是绝对错误的安全实践。
tramm
2022-06-18 13:57:21 +08:00
@opengps 这个跟后面的 iot 同学那边没关系吧?这个步骤还在服务器下发指令给 iot 设备之前的啊 [表情]
K1W1
2022-06-18 14:03:19 +08:00
阿里云也遇到过,以前有个任务脚本是通过 http 触发的,然后也没做防重复。有一天突然被多次触发,排查后发现来源 ip 是阿里云。然后他们答复是,监控到你们这个请求是通过 ip 的而且比较慢,我们觉得可能有风险,触发排查
NanoApe
2022-06-18 17:53:30 +08:00
@jim9606 你说的有道理,这里的确应该使用 POST 而不是 GET ,算是一种错误的实现了。等我修改完看看还会不会有类似的现象产生。
依赖端口号和路径来保密当然不够安全,只是一种性价比高的简单保护罢了,现在加上有意义的 Token 也可以防止重放攻击,挺好的。(主要是整证书太麻烦了
liuleixxxx
2022-06-18 21:32:37 +08:00
@NanoApe 也许是理解错误了,截图上也没看到 post 请求,可能人家的目的不是攻击呢,如果想攻击你,还能搞错请求方式?有没有 post 请求的日志?
Raidal
2022-06-19 12:22:07 +08:00
建议 GET 请求做好幂等
SteveWoo
2022-06-19 21:34:09 +08:00
你要用 GET 还 HTTP 我也没有办法
CarryOnHxy
2022-06-20 11:26:18 +08:00
漏扫
opengps
2022-06-21 09:04:58 +08:00
@tramm iot 设备需要从通信协议等层面进行防以外的重复命令操作,避免某些逻辑控制行为失效。
举个例子说:开门关门命令,要用 2 个命令包,而不是一个命令重复用,每次改成相反状态。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/860476

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX