UEWAF成功防御QPS超200万的CC攻击

UCloud的UEWAF成功防御了针对云上游戏客户的超大规模CC攻击,攻击峰值QPS超过200万。UEWAF采用紧急防御模式,结合IP信誉库和机器学习技术,有效识别并封杀了攻击IP。

网络空间的攻防是没有硝烟的战场。作为UCloud自主研发的一款云端企业级Web防护服务产品,UEWAF基于云安全大数据能力,可以过滤海量恶意访问,避免网站资产数据泄露,保障网站的安全性与可用性。

近日,UEWAF成功防御黑客针对UCloud云上某游戏客户发起的超大规模CC(Challenge Collapsar)攻击。攻击者从7月7日20点11分左右开始发起攻击,攻击峰值出现在20点24分左右,QPS(每秒查询率)超过200万。

图片描述
(QPS 趋势图)

7月7日20点15分,UEWAF安全运营团队接到客户紧急求助,客户反馈其多个域名遭到CC攻击,业务已全部中断。

通过分析,发现受攻击的域名主要是作为API(应用程序编程接口)为手机客户端提供服务,常规的防御方式无法在短时间内将攻击流量压制,随后UEWAF安全运营团队为客户启用紧急防御模式。在该模式下,UEWAF会结合使用UCloud安全中心积累多年的IP信誉库和机器学习等技术,计算来源IP的恶意度,迅速将被黑客利用的绝大部分“肉鸡”IP封杀在网络层。

通过大数据安全分析,本次攻击的特征如下:
(1)攻击针对游戏客户端API接口;
(2)黑客做了充足准备,分析了该游戏客户端的业务逻辑,攻击请求与客户端真实请求相似度极高。

基于以上特征,黑客能高度模仿真实用户的行为,这对企业的防御手段提出了巨大挑战。传统的CC防御将重心放到了伪装网民(主要是浏览器)访问的识别上,但对于API接口来说,正常的访问请求很大可能不是来自浏览器,而是来自机器。因此,要从这些机器中识别出哪些是真正的用户、哪些是黑客控制的“肉鸡”成为难题。

UEWAF基于反向代理实现了“替身式”防御,攻击流量全部在UEWAF Worker节点上拦截掉,不允许攻击流量透传到源站。为了实现高可用,内部采用L4 switch报文转发,通过多个节点建立集群去分担流量,保证了服务的高可用性和拓展的灵活性。

图片描述
(UEWAF高可用架构示意图)

在CC攻击防御中,客户源站为第一保护对象,UEWAF会首先保证源站业务正常。其次在识别和清洗攻击流量过程中,会对部分攻击IP实施网络层封堵,以保证UEWAF Worker节点有足够的端口及带宽为正常用户提供服务。在网络层IP封堵实现上,UEWAF定制了Linux内核,能够以极低的性能损失为代价封堵百万级别的IP地址,保障UEWAF Worker节点的性能。

当前,CC攻击已经成为游戏、金融、电商等行业常用的攻击手段。为保证线上业务系统的正常运行,企业应高度重视,加强安全防范措施。UEWAF作为UCloud云安全解决方案-天罡旗下核心产品,基于UCloud云平台强大的计算资源及自身领先的技术能力,在用户业务遭遇CC攻击或者业务突发时,能够进行自身服务的快速扩展,不存在性能瓶颈等问题。与此同时,利用强大的云端情报收集能力并结合其他情报厂商的信息,UEWAF可以过滤海量的恶意访问,守护网络安全。

### Postman 压测 QPS200 并发及测试轮次计算方法 在使用 Postman 进行性能压测时,QPS(Queries Per Second)和并发用户数是两个重要的指标。以下是关于 200 并发下的 QPS 和测试轮次的计算方法。 #### 1. QPS 的定义与计算 QPS 表示系统每秒能够处理的查询次数。如果设定的并发用户数为 200,并且每个用户发送一个请求后立即发送下一个请求,则 QPS 可以通过以下公式计算: \[ QPS = \frac{\text{总请求数}}{\text{测试持续时间(秒)}} \] 例如,假设测试持续时间为 60 秒,200 个并发用户总共发送了 12,000 个请求,则 QPS 计算如下[^3]: ```python total_requests = 12000 test_duration_seconds = 60 qps = total_requests / test_duration_seconds # QPS = 200 ``` #### 2. 测试轮次的定义与计算 测试轮次是指在一次压测中,每个并发用户完成的请求数量。如果每个用户发送了多个请求,则可以通过以下公式计算测试轮次: \[ \text{测试轮次} = \frac{\text{总请求数}}{\text{并发用户数}} \] 例如,假设总请求数为 12,000,200 个并发用户,则测试轮次为: ```python total_requests = 12000 concurrent_users = 200 test_rounds = total_requests / concurrent_users # 测试轮次 = 60 ``` #### 3. Postman 中的实现方式 Postman 的 Newman 工具可以用于自动化接口测试和性能压测。为了模拟 200 并发用户,可以结合循环和延迟机制来实现。以下是一个简单的实现步骤: - **设置并发用户数**:通过运行多个 Newman 实例或使用脚本模拟多个并发用户。 - **设置测试持续时间**:通过脚本控制测试的总时长。 - **记录请求总数**:在测试结束后,统计所有用户的总请求数。 以下是一个基于 Node.js 的简单脚本示例,用于模拟 200 并发用户并计算 QPS 和测试轮次: ```javascript const { exec } = require('child_process'); const concurrentUsers = 200; const testDurationSeconds = 60; // 测试持续时间 let totalRequests = 0; // 模拟并发用户 for (let i = 0; i < concurrentUsers; i++) { exec(`newman run your-collection.json --delay-request 100`, (error, stdout, stderr) => { if (error) { console.error(`Error: ${stderr}`); return; } const requestsPerUser = parseInt(stdout.match(/requests:\s+(\d+)/)[1], 10); // 提取每个用户的请求数 totalRequests += requestsPerUser; if (i === concurrentUsers - 1) { const qps = totalRequests / testDurationSeconds; const testRounds = totalRequests / concurrentUsers; console.log(`Total Requests: ${totalRequests}`); console.log(`QPS: ${qps}`); console.log(`Test Rounds: ${testRounds}`); } }); } ``` #### 4. 注意事项 - 在实际测试中,需要考虑网络延迟、服务器负载等因素对 QPS 的影响。 - 如果 Postman 的性能不足以支持高并发测试,可以考虑将请求导出到 JMeter 等专业工具中进行压测[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值