网站安全解决方案
1 为何关注网站安全
WEB应用的发展,使网站发挥了越来越重要的作用,与此同时,越来越多的网站也因为存在安全隐患而频繁遭受到各种攻击,导致网站敏感数据、页面被篡改、甚至成为传播木马的傀儡,最终会给更多访问者造成伤害,带来严重损失。那么,网站到底发挥着多大的作用?网站被攻击后到底会带来什么样的损失呢?这两个问题的答案会告诉我们,为何人们会如此关注网站安全。
2 网站分类
●政府网站
作为电子政务建设的最重要的内容之一,政府的门户网站目前普及率已经非常高,肩负着政务公开、信息发布、公众服务以及政民交互等重要任务,关乎政府形象。近几年,政府网站的电子化参与度不断上升,信息公开程度不断提高,公众决策参与水平也有显著提升。
●金融网站
银行、证券等机构的门户网站,提供的服务已不仅限于信息发布和业务咨询,而是更多的跟实际业务交易关联了起来,通过网上银行,可以方便实现以前要去营业厅排队才能完成的业务,也可以用网上银行进行理财投资,在线交易股票,基金等。据CNNIC的数据,网银用户增长率较快,目前的用户量已经超过4000万人,半年增长率达到47.1%,进行网上炒股的用户也已达到4288万。
●电子商务网站
提供在线购物,在线交易服务,电子商务网站的存在正在正在改变人们购物习惯,随着应用的普及,电子商务网站带来的经济影响也是不可估量的。拿一个例子来说:仅成立5年的淘宝,07年的网络销售额达到433亿,这一数字已超越家乐福和沃尔玛销售额之和。
●企业门户
展示企业产品、服务以及解决方案情况,开展跟合作伙伴以及客户的在线沟通(如客户关系管理等),能够拓展业务渠道,为客户和合作伙伴提供极大便利。
●互联网公司网站
我们对再它们熟悉不过了:Google、新浪、土豆、Facebook……,这些网站提供的内容最丰富,搜索,新闻咨询,论坛,博客,视频分享、游戏,已经成为我们生活的一部分。我们在享受这一切便利时,网站的所有者也在靠提供这些服务获取应得的利益。
3 黑客如何攻击网站
Web应用层攻击是主流
由于针对网站的网络访问控制措施被广泛采用,且一般只开放HTTP等必要的服务端口,因此黑客已经难以通过传统网络层攻击方式(查找并攻击操作系统漏洞、数据库漏洞)攻击网站。然而,Web应用程序漏洞的存在更加普遍,随着Web应用技术的深入普及,Web应用程序漏洞发掘和攻击速度越来越块,基于Web漏洞的攻击更容易被利用,已经成为黑客首选。据统计,现在对网站成功的攻击中,超过7成都是基于Web应用层,而非网络层。前不久OWASP (Open Web Application Security Project)机构发布了“2007年十大Web安全漏洞”,XSS和SQL注入漏洞排名前两位,是目前存在最为普遍,利用最为广泛,造成危害最为严重的两类Web漏洞。
2007年十大Web安全漏洞
1) A1 – 注入(Injection)
2) A2 – 跨站脚本 (Cross Site Scripting (XSS))
3) A3 – 无效的验证和会话管理 (Broken Authentication and Session Management)
4) A4 – 对资源不安全的直接引用 (Insecure Direct Object References)
5) A5 – 跨站伪造请求 (Cross Site Request Forgery (CSRF))
6) A6 – 错误的安全配置 (Security Misconfiguration)
7) A7 – 失败的网址访问权限限制 (Failure to Restrict URL Access)
8) A8 – 未经验证的网址重定向 (Unvalidated Redirects and Forwards)
9) A9 – 不安全的密码存储 (Insecure Cryptographic Storage)
10) A10 – 薄弱的传输层保护 (Insufficient Transport Layer Protection)
4. 现有安全措施分析
诚如上节所说,网站面临的环境已经发生了很大变化,更多的威胁来自于Web应用层,而大部分的网站的安全措施却仍然停留在原来对威胁认识的基础上,甚至于网站是否已经被入侵并实施网页挂马,也往往是在访问者投诉或被监管部门查处时方才察觉,但此时损失已经造成,无法挽回。不少人会问:我的网站已经有了安全措施,仍然会发生这样的事情,到底是为什么呢?我们来分析一下现有的安全措施。
防火墙、防病毒、漏洞扫描等都是已经被广泛采用的传统网站安全措施,尤其是防火墙的部署,使得网站阻挡了大部分来自网络层的攻击,发挥了重要作用。但是面对目前的新情况,这些传统的安全措施能够应对吗?
●防火墙
启用网络访问控制策略后,防火墙可以阻挡对网站其他服务端口的访问,而仅仅只开放允许访问HTTP服务端口,这样,基于其他协议、服务端口的漏洞扫描和攻击尝试都将被阻断。但针对正在流行的Web应用层攻击攻击,其行为类似一次正常的Web访问,防火墙是无法识别和阻止的,一但阻止,将意味着正常的Web访问也会被切断。
●防病毒
不管在网关处还是网站服务器上部署,防病毒系统都可以有效的进行病毒检测和防护,但无法识别网页中存在的恶意代码,即网页木马。由于网页木马通常表现为网页程序中一段正常的脚本,只有在被执行的时候,才可能去下载有害的程序或者直接盗取受害访问者的隐私。同理,对于Web应用程序中的漏洞,防病毒系统更难以识别。
●漏洞扫描
在查找和修补网站的操作系统漏洞、数据库漏洞、发布系统(如IIS,Apache)等漏洞时,漏洞扫描系统发挥了很大作用,但是作为通用的漏洞扫描系统,它对Web漏洞的识别却及其有限,原因是Web应用程序漏洞并非某一特定软件或者服务上的漏洞,其形式复杂多样,通常需要在自动工具检查的基础上,通过人工审核才可准确定位。
综上所述,识别并阻止基于Web漏洞的攻击,仅靠漏洞扫描、网络访问控制、病毒检测防护等传统的安全措施是难以做到的。针对新的网站安全威胁,我们应该保持足够的紧迫性,并采取有效措施积极应对。
5 网站安全问题总结
网站安全形势堪忧,究其原因,主要是因为存在以下几个方面的问题:
5.1、大多数网站设计,只关注正常应用,未关注代码安全
一个网站设计者更多地考虑满足用户应用,如何实现业务。很少考虑网站应用开发过程中所存在的漏洞,这些漏洞在不关注安全代码设计的人员眼里几乎不可见,大多数网站设计开发者、网站维护人员对网站攻防技术的了解甚少;在正常使用过程中,即便存在安全漏洞,正常的使用者并不会察觉。但在黑客对漏洞敏锐的发觉和充分利用的动力下,网站存在的这些漏洞就被挖掘出来,且成为黑客们直接或间接获取利益的机会。对于Web应用程序的SQL注入漏洞,有试验表明,通过搜寻1000个网站取样测试,检测到有11.3%存在SQL注入漏洞。
5.2、黑客入侵后,未及时发现
有些黑客通过篡改网页来传播一些非法信息或炫耀自己的水平,但篡改网页之前,黑客肯定基于对漏洞的利用,获得了网站控制权限。可怕的是,通常黑客在获取网站的控制权限之后,并不暴露自己,而是持续利用所控制网站产生直接利益。如网页挂马就是一种利用网站,给访问者种植其木马的一种非常隐蔽且直
接获取利益的主要方式之一。被种植木马的人通常是在不知情的情况下,被黑客窃取了自身的机密信息。这样,网站成了黑客散布木马的一个渠道:网站本身虽然能够提供正常服务,但网站的访问者却遭受着持续的危害。
5.3、网站防御措施滞后,甚至没有真正的防御
大多数防御传统访问控制,入侵防御设备,保护网站抵御黑客攻击的效果不佳。比如对应用层的SQL注入、XSS攻击这种基于应用层构建的攻击,防火墙束手无策,甚至是基于特征匹配技术的入侵防御产品,也由于这类攻击特征不唯一性,不能精确阻断攻击。因此,导致目前有很多黑客将SQL注入,XSS攻击作为
入侵网站的首选攻击技术。
网站防御不佳另一个原因是,有很多网站管理员对网站的价值认识仅仅是一台服务器或者是网站的建设成本,为了这个服务器而增加超出其成本的安全防护措施认为得不偿失。而实际网站遭受攻击之后,带来的间接损失往往不能用一个服务器或者是网站建设成本来衡量,很多信息资产在遭受攻击之后造成无形价值的流失。不幸的是,很多拥有网站的组织和个人,只有在网站遭受攻击后,造成的损失远超过网站本身造价之后才意识网站安全问题的严重性。
5.4、发现安全问题不能彻底解决
网站技术发展较快、安全问题日益突出,但由于关注重点不同,绝大多数的网站开发与设计公司,网站安全代码设计方面了解甚少,发现网站安全存在问题和漏洞,其修补方式只能停留在页面修复,很难针对网站具体的漏洞原理对源代码进行改造。这些也是为什么有些网站安装网页防篡改、网站恢复软件后仍然遭受攻击。我们在一次网站安全检查过程中,曾经戏剧化的发现,网站的网页防篡改系统将早期植入的恶意代码也保护了起来。这说明很少有人能够准确的了解网站安全漏洞解决的问题是否彻底。
6.网站安全解决方案
6.1 WEB服务器软件安全
① 操作系统补丁、应用系统补丁、中间件系统补丁、数据库系统补丁、防病毒系统升级更新等等。
② WEB服务器,源代码安全评估。
当今的WEB安全主要集中在应用层面,也就是代码安全,虽然可以安装安全设备(IPS、WAF),但这些安全设备都是安全防御,对于正常的访问(或者说被这些安全设备认为是正常的)安全设备是放行的,如果这段代码有问题同样会出大问题。
建议1:WEB前后台代码完全剥离。
建议2:有条件的话,找专业安全厂商进行代码安全评估。
③ DB服务器安全设置,敏感操作要做日志等。
6.2 网站安全检测
6.2.1 Fortify SCA静态代码分析器(Static Code Analyzer)
Fortify SCA是Fortify360产品套装中的一部分,它使用fortify公司特有的X-Tier Dataflow™ analysis技术去检测软件安全问题。
1) Fortify SCA能够支持多达17种的常见编程语言,如ASP.NET, C/C++, C#, Java, JSP, XML,VB.NET、ASP,PHP,JavaScript, VB,VBScript等语言。
2) Fortify 产品可以支持Windows、 Linux 、HP Unix, Solaris,AIX的操作系统平台和其上面的代码。
3) Fortify SCA中包括有五个分析引擎,数据流分析引擎可以跟踪可疑的输入数据,分析出该数据不安全的使用产生的安全隐患;语义分析引擎可以发现易于遭受攻击的语言函数或者过程,并理解它们使用的上下文环境,识别出使用特定函数或者过程带来的软件安全的隐患;结构分析引擎能够跟踪业务操作的先后顺序,发现因代码构造不合理而带来的软件安全隐患;配置分析引擎,能够分析软件的配置和代码的关系,发现在软件配置和代码之间,由于配置丢失或者不一致而带来的安全隐患;控制流分析引擎:准确地跟踪业务运行的先后顺序,来发现不适当的代码结构。
4) Fortify 的安全漏洞库是业界最权威的,遵循国际权威标准OWASP和CWE标准。Fortify SCA目前一共能够分析和检测的漏洞种类约400多种。
6.2.2WebInspect网站应用安全测试仪
WebInspect可用于对复杂网络上的Web应用程序进行安全性测试和评估。利用创新的动态安全分析技术及评估技术检查 Web 服务及Web 应用程序的安全,惠普WebInspect提供快速扫描功能,及准确的Web应用程序安全扫描结果。
1) 先进的自动化渗透测试:对运行的应用程序进行自动化安全测试,如SQL注入和跨站点脚本
2) 无与伦比的精度:采用多种分析方法和智能安全检测引擎,以确定利用的安全漏洞,使开发团队可以专注于固定只有真正重要的问题
3) 客户端脚本支持:惠普WebInspect静态分析,支持JavaScript,Flash,Silverlight等客户端脚本代码
4) 关联结果与静态分析:通过深度分析并与业界领先的Fortify静态分析结果相结合,惠普WebInspect提供了最深和最可行的安全测试结果
5) 易于安装和使用:低成本进入,快速安装和工作流程驱动的向导,使小规模的测试队伍可以很快开展其安全性测试,而有经验的渗透测试人员可以利用该工具进行专家级的安全测试
参考:
http://www.venustech.com.cn/NewsInfo/209/7837.Html
http://www.venustech.com.cn/NewsInfo/209/7905.Html
http://www.broadskytech.com/tabid/94/ArticleID/69/Default.aspx