详解四层与七层协议下的 CDN 高防过滤逻辑及指纹识别技术
摘要:# 四层和七层防护,到底差在哪?别被那些“高防CDN”给忽悠了 前两天,一个朋友半夜给我打电话,火急火燎的。他那个小创业公司的官网,刚上架一个新产品,结果瞬间就被打瘫了。他跟我说:“我买了高防CDN啊!不是说能扛住吗?怎么跟纸糊的一样?” 我让他把后台…
四层和七层防护,到底差在哪?别被那些“高防CDN”给忽悠了
前两天,一个朋友半夜给我打电话,火急火燎的。他那个小创业公司的官网,刚上架一个新产品,结果瞬间就被打瘫了。他跟我说:“我买了高防CDN啊!不是说能扛住吗?怎么跟纸糊的一样?”
我让他把后台配置截图发我一看,好嘛,问题就出在这儿。他买的那个“高防”,说白了就是个四层转发,对付点小打小闹的SYN Flood还行,遇到今天这种针对性的HTTP CC攻击,直接歇菜。他根本就没搞明白,四层防护和七层防护,压根就是两码事。
今天,咱就掰开了揉碎了聊聊这个事儿。不整那些云里雾里的黑话,就说说你花钱买的防护,到底是怎么工作的,以及为什么有时候“高防”也成了摆设。
四层防护:保安只看“你是哪栋楼的”
咱们先打个比方。
你把公司(源站)设在一个高档写字楼里。四层防护,就好比写字楼大堂的保安。他的工作逻辑很简单:
- 看工牌(IP+端口):有人要进来,保安就问:“你去哪家公司?几零几?”(对应目标IP和端口,比如80或443)。
- 流量大就拦(基于流量阈值):如果同一时间,有几百个人都说要去1001室,保安就算再迟钝也觉得不对劲了。他会启动限流,或者干脆把去往1001室的人都暂时拦在门外(这就是基于SYN包速率、连接数等指标的清洗)。
说白了,四层防护(也叫网络层防护)工作在TCP/IP协议栈的传输层。 它眼里没有“内容”,只有“连接”。它的核心武器是:
- IP黑白名单:这个“人”我认识/不认识,直接放行或拦截。
- 协议合规性检查:你发的TCP SYN包是不是长得奇形怪状?是就丢。
- 流量速率限制:去往你公司的“人”瞬间太多了,超过阈值就排队或拒绝。
它的优点很明显:快。 因为处理逻辑简单,几乎不拆包看内容,所以对正常访问的延迟影响极小。对付那种纯粹靠海量垃圾数据包(如UDP Flood、SYN Flood)堵塞你网络带宽的DDoS攻击,效果立竿见影。
但缺点更致命:盲。 如果攻击者伪装成“正常访客”,拿着合法的“工牌”(建立完整的TCP连接),保安就傻眼了。比如最常见的CC攻击,攻击者用真实的肉鸡或代理IP,跟你网站建立成千上万个完整的HTTP连接,慢悠悠地请求你网站上最消耗资源的页面(比如搜索、登录、动态API)。在四层保安眼里,这些都是“合法访客”,畅通无阻。结果就是,你的服务器CPU、内存、数据库连接池被这些“合法请求”活活耗光,真用户反而进不来。
我朋友遇到的就是这种情况。攻击者根本没用蛮力打带宽,而是精准地点了他商品详情页的“加入购物车”接口。四层防护?形同虚设。
七层防护:前台还得查“你来找谁,办什么事”
那七层防护又是什么?接着上面的比方,它就是你公司内部的前台小姐姐。
访客过了大楼保安这一关,来到你公司门口。前台小姐姐的工作就细致多了:
- 验证来访目的(解析HTTP/HTTPS协议):她会问:“您找谁?有预约吗?具体办什么业务?”(对应解析HTTP请求头、方法、URL、参数等)。
- 检查行为是否异常(应用层规则):如果一个人,每隔一秒就过来问一次“王总在吗?”,或者拿着个小本本试图翻看公司通讯录,前台立刻就会警惕并上报。
七层防护(应用层防护)工作在应用层,主要处理HTTP/HTTPS这类协议。 它能看到“内容”,能理解“业务”。它的核心能力是:
- 精准访问控制:可以针对特定的URL、参数、Cookie、User-Agent进行放行或拦截。比如,你可以设置只允许来自中国地区的IP访问后台登录页。
- 人机识别挑战:对于可疑的请求(比如1秒内请求同一个页面100次),可以弹出验证码(JS挑战、滑块、拼图等),只有真人才能通过。
- 频率限制:可以针对某个IP、某个用户会话(Session),在1分钟内对“提交订单”这个动作,只允许请求10次。
- 慢速攻击防护:对付那种慢慢发数据,耗着你服务器连接不放的攻击,有奇效。
所以,七层防护才是对抗CC攻击、Web漏洞扫描、API滥用、爬虫滥采的利器。 它能区分“恶意流量”和“正常业务流量”,而不是一刀切。
指纹识别:给“惯犯”拍个照,下次直接拦
好了,现在你既有四层的“保安”,也有七层的“前台”,是不是就高枕无忧了?
还不够狡猾。现在的攻击者,尤其是那些做“压力测试”服务的(你懂的),手段也在升级。他们不仅用代理IP轮换,还会伪造甚至随机化HTTP请求头(比如User-Agent、Accept-Language),让每一次请求看起来都像是来自不同的浏览器、不同的设备。
这时候,就需要“指纹识别”技术出场了。这玩意儿有点像给攻击工具或攻击行为“拍身份证”。
它不是简单地看IP,而是综合分析一次TCP/IP连接建立过程中的数十个甚至上百个特征,形成一个独特的“指纹”。比如:
- TCP/IP栈指纹:不同的操作系统(Windows、Linux、Android)、甚至不同的编程语言(Python的requests库、Go的net/http包),在建立TCP连接时,其初始窗口大小、TCP选项及顺序、TTL值等,都有细微的、可被探测的差异。
- TLS/SSL握手指纹:在HTTPS连接时,客户端支持的加密套件列表、扩展列表的顺序,也是极其独特的指纹。一个用Go写的攻击脚本和一个Chrome浏览器,给出的列表顺序天差地别。
- HTTP协议指纹:虽然请求头可以伪造,但头部的顺序、大小写习惯、是否存在某些非标准头部,这些细节很难完全模拟得跟真浏览器一样。比如,有的攻击工具发出的请求,Accept-Encoding头里永远只有
gzip,而现代浏览器通常是一长串。
高防CDN的调度中心,会实时分析流量,一旦发现某个“指纹”在短时间内从成千上万个不同的IP地址发出攻击请求,就会立刻将这个“指纹”标记为恶意,并下发到全球所有清洗节点。之后,凡是携带这个指纹的连接,无论来自哪个IP,在握手阶段(四层)或请求初期(七层)就会被直接丢弃。
这招非常狠,相当于直接认出了“攻击者手里的武器”,而不是去数拿武器的人有多少。很多低成本的僵尸网络或代理池,因为工具单一,很容易被一网打尽。
怎么选?别听销售吹,看你自己“惹了谁”
聊了这么多原理,最后说点实在的。你该怎么选?
-
如果你的业务是游戏、语音视频、金融交易这类对延迟极其敏感,且主要怕被流量灌死的,那你要重点考察服务商的四层防护能力。 比如他们全球的清洗节点带宽总量、近源清洗能力(在运营商侧就把流量干掉)、对SYN Flood等传统攻击的缓解速度。问他们一个问题:你们能提供多少G的纯流量型DDoS防护?
-
如果你的业务是网站、电商、APP API、登录系统,那七层防护能力是你的命根子。 你必须关注:WAF规则库是否及时更新?人机挑战(尤其是无感验证)体验如何?能否针对你的核心业务API(比如
/api/v1/order)设置精细的频率限制?让销售给你演示一下,如何配置一条针对“爬虫高频访问商品价格接口”的防护规则。 -
关于“高防CDN”,你一定要问清楚:它默认开启的是四层防护还是七层防护? 很多廉价的高防CDN,默认只做四层转发和基础清洗,七层防护(WAF)要额外加钱,甚至只是摆设。最坑的是那种“共享式高防”,一个节点被打,所有客户一起抖。
-
别迷信“无限防护”。 那都是话术。任何防护都有成本,真遇到超大攻击,服务商一定会启动“弹性防护”计费,或者…直接把你“黑洞”掉(路由指向null),保其他客户。签合同前,看清SLA(服务等级协议)里关于“清洗失效”和“黑洞阈值”的条款。
我最后给我那朋友的解决方案是:让他保留原来的四层高防,然后在前面再加一个专门做七层防护和智能指纹识别的云WAF服务。两层过滤,成本虽然涨了点,但网站再也没瘫过。用他的话说:“现在睡得着觉了。”
防护这事儿,没有一劳永逸。攻击技术在变,你的策略也得跟着变。核心就一点:搞清楚你的敌人是谁,用什么武器,然后对症下药。 别钱花了,买的却是个心理安慰。
行了,就聊这么多。希望下次你再看那些“高防”、“秒解”、“永不宕机”的宣传语时,心里能有点谱。

