无意中发现一种默默让用户的客户端向目标服务器发起 TCP 链接的方式

2016-12-09 00:39:54 +08:00
 qq286735628
因为客户端完成且仅仅做了 TCP 握手,保持一个 TCP 链接,不会有后续的 HTTP 流量,所以目标服务器只能发现有很多用户 IP 与服务器进行者 TCP 链接,但是无法从 HTTP Referer 中获取这波无效流量的来源。

Google 了一下,发现这种 TCP Preconnect Traffic 的相关资料并不多。

我现在能确定的是,如果我手握一个大流量大并发的网页 url ,只需给网页中加入一行 meta ,即可让访问该 url 的用户朝着我设定的目标 server 发起 tcp 连接,消耗目标服务器的 TCP 链接数。

安全外行人,不知道这东西危害大不大。
3052 次点击
所在节点    分享发现
18 条回复
crs0910
2016-12-09 00:45:57 +08:00
xss ddos
qq286735628
2016-12-09 01:03:48 +08:00
@crs0910 不是 XSS 。 XSS 这种,被攻击的服务器,可以从 HTTP 流量里面获知导流量的 url
qq286735628
2016-12-09 01:05:44 +08:00
@crs0910 不过配合 XSS ,可以做到就算我没有大流量 url ,我去 xss 几个大流量的页面再进行攻击,隐蔽性和攻击威力更大
batnss
2016-12-09 01:17:23 +08:00
img iframe script ... 都可以啊
qq286735628
2016-12-09 01:18:58 +08:00
@batnss 请求资源的方式,被攻击的服务器可以从 http 日志的 referer 字段中找到定位到攻击源头
misaka19000
2016-12-09 01:19:33 +08:00
首先你得有这个 URL
choury
2016-12-09 01:20:53 +08:00
同学,你知道 tcp_defer_accept 吗?
crs0910
2016-12-09 01:23:08 +08:00
@qq286735628 你说的一行 meta 是指什么?为什么可以发 tcp 连接
qq286735628
2016-12-09 01:40:37 +08:00
@crs0910 <meta rel="preconnect" href="http://target_server.com/">
ryd994
2016-12-09 02:40:53 +08:00
Nginx 可以在 listen 里加 defer
这个一般没多大危害,多几个连接对 Nginx 来说根本不值一提
qq286735628
2016-12-09 22:33:32 +08:00
@ryd994 我说的当然不是多几个了~

其实这个也是最近遇到的一个问题,某个边缘业务服务器,最近经常被突发的握手流量搞死,每秒 20w 个 TCP 包。

这些 TCP 包的特征都是完成三次握手后,不发送任何实际 HTTP 流量,一直找不到流量源头。

所以才在研究有什么方式能发起这样的流量。
firefox12
2016-12-19 21:27:42 +08:00
握手完成了 自然知道对方 ip 啊? 能有本事虚拟一个 ip 来攻击你 完成握手,现在的机房好像都不支持了。
qq286735628
2016-12-20 00:10:52 +08:00
@firefox12 这种预链接的方式,攻击 ip 都是真实用户的。我有多少用户量,就能发起多大的攻击,而被攻击者很难从攻击流量中定位到攻击发起来源
firefox12
2016-12-20 10:32:19 +08:00
@qq286735628 这就是 ddos 啊,大量僵尸电脑攻击!
qq286735628
2016-12-20 11:46:52 +08:00
@firefox12 比传统的 ddos ,成本低多了。
firefox12
2016-12-20 14:18:46 +08:00
这个很好处理, 服务器代码都会写防止这种 idle 攻击的代码, 30 秒刷一次 60 秒没有数据来往就断开连接。缓慢吞吐和 0 窗口攻击会麻烦很多,甚至需要借助外部工具才能断开连接。
jedihy
2016-12-20 14:28:59 +08:00
@qq286735628 你确定是你发现的这种方式了?
qq286735628
2016-12-20 15:39:56 +08:00
@firefox12 恩,前面有人提到利用内核的 TCP_DEFER_ACCEPT 可以减缓这种只握手啥都不干的攻击

@jedihy 然后呢?

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

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

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

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

© 2021 V2EX