如何处理攻击 IP 是比较高效节省资源的

查看 246|回复 18
作者:brader   
前置:不讨论云防火墙、高防服务器这些话题,我知道有这个东西,单纯想了解技术而已。
假设 HTTP 接口有个自动拉黑超频 IP 机制,判断该 IP 在 IP 黑名单的话,接口就立马返回访问异常,虽然这样不需要继续往下走业务代码流程,立马结束了该次请求,但在实际环境应用中,我发现当攻击访问非常大量的时候,服务器的 CPU 占用其实挺高的。
这时候我就在思考一个问题,其实立马结束一个攻击请求,应该不是一个最高效节省资源的做法?我是否应该保持住这个连接?一直到它超时为止。理由是这样的:假设超时时间是 60 秒,如果我立马响应并结束请求,那这个 IP 在 60 秒内可能可以对我发起几千几万个请求,这是很可怕的,每个请求的进程创建、初始化代码、销毁等等都要消耗 CPU 资源,但是我保持住不响应它,每次可以拖着它 60 秒。
我会有这个想法的灵感是来自于云服务器防火墙,因为我发现我把自己 IP 在云防火墙拉黑后,我访问的表现特征就是等待几十秒后超时,而不是立马响应我拒绝我。
不知道我的设想有没有错误,我设想的这个做法,是否真的会比较节省服务器资源呢,欢迎懂的大佬指点一下。

请求, 立马, 防火墙, 响应

codehz   
对付普通 dos 工具还是有效果的(也不排除直接 bypass ip 栈绕过 tcp 状态机处理),ddos 就没啥用了
brader
OP
  
@codehz ddos 的话不考虑,其实 ddos 的肉鸡,也等同于正常用户了,我的应对就是扩容服务器加大承受能力。但是尽量避免出现比如一个 IP 客户端,却短时间发起 N 多请求消耗掉很多资源。 一个肉鸡 IP 像正常用户的频率程度访问接口服务,我能接受
opengps   
60 秒不一定是客户端试试服务端的设置,对方如果在客户端设置了 1 秒超时,那你这个就失效了
brader
OP
  
@opengps 那么客户端这个设置来攻击的话,又可以等同回到原来的攻击效果?对客户端的资源消耗、或者其他方面不会有比较大的局限吗
520discuz   
宝塔防火墙 N 秒内访问 N 次 自动拉黑
areless   
我这边的方法通常是所提供的服务 分页缺失 pagesize 可以无限大 等漏洞,造成返回巨大 慢的 请求。 只要以普通用户的频率攻击,就能拖垮你的服务
opengps   
@brader 客户端是肉鸡,假设是这批发动攻击的肉鸡是 100 万台设备 PC ,每个只发起一条连接,那么对其客户端的资源消耗是无感知的,但对拟于服务端来说,你需要自己扛起处理百万连接的负载,所以才是“拒绝服务攻击”
dqzcwxb   
攻击者压根不会接收或者等待你的响应只是无限请求,所以你在响应上做任何动作都无意义
brader
OP
  
@areless 这个意义不大,服务端只会暂时瘫痪,服务者发现这个问题后,可以有很明确的修复方法,不会无法应对。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部