应用防火墙:一点一点地砌

2008-8-19    | |
打印本文章
RSS

导读:保护网络应用程序是一场艰难的战斗。该怎么办呢?你当然可以购买一个商业网络应用层防火墙产品,另一个选择就是使用免费的开源工具,构建一个网络应用防火墙。

关键词:网络应用程序 网络应用层防火墙 开源工具 商业

正在加载数据... 【TechTarget中国原创】但是,保护网络应用程序是一场艰难的战斗。虽然,传统的网络安全防御已经集中于OSI(开放式系统互联)的前四层,但是,根据定义,大多数网络应用程序开发是通过代理器和防火墙的有效HTTP信息流。
该怎么办呢?你当然可以购买一个商业网络应用层防火墙产品,但是,也许你不能(或者不会)在预算中添加另一个年许可更新。另一个选择就是使用免费的开源工具,解析、重写并过滤HTTP信息流,以预防应用层攻击,进而构建一个网络应用层防火墙。

【TechTarget中国原创】没有应用防火墙的预算?那么使用开源组件来构建你自己的应用防火墙吧。

  HTTP正迅速成为任何以及所有商业逻辑的默认传输。随着网络服务和面向服务架构的出现,XML已经成为一个粘合体,它将完全不同的应用程序和数据类型结合到一起。网络入口、内容管理系统、以及甚至企业博客和wikis正成为首选的通信1渠道。

  但是,保护网络应用程序是一场艰难的战斗。虽然,传统的网络安全防御已经集中于OSI(开放式系统互联)的前四层,但是,根据定义,大多数网络应用程序开发是通过代理器和防火墙的有效HTTP信息流。

  该怎么办呢?你当然可以购买一个商业网络应用防火墙产品,但是,也许你不能(或者不会)在预算中添加另一个年许可更新。另一个选择就是使用免费的开源工具,解析、重写并过滤HTTP信息流,以预防应用层攻击,进而构建一个网络应用防火墙。你不会获得商业解决方案的所有功能。但是,你将在因特网所面临的网络服务和应用程序前面,添加一个亟需的保护层。

  坚实的基础

  网络应用防火墙将完美地处在因特网所面对的防火墙之后,充当着所有网络信息流的唯一出入路径。使用强化的Unix或者Linux平台,比如OpenBSD有堆栈保护、最小安装和积极的源代码审计。Bastille也是一个出色的强化工具,可用于大多数Linux的相关产品。

  由于防火墙会解析所有的网络信息流,负载会大大高于典型的代理器。你需要尽可能大的CPU,此外还有大量的RAM。你可以构建一些备用的网关,并在多个安全网关前端使用HTTP负载均衡器。

  然而,得出这样一个解决方案是复杂的。作为网络IDS或者IPS配置,你配置中的规则数量、进入站点的信息量、以及重新编写和解析操作的复杂度都会影响到性能。

  此外,良好的凭经验的方法可以保证您的网络应用防火墙与您最繁忙的网络服务器一样大。由于性能会因你的组织所使用的应用程序类型的不同而异,所以在任何生产制造之前,准备好调试、测试以及基准。

  所需知识

  作为网络应用防火墙构建者,你需要有一个坚实的Unix/Linux背景知识,以及对网络应用程序、网络攻击、和HTTP协议有扎实的了解。会有一些感觉像网络开发:你需要进行测试,并确保过滤不会影响任何网络应用程序,并运行诸如Nikto (www.cirt.net)之类的网络扫描工具,进而对比原始内容和代理内容。

  你应该了解指令行周围的方式,并熟悉Apache配置语法,进而下载所需要的程序块,创建安全规则和过滤表达式。你会发现采用规则表达式(通常用于Snort规则中)工作的良好舒适程度也将派上用场。

  现在,我们来探讨一些开源组件,你可以用来构建网络应用防火墙。

  奠基工作

  在所有现有的商业代理器和开源HTTP代理器中,Apache Web服务器解析和改写内容的能力突出。Apache包括一个快速稳定的内置HTTP代理器,作为其核心产品的一部分,此外,其模块化设计允许你进行广泛的调试,这样你可以在单代理器配置中进行配置。你可以利用其内容感知来构建一个过滤和改写HTTP代理器。

  Apache从2.0版开始,包括作为内置模式匹配引擎的PCRE (Perl兼容正则表达式)库,这大大地提高了规则表达式的性能。它还允许指令多个基于内容类型的解析和改写操作。

  这些特点与后面将讨论的第三方和内置式模块进行结合,为保护网络应用程序提供了一个强有力的工具包。

  构建平台

  Mod_security(www.modsecurity.org)是防火墙的网络入侵防御能力的核心。虽然,它从一个简单的基于模式的过滤引擎开始,阻止网络蠕虫信息流,但是,它已经发展成为一个成熟的网络安全套件。

  Mod_security特征使用一种基于规则表达式的过滤语言,Snort用户很熟悉这种语言,该签名可以通过mod_security站点自动更新,这与典型的IDS特征很相似。这些包括反跨站点脚本攻击的过滤器和URL中的SQL语句,以及包含shell指令和路径或者用户ID信息的信息流。

  mod_security需要经常更新签名,在www.gotroot.com上可以免费下载。

  Mod_security也使Uni-code信息流恢复正常,并对其净化,以防止URL-解码攻击。

  Mod_security的模式匹配也能用于防止错误信息泄露。错误信息泄露可能会给攻击者提供有用信息。任何有可能泄露网络服务器配置的信息都会经过过滤,并将其改向为一个通用的错误信息。你也可以使用mod_security来执行环境所要求的文件类型,比如.php、.asp、.jsp、以及.html文件。

  万里长城

  虽然Mod_security功能强大,但是,正如大部分IDS/IPS解决方案一样,它采用的是一种默认许可或者排斥性方法。对于一个开始获得默认-否定情况的网络应用防火墙而言,你需要使用一些Apache中额外的模块。这里是一些完成任务所需要的额外模块:

  这是一个典型的使用开源网络应用防火墙的网络交易。客户端请求一个静态的HTML页面,它按照网关后端的动态请求重新编写,经过监测、扫描与验证。HTTP响应标头也进行了改写,以掩盖网络服务器,并隐藏其基础平台。

  • 隐藏你的平台。网络服务器版本所标榜的是一种可以让攻击者识别到网络服务器平台的简捷方法。端口80的简单远程登录和HTTP GET请求将会产生版本号码,并且通常会有加载在服务器上的额外扩展。隐藏服务器标头和其它任何有mod_headers的特定平台标头,这是减少信息泄露的一个简单方法。

  为了阻止更先进的指纹识别工具,你可以更进一步,修改Apache源,以发送独特的错误标头和重新排序响应。

  • 重新编写内容并进行杀毒。只要运行在后端的编码没有任何变化,你就可以修改外部响应或者内部请求,并验证输入信息。所有这些都可以通过简单的规则表达式实现。
  • Mod_rewrite是一个受欢迎的用于改写内部HTTP请求的工具,通常以搜索引擎更容易解析的格式表述网络内容。使用规则表达式,你可以创建一个过滤器,按照特定的安全规则(如参数为最大长度,仅包括字母和数字字符,请求也是最大长度),限制允许通过你网络环境的信息流,将所有其它的请求发送到一个通用的错误页面上。
  • 虽然Mod_proxy_html的工作方式也类似,但是仅仅是输出方式相似,而非输入。它可以读取并替换服务器返回的HTML。只要将mod_proxy_html 和mod_rewrite结合起来,就可能运行网络应用层模拟,这与网络地址转换、以及改写给定站点提供的内容。
    这可以为欺骗攻击者带来几乎无限的可能性:ASP页面可以模拟为PHP,动态内容可以呈现为静态的,此外,站点可以向外部明显地分裂于多个服务器上。

  另一个工具是mod_lineedit,它提供了和mod_proxy_html相同的改写功能:不仅仅在HTML方面,也包括HTTP信息中的任何内容。它对剔除信息泄露的其它来源非常有用,比如META标签可以命名创建网络页面的作者或者工具、开发者的注释和任何其它你的过滤器没有捕获的潜在危险数据。

  砖瓦和砂浆

  其它许多工具都可以配置在代理其上,监测所有网络信息流:

  • 流量截流工具通过限制特定主机和网络每秒可以产生的请求数量,进而可以将蠕虫信息流和DoS攻击最小化。
  • 日志解析器有助于检测网络请求日志中的异常情况。
  • 当负载与标准不符时,流量分析应用会发出警报。
  • 网络安全网关是添加多因素认证的良好位置,要么使用LDAP或者其它机制,与企业单点登陆目录进行结合。

  虽然构建你自己的网络应用防火墙在前一阶段需要大量的艰苦工作,但是回报可能是相当高的。不论你创立一个解决方案还是购买一个,对于理解网络安全防御无法获知网络环境内部的情况都不要迟疑。

