《网络空间安全导论》 课件 25-系统安全05-Web安全_第1页
《网络空间安全导论》 课件 25-系统安全05-Web安全_第2页
《网络空间安全导论》 课件 25-系统安全05-Web安全_第3页
《网络空间安全导论》 课件 25-系统安全05-Web安全_第4页
《网络空间安全导论》 课件 25-系统安全05-Web安全_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

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

文档简介

Web技术发展了解Web的发展背景熟悉Web的架构熟悉Web应用的发展历程熟悉新形势下的安全问题教学目标Web起源Web架构Web应用发展历程新的安全问题目录Web起源Web(WorldWideWeb),即全球广域网,也称WWW或万维网。Web是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统;是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。Web起源

WorldWideWeb最初设想:借助多文档之间相互关联形成超文本(HyperText),连成可互相参阅的万维网(WWW)。1989年,CERN(欧洲核子研究组织)由TimBerners-Lee领导的小组,提交了一个针对Internet的新协议和一个使用该协议的文档系统。该小组将这个新系统命名为WordWideWeb,它的目的在于使全球的科学家能够利用Internet交流自己的工作文档。这个新系统被设计为允许Internet上任意一个用户都可以从许多文档服务计算机的数据库中搜索和获取文档。Timberners-leeWeb起源

WorldWideWeb1989年3月12日,实现了超文本传输协议(HTTP)客户端和服务器之间通过互联网的第一次成功通信。1990年11月,这个新系统的基本框架已经在CERN中的一台计算机中开发出来并实现了,成功研发了世界第一台Web服务器和Web浏览器。1991年该系统移植到了其他计算机平台,并正式发布。HTML、HTTP、URI、浏览器、Web服务器,就此发明问世。Web起源

