web安全测试入门.docx

上传人:b****7 文档编号:8748206 上传时间:2023-02-01 格式:DOCX 页数:14 大小:160.47KB
下载 相关 举报
web安全测试入门.docx_第1页
第1页 / 共14页
web安全测试入门.docx_第2页
第2页 / 共14页
web安全测试入门.docx_第3页
第3页 / 共14页
web安全测试入门.docx_第4页
第4页 / 共14页
web安全测试入门.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

web安全测试入门.docx

《web安全测试入门.docx》由会员分享,可在线阅读,更多相关《web安全测试入门.docx(14页珍藏版)》请在冰豆网上搜索。

web安全测试入门.docx

web安全测试入门

 

序言

互联网的发展历史也可以说是攻击与防护不断交织发展的过程。

当前,Web安全性已经提高一个空前的高度,然而针对网站的攻击却频频得手。

如何最大化的保护Web应用呢,IBM-Rational-提出了全面的解决方案。

本文将针对Web安全的现状、根源、以及-Rational-AppScan产品的技术细节做全面的介绍,最后阐述IBM解决方案给企业带来的深层次价值。

1当前Web安全现状

  互联网的发展历史也可以说是攻击与防护不断交织发展的过程。

目前,全球因特网用户已达13.5亿,用户利用网络进行购物、银行转账支付和各种软件下载,企业用户更是依赖于互联网构建他们的核心业务,对此,Web安全性已经提高一个空前的高度。

  然而,现实世界中,针对网站的攻击愈演愈烈,频频得手。

CardSystems是美国一家专门处理信用卡交易资料的厂商。

该公司为万事达(Master)、维萨(Visa)和美国运通卡等主要信用卡组织提供数据外包服务,负责审核商家传来的消费者信用卡号码、有效期等信息,审核后再传送给银行完成付款手续。

这家公司为超过10万家企业处理信用卡信息,每年业务金额超过150亿美元。

这家已有15年历史的公司怎么也没想到,居然有黑客恶意侵入了它的电脑系统,窃取了4000万张信用卡的资料。

这些资料包括持卡人的姓名、账户号码等。

这是美国有史以来最严重的信用卡资料泄密事件。

此次攻击事件不仅仅对消费者,对公司造成了巨大的损失,甚至对美国的信用卡产业产生了严重的影响!

  1.1Web安全的认识误区

  然而什么才是Web安全呢,或者说什么样的网站才是安全的呢?

用户往往有一些常见的误区。

  “Web网站使用了防火墙,所以很安全”

  无论是应用级还是端口级的防火墙针对的都是网络层面的攻击,通过设置可访问的端口或者应用,把恶意访问排除在外,然而如何鉴别善意访问和恶意访问是一个问题。

访问一旦被允许,后续的安全问题就不是防火墙能应对了。

  “Web网站使用了IDS,所以很安全”

  通过模式识别对网络层面的攻击做出防护措施。

然而类似于防火墙,通过利用程序漏洞,通过正常连接进行攻击的访问无法被识别和处理。

  “Web网站使用了SSL加密,所以很安全”

  SSL对网站发送和接收的信息都进行加密处理,然而SSL无法保障存储在网站里的信息的安全和网站访问者的隐私信息。

采用64位甚至128位SSL加密的网站被黑客攻陷的例子举不胜举。

  “漏洞扫描工具没发现任何问题,所以很安全”

  当前漏洞扫描工具已经被广泛使用去查找一些明显的网络安全漏洞。

同理,扫描工具无法对网站应用程序进行检测,无法查找应用本身的漏洞。

  “我们每季度都会聘用安全人员(PenTester)进行审计,所以很安全”

  人为的检测考察不仅仅效率低,不可控因素也较多,同时对于代码变更频繁的今天,PenTester也无法满足全面的安全需求

  然而这些方法远远不能保障Web应用的安全,针对应用层面的攻击可以轻松的突破防火墙保护的网站。

例如:

最为常见的SQL注入攻击表现层面完全是正常的数据交互查询。

对于防火墙或者入侵检测系统而言,这是最为正常的访问连接,没有任何特征能够说明此种访问连接存在恶意攻击。

所以,一些简单的SQL注入语句就可以使得装备昂贵网络安全设备的网站被轻松攻破。

  1.2Web安全现状

  令人惊诧的是,几乎所有关注Web安全领域的人都会存在着上面我们阐述的误区,而当前Web的安全现状也同时证明了这些误区的普遍性。

