论坛: 网站建设 标题: web应用安全和“黑箱子”测试 复制本贴地址    
作者: wang0722 [wang0722]    论坛用户   登录
  WEB应用安全的增强只有两种解决途径,“黑箱子”安全测试和“白盒子”安全测试。
所谓“黑箱子”安全测试方法是指目标测试网站已经正常投入使用的情况下,采用不影响业务正常运转的技术手段进行远程测试,通过模拟黑客的惯用入侵伎俩和手法,测试目标WEB系统在真实的不法攻击压力下的安全性。
所谓“白盒子”安全测试方法是指在目标网站还处于开发阶段的时侯,进行基于安全编码规则的源代码级别测试。这种测试方法所需要的代价很高,通常需要精通WEB系统安全的安全编码专家带领程序员对整个系统源代码进行阅读和纠错,增加安全代码以使得“黑箱子”安全测试得到安全的结论。

所以,确保网上银行WEB系统应用程序的安全不是一件简单的事,而不幸的是对WEB应用程序的攻击是非常容易实施的。从信息安全的层面,黑客针对WEB的攻击可以达到从窃取产品和敏感信息到使整个WEB站点甚至后台核心数据库服务器完全瘫痪。
一个黑客通常都会花上几个小时来熟悉他企图突破的WEB应用程序,他会象编制这一套程序的程序员那样思考程序的设计和编码,然后找出编程时留下的漏洞,然后通过浏览器恶意地与应用程序以及数据库进行交互,造成或大或小的损害。要防止这些问题,公司必须预先找出网站的弱点然后关闭有可能被黑客可利用的缝隙。

国外权威的WEB应用安全著作
“《Web Hacking: Attacks and Defense》
by Stuart McClure, Saumil Shah, Shreeraj Shah
《Hacking Exposed (TM) Web Applications 》
by Joel Scambray, Mike Shema“

针对电子商务和网上交易WEB应用平台的安全隐患分类如下:
APPLICATION BUFFER OVERFLOW 应用层缓冲区溢出(压力测试)
COOKIE POISONING cookie安全使用状况评估
CROSS-SITE SCRIPTING 跨站脚本攻击风险评估
HIDDEN MANIPULATION 页面隐藏参数域篡改风险评估
STEALTH COMMANDING 系统隐蔽指令执行风险评估
3RD PARTY MISCONFIGURATION 第三方误配置安全隐患
KNOWN VULNERABILITIES 各类型已知安全漏洞
PARAMETER TAMPERING URL参数篡改攻击风险评估
BACKDOOR & DEBUG OPTIONS 后门程序和调试选项遗留隐患
FORCEFUL BROWSING WEB内容强力浏览问题