Web核心组成URI(统一资源标识符):解决了文档的命名和寻址识别问题HTTP(超文本传输协议):解决了浏览器与服务器应用层之间的交流问题HTML(超文本标记语言):定义了超文本文档的表示浏览器用于发起请求,并且解析文档服务器用于保存文档Web架构操作系统:windows、linux存储:数据库存储、内存存储、文件存储Web容器:Tomcat、WeblogicWeb服务器:Apache、IIS、NginxWeb服务端语言:PHP、ASP、JavaWeb开发框架:ThinkPHP、Django、Struts2软件系统:CMS、BBS、BlogWeb前端框架:HTML5、jQuery、Bootstrap第三方内容:广告统计、mockupWeb架构Web架构操作系统概念操作系统(OperatingSystem,OS)是一种软件(计算机由硬件和软件组成),它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁,为了方便使用,承上启下(类比于:接口、中间人、中介等)作用操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,提供一些基本的服务程序举例Windows、Linux、MacOS等Web架构存储概念现代信息技术中用于保存信息的记忆设备用于存储的设备被称作为存储介质用于规定、管理存储的软件,称为存储管理系统作用按照一定的约定,有规律的存放数字信息举例内存、硬盘、U盘、数据库(sql、mysql、oracle)等Web架构Web服务器概念对外提供静态页面Web服务的软件系统作用处理HTTP协议接收、处理、发送静态页面处理并发、负载均衡举例Apache、IIS、Nginx等Web架构Web容器概念为了满足交互操作,获取动态结果,而提供的一些扩展机制能够让HTTP服务器调用服务端程序。作用处理动态页面请求(解释器),如asp、jsp、php、cgi举例Tomcat、weblogic、Jboss、Webshere等Web架构Web服务端语言概念用于提供Web页面的自定义功能,专业处理互联网通信,使用网页浏览器作为用户界面。作用可以动态地编辑、修改或添加网页内容。可以对用户从HTML提交的查询或数据进行响应,访问数据或数据库,并把结果返回到浏览器。也可以访问文件或XML数据,并把结果返回到浏览器,把XML转换为HTML,并把结果返回到浏览器。还可以为不同的用户定制页面,提高页面的可用性,对不同的网页提供安全的访问控制,为不同类型的浏览器设计不同的输出等。举例PHP、ASP、JAVA等Web架构Web开发框架概念类似于模板,用来支持动态网站、网络应用程序及网络服务的开发。作用提高Web开发效率,降低开发难度举例PHP的thinkphp、Java的Struts2、Spring等Web架构软件系统举例cms、bbs、blog、Wordpress等区别框架就是将一些常用操作封装起来,并给合一些设计模式,用来规范和简化程序员的开发流程;而cms等软件系统一般都属于一个完整的系统,有页面、有数据库,部署在站点上之后就能直接通过浏览器地址来访问,可以基于框架开发。Web架构访问流程访问URL:域名解析建立TCP连接发送HTTP请求服务器响应关闭TCP连接用户浏览器渲染页面Web应用发展历程Web应用发展历程早期静态页面无认证页面实际存在通过URL地址访问浏览器直接解析,无需服务器解释或者编译只能返回纯文本(静态的)文件信息是从服务端到客户端,单向传递,不支持动态交互修改复杂Web应用发展历程早期静态页面Web应用发展历程无法获取敏感信息早期web站点入侵歪曲网站内容传播非常内容暗链反动黑页Web应用发展历程动态页面随着Web的发展,产生了交互的需求,信息要在客户端和服务端之间双向流动,也就是动态网页的概念;所谓动态就是利用flash、php、asp、Java等技术在网页中嵌入一些可运行的脚本,用户浏览器在解释页面时,遇到脚本就启动运行它。动态脚本的使用让Web服务模式有了“双向交流”的能力,Web服务模式也可以像传统软件一样进行各种事务处理,如编辑文件、利息计算、提交表单等,Web架构的适用面大大扩展。这些动态脚本可以嵌入在页面中,如JS等。也可以以文件的形式单独存放在Web服务器的目录里,如.asp、.php、jsp文件等。这样功能性的脚本越来越多,形成常用的工具包,单独管理。Web业务开发时,直接使用就可以了,这就是中间件服务器,它实际上是Web服务器处理能力的扩展。Web应用发展历程动态页面网页数据具备动态交互功能后台具备数据处理能力强大数据库作支撑动态页面的优势减少网页的数量增加前后台交互能力拓展网站能力新的安全问题Web应用指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用,Web应用已经融入到日常生活中的各个方面:网上购物、网络银行应用、证券股票交易、政府行政审批等等。在这些Web访问中,大多数应用不是静态的网页浏览,而是涉及到服务器端的动态处理。此时,如果Java、PHP、ASP等程序语言的编程人员的安全意识不足,对程序参数输入等检查不严格等,就会导致Web应用安全问题层出不穷。新的安全问题SQL注入:针对数据库XSS:窃取管理员账户或Cookie,冒充管理员身份登录后台具有操作后台数据的能力,包括读取、更改、添加、删除一些信息文件上传:上传恶意文件…Web起源Web架构Web应用发展历程新的安全问题总结Web安全概述了解中国黑客的发展了解Web安全的发展熟练分析Web事件教学目标中国黑客的发展Web安全发展Web安全事件分析目录中国黑客的发展随着Web2.0、社交网络、微博等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注。接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。互联网刚刚开始是安全的,但是伴随着黑客(Hacker)的诞生,互联网变得越来越不安全。中国黑客的发展黑客一词来源于“Hacker”,通常指对于计算机系统有深入的理解,能够发现其中的问题。“Hacker”在中国按照音译,被称为“黑客”。在计算机安全领域,黑客是一群破坏规则、不喜欢被约束的人,因此总想着能够找到系统的漏洞,以获得一些规则之外的权力。“黑客”这个词并非源于计算机,而是源于1961年(60年代)麻省理工学院(MIT)的技术模型铁路俱乐部,当时俱乐部成员们为修改功能而黑了他们的高科技列车组。从玩具列车推进到了计算机领域,这些MIT学生以及其他早期黑客,仅仅对探索、改进和测试现有程序的极限感兴趣。某些情况下,这些黑客甚至产生了比先前程序好的多的程序,比如丹尼斯·里奇和基斯·汤普森的UNIX操作系统。中国黑客的发展计算机黑客持续繁荣演进到70年代,催生了新一类的黑客:玩弄电话系统的黑客,也称“飞客”。比如约翰·德拉浦,利用的是电话交换网络的操作特性,可以愚弄电话交换网络,免费享用长途通话。如今的电话交换网络已经完全电子化了。80年代时黑客历史的分水岭,因为此时完备的个人计算机被引入了公众视野。个人电脑的广泛普及,引爆了黑客的快速增长。虽然仍有大量黑客专注于改进操作系统,但更关注个人所得的新一类黑客也渐渐浮出水面,他们将自己的技术用于犯罪活动,包括盗版软件、创建病毒和侵入系统盗取敏感信息等。中国黑客的发展在黑客的世界里,有的黑客精通计算机技术,能自己挖掘漏洞,并编写exploit;有的黑客只对攻击本身感兴趣,对计算机原理和各种编程技术的了解比较粗浅,只懂得利用别人的代码,自己并没有动手能力,这种黑客被称为“ScriptKids”,即脚本小子。在现实世界里,真正造成破坏的,往往并非那些挖掘并研究漏洞的“黑客”们,而是脚本小子。在目前已经形成产业的计算机犯罪、网络犯罪中,造成主要破坏的,也是这些脚本小子。中国黑客的发展中国黑客发展史一共经历了三个时代:启蒙时代黄金时代黑暗时代中国黑客的发展启蒙时代20世纪90年代,此时中国得互联网刚刚起步,是中国互联网开始发展的萌芽时期,一些热爱新兴技术的青年受到国外黑客技术的影响,开始研究安全漏洞,大多都是个人爱好。这个时期,各地电脑发烧友最大的乐趣就是复制一些小游戏和DOS等软件产品,这一类被称为“窃客”。随着中国大中城市互联网的信息港已经初具规模,在这样的环境条件下,产生了众多的黑客,他们掌握的技术主要是邮箱炸弹,后来诞生了特洛伊木马,也就是网络间谍NetSpy,随后少量的国产工具开始小范围流行于中国黑客之间。这些黑客起初都是对计算机领域的爱好、好奇心和强烈的求知欲,他们崇尚自由、喜欢分享,经验和资源都是免费提供,技术在他们看上去是最有价值的。中国黑客的发展黄金时代以2001年4月4日开始的“中美黑客大战”作为标志,在这个背景下,黑客这个特殊的群体一下子几乎引起了社会的所有眼球。此次黑客大战主要在各自的互联网上植入一些出气的文章和页面。中美黑客大战真实还原场景中国黑客的发展黄金时代以上是一些真实的场景,比如美国的某个网名,打开他们的电商网站,就会弹出类似窗口。此时黑客圈子所宣扬的文化以及黑客技术的独特魅力,吸引了无数青少年走上这条道路。此后,各种黑客组织雨后春笋般的冒出。此阶段的中国黑客,由于新人较多,虽然有活力和激情,但是技术上还不够成熟。所谓林子大了,什么鸟都有,此时期在黑客圈子里贩卖漏洞,恶意软件的现象就开始升温,群体良莠不齐,也就开始出现了以营利为目的的攻击行为,黑色产业链逐渐成型。中国黑客的发展黑暗时代在这个时期,黑客也循着社会的发展规律,优胜劣汰,大多是黑客组织并没有坚持下来。在上个时期的黑客技术论坛越来越缺少人气,最终走向没落。所有门户型的漏洞披露站点,也不再公布任何漏洞相关的技术细节。随着安全行业发展,黑客的功利性越来越强。黑色产业链开始成熟。这个地下产业每年会给互联网造成数十亿甚至百亿的损失。在上一个时期技术还不成熟的黑客们,凡是坚持下来的,都已经成长为安全领域的高级人才,有的在安全公司贡献着自己的专业技能,有的则带着非常强的技术进入了黑色产业。此时期的黑客群体,因为互相之间不再具有开发和分享的精神,最为纯粹的黑客精神实质上已经死亡。中国黑客的发展黑暗时代如今的黑客队伍,会分为三种颜色的帽子。黑帽子:利用黑客技术造成破坏,转为黑色产业,提供资源,贩卖漏洞,给商业带来损失,甚至进行网络犯罪;灰帽子:白天良好公民,正常上班,半夜干坏事;白帽子:从事网络安全行业,针对攻击手段制作防护工具和解决方案,工作在反黑客领域。Web安全发展在早期互联网中,Web并非互联网的主流应用。一方面是因为Web技术还没发展起来,不够成熟;另一方面通过系统软件漏洞往往能获得很高的权限。相对来说,基于SMTP、POP3、FTP、IRC等协议的服务拥有着绝大多数的用户,因此主要的攻击目标是网络、操作系统以及软件等领域,Web安全领域的攻击与防御技术处于非常原始的阶段。相对于那些攻击系统软件的exploit而言,基于Web的攻击,一般只能让黑客获得一个较低权限的账户,对黑客的吸引力远远不如直接攻击系统软件。但是时代在发展,防火墙技术的兴起改变了互联网安全的格局。尤其是以思科、华为、深信服等代表的网络设备厂商,开始在网络产品中更加重视网络安全,最终改变了互联网安全的走向。防火墙、ACL技术的兴起,使得直接暴露在互联网上的系统得到了保护。Web安全发展2003年的冲击波蠕虫是一个里程碑式的事件,该漏洞针对Windows操作系统RPC服务(运行在445端口)的蠕虫,处理通过TCP/IP的消息交换的部分,攻击者通过TCP135端口,向远程计算机发送特殊形式的请求,允许攻击者在目标机器上获得完全的权限并以执行任意代码。在很短的时间内席卷了全球,造成了数百万机器被感染,损失难以估量。在此次事件后,网络运营商很坚决地在骨干网络上屏蔽了135、445等端口的连接请求。此次事件之后,整个互联网对于安全的重视达到了一个空前的高度。运营商、防火墙对于网络的封锁,使得暴露在互联网上的非Web服务越来越少,且Web技术的成熟使得Web应用的功能越来越强大,最终成为了互联网的主流。黑客们的目光,也渐渐转移到了Web上。Web安全发展Web攻击技术的发展也可以分为几个阶段。在Web1.0时代,人们更多的是关注服务器端动态脚本的安全问题,比如将一个可执行脚本(俗称WebShell)上传到服务器上,从而获得权限。动态脚本语言的普及,以及Web技术的发展初期,对安全问题认知的不足导致很多“血案”的发展,同时也遗留下很多历史问题。比如PHP语言至今仍然只能靠较好的代码规范来保证没有文件包含漏洞,而无法从语言本身杜绝此类安全问题的发生。Web安全发展SQL注入的出现是Web安全史上的一个里程碑,它最早出现大概是1999年,并很快就成为Web安全的头号大敌。就如同缓冲区溢出出现时一样,程序员们不得不日以继夜地去修改程序中存在的漏洞。黑客们发现通过SQL注入攻击,可以获取很多重要的、敏感的数据,甚至能够通过数据库获取系统访问权限,这种效果不比直接攻击系统软件差,Web攻击瞬间流行起来。SQL注入漏洞至今仍然是Web安全领域中的一个重要组成部分。XSS(跨站脚本攻击)的出现则是Web安全史上的另一个里程碑。实际上,XSS的出现时间和SQL注入差不多,但是真正引起人们重视则是在大概2003年以后,在经历了MySPace的XSS蠕虫事件后(它在20小时内感染了100万个账户),安全界对XSS的重视程度提高了很多,OWASPTop10(2007)甚至把XSS放在榜首。Web安全发展伴随着Web2.0的兴起,XSS、CSRF等攻击已经变的更为强大。Web攻击的思路也从服务端转向客户端,转向了浏览器和用户。黑客们天马行空的思路,覆盖了Web的每一个环节,变得更加的多样化,这些安全问题在后面课程中会深入的探讨。Web技术发展到今天,构建了丰富多彩的互联网。互联网业务的蓬勃发展,也催生了许多新兴的脚本语言,比如Python、Ruby、NodeJS等敏捷开发成为互联网的主旋律。而手机技术、移动互联网的兴起,也给HTML5带来了新的机遇和挑战。同时,Web安全技术,也将紧跟着互联网发展的脚步,不断地演化出新的变化。Web安全事件分析新浪微博攻击事件2011年6月28日晚新浪微博遭受攻击,新浪微博突然出现大范围“中毒”,大量用户自动发送“建党大业中穿帮的地方”、“个税起征点有望提到4000”、“郭美美事件的一些未注意到的细节”、“3D肉团团高清普通话版种子”等带链接的微博与私信,并自动关注一位名为hellosamy的用户。20:14,开始有大量带V的认证用户中招转发蠕虫20:30,2中的病毒页面无法访问20:32,新浪微博中hellosamy用户无法访问21:02,新浪漏洞修补完毕影响:该攻击持续16分钟,感染用户达到33000人左右。Web安全事件分析新浪微博攻击事件Web安全事件分析新浪微博攻击事件首先,黑客通过对新浪微博的分析测试,发现新浪名人堂部分由于代码过滤不严,导致XSS漏洞的存在,并可以通过构造脚本的方式植入恶意代码。通过分析发现,在新浪名人堂部分中,当提交/pub/star/g/xyyyd">?type=update时,新浪会对该字符串进行处理,变成类似/pub/star.php?g=xyyyd">?type=update,而由于应用程序没有对参数g做充足的过滤,且将参数值直接显示在页面中,相当于