“防火墙、IDS是主要安全手段,SSL保证了安全性,…”与之相对的是:

互联网发展到今天,75%的安全问题竟然是出现在应用程序本身。

正如上面介绍的SQL注入攻击一样,这是防火墙、SSL、入侵检测系统无法预防、解决、和应对的!

  如下图所示,目前安全投资中,只有10%花在了如何防护应用安全漏洞,而这却是75%的攻击来源――10%Vs75%,这是多么大的差距!

这也是造成当前Web站点频频被攻陷的一个重要因素。

  图1.当前安全现状统计分析图

  

  那么,什么样的防护才是一个完整的解决方案呢?

通过附图2我们可以看到,一个完整的Web防护不仅仅包含了常见的IDS、Firewall等防护手段,更需要针对应用本身做好安全防护,这也是解决75%安全漏洞的手段。

那么什么样的攻击是防火墙、IDS、或者SSL无法应对的呢,他们又是如何利用应用本身的漏洞进行攻击的呢?

下面我们将做详细的阐述。

  图2.Web应用的网络防护

  

2常见针对Web应用攻击的十大手段

  

目前常用的针对应用漏洞的攻击已经多达几百种,最为常见的攻击为下表列出的十种。

十大攻击手段

应用威胁

负面影响

后果

跨网站脚本攻击

标识盗窃,敏感数据丢失…

黑客可以模拟合法用户,控制其帐户。

注入攻击

通过构造查询对数据库、LDAP和其他系统进行非法查询。

黑客可以访问后端数据库信息,修改、盗窃。

恶意文件执行

在服务器上执行Shell命令Execute,获取控制权。

被修改的站点将所有交易传送给黑客

不安全对象引用

黑客访问敏感文件和资源

Web应用返回敏感文件内容

伪造跨站点请求

黑客调用Blind动作,模拟合法用户

黑客发起Blind请求,要求进行转帐

信息泻露和不正确的错误处理

黑客得到详细系统信息

恶意的系统检测可能有助于更深入的攻击

被破坏的认证和Session管理

Sessiontoken没有被很好的保护

在用户推出系统后,黑客能够盗窃session。

不安全的木马存储

过于简单的加密技术导致黑客破解编密码

隐秘信息被黑客解密盗窃

不安全的通讯

敏感信息在不安全通道中以非加密方式传送

黑客可以通过嗅探器嗅探敏感信息,模拟合法用户。

URL访问限制失效

黑客可以访问非授权的资源连接

黑客可以强行访问一些登陆网页、历史网页。

  我们通过注入缺陷(InjectionFlaws,排名第二的攻击)对攻击原理进行一下说明。

  在网站的应用中需要应用到大量的数据库查询检索等功能,例如最简单的例子是网站登陆,用户需要输入登陆名称和密码进行登陆认证。

在早期的开发中通常使用最为简单的select语句实现此功能,即select*fromuserswhereusername=“XXXX”andpassword=“XXXX”(假设数据库user表名称为users,用户名和密码字段名称为username和password)。

通过截取用户在文本框中录入的字符串,再进行拼接,形成select语句,最终如果表users中有符合此条件的记录(即该用户名和密码),系统将会返回有效记录,从而允许登陆系统中。

  然而,此开发方法隐藏了一个巨大的漏洞,黑客可以通过SQL注入攻击攻入网站。

如下图所示,黑客在登陆界面录入的不是用户名,而是一串字符串(’or1=1--)。

黑客的目的是在原本应该录入用户的地方录入了一串字符串,导致整个select语句发生了变化:

select*fromuserswhereusername=’’or1=1。

熟知Select语句的人知道,在条件语句中,无论用户名称是否正确,由于1=1永远是正确的,所以select将会将所有users表中的数据返回。

最终的结果是,黑客登陆到这个系统中。

通过SQL注入攻击,黑客可以轻松的敲入一些sql语句登陆进网站、对隐秘数据进行查询等等。

  图3.攻击举例

  

  通过上述原理描述我们可以看到,对于SQL注入攻击无论是防火墙还是入侵检测系统都无法预防和阻止,唯一的办法是将应用本身的漏洞关闭。

例如通过参数的传递配合存贮过程来实现数据库查询,这比动态的构建sql语句安全很多。

