您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Web应用程序安全手册
Web应用程序安全手册TT安全技术专题之“Web应用程序安全手册”第2页共34Web应用程序安全指南由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。根据Gartner的最新调查,信息安全攻击有75%都是发生在Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱,易受攻击。然而现实确是,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证Web应用本身的安全,给黑客以可乘之机。本技术手册为你全面解析Web应用程序安全问题,提供保证Web应用程序安全的方法和技巧。Web应用程序安全问题概述相信大家都或多或少的听过关于各种Web应用安全漏洞,诸如:跨站点脚本攻击(XSS),SQL注入,上传漏洞等等。在这里我并不否认各种命名与归类方式,也不评价其命名的合理性与否,我想告诉大家的是,形形色色的安全漏洞中,其实所蕴含安全问题本质往往只有几个。本部为你解读Web应用程序安全性问题的本质。解读Web应用程序安全性问题的本质如何保证Web应用程序安全TT安全技术专题之“Web应用程序安全手册”第3页共34Web应用程序是当今多数企业应用的前沿阵地。Web应用程序在一个复杂的混合性架构中可以发挥多种不同的功能。管理与这些复杂的Web应用程序相关的风险是公司的必然要求,而且运行这些Web应用程序的底层代码的安全性直接影响到公司应用程序可用数据的风险态势。本部分将为你介绍保证Web应用程序安全的方法和技巧。使用BurpProxy对Web应用程序进行调试和测试Web应用程序构建后的一些必备安全措施如何保证Web应用程序安全性保护Web应用程序不受直接对象引用(DOR)Web应用安全保护技巧小心你的WEB应用程序成为数据窃贼的帮凶当心,你以为固若金汤的数据库可能已遭到了入侵。你需要重新思考一下自己公司的网站是否真得不会遭到SQL注入攻击。SQL注入是最流行也是最危险的Web应用程序漏洞利用技术,它可以攻击存储着珍贵企业信息的后端数据库,且“简约高效”。本部分将阐述攻击者如何通过这种方法来利用Web应用程序的漏洞以及如何抵御这种攻击。小心你的WEB应用程序成为数据窃贼的帮凶(一)小心你的WEB应用程序成为数据窃贼的帮凶(二)小心你的WEB应用程序成为数据窃贼的帮凶(三)小心你的WEB应用程序成为数据窃贼的帮凶(四)TT安全技术专题之“Web应用程序安全手册”第4页共34解读Web应用程序安全性问题的本质相信大家都或多或少的听过关于各种Web应用安全漏洞,诸如:跨site脚本攻击(XSS),SQL注入,上传漏洞......形形色色.。在这里我并不否认各种命名与归类方式,也不评价其命名的合理性与否,我想告诉大家的是,形形色色的安全漏洞中,其实所蕴含安全问题本质往往只有几个。我个人把Web应用程序安全性本质问题归结以下三个部分:1、输入/输出验证(Input/outputvalidation)2、角色验证或认证(Roleauthentication)3、所有权验证(Ownershipauthentication)说到这,读者一定想知道我这三种分类与形形色色的安全性问题有什么关系?下面我逐个给您概略解答:输入/输出验证这里的输入与输出其实都是发生在用户界面(UserInterface)这一个层面上的,比如:你某一站点上提交一份注册信息,往往会收到诸多提示:“用户名非法”,“姓名不能使用英文“......其实这就是输入验证的一个实例。什么情况是输出呢?比如说你成功提交一份注册信息后,系统会返回一个确认页(RegisterredConfirmation),往往在这个页面上会显示你注册时提交的部分或全部信息,那么在这里显示的信息就是我所说的输出实例之一,输入需要做什么验证?假如你在提交时,在Address那一栏输入:scriptalert(iwebsecurity);/script,当你到达注册的确认页时,会有什么发生?如果确认页没有做输出验证处理,那很显然会在到达确认页的时候出现一个Javascript打出的提示框。其实这就是跨site脚本攻击的一个小小的实例。当然了,单纯的输入/输出验证涉及的面可能够写一小本书了,努力在后续文章中给大家详解。角色验证或认证我们就拿CSDN来说吧,用户有这些角色:其一可以说是游客,就是浏览者没有登录时的角色;其二是免费的注册用户;或许将来CSDN深入发展了,业务有所更新,还会出现收费的注册用户。以上只是用户角色,那在CSDN公司内部还会有管理员角色,还有可能管理员又可以根据板块分为各种不同的角色。大家看到了吧,你天天访问的CSDN一共可能有多少角色?TT安全技术专题之“Web应用程序安全手册”第5页共34接下来的问题就是权限问题了,为什么会有角色?就是为了控制权限的。每种角色都有自己特定的与公共的权限,这些权限的逻辑关系是相当复杂的,如果一个Web应用在角色上没有一个详细的合理的设计,将会给开发人员带来无限痛苦和麻烦。那现在我要问几个问题:你能保证每种角色只能做其份内的事儿?你是如何去保证的呢?方法可靠吗?有没有漏洞?......这就是我要说的角色验证或认证。为什么我会说验证或认证呢?你可以这么理解,角色性存在于两个阶段,其一进入阶段,比如你登录的那一瞬间,你进入了一个特定的角色;另一个阶段就是维持阶段,你如何确保你登录后总是以登录时的身份在操作呢?那前者可以说是:认证,后者就是验证了。(有点罗嗦不?)给一个角色认证/验证方面的虚拟案例,比如:一个在线电影服务提供商,会免费给您开一个试用角色,如果这试用角色验证不当,可能会导致用户权限提升而成为一个合法的收费用户,而这个收费用户你往往却收不到他的任何费用。所有权验证这个问题的存在也是基于角色的,只不过它所关心的是同级别的角色之间的权限问题。就拿CSDN来说吧,我是CSDN的一个免费用户,你也是。现在的问题是:我可以替你操作吗,我可以替你发表文章吗?我能修改你的个性设置吗?如果不能,CSDN是如何实现的?虽然你和我都是普通用户,但是你有你的隐私我也有我的隐私,如何保证严格的所有权验证就显得尤为关键了。比较简单吧,这就是我所说的所有权验证。我可以很自信的告诉你,只要是Web应用安全性问题,它逃不出在这三大部分,可能你还无法把形形色色的Web应用安全性问题与这三个部分对应并合理的解释清楚,但是确实只有这么简单的几个部分。如果您有疑问,可以以评论的方式提问。我可能会回复,也可能会以另一篇文章的形式出现,以供大家参考。(作者:iwebsecurity来源:TechTarget中国)TT安全技术专题之“Web应用程序安全手册”第6页共34使用BurpProxy对Web应用程序进行调试和测试问:什么是“BurpProxy”?它是使用在大型企业环境中呢,还是仅仅为中小型企业以及消费者而设计的呢?BurpProxy是免费版和专业版BurpSuite的核心部分,它是一个用于调试以及对网络应用程序进行安全检测的集成平台。从性能和安全的角度来看,它无疑可以在企业层面上发挥一定的作用,同时对于那些想要看清网络应用程序如何工作的人来讲,它也是一个有用的工具。特别是渗透测试者会发现它很有帮助,因为它是由一个渗透测试者开发出来的,所以它的许多功能适用于这类工作。BurpProxy是一个交互式的HTTP和HTTPS协议服务器,它充当着浏览器和网络服务器的中间人角色。这意味着它可以拦截、查看和修改在这两者之间传递的流量。这种修改浏览器请求的能力,使得测试者可以发现应用程序如何工作并处理意外或者恶意的请求,比如SQL注入、cookie破坏、会话劫持、目录遍历以及缓冲区溢出等。它具有许多功能。例如,当图片和视频正在传输时,你可以处理它们的二进制数据。虽然输出包括了请求和应答的自动着色语法,但通过使用基于域、IP地址、cookies、正文内容以及HTML页标题等各种参数的过滤器,使用者可以修改网络请求和响应,以此来控制哪些请求和应答需要被拦截下来进行人工测试。所有请求和做出的修改都保存在历史记录里,还可以保存到一个文件中,用于进一步的分析或者提供审核线索。BurpProxy也与BurpSuite中的其它工具紧密集成,所以任何请求或者应答都可以被发送给其它工具用于进一步的处理。BurpSuite的两个版本都包含一个用于映射网站的spider工具,它通过记录所有通过BurpProxy发出的请求来建立一个详细的站点地图。由此产生的站点地图可以用于选择某些项目,并把它们发送给其它的Burp工具,用于分析或者把它作为一次攻击测试的一部分。这些工具可以在一起协同工作,这加快了人工或者自动测试的速度。Burp在Linux和Windows上均可运行,而且你还可以使用IBurpExtender接口来开发你自己的插件,从而拓展它的功能。专业版的价格是每个用户每年275美元,同时它包括一些额外的工具,比如一个应用程序漏洞扫描器,以及一个用于执行定制攻击来发现和利用罕见漏洞的入侵者工具。如果你有兴趣尝试使用Burp的话,可以在PortSwigger网站上下载免费的版本使用一下。(作者:MichaelCobb译者:Sean来源:TechTarget中国)TT安全技术专题之“Web应用程序安全手册”第7页共34Web应用程序构建后的一些必备安全措施问:我们刚完成一个WEB应用程序的构建,我想知道你推荐使用哪些安全设备来保护它的正常运行。答:在对你想要尝试保护的数据和设备充分了解前,我是不可能对你所需要的外围网络和应用程序数据安全设备做出详细具体的建议的。你可以参照一些基本步骤来为任何一种WEB应用程序所必需的安全特性准备一个简短的采购清单。首先,将WEB应用程序所要使用到的数据进行分类是非常重要的,它将会存储在哪?它是如何进行存取和处理的?下一步,识别及评估这些数据以及处理这些数据的系统及应用程序的风险,这个过程被称做威胁建模,应该在应用程序设计过程中实现。通过从一个攻击者的角度来分析一个WEB应用程序,你将会对如下问题有更好的理解:1.它是如何受到攻击的?2.它为什么会受攻击?3.如何最大程度上减轻任何可识别的风险?这个过程也可以帮助完善文档材料来识别和证明这个WEB应用程序的安全需求。这些WEB应用程序的安全需求需要和整个组织全局性的安全策略相统一,这个全局性的安全策略定义了如何合法地保护这些数据的目标,基于此策略来决定如何最好地保护WEB应用程序,以防止受到任何可识别的威胁和降低敏感信息的风险。有一点我是非常肯定的,那就是如果重写部分应用程序的代码,逻辑及功能可以去除部分的漏洞,这样的努力应该通过附加的安全设备来进行补充,但是你的政策和策略必须明确一点,那就是你需要这些设备用来保护你的哪些数据以及用来防范哪些威胁。当完成一个WEB应用程序后,你在查看用于减轻威胁的设备时,记得复查下它们用来保护防范哪种类型的威胁。有一些设备同时提供多种威胁的防护,比如病毒,间谍软件和恶意软件,而其它设备可能会着重于一种特定威胁,比如对即时聊天通讯上进行安全保护。你需要多加关注各家厂商在一种或多种安全领域所用到的这些技术覆盖的深度和方法。对应用程序数据带来多种攻击的一个常见问题是,它们经常在合法的客户端请求和响应上进行反复尝试,SQLTT安全技术专题之“Web应用程序安全手册”第8页共34注入是一个很经典的例子,因此传统的外围保护技术,比如包过滤防火墙已经不再有足够的保护能力。性能和可扩展性是另两个重要的考量点,某些安全设备可能受限于每小时可扫描的事务量,而另一些设备则可能有网络限制或仅对很小范围内的一些应用程序协议提供保护,我认为,何时选择一个安全设备应该先回答如下的关键问题:1.基于公司层面的安全策略目标和需求而言,它需要达到哪些目的?2.它对于现有网络的适应性如何?就目前所所拥有的技术力量能否正确有效地使用它?3.它将会对现存设备及用户造成什么影响,会造成怎么样的损失,比如设备重新采购,配置,人员培训所带来的花费等。4.它会提供
本文标题:Web应用程序安全手册
链接地址:https://www.777doc.com/doc-5392474 .html