在页面中嵌入了一个来自于2的JS脚本。该JS脚本是黑客可以控制的文件,使得黑客可以构造任意JS脚本嵌入到的页面中,且通过Ajax技术完全实现异步提交数据的功能,进而黑客通过构造特定的JS代码实现了受此XSS蠕虫攻击的客户自动发微博、添加关注和发私信等操作。Web安全事件分析新浪微博攻击事件然后,黑客为了使该XSS蠕虫代码可以大范围的感染传播,会通过发私信或发微博的方式诱惑用户去点击存在跨站代码的链接,尤其是针对V标认证的用户,因为此类用户拥有大量的关注者,所以如果此类用户中毒,这些用户就会通过发微博和发私信的方式将该XSS蠕虫向其他用户进行传播,必然可以实现该XSS蠕虫的大范围、快速的传播与感染。Web安全事件分析新浪微博攻击事件此次攻击利用了新浪微博存在的XSS漏洞;使用有道提供的短域名服务;当新浪登陆用户不小心访问到相关网页时,由于处于登陆状态,会运行JS脚本做几件事:发微博(让更多的人看到这些消息,扩大受害群体)加关注,加uid为2201270010的用户关注(这应该就是hellosamy)发私信,给好友发私信传播这些链接Web安全事件分析12306泄密事件2014年12月25日,大量12306用户数据在网络上疯狂传播。本次泄露事件被泄露的数据达131653条,包括用户账号、明文密码、身份证和邮箱等多种信息,共约14M数据。这不是12306网站第一次发生用户信息泄露事件,但是是最大的一次。此次攻击事件为“撞库攻击”,就是黑客通过收集互联网已泄露的用户账号及密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登陆的用户。Web安全事件分析12306泄密事件撞库也是黑客与大数据方式进行结合的一种产物,黑客们将泄漏的用户数据整合分析,然后集中归档后形成的一种攻击方式。而这种攻击,却是互联网安全维护人员最为无奈的攻击形式之一,信息泄漏、账户安全、网络安全无疑成为大众最关心的问题。中国黑客的发展Web安全发展Web安全事件分析总结常见Web安全漏洞了解常见的Web安全漏洞及其危害教学目标信息泄露目录遍历跨站脚本攻击(XSS)SQL注入文件上传漏洞命令执行文件包含Web中间件推荐书籍目录信息泄露概念信息泄露是由于Web服务器或应用程序没有正确处理一些特殊请求,泄露Web服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。造成信息泄露主要的三个原因:Web服务器配置存在问题,导致一些系统文件或者配置文件暴露在互联网中Web服务器本身存在漏洞,在浏览器中输入一些特殊的字符,可以访问未授权的文件或者动态脚本文件源码Web网站的程序编写存在问题,对用户提交请求没有进行适当的过滤,直接使用用户提交上来的数据信息泄露案例敏感信息可能会不慎泄露给仅以正常方式浏览网站的用户。但是更常见的是,攻击者需要通过意外或恶意的方式与网站进行交互来引发信息泄露。然后,将仔细研究网站的响应,以尝试找出有趣的行为。通过robots.txt文件或目录列表显示隐藏目录的名称,它们的结构及其内容通过临时备份提供对源代码文件的访问在错误消息中明确提及数据库表或列名不必要地暴露高度敏感的信息,例如信用卡详细信息在源代码中对API密钥,IP地址,数据库凭证等进行硬编码通过应用程序行为的细微差别来提示是否存在资源,用户名等信息泄露案例源码泄露git源码泄露git源码泄露,只要有git目录存在,就可以尝试将其源码导出利用githack工具,在ubuntu中先进入githack-master中,然后输入:pythonGitHack.pyhttp://ip/.git/即可将源码下载下来信息泄露案例源码泄露hg源码泄露利用工具dvcs-ripper可以将源码导出DS_Store文件泄露利用工具ds_store_exp可恢复文件名,不可恢复文件内容网站备份文件泄露管理员备份网站文件后错误的将备份放在Web目录下,常见后缀名有:.rar、.zip、.7z、.tar、.tar.gz、.bak、.txtsvn泄露重要的文件是/.svn/wc.db和/.svn/entries,同样可利用dvcs-ripper工具信息泄露案例源码泄露web-inf/web.xml泄露web-inf是JavaWeb应用的安全目录,web.xml中有文件的映射关系CVS泄露http://url/CVS/Root返回根信息http://url/CVS/Entries返回所有文件的结构bkclonehttp://url/namedir取回源码目录遍历概念目录遍历(目录穿越)是一个Web安全漏洞,攻击者可以利用该漏洞读取运行应用程序的服务器上的任意文件。这可能包括应用程序代码和数据,后端系统的登录信息以及敏感的操作系统文件。危害目录遍历最大的危害是能够让任意用户访问系统的敏感文件,继而攻陷整个服务器。目录遍历

