
1) 【一句话结论】当线上投保平台遭遇DDoS攻击时,应立即启动安全事件响应流程,通过流量检测工具识别攻击,利用CDN分流、防火墙过滤、黑洞路由等手段缓解攻击,同时配合业务降级和资源扩容,快速恢复服务并复盘攻击特征。
2) 【原理/概念讲解】DDoS攻击是指攻击者通过控制大量僵尸网络,向目标服务器发送超负荷请求,导致服务不可用。分为三类:
3) 【对比与适用场景】
| 防御手段 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| CDN(内容分发网络) | 分布式节点分发内容 | 负载均衡、缓存、流量清洗 | 流量型DDoS(如HTTP flood) | 需配置清洗规则,可能影响正常请求 |
| 防火墙(如NGFW) | 网络层过滤流量 | 深度包检测、规则过滤 | 协议型DDoS(如SYN flood) | 规则复杂,需定期更新 |
| 黑洞路由 | 将恶意流量引导至无效路径 | 简单有效 | 所有类型DDoS(尤其是突发流量) | 可能影响正常业务,需谨慎使用 |
| WAF(Web应用防火墙) | 应用层过滤请求 | 拦截SQL注入、CC攻击 | 应用型DDoS(如模拟登录) | 需配置应用规则,可能误判 |
4) 【示例】检测流量异常的伪代码(Prometheus+Grafana):
# 伪代码:检测流量异常
def check_ddos_metrics():
qps = get_metric("http_requests_total", "status=200", "path=/insure")
conn_rate = get_metric("tcp_connections_total", "state=established")
bandwidth = get_metric("interface_in_bytes_total", "device=eth0")
# 正常阈值(假设)
normal_qps = 1000
normal_conn_rate = 500
normal_bandwidth = 10 * 1024 * 1024 # 10MB/s
if qps > 10 * normal_qps and conn_rate > 5 * normal_conn_rate and bandwidth > 5 * normal_bandwidth:
trigger_alert("DDoS攻击检测:流量异常倍数超阈值")
5) 【面试口播版答案】(约90秒)
“面试官您好,当线上投保平台遭遇DDoS攻击时,我会立即启动安全事件响应流程。首先,通过流量监控工具(如Prometheus+Grafana)实时检测流量指标,比如HTTP请求量、TCP连接数、带宽,如果发现这些指标突然激增(比如比正常值高10倍以上),就判断为DDoS攻击。接下来,快速响应:首先启用CDN的流量清洗功能,将异常流量引导至清洗节点,只放行正常请求到源站;同时,配置防火墙的规则,过滤SYN flood等协议型攻击;如果流量过大,使用黑洞路由将恶意IP段阻断。然后,配合业务降级,比如暂时关闭非核心功能(如保单查询),优先保障投保、支付等核心业务。响应过程中,持续监控攻击态势,根据流量变化调整防御策略。最后,攻击结束后,进行服务恢复,并复盘攻击特征,比如攻击类型、来源IP,优化防御规则,避免下次重复。总结来说,核心是快速检测、分级响应、工具配合,确保业务尽快恢复。”
6) 【追问清单】
7) 【常见坑/雷区】