比如在ASP.net中通过下面的程序将会避免攻击:

  'VisualBasicexample

  DimDSAsDataSet

  DimMyConnectionAsSqlConnection

  DimMyCommandAsSqlDataAdapter

  DimSelectCommandAsString="select*fromuserswhereusername=@username"

  ...

  MyCommand.SelectCommand.Parameters.Add(NewSqlParameter("@username",

  SqlDbType.NVarChar,20))

  MyCommand.SelectCommand.Parameters("@username").Value=UserNameField.Value

  //C#example

  StringselectCmd="select*fromAuthorswherestate=@username";

  SqlConnectionmyConnection=newSqlConnection("server=...");

  SqlDataAdaptermyCommand=newSqlDataAdapter(selectCmd,myConnection);

  myCommand.SelectCommand.Parameters.Add(newSqlParameter("@username",

  SqlDbType.NVarChar,20));

  myCommand.SelectCommand.Parameters["@username"].Value=UserNameField.Value;

  除了注入缺陷攻击,常见的应用攻击还有跨网站脚本攻击、恶意文件执行攻击、不安全直接对象应用攻击、跨站点请求伪造攻击、信息泄漏以及利用错误处理机制展开攻击、等等。

每种攻击都类似与SQL注入攻击,根据应用程序本身的漏洞,对系统进行破坏工作,例如:

获取系统权限、获取机密信息、模拟合法用户等等。

  综上所述,这些利用Web应用漏洞的攻击是Web安全最主要的威胁来源,75%的攻击来源于此,只有对应用程序本身进行改造才能避免攻击。

然而,如何发现这些应用漏洞是保证安全的第一前提,我们如何以最快最有效的方式发现Web应用本身的漏洞呢?

没有高效检测手段,安全的Web应用将成为水中花镜中月。

3通过-Rational-AppScan如何应对网站攻击

  IBM-Rational-AppScan正是应对这一挑战的利器。

  如下图所示,RationalAppScan工作方式比较简单,就像一个黑盒测试工具一样,测试人员不需要了解Web应用本身的结构。

AppScan拥有庞大完整的攻击特征库,通过在httprequest中插入测试用例的方法实现几百中应用攻击,再通过分析httpresponse判断该应用是否存在相应的漏洞。

整个过程简单易懂高效,测试人员可以快速的定位漏洞所在的位置,同时AppScan可以详细指出该漏洞的原理以及解决该漏洞的方法,帮助开发人员迅速修复程序安全隐患。

对于攻击的特征以及测试用例用户不需要花费大量的精力,WatchFire团队定期的对特征库进行更新,随着保证与业界的同步,最大化的提高用户的工作效率。

  图4.-Rational-AppScan工作示意图

  

  下面我们通过简单的实例介绍一下-Rational-AppScan的使用:

  定义扫描

  首先确定扫描站点的URL,根据默认的模板配置向导,确定扫描的整个站点模型以及你想扫描的漏洞种类。

例如,我想扫描企业应用,想根据默认值扫描是否有安全隐患,启动AppScan,创建一个扫描,敲入;根据配置向导直至完成。

  图5.默认的模板配置向导

  

  图6.创建一个扫描

  

  扫描启动,进行测试

  只需要点击执行。

  扫描结果查看

  如图所示,AppScan以各种维度展现了扫描后的结果,不仅仅定位了问题发生的位置,也提出了问题的解决方案。

  图7.扫描后的结果

  

4-Rational-AppScan深入介绍

  RationalAppScan同时提供了很多高级功能,帮助客户对复杂应用进行检测。

支持的扫描配置有:

  StartingURL:

起始URL,制定被测应用的起始地址

  CustomErrorPages:

制定错误网页提高测试效率

  SessionIDs:

管理测试过程中的session

  AutomaticServerDetection:

自动检测应用所在的应用服务器、webserver、操作系统

  ExclusionandInclusion:

制定哪些Web被扫描或者被排除,哪些文件类型不被扫描

  ScanLimits:

其他高级扫描限制,例如扫描次数限制等

  Advanced:

扫描的方式,是宽度扫描还是深度扫描

  CommunicationSettings:

对扫描中的延时、线程数量进行配置

  ProxySettings:

代理设置vLogin/logout:

对被测应用的登陆进行设置,可以采用录制回放的方式、也可以使用自动登陆的方式

  configureaTestPolicy:

配置测试测量,即想测试哪些漏洞。

  ……

  如上所述,用户可以通过AppScan进行一系列高级配置,制定所要检测的Web模型,即哪些需要扫描、哪些不需要、扫描的方式等等;也可以定义需要扫描漏洞的列表,从而保证了用户关心的网站模型有无用户所关心的安全漏洞。