查看全文
 
随着互联网的快速发展,企业的网络应用已经开始变的复杂多样,比如邮件处理、网络管理软件的应用等,网络攻击也开始转向应用层。统计表明,企业要面对75%的应用层攻击……
 
目前Web技术在客户和服务端的广泛利用,导致黑客们越来越倾向于使用各种攻击手法来针对Web应用城进行攻击,使得攻击手段更加简便和多样化,令人防不胜防,那么如何应对呢?
 
在IT安全领域,防火墙是一个重要的角色,通常被部署在企业网络和外部互联网中间,来保护企业网中的计算机、应用程序和其它资源免遭外部攻击。然而如何择购买防火墙呢?
 
很多用户认为,在网络中部署多层的防火墙、IDS、IPS等设备,就可以保障网络的安全性,就能全面立体的防护WEB应用了,但是为何基于WEB应用的攻击事件仍然不断发生?
 
目前,类似破坏网站数据的攻击过程中产生的网络层数据,和正常数据没有区别,传统的防火墙对这些攻击变得毫无作用,Web应用防火墙保护联网的企业数据方面发挥更大作用……
云计算的概念越来越流行,而且云计算被认为是一种强大的商业模式,使用云计算,可以根据需要购买计算能力、磁盘存储、协作应用开发资源、客户关系管理(CRM),而且它非常灵活。但是采用云计算会遇到与外包有关的敏感的公司数据所能遇到的所有风险。当你和第三方已知或未知的转包商交易时,特别是在全面范围内时,执行安全策略和遵从法规要求就很困难。再加上云模糊的特性以及非传统厂商进入这个市场,就更增加云的危险。
“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。
入侵防御系统(Intrusion Prevention System,IPS)是这段时间网络安全业内比较热门的一个词,这种既能及时发现又能实时阻断各种入侵行为的安全产品,自面世那天起,就受到各大安全厂商和用户的广泛关注。本指南将帮助你深入了解IPS,并介绍专家对IPS未来的预测。
最新更新
专家答疑
技巧
Mike Rothman
问:Unix审计设置的最佳业务实践是什么?有一个厂商试图说服我Unix系统日志足够满足SOX(萨班斯法案)、HIPAA、GLBA 和PCI DSS等法规的要求。这种说法对吗?
David Griffeth
问:我们公司希望通过服务器虚拟化来节省开支。目前我们实施了单点登录,打算在虚拟化之后继续使用它。请问有没有将SSO和服务器虚拟化集成起来的最佳实践方案?
David Mortman
问:我是一名安全经理,最近想要扩充我的安全团队。公司的管理层希望我从内部服务台商提升一些员工。我应该在候选人身上寻找那些特定的素质或者经验呢?

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录