| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
给你的网络服务软件加上个“防火墙”
给你的网络服务软件加上个“防火墙”
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-25 9:28:00

前言:这篇东西基本是为写网络服务软件的朋友所写,也是我自己开发网络服务软件中的一点心得,当然不是网络服务软件开发者,也可以看一下,看看我们使用的软件,是何等的不堪一击。

现在大家使用的网络服务软件,象httpd,ftpd,http proxy,socks proxy,流媒体服务,游戏服务器等网络服务软件,其实在安全上是做差的,我并不是指溢出等情况,我是指一般恶意的远程拒绝服务的攻击(这里也
并不指那些发虚拟IP的syn攻击),这里我所指的攻击,只是一般的open/close的攻击。open/close攻击其实就是用软件不断向网络服务的端口进行连接,当连接上后,又断开,然后循环地进行这个流程。这种攻击的软件会生成很多的连接去攻击(根据msdn,一个进程在默认使用1M堆栈去创建一个线程的情况
下,如果系统资源足够,最大可以创建2028个线程)。可以想象到,这种攻击软件可以使用最大
2028个线程进进行攻击,这种攻击去95%以上网络服务器软件有效,这种攻击的效果就是大量
占用服务器软件处理连接的时间,从而达到令服务器软件无法处理到正常的连接,而这种攻击又会引发
运行那个服务器软件的系统的各种资源使用的升高(CPU,内存,各种句柄等)。经过测试,一台超过2
Ghz的系统,当有超过2000个连接不停地进行这种open/close的攻击时,CPU最高时会使用超过70%,更
多的连接,会令CPU的使用率达到100%,而且在攻击期间,正常的连接,几乎无法连接上服务,因为
远程服务正在忙着处理过多的,同时涌入的连接,而将正常连接丢弃或无法正常处理。基于这么简单的
攻击,就可以造成这样大的影响,所以是有必要给网络服务软件加上个“防火墙”。

现时的网络服务软件的编写模式,基本可以看是是两种模式。多线程模式和非多线程模式。多线程模式
基本就是给每一个连接创建一个新的线程去处理这个连接的请求,而非多线程模式,基本上就是只使用
单个或几个线程,利用各种消息机制(系统的消息机制,事件机制或I/O机制)去处理所有连接的请求。
而对于上面所说的攻击,多线程模式受到的影响更大,这是由于多线程模式的服务器软件,要不停的
创建线程(创建新线程是非常花系统资源的),就算使用线程池,由于受多线程模式的限制(上面所说
的一个进程在资源足够的默认的情况下,最多可以创建2028个线程),如果攻击的连接到达或大于2028
时,多线程模式的网络服务软件基本上是处于“停止接受新的连接”状态了,因为无法为新连接创建一
个新的线程了,这时拒绝服务是完全成功了。而在市场上可以下载到的网络服务器软件中,多线程模式的占了85%以上。

对于防止这种攻击的机制,其它就很简单,就是封住了攻击者的IP,让它无法连接到服务软件打开端口进
行这类攻击,这就是主题所说的给软件加上个“防火墙“了。

如何给软件加上个”防火墙“呢?难道要自己写一个吗?可能性之一,除些外,还有其它的的选择的。

注:由于网络服务器软件基本99%以上都是运行在NT系统中的,所以以下的方法不将WIN9x和ME包括在内。

1。使用系统本身的机制进行限制
A.IPSEC
IPSEC机制和防火墙也有类似,也是在驱动层过滤掉各类的包,但可惜的是,微软并没有给IPSEC公开过
API,所以要调用IPSEC去对付攻击者,只能调用微软的rootkit的工具,将攻击者的IP写入IPSEC的规则中去,让系统去对付攻击者。
优点:可以很有效地对付这类攻击
缺点:如果攻击的IP比较多时,需要写入很多规则,而且由于管理员做过安全限制,服务性软件并不能将规则成功写入。

B.系统本身的filter driver
win 2k或以上系统,微软都带有个filter driver,而且这个是有提供API的,只要对软件做个防护机制,当攻击
连接到达一个上限时,就将这个IP加入到系统的filter driver所不允许的列表中去。
优点:对此类攻击一样有效
缺点:win 2k pro好象没有这个驱动存在,而且在一些系统也有可能被管理员删除,可能会令防护失败。

2。自己写个filter driver作为防火墙
并不是太困难,而且可以实现更多的防护功能,最好的一个选择,虽然以防火墙来说,这种模式是最差劲的,但对于抵抗这种攻击,已经足够了。

有人会说直接装个防火墙就行了,当然这也是一种解决方法,但是服务器有可能并不是一天24小时有人值守的,而且因为服务器软件是对外开放的,防火墙并不能预防这种攻击,只能是遭到攻击后,管理员
知道是这么回事,才可以将攻击IP加入到防火墙中去。这样做不是太不智能和太麻烦了吗?
也会有人说加入这些功能到网络服务软件,也防不了虚假IP的syn攻击。莫说是这样攻击的防护模式,就算是商业性的专业防火墙软件,有哪个能防止这种攻击呢?而且在IPV6的来到前,很多ISP也开始在路由
中做设置,不让自己的客户向外发送虚假的syn包了。对于在比较有效的硬件防火墙后的系统,就不受这
种syn攻击影响,但硬件防火墙后的系统中运行的网络服务软件,却一样可以受到这种open/close的攻击
所影响。

有什么错漏,请指出。有什么更好的方法或思路,也请指教。 

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    一种无可信任仲裁的网上
    个人防火墙推荐!Kerio保
    嗜酒成痴剑亦狂--重燃你
    全面保护你的Java程序安
    全面保护你的Java程序安
    全面保护你的Java程序安
    如何入侵基于JSP的网站+
    为你的phpmyadmin加密
    [DV7.0SP2上传补丁]你的
    最完整的网克教程

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览