在检测出安全漏洞之后,AppScan又提供了全面的解决方案帮助客户快速解决这些问题,最大化的保证Web应用的安全。

另外,对于Web服务AppScan同样可以支持。

  AppScan提供了完善的报表功能,可以支持用户对扫描的结果进行各种分析,包括对行业或者法规的支持程度;同时,AppScan也提供了一系列的小工具,例如:

AuthenticationTester通过暴力检测方法扫描被测网站的用户名称和密码;HTTPRequestEditor提供了编辑Httprequest的功能,等等。

5-Rational-AppScan的使用场景

  在整个软件开发生命周期中的各个阶段,RationalAppScan都可以被使用,全面的保障了软件的安全性。

如下图所示,软件开发过程中,软件开发人员、软件测试人员、QA、审核人员等诸多角色都可以通过AppScan检测应用,将漏洞尽早挖掘出来。

下面我们通过一些使用场景介绍一下AppScan给软件开发带来的利益。

  图8.AppScan使用场景

  

  5.1开发人员使用AppScan

  开发人员在开发过程中可以使用AppScan或者专用插件,随时开发随时测试,最大化的保证个人开发程序的安全性。

越早发现问题,解决问题的成本就越低,这为Web应用的安全提供了最为坚实的基础保障。

  测试人员使用AppScan

  系统测试人员使用AppScan对应用做全面的测试,一旦发现问题,可以快速的生成defect,通过与ClearQuest的集成可以实现defect电子化跟踪,再传递到开发人员手中,指导开发人员迅速解决问题。

极大的提高了开发团队的开发效率,也提供了完整了沟通平台解决方案。

  5.3审核人员上线前使用AppScan

  这是系统上线前的安全质量关卡。

任何系统上线都应该经过严格的上线测试,这也最大化的减少了上线后问题的出现,避免生产系统上线后给企业带来的巨额损失。

  5.4上线后审计、监控人员使用AppScan

  上线的系统应该定期检测,一旦出现问题更应该及时检测,越快速的定位发现问题,损失就会越小。

  上面我们介绍的是比较通用的使用场景。

当然,不同的企业可能不同的特点,AppScan使用场景的原则是最大化的提高使用效率、尽早的把问题暴露出来,为应用安全打下坚实的基础。

每个企业都可以根据自身的开发现状定义适合自己的使用模式。

  6.为企业带来的收益

  通过上面的介绍,我们对Web安全现状、应用安全重要性、以及应用安全产品-Rational-AppScan的使用有了一定的认识。

但是,工具带给客户的不仅仅是一些功能,更为重要的是给企业带来的深层次的收益,给企业在开发过程、安全策略等层面带来了深刻的变化.下面我们从几方面阐述AppScan给企业带来的价值:

  AppScan是Web应用安全的坚实保障

  正如上面所论述的一样,当前Web安全75%的漏洞出自于应用本身,快速全面的定位问题并提供完善的解决方案将会帮助开发团队构建一个健壮的应用。

  AppScan使得开发成本降低、开发效率提高

  开发测试人员通过-Rational-AppScan可以迅速的定位安全隐患,早期发现问题不仅有助于解决问题,更降低了开发成本,避免问题过晚出现所造成的巨大损失。

  AppScan给企业提供了统计分析能力

AppScan帮助建立企业级的测试策略库  RationalAppScan提供了灵活报表功能,可以支持对扫描结果进行统计分析;支持对规范法规遵循的分析;更提供了Delta比较报告,可以比较两次检测的结果从而作为质量检验的基础数据

  RationalAppScan

  帮助企业根据不同的应用类型建立不同的测试策略,同时用户可以定义针对不同威胁的解决方法,持续的知识积累保证了企业拥有更完善的安全解决方案。

7.总结

  综上所述,随着Internet的蓬勃发展,Web的安全性已经被空前重视,薄弱的安全性也成为了很多企业发展的瓶颈。

然而,即便安全性如此受重视的今天,很多人对如何保障Web的安去性都存在着巨大的误区。

现实表明,只有加强Web应用的防护,才能有效的防范75%的攻击,Web应用的防护已经成为安全话题中最为不可获缺的部分。

IBM-Rational-提供了-Rational-AppScan解决方案,在Web开发、测试、维护、运营的整个生命周期中,帮助企业高效的发现、解决安全漏洞,最大限度的保证了应用的安全性,为企业发展提供了坚实的技术保障。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1