案例直接访问Web应用存在的一些目录,如果返回文件列表信息,证明存在此漏洞。目录遍历案例使用”../”测试,/var/www/images/../../../etc/passwd等价于/etc/passwd跨站脚本攻击(XSS)概念跨站脚本攻击(XSS),指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式。跨站脚本攻击(XSS)类型反射型存储型DOM型危害盗取cookieXSS蠕虫攻击会话劫持钓鱼攻击跨站脚本攻击(XSS)案例SQL注入漏洞概念SQL注入漏洞,Web系统对数据库访问语句过滤不严,入侵者在合法参数的位置,传入特殊的字符、命令,实现对后台数据库的入侵。类型数据型Select*fromtablewhereid=xss字符型Select*fromtablewhereusername=‘test’危害数据库信息泄露、数据篡改、挂马等SQL注入漏洞案例文件上传漏洞概念文件上传漏洞,网站WEB应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型时,就可以上传任意文件,甚至可执行文件后门。类型根据网站使用及可解析的程序脚本不同,可以上传的恶意脚本可以是PHP、ASP、JSP、ASPX文件等危害恶意文件传递给解释器去执行,之后就可以在服务器上执行恶意代码,可实现数据库执行、服务器文件管理,服务器命令执行等恶意操作。文件上传漏洞案例命令执行概念命令执行,应用程序有时需要调用一些执行系统命令的函数,而Web开发语言中部分函数可以执行系统命令,如PHP中的system、exec、shell_exec等函数。危害当黑客控制这些函数的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,若当前用户为root用户,危害程度将更严重。命令执行案例文件包含漏洞概念文件包含,程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。所有脚本语言都会提供文件包含的功能,但文件包含漏洞在PHPWebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,甚至没有。常见包含函数有:include()、require()类型本地包含远程包含危害文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。文件包含漏洞案例Web中间件概念Web中间件,介于操作系统和应用程序之间的产品,面向信息系统交互,集成过程中的通用部分的集合,屏蔽了底层的通讯,交互,连接等复杂又通用化的功能,以产品的形式提供出来,系统在交互时,直接采用中间件进行连接和交互即可,避免了大量的代码开发和人工成本。类型(常见)IISApacheTomcatNginxWebLogicJbossWeb中间件常见漏洞

