诀窍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:融合开发人员与管理人员
网络应用安全中最大的挑战是那些开发了网站的人往往不是保护其安全的人。如果该网站的管理员并不是特别熟悉网站的运作,那么想要充分保障它的安全就是很困难的。另一方面,开发人员并不知道发生了什么类型的攻击。因此,无法通过写代码来解决这些问题。将这两方面的知识融会贯通可以说对付网络应用安全问题的终极武器。
(责任编辑:闫小琪)