欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

互联网公司防御DDOS的技术选型漫谈 博客分类: linux 互联网防火墙H3C华为Office

程序员文章站 2024-02-28 17:02:16
...
有朋友让我给他选个硬件防火墙买,研究了几小时得出了结果:

先说结论,结论很简单:
只能用iptables在IP层防简单DDOS,只能用mod_security或其它自开发mod断开DDOS的http请求(这些DDOS请求会消耗CPU和数据库)。

细节点:(以下都是针对防高级笨贼和防技术不足/后备资源不足的DDOS来说的。非笨贼的DDOS,只有堆很多机器和扩大入口带宽才有终极方案)

mod层次DDOS请求,在单机的“深入分析指纹方面”,只能做http header这步,“只能”的意思是,你做多了或许会搞死自己,让自己搞死自己也是DDOS的攻击效果之一。
http body这步不能深入,只能切断body过大的。而body指纹分析方面,只能做到文件上传分析型,分析文件开头数据,分析DDOS是不是每次都上传同一份文件。

做得比较好的mod_ddos,只能是集群模式分析和集群模式控制的mod。
支持集群模式攻击数据收集和分析,你没“InMemory KeyValue”的支持,是不够智能和自动化的。

以下都是这结论的来由说明:

虚拟主机要防御的有两大方面:(1)防御host内部执行安全; (2)防御进入连接。
这两方面我都有经验,(1)中比如php方面有部分简单的执行安全限制,现在只说这(2)。

我的安全知识/理论还行,但上次做专业安全已是01年在一家专业安全公司做主程时。
国内安全专家我是推崇绿盟科技的那帮人,比如袁哥。
安全研究的一个工作举例:打开执行二进制文件或它的内存影像,看它有哪些执行strcat这函数的,然后跟踪它的上文下文,看有没边界检查,没有,就再跟踪得距离远些的来源去向。这或许能找出些缓冲区溢出的漏洞。这漏洞研究、scanner中有这个工作模式。只有在做scanner工作的基础上,才有IDS/IPS的工作。
我只在安全行业做了一年就离开了,因为我不喜欢搞破坏、矛和盾的斗争,喜欢建设。
离开安全行业后我也管理过几年12台电信机房linux/win服务器。

防范进入连接两大方面:(1)防御漏洞利用和扫描; (2)防御dos/ddos攻击。
(1)中需结合软件及时更新/配置没漏洞/开发没漏洞等具体东西,这次只说(2)。

防御dos/ddos攻击,可以说有两层次:
(1)IP协议层; (2)应用层(第七层)。

这“两层次”是从现实看来的,而不是从理论来说的,而是从市场上存活的技术方案/模式/产品,如果市场不能存活/触及,那你从TCP/IP理论/socket来说这样的防御能做那样的防御也能做,真去做时从技术和生活费上是搞不来的。
以下也会有些说明为什么一些理论可以做,但在市场上没有出现相关产品。

IP层现有价格2w以下的产品,一般只有简单防火墙功能和“有些还可以的功能”,那些不适合的市场搭售功能,是不说的。
比如这里只说“防御进入连接”,而不是防止内部乱上网、发出垃圾邮件和VPN等,但市场上大多数便宜产品都搭售这些功能,这些产品有的叫“路由器带防火墙功能”,有的叫“防火墙带路由功能”。
这两个其实是一样的,即他们形成了一个固定市场产品模式:在IP层做简单防御(进入方向),然后在第七层带备从内部出去连接的阻止,
即这个固定产品模式可称之为“部门office内防火墙”
而不是有的人真正想要的处在第七层的“WebServer防火墙”或电信机房安全产品。
“防火墙”这名词,在普通人看来就是个能防御很多的东西,但做安全技术的人觉得“防火墙”这词已经被市场上的这些产品俗化了,
所以真正的“WebServer防火墙”已经被叫为“IPS(Intrusion Prevention System,入侵防御系统)”
所以你要搜索和查找报价时,最好从IPS这个思路上查找。最便宜的IPS产品价格大概是8w。
而天价的DDOS设备,是叫“流量清洗”。

个人看来,IP层防火墙都是属于简单防火墙,而不是IPS。
IP层防火墙功能,举例有:
以TP-Link路由器TL-ER6120 (京东上都有卖的,价格不过1500),
华为3com防火墙H3C SecPath F100-A,价格约1w4。

为什么从这两家/两个商品来说? 因为这专业的东西看销售介绍是绝对不对,而是真正操作,但一般不能真正触及去操作的,这时看他最终提供给用户的技术操作手册。
而TP-Link和H3C的官网和从官网体现出来的支持是最好的,网站简单清晰而美观,普通浏览者可以直接查看/下载到最终拿到手的技术手册。

