专家解读:Web安全原理与技术分析(上)
除了应用数据需要变化,用户的一些状态信息、属性信息也需要临时记录(因为每个用户都是不同的),而Web服务器本来是不记录这些信息的,只管答复你的要求,“人一走茶就凉了”。后来Web技术为了“友好”互动,需要“记住”用户的访问信息,建立了一些“新”的通讯机制:
◆Cookie:把一些用户的参数,如帐户名、口令等信息存放在客户端的硬盘临时文件中,用户再次访问这个网站时,参数也一同送给服务器,服务器就知道你就是上次来的那个“家伙”了
◆Session:把用户的一些参数信息存在服务器的内存中,或写在服务器的硬盘文件中,用户是不可见的,这样用户用不同电脑访问时的贵宾待遇就同样了,Web服务器总能记住你的“样子”,一般情况下,Cookie与Session可以结合使用
Cookie在用户端,一般采用加密方式存放就可以了;Session在服务器端,信息集中,被篡改问题将很严重,所以一般放在内存里管理,尽量不存放在硬盘上。
到此,我们清楚了,Web服务器上有两种服务用数据要保证“清白”,一是页面文件(.html、.xml等),这里包括动态程序文件(.php、.asp、.jsp等),一般存在Web服务器的特定目录中,或是中间间服务器上;二是后台的数据库,如Oracle、SQL Server等,其中存放的数据的动态网页生成时需要的,也有业务管理数据、经营数据。
还有一个问题应该提一下,就是浏览器给用户电脑带来的安全问题,因为Web可以对本地的进程、硬盘操作,可以把木马、病毒放到你的电脑上来,Web架构中使用“沙漏”技术提供安全保护,就是限制页面中“小程序”的本地读写权限,但限制毕竟不能不让其“工作”,所以多数情况下在写入时给出提示,让你自己选择,大家经常看见有进程在安装程序进入你的电脑,但绝大多数人分不清是否应该,要么一概不许,造成很多事情做不了(很多下载与游戏就只能看着),要么“大胆”接受,大门敞开,听天由命。这里主要分析服务器端的安全,客户端的安全再行考虑。
三、Web架构中的安全点分析
从Web架构上可以看出,Web服务器是必经的大门,进了大门,还有很多服务器需要保护,如中间件服务器、数据库服务器等。我们这里不考虑网络内部人员的攻击,只考虑从接入网(或互联网)来的攻击,入侵者入侵的通道有下面几个:
1、服务器系统漏洞:Web服务器毕竟的一个通用的服务器,无论是Windows,还是Linux/Unix,都不可少的带有系统自身的漏洞,通过这些漏洞入侵,可以获得服务器的高级权限,当然对服务器上运行的Web服务就可以随意控制了。除了OS的漏洞,还有Web服务软件的漏洞,IIS也好,Tomcat也好,同样需要不断地打补丁。
2、Web服务应用漏洞:如果说系统级的软件漏洞被关注的人太多了,那么Web应用软件的漏洞数量上就更多了,因为Web服务开发简单,开发的团队参差不齐,并非都是“专业”的高手,编程不规范、安全意识不强、因为开发时间紧张而简化测试等,应用程序的漏洞也同样可以让入侵者来去自如。最为常见的SQL注入,就是因为大多应用编程过程中产生的漏洞。
3、密码暴力破解:漏洞会招来攻击容易理解,但毕竟需要高超的技术水平,破解密码却十分有效,而且简单易行。一般来说帐号信息容易获得,剩下的就是猜测密码了,由于使用复杂密码是件麻烦而又“讨厌”的事,设置容易记忆的密码,是绝大多数用户的选择。大多Web服务是靠“帐号+密码”的方式管理用户帐户,一旦破解密码,尤其是远程管理者的密码,破坏程度难以想象,并且其攻击难度比通过漏洞方式要简单的多,而且不容易被发觉。在知名的网络经济案例中,通过密码入侵的占了接近一半的比例。
入侵者进入Web系统,其动作行为目的性是十分明确的:
◆让网站瘫痪:网站瘫痪是让服务中断。使用DDOS攻击都可以让网站瘫痪,但对Web服务内部没有损害,而网络入侵,可以删除文件、停止进程,让Web服务器彻底无法恢复。一般来说,这种做法是索要金钱或恶意竞争的要挟,也可能是显示他的技术高超,拿你的网站被攻击作为宣传他的工具。
◆篡改网页:修改网站的页面显示,是相对比较容易的,也是公众容易知道的攻击效果,对于攻击者来说,没有什么“实惠”好处,主要是炫耀自己,当然对于政府等网站,形象问题是很严重的。
◆挂木马:这种入侵对网站不产生产生直接破坏,而是对访问网站的用户进行攻击,挂木马的最大“实惠”是收集僵尸网络的“肉鸡”,一个知名网站的首页传播木马的速度是爆炸式的。挂木马容易被网站管理者发觉,XSS(跨站攻击)是新的倾向。
◆篡改数据:这是最危险的攻击者,篡改网站数据库,或者是动态页面的控制程序,表面上没有什么变化,很不容易发觉,是最常见的经济利益入侵。数据篡改的危害是难以估量的,比如:购物网站可以修改你帐号金额或交易记录,政府审批网站可以修改行政审批结果,企业ERP可以修改销售定单或成交价格… 有人说采用加密协议可以防止入侵,如https协议,这种说法是不准确的。首先Web服务是面向大众的,不可以完全使用加密方式,在企业内部的Web服务上可以采用,但大家都是“内部人员”,加密方式是共知的;其次,加密可以防止别人“窃听”,但入侵者可以冒充正规用户,一样可以入侵;再者,“中间人劫持”同样可以窃听加密的通讯。
下部分内容请见:专家解读:Web安全原理与技术分析(下)