一个完整的WEB应用是颇为复杂的,它提供电子商务系统的商务逻辑,使得用户可以与WEB站点进行交互操作,其交易活动可以和后台数据库系统接口。WEB应用通常包括下面几个关键组件。
用户接口代码:这是WEB应用的表示层,它创建了站点的可视界面,是联系客户端以及WEB服务 器的接口部分,通常采用HTML、Java、JavaScript、ActiveX、VB以及其他第三方编写方式。
WEB服务器软件:WEB服务器用来支持用户浏览器和WEB应用之间的正常通信,它负责处理HTTP请求/响应消息、管理用户会话。几乎所有的WEB站点都采用第三方厂商的WEB服务器产品,例如IIS、iPlanet、Apache等。
前端系统:前端系统直接同用户接口代码、操作系统、后台系统进行交互,客户端通过用户接口代码传递的参数将被前端系统处理,最有代表性的例子就是各种CGI、JSP和ASP代码。
后台系统:后台系统是WEB应用真正的驱动部分,它负责处理真正的商务逻辑,直接与数据库系统接口。后台系统通常都是客户定制开发的。
数据库系统:WEB站点通常会采用第三方数据库软件,包括MySQL、Oracle、DB2等。
一个如此复杂的WEB系统,其安全保护机制也应该是多层次全方位的,这是因为构成WEB系统的每一个环节都可能存在脆弱性并由此引入风险,所以每个环节都需要相应的安全控制,例如在WEB应用的用户接口代码中对一些违犯语法规则的数据进行过滤,在前端系统和后台系统中对异常内容进行校验。不过,我们也看到,尽管多数WEB应用都采用了这样那样的安全控制措施,但由于其本身构成的复杂多样,出现某些漏洞也在所难免。
怎样最大程度发现并解决WEB应用系统的漏洞呢?一种方法就是在软件编写过程中进行测试,这也是软件开发周期中一项重要的工作。还有一点非常重要,那就是在WEB应用系统配置完毕正式启用之前对它进行在线评估,通常这是通过远程的安全扫描来实现的。
但是,我们看到,传统的安全扫描技术是有许多缺陷的,一个是不能对未知漏洞进行检测,另一个就是其判断依据过于简单(只依靠HTTP响应消息中的状态码来判断),经常造成误报和漏报,极大地影响了WEB系统安全评估的可靠性和准确性。
那么,怎样才能解决这一问题呢?
为了进行有效的WEB安全性审计,除了用传统的扫描器进行初步检测之外,更多时候,还得依靠技术高超的安全专家,手工检测分析目标系统的安全性。手工分析的方法通常包括三个阶段:分析、测试和报告。在分析阶段,测试人员需要对整个WEB应用系统的框架结构深入了解,对每一处牵涉到客户端数据处理的网页内容进行分析,并对与数据库操作相关的部分进行检查,当然,所有的分析工作,都是以一个普通用户的身份,通过正常的WEB访问过程来进行的。测试人员一旦在分析阶段发现了问题(例如某些网页表单存在隐患,某些网页交互功能不健全),就要在测试阶段对这些问题进行实际验证,通过构造各种复杂的测试代码(实际上就是构造客户端提交的表单信息或CGI参数),攫取WEB应用返回的响应消息,从中判断问题存在与否。最终,测试人员会对测试结果进行综合分析,汇总之后提交测试报告。
上述过程不难给我们一些启发:WEB安全评估不应该只是简单地以已知漏洞库为核心来进行操作,而应该和WEB应用系统实际的操作内容及功能结合起来,进行更深入更智能的分析。实际上,就是把人工测试的过程自动化。
基于以上需求,新型实用的WEB应用安全评估系统具有以下特点:
能够遍历整个WEB系统的拓扑结构,从中找到所有可浏览和可交互的页面 ;
能够对所有可浏览页面进行内容检索和分析,从中找到所有与客户端/服务器交互相关的动态内容(例如表单);
能够自动构造各种类型的“异常”提交参数,模拟大多数普遍存在的WEB攻击手段,探测各种已知漏洞和未知漏洞;
能够对响应消息进行内容分析,结合状态码,判断测试结果;
数据库的设计将不仅仅是一个保存已知漏洞特征的漏洞库,而是结合了普遍攻击手段描述内容的专家库,这种专家库可以方便地进行扩充;
基于WINDOWS的操作界面,,迎合用户操作习惯。

总的来说,这种新型的WEB应用安全评估系统应该是一个应用级的、内容分析的专家系统,它把手工测试过程中的专家经验嵌入到自动测试的工具当中,使得常规的静态WEB漏洞扫描演变成为动态可变的全方位的WEB应用系统安全评估。



地主 发表时间: 12/20 16:45

回复: Aoming [aoming]   版主   登录
好文章!


B1层 发表时间: 12/20 22:05

回复: mumast [mumast]   论坛用户   登录
agree,仅仅会写exploit就算是强人吗?因为有些溢出程序都有章可寻,但对于web程序的渗透,才显真本色

B2层 发表时间: 12/20 22:21

回复: moley [moley]   论坛用户   登录
顶!

B3层 发表时间: 03-12-22 21:20

回复: Idof [idof]   论坛用户   登录
不太会用
能再详细一点否?

B4层 发表时间: 03-12-24 13:37

论坛: 网站建设

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号