IP层的防御,就是十几种(便宜的)或几十种(价格高点的)IP层特征防御。
IP层的“进入连接防御”为什么不能做到理论的高级功能:(1)因为这些设备的内存少,只有128m不超过256m,而做到假想的高级功能是要留存TCP三路握手后的socket内传输的至少1k数据,因为第七层最少要分析http headers,而对于WebServer这业务来说,并发数高的,要保留足够并发数的状态数据,这内存是不够的。

(2)即使给它加大内存吧,那WebServer防火墙是让http header完事了再通到后边webserver去,还是一边先让它流到后边去,一边自己又留存来进行检测? 这在IPS或叫中转/直连和旁路,前者会拖慢了速度、开发难度高,而且很容易被入侵伪装得header的速度很慢,
让防火墙自己就被这搞挂了,DDOS这个防火墙就行,这难度高,所以IPS设备贵。

这东西,还会拖慢进入我webserver的连接? 所以也是难度高和客户有怨言的活,所以不贵不行。客户有怨言还买这东西,那所以他必须要这东西,或者有钱多,不贵不行。

因为互联网大公司,都是对速度和成本有要求的,并且一台IPS只能对应一台webserver,海量的webserver怎么搞得来?
所以互联网业务公司,都不买IPS,那只有*客户*工程买,不贵不行。
互联网大公司,网关设备只买路由器,然后IPS这些第七层防御DDOS的东西,是自己开发apache模块或用mod_security,将防御所需运算力分散到上百上千台webserver的apache里去。

(3)如果用旁路模式,让http header先过去,但发现有问题时再切断socket吧,那说明后端webserver已对连接处理业务了,你再切断,业务风险很大,买这么贵的IPS都是*和金融客户,即使开发成本高的贵设备,客户都可能会说你误判或存在误判可能,容易和这些客户有纠纷,这些客户怎么能得罪? 这么麻烦,不贵不行。

以上(1)(2)(3)点,只有第七层的贵IPS能做,所以即使内存多便宜,IP层防火墙只是把内存搞大,也没人买你的,所以还是乖乖把内存搞回128m,把价格降为几百块,搭售VPN功能说不定能扩销路。

为什么这些便宜产品还能做第七层的url和简单内容检测?因为这些检测都是防范内部访问外部的,内部并发连接不多的,内部出到外部带宽不大的,搭多个功能好卖点。

所以安全产品市场形成这么固定功能的模式,都是由技术、成本决定的,不是理论决定的。

在这两产品中:TP-Link和H3C SecPath F100-A。
F100-A 贵点,“有些还可以的功能”是指它的“TCP代理”。而他的“ASPF功能”或许还是作为“部门office防火墙”防止内部发起连接的。如果它的“IP地址黑名单”也是对外的,也是有用功能,不断地手动加入黑名单呗。

IP层DDOS防御,能在iptables上做,但毕竟iptables和同一webserver机器共享同一个运算力,而前置的防火墙能让webserver独立运行得更快点。
而面对笨贼和现成的DDOS程序,“TCP代理”或许是有用功能。
而面对第七层高级笨贼,前置防火墙则没多大用处。几台webserver的互联网公司,前置几台只能防低级笨贼的1w4防火墙,成本都有点贵。

再说一下H3C的产品和F100-A / F100-M的细节:贵的产品,或许贵在性能高点,但功能,你还得看他的技术手册和他配备给你的软件版本,我看到价钱不同的F100-M 和F100-A,都是指向相同版本的说明手册。

互联网公司消费不起一配一的IPS,*和金融客户配这个IPS,而从IPS这产品,举华为3com的H3C SecPath T200-S来说吧,价格8w以上。
有第七层的分析功能,但你最好要确定它也有很丰富的分析脚本输入和切断脚本输入功能。同时,它的全部功能也不是仅仅面向DDOS开发的,互联网公司其实只需要DDOS智能检测和自动切断功能(或许这就是天价的流量清洗功能)。它还有很多漏洞检测、病毒特征库功能,它的大客户或许需要这些功能。所以它把成本花在别的方面了,不贵不行。

互联网公司们,还是老老实实用好iptables、mod_security和其它mod吧。
或者花1w4买台好点的IP层部门office防火墙放在一边,但发现第一波DOS是这个层次时,才去机房接好防火墙网线,然后继续观察日志分析特征,并练好快速操作技巧,等待第二波DDOS吧。

而win机器,你看着办吧,有方案的,而你可能的方案是安装个山寨防火墙软件,然后山寨防火墙软件在win上安装个专业后门。
这世界没免费又简单的东西,linux是个免费而复杂的东西,在个人看来他是个好的东西。