基于 ASP点NET 的 Web 安全性评估设计与实现毕业论文.doc_第1页
基于 ASP点NET 的 Web 安全性评估设计与实现毕业论文.doc_第2页
基于 ASP点NET 的 Web 安全性评估设计与实现毕业论文.doc_第3页
基于 ASP点NET 的 Web 安全性评估设计与实现毕业论文.doc_第4页
基于 ASP点NET 的 Web 安全性评估设计与实现毕业论文.doc_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 ASP点NET 的 Web 安全性评估设计与实现毕业论文目 录摘要IIAbstractIII目 录IV第一章 绪论11.1 引言11.2 研究背景和现状分析11.3 研究内容和意义21.4本文术语表21.5本论文结构4第二章 相关技术知识简介52.1技术方法简介52.1.1 OWASP TOP 10 评估方法简介52.1.2 ATAM方法简介52.1.3 ASP.NET技术52.1.4 ASP.NET MVC基本概念62.1.5 ASP.NET MVC的优点62.1.6 Spring.NET简介72.2工具简介72.2.1 HP WebInspect 10.072.2.2 NetSparker Professional Edition72.2.4 Microsoft Visual Studio 201082.3本章小结8第三章 OWASP评估93.1网站简介93.2 OWASP 风险评估113.2.1识别风险113.2.2 A1 注入 Injection193.2.3 A2 失效的身份认证和会话管理 Broken Authentication and Session Management223.2.4 A3 跨站式脚本 Cross-Site Scripting (css)223.2.5 A4 不安全的对象直接引用 Insecure Direct Object References243.2.6 A5 安全配置错误 Security Misconfiguration243.2.7 A6 敏感数据暴露 Sensitive Data Exposure253.2.8 A7 功能级别访问控制缺失 Missing Function Level Access Control263.2.9 A8 跨站请求伪造 Cross-Site Request Forgery(CSRF)273.2.10 A9 使用已知易受攻击组件 Using Known Vulnerable Components273.2.11 A10 未验证的重定向和转发 Unvalidated Redirects and Forwards273.2.12 HP报告的建议273.3 评估风险283.3.1 A1:SQL注入283.3.2 A3 跨站式脚本303.3.3 A5 安全配置错误323.3.4 A6 敏感数据暴露333.3.5 A7 功能级别访问控制缺失343.3.7 手动功能检测问题363.4 本章小结40第四章 ATAM架构评估报告424.1简介424.2 第0阶段:合作关系和准备424.2.1合作关系424.2.2 过程记录424.2.3 评估小组角色分配434.2.4 声明434.3 第1阶段 部分评估434.3.1 ATAM方法表述434.3.2 商业动机表述434.3.3架构的表述444.3.4 对体系架构方法分类504.3.5 生成质量属性效应树504.3.6分析架构方法514.4 第2阶段 评估564.4.1 第7步 集体讨论确定场景的优先级564.4.2 分析架构方法574.4.3 结果的表述574.5 第3阶段 后续584.6 本章小节58第五章 安全战术设计595.1 问题总结595.2 战术设计595.2.1 安全架构设计595.2.2 安全架构实现635.2.4 修复其他漏洞725.3 本章小结74第六章 战术模拟测试756.1 MVC测试756.2 战术模拟检测776.3 TOWER检测796.4 检测结论826.5 本章小结82结论83论文总结83下一步展望83参考文献84致谢86III第一章 绪论1.1 引言 而对于信息化时代的今天,网站的安全问题愈发重要,一些漏洞不仅仅会给网站带来直接的经济损失,之后所引出来的其他问题比如客户信息泄漏等将对网站用户造成更大的损失与伤害,并引发网站用户及社会对网站的信任危机,甚至成为网站的致命伤。所以对于网站开发人员,如何使网站在安全性方面得到客户的信赖十分关键。 而本课题我们研究如何使用规范化的方法正确评估网站安全性,并根据实际案例 (数字创新加油站)提出安全策略战术,希望可以以此为基础,教会人们如何评估网站安全及构建安全的ASP.NET网站。1.2 研究背景和现状分析 2014年4月,名为“心脏出血”的重大安全漏洞被曝光,这个漏洞导致大量用户信息泄漏和损失,在当前访问量最大的1000个网站中,受影响的网站和服务器包括雅虎,Imgur。DuckDuckGo等,甚至导致CRA(加拿大税务局)被迫关闭电子服务网站。 2013年8月,国内大批快捷酒店订房记录被泄漏,包括客户名,开房日期,身份证号,房间号等隐私信息,甚至随之而来利用该漏洞用于查询住客信息的网站也出现,并迅速在网上流传。 2012年9月,铁道部订票网站12306.cn被传出存在大量高危险的漏洞,包括SQL注入,XSS,绝对路径泄漏等。 2011年12月,受程序员青睐的CSDN的安全系统遭受黑客攻击,600万的用户信息被泄漏,而与此同时,被指出泄漏问题的还有天涯,多玩,世纪佳缘等大规模网站。 . . 每年,随着互联网的发展与进步,新的漏洞出现,以前被忽视的安全隐患也登上了舞台,这些漏洞对于互联网,对于越来越离不开互联网生活的我们影响也越来越大,甚至一些一直被信赖为不可能被攻陷的权威网站也发生了这种情况。如何正确的评估上线网站的安全性,设计针对网站合理的安全策略战术的重要性实在不言而喻。 对于国外而言,目前互联网上有大量的好用的安全检测工具,不仅仅是开源的如Nikto,Watabo和OWASP组织提供的系列工具,还有大型的商业性工具如HPInspect,Netsparker等。这类工具在不断地被研究和进步成为网站开发人员评估网站安全设计网站安全战术的重要组成。在整个互联网世界,WEB安全的研究凭借以往的研究成果和设计的工具发展越来越便捷,而WEB安全研究的发展更带动了安全工具和战术的优化和普及(HPWebInspect新版本已经到了10.0)。 工具的发展只是窥探本体发展的一小部分“视图”,的不仅仅是工具,对于安全漏洞的本质研究,针对不断涌现的新的安全问题,国内外的学者和组织不断地钻研与交流学习(如互联网安全大会,OWASP会议等)不断提出了新的安全战术和解决方案,从而使问题得到解决维护互联网的稳定和安全。 而国内,乌云漏洞平台是一个2010年建立的位于厂商和安全研究组之间的安全问题反馈平台,在对安全问题进行研究与处理的同时也给广大的安全爱好者提供了学习与交流的环境,吸引了众多安全团队在该平台发布信息及交流。乌云平台发布的主要漏洞包括携同网源代码包可下载,游久网口令漏洞,百度主站反射型XSS,太平洋网络文件下载漏洞,搜狐邮箱存储型XSS,腾讯微云存储等。 虽然乌云平台有大量专业的安全研究人员,但是平台才发展不到五年,对于国内WEB安全问题和机制的重要性没有得到大部分人正确认识的现状,很多优秀的安全检测工具仅仅只被少部分专业安全人士熟悉,这些安全工具在国内少有人研究,甚至连使用方法都很难在互联网上找到。所以这更加形成了一个微妙的恶性循环。所以WEB安全的重要性和检测工具的普及还需要我们进一步努力。 1.3 研究内容和意义 目前国内有不少关于WEB安全的研究的文献,只是笼统地说明常见的几个漏洞和解决方法,这种方法实施起来其实因为不同的部署以及未能针对具体系统和开发环境所以很难完成任务,而且对于网站如何检测漏洞,对于网站存在的各方面漏洞如何有效合理地针对和解决都没有描述。本课题希望通过针对一个具体的案例ASP.NET网站 (数字创新加油站)进行规范化的安全评估,利用一些知名的工具(HPWebInspect,Netspaker)找出网站存在的主要漏洞,并使用OWASP量化评估方法和ATAM权衡分析法针对风险和架构进行客观的评估,然后根据网站存在的漏洞提出合理的方便的安全解决方案和策略战术的实现。希望以此为基础,让非安全专业人士能规范地正确地了解网站的漏洞检测,安全评估和战术设计。1.4本文术语表 表1-1 术语表 中文 英文 定义 MVC框架MVC(Model View Controller) 一种把软件系统分为模型、视图和控制器三个基本部分的软件架构模式 Spring.Net框架 Spring.Net为中间层提供声明式事务管理,以及一个功能齐全的ASP.NET扩展框架 面向切面编程Aspect Oriented Programming(AOP)面向行为编程,对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率 开放式Web应用程序安全项目 OWASP(Open Web Application Security Project)提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息的组织 构架权衡分析方法 ATAM(Architecture Tradeoff Analysis Method)一种评价软件构架的综合全面的方法 依赖注入(控制反转)IoC(Inversion of Control)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心 SQL注入 SQL(Structured Query Language)Injection通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令 跨站请求伪造 CSRF(Cross-site request forgery)CSRF是一种依赖web浏览器的、被混淆过的代理人攻击(deputy attack)。 跨站脚本攻击Cross Site Script(CSS或XSS)恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。 ASP.NET程序 ASP.NET(ASP:Active Server Pages ).NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。1.5本论文结构 本文第一章,绪论。简单介绍了本课题的研究背景和意义还有国内外现状,并阐述了研究方法。 本文第二章,相关知识简介。介绍了本课题相关的技术基础和工具的介绍。 本文第三章,OWASP评估。简单介绍网站业务并利用检测工具找出网站漏洞,使用OWASP风险评估方法对漏洞进行评估分析 本文第四章,ATAM评估。使用ATAM方法对网站的架构进行分析。 本文第五章,安全战术设计。通过之前的分析评估报告设计出安全策略战术,保证系统安全。 本文第六章,战术模拟测试。对设计的战术是否可靠进行相关方面的测试,之后对知名同类网站进行检测对比。 第二章 相关技术知识简介2.1技术方法简介2.1.1 OWASP TOP 10 评估方法简介 开放式网络应用程序安全项目( Open Web Application Security Project)即OWASP,这是一个提供有关计算机和互联网应用程序的公正的信息组织,其目的是帮助个人或组织来发现和使用可以信赖的安全服务和软件,这是一个非盈利性的组织,不属于任何企业和财团,因此,有OWASP提供及开发的文件与资源不像其他带依附财团性质组织那样受商业因素影响。这个组织在全球拥有上万名会员长期致力于网站及网页服务的安全性并得到美国联盟邦贸易委员会(FTC)的强烈支持被美国国防部,PCI(国际信用卡安全技术)等国际标准的承认。 而OWASP TOP 10 是由OWASP根据当前互联网环境各行各业,个人及组织的WEB应用的进行长期调研所总结发布的WEB应用脆弱性中最关键最常见也是风险最大的十个,即指“The TOP 10 most critical web application security risks” (Web 应用的十大关键风险)包括注入,跨站脚本,错误认证会话管理等。这个报告是基于OWASP所调查的上百个公司数千个应用中发现的超过约50万个漏洞总结得出的。所以从从OWASP TOP 10开始审查代码,发现漏洞,可以切实提高开发人员的整体安全意识。 而OWASP风险评估方法是根据需要评估的应用漏洞情况,OWASP风险评估模型(风险=可能性*风险发生带来后果和影响)等因素对应用的安全性进行客观评估的方法。2.1.2 ATAM方法简介 Architecture Tradeoff Analysis Method(构架权衡分析方法),这是评价应用的软件架构的一种综合性方法,这种方法不仅仅解释出架构满足特定质量目标的情况,而且ATAM架构评估方法共有四大部分,9个步骤和角色划分,可以使我们更好的权衡应用所期望满足的多种质量目标而不只是需求文档。2.1.3 ASP.NET技术 ASP.NET 是一种将嵌入网页中的脚本交由服务器执行的服务器端脚本技术,它可以通过HTTP请求页面时再从服务器端动态地创建它们,即Active Server Pages(动态服务器网页),是运行于IIS(Internet Information Server因特网信息服务器,是由微软开发的当下最流行的网络服务器之一)之上的程序。ASP.NET是.NET 框架的一部分,拥有早期绑定、实时编译等特性,使开发人员在编写代码之前就可以保证网页的性能得到提高。ASP.NET技术是实现了页面和逻辑的分离,简易,可管理,安全,成为了最受欢迎的动态网页技术之一。 ASP.NET可支持的语言到达接近十余种,通常ASP.NET首选语言是的C#和VB.NET,因为C#是它的独立语言,所以本系统使用C#做为开发语言。2.1.4 ASP.NET MVC基本概念 MVC是指模型(Model),视图(View)和控制器(Controller) 是经典设计模式中的一种。MVC模式的目的在于实现网络系统的分工,模型层用于处理系统中的数据逻辑,视图层用于系统与用户的交互,例如数据显示,即指界面,在ASP.NET中可由ASPX来实现。 控制器层是模型层与视图层之间沟通和交流的重要桥梁, 负责从视图层读取数据,管理用户交互输入,然后将数据传递给模型层处理。 在ASP.NET 程序开发过程中,开发人员很难将这些基于ASP.NET的应用程序进行良好的分层,为了解决这种问题,微软提供了基于MVC模式编写的用来替代ASP.NET窗体模式的可测试的轻型框架ASP.NET MVC,如图2-1所示 图2-1 ASP.NET MVC 框架处理业务过程2.1.5 ASP.NET MVC的优点1) 通过把项目分层(即模型,视图和控制器),达到松散耦合的效果,这样降低了醒目管理和维护难度。2) 它不使用视图状态或服务器表单等控件,方便其控制用户行为3) 应用程序只能通过控制器来控制请求,即通过单一的控制器处理程序请求,有效地提高了访问控制,增加了系统的安全性。4) 方便测试5) 特别适用于需要高度控制用户行为的Web开发人员或团队,比如开放式项目管理网站等。 所以适用于针对于本系统的安全架构战术的文件组织结构可以如下进行重新设置: Content: 静态文件,如html和css Controllers:控制器组件 Entities: 实体类 Helper:辅助类 Models: 模型层组件 Scripts:js脚本 Views:视图(页面) 2.1.6 Spring.NET简介 Spring是常用的一个基于java的轻量级容器框架,主要特性是依赖注入(Ioc)和面向切面(AOP),而Spring.NET则借鉴了java中的Spring框架,将其核心概念和价值应用到了.NET当中,它目的在于专注于应用开发中各层的解决方案而不是单一的某一层,与那些已有的框架进行无缝整合而不是直接取代,从而使各种应用都可以从Spring的特性(简单,松耦合,可测试)中受益。Spring.NET的重要应用:1) 依赖注入(也称作为控制反转Ioc):使系统松散耦合,提高系统的可修改性和可维护性。2) 面向切面(AOP):即面向行为编程,用于实现事务管理,监控用户行为(特别是审计)。3) Adotemplate:易于操作数据库2.2工具简介2.2.1 HP WebInspect 10.0 HP WebInspect是一款易用、精确的Web应用安全评估软件。很多安全专业人员都喜欢使用WebInspect检测应用缺陷实施安全检测计划,因为不论是对于新手还是安全专家而言,这款应用都可以方便的帮助其找到其中存在的高风险漏洞。 因此HP WebInspect 非常适用于Web服务和应用安全的评估技术如OWASP TOP 10风险评估,并具有强大的自动化测试与检测机制,可以使应用程序的安全测试融入整个软件生命周期,对于安全检测工作而言,该工具借用惠普公司先进的安全测试工具包可以很便捷地进行渗透测试,通过交互式扫描简单地检测一个复杂的用户界面。2.2.2 NetSparker Professional Edition NetSparker一款综合型的时刻更新web应用安全漏洞扫描工具,这款软件分为专业版和社区版,能够高效高准确率的检测SQL注入漏洞,跨站脚本漏洞等,准且率高耗时短,非常方便。2.2.4 Microsoft Visual Studio 2010 Visual Studio 是微软公司推出的开发环境,支持Windows平台下各种应用的开发。通常用于代码的编写和调试,使开发人员或团队能够快速创建高质量且内容丰富的应用程序。该软件的2010版本于2010年4月上市,增加了C#4.0,多显示器支持,IDE增强,.NET Framework 4,新增的平台语言F#等特性,进一步增加了开发人员的工作效率,降低实际开发难度。2.3本章小结 本章分别先后简单介绍了OWASP风险评估方法,和ATAM架构权衡分析法,让我们对于正确评估WEB应用的安全性有一个基础的认识,还介绍了OWASP漏洞检测常用的两款工具,接下来介绍了案例网站(数字创新加油站)涉及到的主要技术,以及在安全战术设计所需要的MVC和Spring.NET,并对开发工具进行了说明。 第三章 OWASP评估3.1网站简介 数字创新加油站是一个集信息发布和项目管理于一体的网站,由林连南博士创办于2011年7月,旨在帮助那些热爱数字创新设计领域的大学生完成学业,参与喜欢的实践项目,甚至实现自己数字创新领域的梦想 。如图3-1。 图3-1 数字创新加油站网站 该站的用户可分为三类,游客,会员和管理员。 游客可以通过点击相应链接控件了解油站当前发布的信息,如油站项目,油站新闻,油站招新等。 而会员可以通过登录后,了解自己的项目,发布或下载公共资源,修改密码等。如图3-2。 图3-2 会员登陆 管理员则可以对加油站的动态和成员进行管理包括油站的新闻,计划等等还有公共资源,用户角色管理。 如图3-3. 图3-3 管理员登陆 该网站实际文件组织结构如下,图3-4。 图3-4文件组织Account 用于存放用户账号相关界面如注册,登陆,退出,密码修改,验证码等。admin 用于存放管理员相关的界面,包括油站的各方面动态的管理(增删改查),还有油站对用户的管理,增加或删除或设置管理员权限等等,还有油站公共资源的上传与下载。App_code 辅助类,实体类App_Data 油站的数据库ckeditor 关于界面的一些js和图片资源的存放(由 ckeditor绘制的界面)Control 用户控件css css文件File 配置文件image/images 图片文件Js javascript文件Master 母版News 新闻界面oilStation 首页相关界面Scripts javascript文件Styles css文件User 用户界面及其他一些界面,配置文件和位图。3.2 OWASP 风险评估3.2.1识别风险 使用Netsparker 和 HPWebInspect 对数字创新加油站进行安全漏洞检测,并整合两者结果。 Netsparker 专业版比较轻便快捷,做好相应的设置就可以开始工作。如图3-5,3-6 图3-5 Netsparker检测结果 图3-6Netsparker OWASP TOP 10检测结果 HPWebInspect 因为自动化测试功能更庞大,扫描范围更广,不仅仅需要配置环境,还需要录制登陆脚本,运行时间较长,通常为三四个小时。如图3-7. 图3-7 HPWebInspect 运行界面 (登陆用户版)不仅仅扫描除了文件组织结构和漏洞,并根据设置的level对自动化检测,扫描范围和结果的分析进行了调整。 因为脚本录制的不同,所以初始计划测3轮,包括未登录,登陆用户,及登陆管理员。 第一轮测试结果约为一个小时,实际运行24分钟,包括了工具环境的配置与测试方案的选择。如图3-8。 图3-8 未登录版运行界面 第二轮测试结果,运行为四个小时。如图3-7测试结果的存放占用空间为100MB。 第三轮测试结果,因为测试过程中出现了各种错误,总共耗时十天。平均每次运行超过20小时,每次测试存放的结果超过500MB,如图3-9共进行了6次,都是失败的。虽然有人为因素,如测试用过的电脑被他人关闭了,C盘存储区满了(因为该电脑属实验室公用电脑,之前的同学在使用的时候将大量软件和数据堆积在C盘,之后只好对C盘进行了清理)错误依然发生,直到第六次测试时发现原来因为网站管理员权限完全没有限制,对于网站后台的数据操作的自动化测试几乎没有任何限制,导致测试一直在进行 直到服务器或数据库奔溃或者出错,然而,这样发生的错误将会被HPWebInspect扫描并记录,甚至再一步测试,导致一种无休无止的循环。所以管理员脚本的测试本来只是用于完善测试结果的一部分,因为对象时管理员,所以其实没有这个必要,而且这种测试不仅仅无法得出结果,还对网站造成了危害,使得网站界面及数据崩溃,无法正常使用。最后还得对网站进行修复并重新上传服务器。 图3-9 管理员版 测试运行界面 综上所述,得到了可用的扫描结果为三份,如表3-1,表3-2,表3-3所示. 表3-1 Netsparker扫描结果Netsparker检测到的漏洞6个,A1注入 2个,A5安全错误3个,A6暴露敏感数据1个 注意:HPWebInspect 并未根据检测到的漏洞进行OWASP种类划分,而是直接对其进行评级区分高中低风险,这显示了其强大的功能性,不过这种划分是该软件对于该网站的默认认知进行评测的,所以评级结果不是精确或准确的,需要正确了解该网站业务和意义的人员进行评级。 表3-2 HPWebInspect未登陆版扫描结果HPWebInspect 未登录版检测到的漏洞针对OWASP每种缺陷问题分别进行了1到2600多次攻击,检测出高危漏洞3,中等漏洞4,低级漏洞14攻击内容截图(一小部分) 表3-3 HPWebInspect用户登陆版扫描结果HPWebInspect 用户登录版检测到的漏洞针对OWASP每种缺陷问题分别进行了1到1989多次攻击,检测出高危漏洞10,中等漏洞95,低级漏洞290,critical14.攻击内容截图(一小部分) OWASPTOP102013内容如图-10,和2010年相比(进行说明的原因是因为HPWebInspect10.0使用的标准是2010版而Netsparker专业版使用的标准是2013)1) 2010年的不安全加密存储缺陷和传输层保护不足缺陷,在2013年合并为了一个敏感数据暴露缺陷2) 2010年的不限制URL访问缺陷,在2013年成为了功能级别访问控制缺失3) 2010年中安全配置错误缺陷的一部分组成,在2013年单独成为了使用已知易受攻击组件4) “失效的身份认证和会话管理”缺陷在OWASP TOP10的排名,因数据交互的流行程度而得到提高。“跨站请求伪造”缺陷从2010的第五名下降至2013的第8名。OWASP组织认为这是因为CSRF(跨站请求伪造)在OWASPTOP 10排名中已经存在了6年,开发人员和组织已经足够重视该风险,从而使该漏洞的出现数量在应用程序得到控制。 由此可见这些变化,也直接反映出了Web应用安全的变化趋势。 图3-10 OWASP TOP 103.2.2 A1 注入 Injection 代码中的数据逻辑在未有安全保证下直接依赖于外部输入,注入缺陷包括最常见的SQL注入,JSON注入,OS命令注入,URL注入等。 该网站出现的注入问题则是SQL注入(程序把用户输入的一部分字符串直接用在了sql语句的拼接上,导致了用户可以控制sql语句,比如加入非法行为(delete等)、绕过用户或密码验证等)例如下面这句sql调用String query = SELECT * FROM Details WHERE Did= + request.getParameter(id) +; 如果攻击者在浏览器上修改id参数,url?id= or 1=1 ,那么查询的意义就会被改变,将返回数据库所有Details数据,而不仅仅是指定id的数据。(因为1=1肯定成立,所以可以通过任何验证) 常用解决方式:sql查询进行参数化,因为数据库服务器不会将参数的内容作为sql语句的一部分来处理。SQL注入问题1 ,表3-4. 在登录界面,输入从未使用的登录名Smith,输入密码ORns=ns 表3-4 SQL注入问题1 注入参数返回内容实际可视化结果该用户已被锁定,即从未注册和使用的账户在参数设定后成为了拥有账户的状态,SQL注入问题存在解决方案思路Sql查询参数化 SQL注入问题2 ,表3-5 在登录界面,输入登录名ORns=ns 表3-5 SQL注入问题2 注入参数返回内容实际可视化结果该用户已被锁定,非正确格式通过认证而不是显示该用户未注册,SQL注入问题存在解决方案思路Sql查询参数化 注入问题3,表3-6 登陆界面数据库服务器错误信息 (六个) 表3-6 注入问题3 登陆界面_EvenTVali,_ViewState,ReturnUrl存在漏洞 攻击者可利用该漏洞实行SQL注入 注入问题4,表3-7. 用户界面数据库服务器错误信息 (2个) 表3-7 注入问题4 登陆界面Mutipart存在漏洞 攻击者可利用该漏洞实行SQL注入 注入问题5,表3-8 招新界面数据库服务器错误信息 (1个) 表3-8 注入问题5 招新界面存在漏洞 攻击者可利用该漏洞实行SQL注入3.2.3 A2 失效的身份认证和会话管理 Broken Authentication and Session Management 引发原因 会话相关的数据没有被完整替换或清除导致的安全问题 比如 公用电脑中前一个用户退出时没有注销登录,后一用户直接使用该用户的账户 密码数据库被攻击后因为存储的密码没有加密而导致所有用户的密码被窃取 支持URL重写的网站,把会话ID写在URL中:url/s;Asessionid=SecretID?dest=BJ一个在该网站交易的用户的想让他的朋友知道他的交易信息并将链接发送出去,这样会导致会话ID泄漏从而使自己的帐号信息和信用卡会被其他人使用 常用解决方式: 登陆后,把当前的session(包括cache cookie)处理掉再重新开启一个session并保存新值,注销的时候,将所有session相关数据都清理掉。3.2.4 A3 跨站式脚本 Cross-Site Scripting (css) 引发原因 和A1有些像,语句被注入执行只是XSS关注在脚本上。 XSS是最常见的Web漏洞,其中最常见的有1) 反射式XSS 由于服务器端直接调用了客户端用户输入的数据2) 存储式XSS 将未经处理的代码直接存入了数据库中3) 基于DOM的XSS 基于AJAX的程序中,JS代码没有过滤/转换用户输入的文本,造成了对DOM元素的结构性或行为性的影响 例如 这样的用户输入中value=+request.getParameter(id).将id输入为 document.location=http:/url/cgi-bin/cookie.cgi?foo=+document.cookie这样就把用户的cookie发送到了攻击者,并可以由攻击者劫持会话,这样的攻击方式也可以将跳过CSRF(跨站脚本伪造)防御。 常用解决方式:对用户输入等 过滤掉特殊字符 跨站式脚本错误问题1 存储式跨站点脚本(GET 方法) 表3-9 表3-9 跨站式脚本错误问题 1 网站新闻查看界面month参数存在漏洞 攻击者如果利用该漏洞攻击成功,就可以 将恶意脚本注入到目标程序的客户端代码。与反射式或基于DOM的XSS相比,攻击者可通过这种XSS持久使用应用程序服务器端存储的恶意脚本,从而对更多的用户造成危害。模拟测试的可视化截图参考解决方案思路 严格验证 跨站式脚本错误问题2 存储式跨站点脚本(Post方法) 表3-10 表3-10 跨站式脚本错误问题 2 网站新闻查看界面month参数存在漏洞 危害参考跨站式脚本错误问题1模拟测试的可视化截图参考解决方案思路 严格验证 跨站式脚本错误问题3反射型跨站点脚本问题(三个)表3-11 表3-11 跨站式脚本错误问题 3 网站新闻查看界面month参数存在漏洞 攻击者可将恶意脚本嵌入到已生成页面中模拟测试的可视化截图参考解决方案思路 严格验证3.2.5 A4 不安全的对象直接引用 Insecure Direct Object References 引发原因 当WEB页面被生成时,常常引用实际对象名称或键值。这导致一个不安全直接对象引用漏洞,攻击者能轻松通过修改参数值来检测该漏洞,并通过代码分析了解被测试的参数用户是否被授权从而发动攻击。 例如 url./login.aspx?uid=001 这样的url会让人很轻易的想到其他用户id格式,比如002 003.等这样就可能出现信息泄露的问题。攻击者既可以轻易地对授权用户进行测试,还可能利用特殊的指令如000访问到所有用户或者其他的权限。 如果url显示 uid=ASDFGHJKL 这种编码后的,那么就不容易出现这样的问题了。 常用解决方式:url参数的编码和解码3.2.6 A5 安全配置错误 Security Misconfiguration 引发原因 应用程序的安全配置存在不足,或其他堆栈级别相关的安全配置存在问题。 例如 目录表未被禁用可以被攻击者利用甚至下载已编译的代码进行反转从而找到可以利用的漏洞,或服务器配置运行堆栈跟踪信息被返回,攻击者可以获得额外的信息 常用解决方式:配置文件的加密,error节点(404) 日记文件的安全设置 安全配置错误问题1 AutoComplete控件被激活 表3-12 表3-12 安全配置错误问题1 AutoComplete控件是用户在文本框输入字符的时候能将存放数据的文本或是数据库将所有以这些字符开头的数据选项提供给账户以供选择问题请求模拟测试的可视化截图参考解决方案思路将autocomplete控件关闭 autocomplete=”off” 安全配置错误问题2 OptionsMethod被激活 表3-13 表3-13 安全配置错误问题2Http除了Get和post两种请求方法外还有别的方法,比如通常用于检测服务器性能的方法Options。而这个方法经常被黑客们利用。解决方案思路禁止options方法 安全配置错误问题3 密码领域的AutoComplete控件被激活 表3-14 表3-14 安全配置错误问题3 同安全配置错误问题1解决方案思路将autocomplete控件关闭 autocomplete=”off”3.2.7 A6 敏感数据暴露 Sensitive Data Exposure 引发原因 敏感信息比如密码没有加密,或者错误的SSL加密或缓存,包括传输或者存储 例如 密码数据库存储密码使用未加密的哈希表,而攻击者可能利用其它缺陷获得密码文件从而很快的使用密码进行攻击。 传输过程中敏感信息没有安全的加密如url/login.aspx?num=123456,而攻击者窃听的时候可以轻松获取该信息,有的站点不会对通过验证的用户在全部页面都使用SSL。攻击者可以通过监听网络中的传输,窃取用户的Cookie然后重放会话访问私人信息。这样不安全的加密导致敏感信息的暴露危害性非常大,而且敏感信息因为没有被加密可以被攻击者轻易交由任何人(不需要技术知识要求)使用。 常用解决方式:使用加密传输(Https) 加密存储 安全的加密方式 敏感数据暴露问题1 使用HTTP传递密码 表3-15 表3-15 敏感数据暴露问题1 问题请求可视化截图解决方案思路使用https传递密码 敏感数据暴露问题2 使用未加密的窗体 表3-16 表3-16 敏感数据暴露问题2 问题请求解决方案思路使用加密窗体3.2.8 A7 功能级别访问控制缺失 Missing Function Level Access Control 引发原因 权限认证存在问题包括UI控件(例如非管理员用户不能使用某些页面上的控件),页面访问,业务行为等等 特别是角色控制。 例如 url/index.aspx(普通页面) url/admin.aspx(管理员页面) 如果未授权的用户也可以访问第二个页面,那这个缺陷可以引发很多攻击 常用解决方式:对于UI控件,没有权限就隐藏掉,完善的权限认证和检测 功能级别访问控制缺失 问题1 目录列表漏洞(90个)表3-17 表3-17 功能级别访问控制缺失 问题1目录列表是位于该目录中所有资源的完整索引,隐藏文件或页面对攻击者可见或可触及,即文件结构由路径直接反应出来。解决方案思路权限限制设定 能级别访问控制缺失 问题2未禁用浏览器Mine探查(5个)表3-18 表3-18 功能级别访问控制缺失 问题2 使用VS开发的网站 项目如Sln,位图等解决方案思路权限限制设定3.2.9 A8 跨站请求伪造 Cross-Site Request Forgery(CSRF) 引发原因 通过伪装来自受信任用户的请求来访问受信任的网站并执行非法请求 例如 用户在某信任的网站(银行,或第三方支付等)保持的已登陆状态,而攻击者通过在其他页面(视频网站,广告)加入了图像请求或是控制语句的iframe窗体。当用户点击时,该请求会发送到该信任网站并利用已验证的session执行比如转账。 常用解决方式:使用瞬时的授权方法 跨站请求伪造问题 登陆界面跨站点请求伪造 表3-19 表3-19 跨站请求伪造问题 由于浏览器可以同时运行多个站点发送的代码,因此如果某个站点向用户已进行身份验证的另一个安全站点(银行等)发送请求(用户从未见到该请求),而该请求将被误作为用户已授权的请求接收,则可能会发生 XSRF 攻击。解决方案思路 反跨站点请求伪造令牌来防止CSRF攻击。3.2.10 A9 使用已知易受攻击组件 Using Known Vulnerable Components 引发原因 使用了自己的或者第三方提供的组件引发的不可预知的问题 例如 组件中如果有缺陷后果是非常严重的的,2011年Apache-CXF Authentication Bypass 该组件未能通过提供身份令牌验证用户,攻击者可以调用所有Web服务的完整权限,而这个组件当时被下载传播过超过100万次。 常用解决方式:对于自己的组件要注意质量,对于第三方组件,使用知名的提供商的稳定版本3.2.11 A10 未验证的重定向和转发 Unvalidated Redirects and Forwards 引发原因 诱使被攻击者点击未验证的重定向 例如 url/returnjsp?url=welcom.jsp 这种重定向会显示在浏览器地址栏中,如果攻击者利用这点将重定向网站变成假冒的网页,如密码输入页面,用户再次输入密码导致密码被攻击者窃取。 常用解决方式:对于returnUrl这种参数值进行判断,只有可靠的url才能redirect(白名单),重定向时,尽可能使用相对路径 3.2.12 HP报告的建议对于检测到的漏洞 HP对于开发团队,QA部门,安全运营部门提供了一些项目安全方面建议,如图3-10可参考附件安全检测HPInspect登陆测试.pdf 522页至546页。 图3-10 HP对于检测到的漏洞 对项目相关团队的建议 3.3 评估风险 根据OWASP风险评估模型对每个存在的漏洞进行风险评估 整体风险的严重程度=漏洞被利用的可能性与影响的加成 首先对 两个因素进行数字评估量化,在对照0-3低,3-6中等,6-9高的转化与下表进行匹配得出严重程度结果,如表3-20 表3-20 风险严重程度划分 整体风险的严重程度漏洞影响 高 中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论