基于 ASP.NET 的 Web 安全性评估、设计与实现终稿论文_第1页
基于 ASP.NET 的 Web 安全性评估、设计与实现终稿论文_第2页
基于 ASP.NET 的 Web 安全性评估、设计与实现终稿论文_第3页
基于 ASP.NET 的 Web 安全性评估、设计与实现终稿论文_第4页
基于 ASP.NET 的 Web 安全性评估、设计与实现终稿论文_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

I摘要在基于 ASP.NET 开发的网站中,有相当一部分的网站开发者没有缜密的安全计划,导致网站出现漏洞给网站和用户带来损害,而目前国内关于 WEB 安全的研究文献,只是笼统地说明常见的几个漏洞和解决方法,这种方法实施起来其实因为不同的部署以及未能针对具体系统和开发环境设计所以很难完成任务,并且对于网站如何规范化检测漏洞,网站存在的各方面漏洞如何有效合理地针对和解决,一些知名的检测工具和方法的使用都没有详细描述。本课题主要研究 ASP.NET 网站的安全性评估,设计与实现,通过使用经典安全测试工具 NetSparker,WebInspect 等对案例网站进行 OWASP TOP 10 漏洞检测并结合OWASP 风险模型信息量化评估方法进行风险评估,与网站决策人确认评估结果提出网站架构无法满足网站安全需求的问题,然后熟悉网站代码和业务逻辑,利用 ATAM 架构权衡分析法对网站架构进行分析确认结论,紧接着凭借 ASP.NET 安全实践方法和安全架构战术如认证,审计追踪等对网站进行重构与漏洞修复工作,设计严谨可靠的安全战术策略,最后再利用 WebInspect 对该战术进行检测并与知名同类项目管理权威网站 Tower.im 的检测结果进行对比验证战术的可靠性。通过该课题的研究成果,可以熟悉地掌握对于网站的规统化安全检测及评估方法,设计缜密的安全战术,构建安全可靠的 WEB 网站,并希望以此为基础,让非安全专业人士能正确的了解网站的漏洞检测,安全评估和战术设计。关键词 : ASP.NET;OWASP TOP 10 漏洞检测 ;ATAM 架构权衡分析法;安全性战术设计IIAbstractIn the ASP.NET based web site, a considerable number of web developers have no rigorous security plans, resulting in Web vulnerabilities that cause damage to websites and users, and the current domestic research literature about WEB security is only a general description of several common vulnerabilities and solutions. This method is implemented in fact Because of the different deployment and failure to design specific systems and development environment, it is difficult to complete the task, and how to standardize detection vulnerabilities on the site, how the vulnerabilities of various aspects of the site can be effectively and properly targeted and solved, the use of some well-known testing tools and methods are not described in detail.This topic mainly studies the security assessment, design and implementation of ASP.NET website. By using the classic security test tool NetSparker, WebInspect and so on, it carries out the OWASP TOP 10 flaw detection on the case website and combines the OWASP risk model information quantitative evaluation method to carry on the risk assessment, and puts forward the website with the website decision makers confirmation evaluation result. The architecture can not meet the security requirements of the web site, and then familiar with the site code and business logic, using the ATAM architecture to analyze and confirm the analysis of the web site architecture, and then rely on the ASP.NET security practice methods and security architecture tactics such as authentication, audit tracking, etc. According to the rigorous and reliable tactics of security tactics, the tactics are tested by WebInspect and the reliability of the tactics is compared with the results of the well-known Tower.im.Through the research results of this topic, we can familiarise yourself with the methods of monitoring and evaluate the security of the web site, design the careful security tactics and build a safe and reliable WEB website, and hope that the non security professionals can correctly understand the flaw detection, safety assessment and tactical design of the website.Keywords: ASP.NET; OWASP TOP 10 vulnerability detection; ATAM architecture tradeoff analysis; security tactical design(other pages: examples of foreign abstracts; English abstracts and keywords should be Chinese abstract and keywords translation)III目 录摘要 IIAbstract .III目 录 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.0 72.2.2 NetSparker Professional Edition72.2.4 Microsoft Visual Studio 2010 82.3 本章小结 8第三章 OWASP 评估 .93.1 网站简介 93.2 OWASP 风险评估 113.2.1 识别风险 113.2.2 A1 注入 Injection.193.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 Misconfiguration.243.2.7 A6 敏感数据暴露 Sensitive Data Exposure .253.2.8 A7 功能级别访问控制缺失 Missing Function Level Access Control .263.2.9 A8 跨站请求伪造 Cross-Site Request Forgery(CSRF) .273.2.10 A9 使用已知易受攻击组件 Using Known Vulnerable Components 273.2.11 A10 未验证的重定向和转发 Unvalidated Redirects and Forwards 273.2.12 HP 报告的建议 273.3 评估风险 .283.3.1 A1:SQL 注入 .28IV3.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致谢 .861第一章 绪论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 等。这类工具在不断地被研究和进步成为网站开发人员评估网2站安全设计网站安全战术的重要组成。在整个互联网世界,WEB 安全的研究凭借以往的研究成果和设计的工具发展越来越便捷,而 WEB 安全研究的发展更带动了安全工具和战术的优化和普及(HPWebInspect 新版本已经到了 10.0) 。 工具的发展只是窥探本体发展的一小部分“视图” ,的不仅仅是工具,对于安全漏洞的本质研究,针对不断涌现的新的安全问题,国内外的学者和组织不断地钻研与交流学习(如互联网安全大会,OWASP 会议等)不断提出了新的安全战术和解决方案,从而使问题得到解决维护互联网的稳定和安全。而国内,乌云漏洞平台是一个 2010 年建立的位于厂商和安全研究组之间的安全问题反馈平台,在对安全问题进行研究与处理的同时也给广大的安全爱好者提供了学习与交流的环境,吸引了众多安全团队在该平台发布信息及交流。乌云平台发布的主要漏洞包括携同网源代码包可下载,游久网口令漏洞,百度主站反射型 XSS,太平洋网络文件下载漏洞,搜狐邮箱存储型 XSS,腾讯微云存储等。虽然乌云平台有大量专业的安全研究人员,但是平台才发展不到五年,对于国内WEB 安全问题和机制的重要性没有得到大部分人正确认识的现状,很多优秀的安全检测工具仅仅只被少部分专业安全人士熟悉,这些安全工具在国内少有人研究,甚至连使用方法都很难在互联网上找到。所以这更加形成了一个微妙的恶性循环。所以 WEB安全的重要性和检测工具的普及还需要我们进一步努力。1.3 研究内容和意义目前国内有不少关于 WEB 安全的研究的文献,只是笼统地说明常见的几个漏洞和解决方法,这种方法实施起来其实因为不同的部署以及未能针对具体系统和开发环境所以很难完成任务,而且对于网站如何检测漏洞,对于网站存在的各方面漏洞如何有效合理地针对和解决都没有描述。本课题希望通过针对一个具体的案例 ASP.NET 网站 (数字创新加油站)进行规范化的安全评估,利用一些知名的工具(HPWebInspect,Netspaker)找出网站存在的主要漏洞,并使用 OWASP 量化评估方法和 ATAM 权衡分析法针对风险和架构进行客观的评估,然后根据网站存在的漏洞提出合理的方便的安全解决方案和策略战术的实现。希望以此为基础,让非安全专业人士能规范地正确地了解网站的漏洞检测,安全评估和战术设计。1.4 本文术语表3表 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 服务器上动态创建它们。41.5 本论文结构 本文第一章,绪论。简单介绍了本课题的研究背景和意义还有国内外现状,并阐述了研究方法。本文第二章,相关知识简介。介绍了本课题相关的技术基础和工具的介绍。本文第三章,OWASP 评估。简单介绍网站业务并利用检测工具找出网站漏洞,使用OWASP 风险评估方法对漏洞进行评估分析本文第四章,ATAM 评估。使用 ATAM 方法对网站的架构进行分析。本文第五章,安全战术设计。通过之前的分析评估报告设计出安全策略战术,保证系统安全。本文第六章,战术模拟测试。对设计的战术是否可靠进行相关方面的测试,之后对知名同类网站进行检测对比。5第二章 相关技术知识简介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 因特网信息服务器,是由微软开6发的当下最流行的网络服务器之一)之上的程序。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 开发人员或团队,比如开放式项目管理网站等。7所以适用于针对于本系统的安全架构战术的文件组织结构可以如下进行重新设置:Content: 静态文件,如 html 和 cssControllers:控制器组件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.0HP WebInspect 是一款易用、精确的 Web 应用安全评估软件。很多安全专业人员都喜欢使用 WebInspect 检测应用缺陷实施安全检测计划,因为不论是对于新手还是安全专家而言,这款应用都可以方便的帮助其找到其中存在的高风险漏洞。因此 HP WebInspect 非常适用于 Web 服务和应用安全的评估技术如 OWASP TOP 10风险评估,并具有强大的自动化测试与检测机制,可以使应用程序的安全测试融入整个软件生命周期,对于安全检测工作而言,该工具借用惠普公司先进的安全测试工具包可以很便捷地进行渗透测试,通过交互式扫描简单地检测一个复杂的用户界面。82.2.2 NetSparker Professional EditionNetSparker 一款综合型的时刻更新 web 应用安全漏洞扫描工具,这款软件分为专业版和社区版,能够高效高准确率的检测 SQL 注入漏洞,跨站脚本漏洞等,准且率高耗时短,非常方便。2.2.4 Microsoft Visual Studio 2010Visual Studio 是微软公司推出的开发环境,支持 Windows 平台下各种应用的开发。通常用于代码的编写和调试,使开发人员或团队能够快速创建高质量且内容丰富的应用程序。该软件的 2010 版本于 2010 年 4 月上市,增加了 C#4.0,多显示器支持,IDE增强,.NET Framework 4,新增的平台语言 F#等特性,进一步增加了开发人员的工作效率,降低实际开发难度。2.3 本章小结本章分别先后简单介绍了 OWASP 风险评估方法,和 ATAM 架构权衡分析法,让我们对于正确评估 WEB 应用的安全性有一个基础的认识,还介绍了 OWASP 漏洞检测常用的两款工具,接下来介绍了案例网站(数字创新加油站)涉及到的主要技术,以及在安全战术设计所需要的 MVC 和 Spring.NET,并对开发工具进行了说明。 9第三章 OWASP 评估3.1 网站简介数字创新加油站是一个集信息发布和项目管理于一体的网站,由林连南博士创办于2011 年 7 月,旨在帮助那些热爱数字创新设计领域的大学生完成学业,参与喜欢的实践项目,甚至实现自己数字创新领域的梦想 。如图 3-1。图 3-1 数字创新加油站网站该站的用户可分为三类,游客,会员和管理员。游客可以通过点击相应链接控件了解油站当前发布的信息,如油站项目,油站新闻,油站招新等。而会员可以通过登录后,了解自己的项目,发布或下载公共资源,修改密码等。如图 3-2。10图 3-2 会员登陆管理员则可以对加油站的动态和成员进行管理包括油站的新闻,计划等等还有公共资源,用户角色管理。 如图 3-3.图 3-3 管理员登陆该网站实际文件组织结构如下,图 3-4。图 3-4 文件组织Account 用于存放用户账号相关界面如注册,登陆,退出,密码修改,验证码等。admin 用于存放管理员相关的界面,包括油站的各方面动态的管理(增删改查) ,还有油站对用户的管理,增加或删除或设置管理员权限等等,还有油站公共资源的上传与11下载。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-612图 3-5 Netsparker 检测结果图 3-6Netsparker OWASP TOP 10 检测结果HPWebInspect 因为自动化测试功能更庞大,扫描范围更广,不仅仅需要配置环境,还需要录制登陆脚本,运行时间较长,通常为三四个小时。如图 3-7.13图 3-7 HPWebInspect 运行界面 (登陆用户版)不仅仅扫描除了文件组织结构和漏洞,并根据设置的 level 对自动化检测,扫描范围和结果的分析进行了调整。因为脚本录制的不同,所以初始计划测 3 轮,包括未登录,登陆用户,及登陆管理员。第一轮测试结果约为一个小时,实际运行 24 分钟,包括了工具环境的配置与测试方案的选择。如图 3-8。图 3-8 未登录版运行界面第二轮测试结果,运行为四个小时。如图 3-7 测试结果的存放占用空间为 100MB。第三轮测试结果,因为测试过程中出现了各种错误,总共耗时十天。平均每次运行超过 20 小时,每次测试存放的结果超过 500MB,如图 3-9 共进行了 6 次,都是失败的。14虽然有人为因素,如测试用过的电脑被他人关闭了,C 盘存储区满了(因为该电脑属实验室公用电脑,之前的同学在使用的时候将大量软件和数据堆积在 C 盘,之后只好对 C 盘进行了清理)错误依然发生,直到第六次测试时发现原来因为网站管理员权限完全没有限制,对于网站后台的数据操作的自动化测试几乎没有任何限制,导致测试一直在进行 直到服务器或数据库奔溃或者出错,然而,这样发生的错误将会被HPWebInspect 扫描并记录,甚至再一步测试,导致一种无休无止的循环。所以管理员脚本的测试本来只是用于完善测试结果的一部分,因为对象时管理员,所以其实没有这个必要,而且这种测试不仅仅无法得出结果,还对网站造成了危害,使得网站界面及数据崩溃,无法正常使用。最后还得对网站进行修复并重新上传服务器。图 3-9 管理员版 测试运行界面综上所述,得到了可用的扫描结果为三份,如表 3-1,表 3-2,表 3-3 所示. 表 3-1 Netsparker 扫描结果Netsparker15检测到的漏洞 6 个,A1 注入 2 个,A5 安全错误 3 个,A6 暴露敏感数据 1个注意:HPWebInspect 并未根据检测到的漏洞进行 OWASP 种类划分,而是直接对其进行评级区分高中低风险,这显示了其强大的功能性,不过这种划分是该软件对于该网站的默认认知进行评测的,所以评级结果不是精确或准确的,需要正确了解该网站业务和意义的人员进行评级。表 3-2 HPWebInspect 未登陆版扫描结果HPWebInspect 未登录版16检测到的漏洞 针对 OWASP 每种缺陷问题分别进行了 1 到 2600 多次攻击,检测出高危漏洞 3,中等漏洞 4,低级漏洞 1417攻击内容截图(一小部分)表 3-3 HPWebInspect 用户登陆版扫描结果HPWebInspect 用户登录版18检测到的漏洞 针对 OWASP 每种缺陷问题分别进行了 1 到 1989 多次攻击,检测出高危漏洞 10,中等漏洞 95,低级漏洞 290,critical14.19攻击内容截图(一小部分)OWASP TOP 10 2013 内容如图-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 应用安全的变化趋势。20图 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 21注入参数返回内容实际可视化结果该用户已被锁定,即从未注册和使用的账户在参数设定后成为了拥有账户的状态,SQL 注入问题存在解决方案思路 Sql 查询参数化SQL 注入问题 2 ,表 3-522在登录界面,输入登录名ORns=ns表 3-5 SQL 注入问题 2 注入参数返回内容实际可视化结果该用户已被锁定,非正确格式通过认证而不是显示该用户未注册,SQL注入问题存在解决方案思路 Sql 查询参数化23注入问题 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 相关数据都清理掉。243.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这样就把用户的 c

温馨提示

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

评论

0/150

提交评论