WEB应用防火墙在面对以上事件时,可以应对WEB服务器及WEB应用中的安全漏洞。在对企业网络采取安全措施时,我们必须思考一些企业实际需求。本文,我们将为用户介绍网络应用安全的8个关键事项。
诀窍1:不要轻易相信
如果你是在负责设计或管理一个公共网站,你不得不面对是否相信你的用户。如果你是特别偏执,你可能会把这个想法带入到整个网站中。但问题是,除非用户在网站中进行自我验证,否则你就不知道他们是谁以及他们要做什么.
作为网站的管理员,无论黑客如何伪装自己的IP,您是否能够分辨出哪些是合法流量,哪些是非法流量吗?当服务器日志过多出现404错误时,是否有人正在窥探您的网络安全防御?作为管理员必须时刻保持警惕,对网络中的异常行为进行验证。
诀窍2:保持低调
对一个潜在的入侵者来说,他们要做的第一步就是搜集有关你的Web服务器和任何主机应用程序。不要将任何信息暴露给没有相应权限的终端用户,并考虑实施以下反侦察手段:
•从您的WHOIS记录中删除个人信息对于防御社会工程学攻击十分重要;
•确保您的电脑中没有能够显示电脑是什么系统及版本的文件名称;
•从服务器响应中删除服务器上的标题;
•重新映射动态网页的文件扩展名,如JSP到SHTM;
•添加自定义错误页面,有助于隐藏服务器或相关开发平台的有价值信息;
•从HTML、CSS样式表、以及JavaScript源代码中,删除注释,特别是那些能够表明实施信息或网站及管理人员的信息;
•不在robots.txt文件中暴露出敏感的文件或目录名.
您可以调整您的网络防火墙和服务器关联设置从而进行反侦察,这方面可以参考的工具如NMAP(www.insecure.org),通过TCP回执能够帮您识别您的服务器。在http层,你可以考虑改变您的Web服务器的回应来伪装session cookie的名称,并删除其他项目的回应。此类参考工具如ServerMask,能够帮助用户执行多种掩蔽方法.
显然,安全并不能仅仅靠一个称职的WEB管理员来全面防范,安全是防护是必须的,但一些公司邀请部分黑客进行攻击以测试网站的防护功能是十分愚蠢的;攻击的真实目的是使潜在的攻击者远离真正需要保护的网站,让他们去攻击用来做诱饵的网站或服务器。
诀窍3:障眼法避免信息泄露
如果有些信息需要共享时,管理员需要考虑采用障眼法来保证安全。通常我们可以将服务器进行伪装,假装使用与正常业务不同的技术或给予矛盾的信息,来诱使攻击者采用错误的攻击手段并标注其意图。例如,你可以在网站的robots.txt文件、注释或错误网页中添加伪造的不受限的目录或文件,这样当攻击者或者恶意软件在进行监测或攻击时,就会暴露其意图。其他伪装保护的例子包括:
•在响应数据包中加入随机网络和HTTP服务器签名;
•通过实施欺骗性的管理员帐号和网络日志,可以及时发现社会工程需攻击的发生;
•诱捕服务器或蜜罐(www.honeypots.org)混淆入侵者.
•向入侵者发送不同的错误的相应或 “500 Server Error”来伪装服务器故障。
障眼法在安全应用中拥有很大的延展空间。通过创建集群化的诱捕设备和站点来不断的检测,这对潜在的攻击者而言无疑是巨大的烦恼。然而本分公司并不支持这种观点。
必须认识到:伪装并不能有效解决问题,而且有可能刺激攻击者。在许多情况下,面对来自机器人、蠕虫或脚本小子的攻击时,这些策略将无法发挥作用。攻击者并不在乎他们攻击的目标,因此管理员有必要弄清在攻击者发起攻击行为前可以处理哪些问题。
诀窍4:强硬的拒绝恶意需求
必须意识到用户的执行请求并非都是安全的。通常攻击重点放在试图修改HTTP请求从而造成恶意行为发生。用户可以使用应用层防火墙或服务过滤器以消除不良的HTTP请求,包括冗长的URL、异常的字符、不被支持的方法和标题及任何其他畸形要求等.
用户应该清楚自己网站中的数据类型与程序种类。如果您知道什么是允许的,那这个范围以外的数据与程序就是不允许的。比如,需要ASP支持的网站用PHP制作就会有问题。请务必清除所有未使用的文件,特别是备份文件(.bak) 关闭您的服务器的目录浏览选项,并从服务器中删除任何未使用的扩展名。
诀窍5:密切关注用户请求与输入
更危险的攻击行为是提交Web应用。因为用户可以绕过任何客户端的限制(包括尺寸和类型),所以不论攻击行为是否发生,您都必须仔细检查所有容易忽视的提交请求,包括URL查询字符串或表单提交。尤其需要留意页面中的Javascript过滤,这种以消息框传递给页面表单的方式,可以引起严重的跨站脚本攻击(XSS)。
必须仔细检查可以用于提交的隐藏表单字段和Cookie。避免里面出现机密的数据,并且应该考虑加入校验以核实他们并没有被篡改。要特别注意会话cookie,如果表单很容易被破解,将会引发Cookie劫持攻击。
程序流动是很重要的,请务必查看涉及的网址和拒绝任何顺序之外的网页请求。关于信号的问题,您可以添加额外的、加密的cookie信息表明切入点和尾页访问。
诀窍6:监测与测试
如果在出现问题的时候只是去检查日志,那你做的还远远不够。在此时研究日志已经晚了,它只能帮您重现入侵过程或者帮忙修补漏洞。由于应用程序的攻击显然是记录在服务器的访问日志中,所以发现问题的难度不大且速度很快。除非攻击者有服务器级别的权限,否则他们想要掩饰他们的追踪是很困难的。
应用层的攻击比网络入侵更难掩饰,因此将正常的和恶意的请求区分开来也是很困难的。要选出恶意的请求,可以从未知的用户代理、不能解决的IP地址和同一个来源的请求这几个方面入手。要注意服务器的错误日志并看看404请求,它们并非简单的错误而是未能利用或探测。
确保自己在测试网站的时候使用诸如NStealth(www.nstalker.com)等工具来查找和修补漏洞,但必须记住的是,"零日漏洞攻击"(zero-day attack,即安全补丁与瑕疵曝光的同一日内,相关的恶意程序就会出现并对漏洞进行攻击)一直存在着,无法防御的攻击也是会出现的.
诀窍7:做好最坏的打算
不管如何努力,也会有人对您的服务器或应用程序虎视眈眈。您绝不能忽视这种可能性,应该有一个针对不同威胁采取不同应对措施的方法.威胁包括:
•服务器威胁
•网页遭篡改
•Dos攻击
•泄露敏感数据
在服务器威胁方面,想办法使服务器回到正常状态并设法堵塞漏洞是唯一可以做的。当面对网页遭篡改时,您可以将它修改回来或者用另一个网页替换。处理网页篡改并不是很难,但是想要快速的侦测到网页被篡改还是很困难的。一个网站的首页被篡改的话当然是很容易被发现,但是没有网页校验的话,要检测轻微的数据修改可能会有困难。如果一个公司网站的重要信息被入侵者修改的话,后果将会是及其的严重.
在网络中的DoS攻击是被人熟知的且有许多处理办法,但是应用层的DoS攻击就很难处理了.区别真实流量和恶意流量是很困难的。这方面的问题急需解决,积极监测网站的流量就是重要的第一步.
泄露敏感数据(如客户资料包括信用卡号码)是很难被监控的。安全软件和设备可以监测敏感资料并有效阻止其外泄。积极的监测是解决数据泄露最好的办法,因为敏感的资料可不像社保障好或者信用卡号码那样一目了然。
诀窍8:融合开发人员与管理人员
网络应用安全中最大的挑战是那些开发了网站的人往往不是保护其安全的人。如果该网站的管理员并不是特别熟悉网站的运作,那么想要充分保障它的安全就是很困难的。另一方面,开发人员并不知道发生了什么类型的攻击。因此,无法通过写代码来解决这些问题。将这两方面的知识融会贯通可以说对付网络应用安全问题的终极武器。