直播APP抵御CC攻击的方案(非秘密)
浏览:661 次

直播行业竞争激烈,相互攻击很常见。今天,我们分享一个有效而简单的方案来抵御CC攻击。
首先,什么是CC攻击
CC(挑战崩溃)攻击是一种DDoS攻击。它使用代理服务器向受害者服务器发送大量看似合法的请求,

CC攻击的原理是攻击者控制一些主机连续向另一台服务器发送大量数据包,导致服务器资源耗尽,直到服务器崩溃。
从上面的描述中,我们可以看到cc攻击是为了模拟正常的请求,并向服务器发送无法承受的数量的请求,以耗尽服务器资源。然而,我不同意上面的描述,即“代理服务器”。从目前的实际攻击来看,大多数cc攻击都使用非常广泛的肉鸡进行攻击。这使得防守特别困难。为什么?因为传统的防火墙只能通过判断某个IP是否在某段时间内过于频繁地访问服务器,或者判断请求的来源、请求的代理等等来抵御cc攻击。但是现在有很多肉鸡。如果每只肉鸡都能在100次内控制请求,只要肉鸡数量足够,这种确定IP访问的方法将无效,并且可以伪造源和代理。如果防火墙将阈值设置得很低,很可能会阻止正常访问。因此,一般来说,大多数通用防火墙都无法有效抵御高级cc攻击。
我们如何以低成本有效抵御CC攻击?事实上,原则上,如果我们在前端使用nginx(http和websocket可以传递nginx),我们只需要nginx来识别请求是否来自普通App,并将普通请求转发给程序解释器(如PHP)。因为nginx的执行速度非常快,它只需要很少的资源,而cc攻击需要资源来实现服务器停机。

nginx如何识别正常请求?有很多方法。对于APP,请求封装在App中。此时,您可以在每个请求头中添加时间戳和密码,并在nginx中验证时间戳和口令。该App可以使用aes等加密方法对时间戳进行加密,也可以使用rsa等非对称加密方法进行加密。最终,nginx只需要判断请求是否合法,而PHP、MySQL等服务在nginx背后是安全的。
如果攻击者想要攻击上述方法,必须使用ida等软件进行反汇编。这无疑提高了门槛。目前,根据实际应用,它对保护APP的API服务器非常有效。
今年5月,我们以这种方式零成本抵御了一次非常强大的cc攻击。生成的日志很快就会使服务器崩溃。