中件间名称漏洞IIS解析漏洞、PUT命令执行漏洞、PUT文件上传漏洞、短文件名猜解Apache文件解析漏洞Tomcat任意写文件漏洞(CVE-2017-12615)、远程部署漏洞、任意文件读取/包含漏洞(CVE-2020-1938)Nginx文件解析漏洞、目录穿越\遍历漏洞(配置不当)WebLogic弱口令&&远程部署漏洞、任意文件上传漏洞(CVE-2018-2894)、SSRF漏洞(CVE-2014-4210)Jboss反序列化漏洞(CVE-2017-12149)、JBoss4.xJBossMQJMS反序列化漏洞(CVE-2017-7504)、弱口令&&远程部署漏洞Web中间件漏洞样例(Tomcat·CVE-2020-1938)TomcatTomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照SunMicrosystems提供的技术规范,实现了对Servlet和JavaServerPage(JSP)的支持。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。影响版本ApacheTomcat9.x<9.0.31ApacheTomcat8.x<8.5.51ApacheTomcat7.x<7.0.100ApacheTomcat6.xWeb中间件漏洞样例(Tomcat·CVE-2020-1938)漏洞危害

Web中间件漏洞样例(Tomcat·CVE-2020-1938)漏洞范围

推荐书籍图书类信息泄露目录遍历站脚本攻击(XSS)SQL注入文件上传漏洞命令执行文件包含Web中间件推荐书籍总结OWASPTop10安全风险与防护熟练掌握OWASPTOP10包含的内容了解每种Web应用所面临的安全风险熟练掌握每种Web应用所采取的安全策略教学目标OWASPTop10OWASPTop10(2017)风险与防护目录OWASPTop10OWASP(OpenWebApplicationSecurityProject,开放式Web应用程序安全项目)是一个在线社区,开源的、非盈利的全球性安全组织,主要在Web应用安全领域提供文章、方法论、文档、工具和技术,致力于应用软件的安全研究。OWASP的使命是使应用软件更加安全,使企业和组织能够对应用安全风险做出更清晰的决策。目前OWASP全球拥有250个分部,近7万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。OWASPTop10列出了公认的最有威胁性的Web应用安全漏洞,总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞。OWASPTop10攻击者可以通过应用程序中许多的不同的路径方式去危害企业业务,每种路径方法都代表了一种风险,这些风险都值得关注。OWASPTop10OWASPTop10基于OWASP风险等级排序方法的简单评级方案OWASPTop10(2017)风险与防护注入将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。OWASPTop10(2017)风险与防护注入--脆弱点应用程序存在如下情况时,是脆弱的且易受攻击:用户提供的数据没有经过应用程序的验证、过滤或净化动态查询语句或非参数化的调用,在没有上下文感知转义的情况下,被用于解释器。在ORM搜索参数中使用了恶意数据,这样搜索就获得包含敏感或未授权的数据恶意数据直接被使用或连接,诸如SQL语句或命令在动态查询语句、命令或存储过程中包含结构和恶意数据OWASPTop10(2017)风险与防护注入--防护策略防止注入漏洞需要将数据与命令语句、查询语句分隔开来。最佳选择是使用安全的API,完全避免使用解释器,或提供参数化界面的接口,或迁移到ORM或实体框架。使用正确的或“白名单”的具有恰当规范化的输入验证方法同样会有助于防止注入攻击,但这不是一个完整的防御,因为许多应用程序在输入中需要特殊字符,例如文本区域或移动应用程序的API。对于任何剩余的动态查询,可以使用该解释器的特定转义语法转义特殊字符。OWASP的JavaEncoder和类似的库提供了这样的转义例程。在查询中使用LIMIT和其他SQL控件,以防止在SQL注入时大量地泄露记录。OWASPTop10(2017)风险与防护失效的身份认证通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。OWASPTop10(2017)风险与防护失效的身份认证--脆弱点应用程序存在如下情况时,那么可能存在身份验证的脆弱性:允许凭证填充,这使得攻击者获得有效用户名和密码的列表允许暴力破解或其他自动攻击允许默认的、弱的或众所周知的密码,例如“Password1”或“admin/admin使用弱的或失效的验证凭证,忘记密码程序,例如“基于知识的答案”使用明文、加密或弱散列密码(参见:敏感数据泄露)缺少或失效的多因素身份验证暴露URL中的会话ID(例如URL重写)在成功登录后不会更新会话ID。不正确地使会话ID失效。当用户不活跃的时候,用户会话或认证令牌(特别是单点登录(SSO)令牌)没有正确注销或失效OWASPTop10(2017)风险与防护失效的身份认证--防护策略在可能的情况下,实现多因素身份验证,以防止自动、凭证填充、暴力破解和被盗凭据再利用攻击不要使用发送或部署默认的凭证,特别是管理员用户执行弱密码检查,例如测试新或变更的密码,以纠正“排名前10000个弱密码”将密码长度、复杂性和循环策略与NIST-800-63B的指导方针(记住秘密)或其他现代的基于证据的密码策略相一致确认注册、凭据恢复和API路径,通过对所有输出结果使用相同的消息,用以抵御账户枚举攻击限制或逐渐延迟失败的登录尝试。记录所有失败信息并在凭据填充、暴力破解或其他攻击被检测时提醒管理员。使用服务器端安全的内置会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储和当登出、闲置、绝对超时后使其失效。OWASPTop10(2017)风险与防护敏感数据泄露我们需要对敏感数据加密,这些数据包括:传输过程中的数据、存储的数据以及浏览器的交互数据。OWASPTop10(2017)风险与防护敏感数据泄露--脆弱性对于敏感数据,要确定:在数据传输过程中是否使用明文传输?这和传输协议相关,如:HTTP、SMTP和FTP。外部网络流量非常危险。验证所有的内部通信,如:负载平衡器、Web服务器或后端系统之间的通信。当数据被长期存储时,无论存储在哪里,它们是否都被加密,包含备份数据?无论默认条件还是源代码中,是否还在使用任何旧的或脆弱的加密算法?是否使用默认加密密钥,生成或重复使用脆弱的加密密钥,或者缺少恰当的密钥管理或密钥回转?是否强制加密敏感数据,例如:用户代理(如:浏览器)指令和传输协议是否被加密?用户代理(如:应用程序、邮件客户端)是否未验证服务器端证书的有效性?OWASPTop10(2017)风险与防护敏感数据泄露--防护策略对系统处理、存储或传输的数据分类,并根据分类进行访问控制。熟悉与敏感数据保护相关的法律和条例,并根据每项法规要求保护敏感数据。对于没必要存放的、重要的敏感数据,应当尽快清除,或者通过PCIDSS标记或拦截。确保存储的所有敏感数据被加密。确保使用了最新的、强大的标准算法或密码、参数、协议和密匙,并且密钥管理到位。确保传输过程中的数据被加密(HTTPS);确保数据加密被强制执行。禁止缓存对包含敏感数据的响应。确保使用密码专用算法存储密码。将工作因素(延迟因素)设置在可接受范围。单独验证每个安全配置项的有效性。OWASPTop10(2017)风险与防护XML外部实体(XXE)攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。OWASPTop10(2017)风险与防护XML外部实体(XXE)--脆弱性应用程序和特别是基于XML的Web服务或向下集成,可能在以下方面容易受到攻击:应用程序直接接受XML文件或者接受XML文件上传,特别是来自不受信任源的文件,或者将不受信任的数据插入XML文件,并提交给XML处理器解析。在应用程序或基于Web服务的SOAP中,所有XML处理器都启用了文档类型定义(DTDs)。因为禁用DTD进程的确切机制因处理器而不同。如果为了实现安全性或单点登录(SSO),应用程序使用SAML进行身份认证。而SAML使用XML进行身份确认,那么应用程序就容易受到XXE攻击。如果应用程序使用第1.2版之前的SOAP,并将XML实体传递到SOAP框架,那么它可能受到XXE攻击。存在XXE缺陷的应用程序更容易受到拒绝服务攻击,包括:BillionLaughs攻击。OWASPTop10(2017)风险与防护XML外部实体(XXE)--防护策略尽可能使用简单的数据格式(如:JSON),避免对敏感数据进行序列化。及时修复或更新应用程序或底层操作系统使用的所有XML处理器和库。同时,通过依赖项检测,将SOAP更新到1.2版本或更高版本。在应用程序的所有XML解析器中禁用XML外部实体和DTD进程。在服务器端实施积极的(“白名单”)输入验证、过滤和清理,以防止在XML文档、标题或节点中出现恶意数据。验证XML或XSL文件上传功能是否使用XSD验证或其他类似验证方法来验证上传的XML文件。尽管在许多集成环境中,手动代码审查是大型、复杂应用程序的最佳选择,但是SAST工具可以检测源代码中的XXE漏洞。如果无法实现这些控制,请考虑使用虚拟修复程序、API安全网关或Web应用程序防火墙(WAF)来检测、监控和防止XXE攻击。OWASPTop10(2017)风险与防护失效的访问控制未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。OWASPTop10(2017)风险与防护失效的访问控制--脆弱性常见的访问控制脆弱点包括:通过修改URL、内部应用程序状态或HTML页面绕过访问控制检查,或简单地使用自定义的API攻击工具。允许将主键更改为其他用户的记录,例如查看或编辑他人的帐户。特权提升。在不登录的情况下假扮用户,或以用户身份登录时充当管理员。元数据操作,如重放或篡改JWT访问控制令牌,或作以提升权限的cookie或隐藏字段。CORS配置错误允许未授权的API访问。以未通过身份验证的用户身份强制浏览的通过身份验证时才能看到的页面、或作为标准用户访问具有相关权限的页面、或API没有对POST、PUT和DELETE强制执行访问控制。OWASPTop10(2017)风险与防护失效的访问控制--防护策略访问控制只有在受信服务器端代码或没有服务器的API中有效,这样攻击者才无法修改访问控制检查或元数据。除公有资源外,默认情况下拒绝访问。使用一次性的访问控制机制,并在整个应用程序中不断重用它们,包括最小化CORS使用。建立访问控制模型以强制执行所有权记录,而不是接受用户创建、读取、更新或删除的任何记录。域访问控制对每个应用程序都是唯一的,但业务限制要求应由域模型强制执行。禁用Web服务器目录列表,并确保文件元数据(如:git)不存在于Web的根目录中。记录失败的访问控制,并在适当时向管理员告警(如:重复故障)。对API和控制器的访问进行速率限制,以最大限度地降低自动化攻击工具的危害。当用户注销后,服务器上的JWT令牌应失效。OWASPTop10(2017)风险与防护安全配置错误安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。OWASPTop10(2017)风险与防护安全配置错误--脆弱性应用程序存在以下情况,可能受到攻击:应用程序栈堆的任何部分都缺少适当的安全加固,或者云服务的权限配置错误。应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。默认帐户的密码仍然可用且没有更改。错误处理机制向用户披露堆栈跟踪或其他大量错误信息。对于更新的系统,禁用或不安全地配置最新的安全功能。应用程序服务器、应用程序框架(Struts、Spring、ASP.NET)、库文件、数据库等没有进行安全配置。服务器不发送安全标头或指令,或者未对服务器进行安全配置。您的应用软件已过期或易受攻击(参见:使用含有已知漏洞的组件)。OWASPTop10(2017)风险与防护安全配置错误--防护策略一个可以快速且易于部署在另一个锁定环境的可重复的加固过程。开发、质量保证和生产环境都应该进行相同配置,并且在每个环境中使用不同的密码。这个过程应该是自动化的,以尽量减少安装一个新安全环境的耗费。搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除不适用的功能和框架。检查和修复安全配置项来适应最新的安全说明、更新和补丁,并将其作为更新管理过程的一部分,(参见:使用含有已知漏洞的组件)。在检查过程中,应特别注意云存储权限。一个能在组件和用户间提供有效的分离和安全性的分段应用程序架构,包括分段、容器化和云安全组。向客户端发送安全指令,如:安全标头。在所有环境中能够进行正确安全配置和设置的自动化过程。OWASPTop10(2017)风险与防护跨站脚本(XSS)当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建HTML或JavaScript的浏览器API更新现有的网页时,就会出现XSS缺陷。XSS让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。OWASPTop10(2017)风险与防护跨站脚本(XSS)--脆弱性典型的XSS攻击可导致盗取session、账户、绕过MFA、DIV替换、对用户浏览器的攻击(例如:恶意软件下载、键盘记录)以及其他用户侧的攻击。存在三种XSS类型,通常针对用户的浏览器:反射式XSS:应用程序或API包括未经验证和未经转义的用户输入,作为HTML输出的一部分。一个成功的攻击可以让攻击者在受害者的浏览器中执行任意的HTML和JavaScript。通常,用户将需要与指向攻击者控制页面的某些恶意链接进行交互,例如恶意漏洞网站,广告或类似内容。存储式XSS:你的应用或者API将未净化的用户输入存储下来了,并在后期在其他用户或者管理员的页面展示出来。存储型XSS一般被认为是高危或严重的风险。基于DOM的XSS:会动态的将攻击者可控的内容加入页面的JavaScript框架、单页面程序或API存在这种类型的漏洞。理想的来说,你应该避免将攻击者可控的数据发送给不安全的JavaScriptAPI。OWASPTop10(2017)风险与防护跨站脚本(XSS)--防护策略防止XSS需要将不可信数据与动态的浏览器内容区分开。使用设计上就会自动编码来解决XSS问题的框架,如:Ruby3.0或ReactJS。为了避免反射式或存储式的XSS漏洞,要根据HTML输出的上下文(包括:主体、属性、JavaScript、CSS或URL)对所有不可信的HTTP请求数据进行恰当的转义。在客户端修改浏览器文档时,为了避免DOMXSS攻击,最好的选择是实施上下文敏感数据编码。如果这种情况不能避免,可以采用类似上下文敏感的转义技术应用于浏览器API。使用内容安全策略(CSP)是对抗XSS的深度防御策略。如果不存在可以通过本地文件放置恶意代码的其他漏洞(例如:路径遍历覆盖和允许在网络中传输的易受攻击的库),则该策略是有效的。OWASPTop10(2017)风险与防护不安全的反序列化不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。OWASPTop10(2017)风险与防护不安全的反序列化--脆弱性如果反序列化进攻者提供的敌意或者篡改过的对象将会使将应用程序和API变的脆弱。这可能导致两种主要类型的攻击:如果应用中存在可以在反序列化过程中或者之后被改变行为的类,则攻击者可以通过改变应用逻辑或者实现远程代码执行攻击。我们将其称为对象和数据结构攻击。典型的数据篡改攻击,如访问控制相关的攻击,其中使用了现有的数据结构,但内容发生了变化。OWASPTop10(2017)风险与防护不安全的反序列化--脆弱性在应用程序中,序列化可能被用于:远程

温馨提示

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

评论

0/150

提交评论