WEB开发安全与防御策略课件.ppt

上传人:小飞机 文档编号:4029772 上传时间:2023-04-01 格式:PPT 页数:29 大小:626KB
返回 下载 相关 举报
WEB开发安全与防御策略课件.ppt_第1页
第1页 / 共29页
WEB开发安全与防御策略课件.ppt_第2页
第2页 / 共29页
WEB开发安全与防御策略课件.ppt_第3页
第3页 / 共29页
WEB开发安全与防御策略课件.ppt_第4页
第4页 / 共29页
WEB开发安全与防御策略课件.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《WEB开发安全与防御策略课件.ppt》由会员分享,可在线阅读,更多相关《WEB开发安全与防御策略课件.ppt(29页珍藏版)》请在三一办公上搜索。

1、WEB开发安全与防御策略,By 陈于喆,目录,1.核心防御机制2.攻击验证机制3.攻击会话管理4.攻击访问控制5.代码注入6.利用路径遍历,目录,7.跨站脚本8.重定向攻击9.json劫持10.缓存区溢出和整数漏洞11.攻击web服务器12.查找源代码中的漏洞,核心防御机制概述,SSL安全协议我们在一些站点有时候会看到“本站点使用SSL技术,您可以放心使用本站点,我们提供绝对的安全的数据保障”SSL可以为用户额web服务器传输的数据提供机密性与完整性的保护功能,防止信息泄露,但SSL并不能防御直接针对应用程序的服务器或客户组建的攻击,核心防御机制概述,许多的攻击成功是对于漏洞的攻击,据统计我们

2、的应用程序主要存在漏洞被攻击的主要表现类别1.不完善的身份验证2.不完善的访问控制3.各种注入和路径遍历4.跨站脚本5.信息的泄露6,WEB应用程序的几个核心防御机制,处理用户访问应用程序的数据和功能1.身份验证2.会话管理3.访问控制,WEB应用程序的几个核心防御机制,处理用户对应用程序功能的输入1.拒绝已知的不良输入(也就是我们所说的黑名单,效率低,无法抵御未知的攻击)2.接受已知的正常输入(白名单,最有效的方法,但无法满足各式各样输入的需求)3.净化数据(可能存在的恶意字符将其进行适当的编码或转义,只留下已知的安全字符)4.安全数据处理(在程序进行数据处理时,采用相关的安全机制,如如在处

3、理数据库访问过程中使用参数化配置查询,就可以避免SQL注入的攻击),WEB应用程序的几个核心防御机制,边界确认边界确认是一种更有效的模型,此时服务器端应用程序的每一个单独的组件或功能单元将其输入当作潜在的恶意来源输入对待,WEB应用程序的几个核心防御机制,多步确认和规范化 在确认的检查过程中,需要几个步骤处理用户提交的输入,如为了防御跨站脚本的攻击,应用程序过滤用户提交的数据中的 但攻击者可以通过ipt,由于过滤无使用递归运行,过滤的表达式周边的数据又合并在一起,重新建立起恶意的表达式。,攻击验证机制,验证技术1.基于HTML表单的验证(90%以上都采用这种机制)2.多元机制,如组合型密码和物

4、理令牌(多见于银行等)3.客户SSL证书或智能卡(成本高昂,用户不多的关键安全应用程序才会使用)4.使用NTLM整合Windows的验证,验证机制设计的缺陷,1.系统对密码保密性要求不强2.允许蛮力攻击登录3.详细的失败登录消息4.证书传输容易受到攻击(如果使用非加密的http链接传输证书,处于网络适当的位置的窃听者可以拦截到这些证书.窃听者可以处在,用户本地网络上,用户的it部门上,用户的ISP上,托管应用程序的ISP内等等)5.记住我的功能(过于简单的cookie执行,如rememberuser=chenyz,即使cookie中保存用于,重新识别用户的信息得到适当的保护(加密)以防止用户进

5、行判断和猜测,但攻击者通过跨站脚本之类的漏洞依然可以进行获得信息。),保障验证机制的安全,1.使用可靠的证书2.安全处理证书(1)必须保证使用HTTPS加载表单(2)只能使用POST请求向服务器传输证书,不能将证书放在URL参数或cookie中,不能将证书返还给用户(3)保存证书,最常使用强大的散列函数,即使攻击者能够访问到应用程序数据库中的数据,他们也无法轻易的恢复证书(4)即使使用记住我的功能,在这情况下,客户不适宜保存明文证书,必须使用密钥加可逆的形式保存密码,且只有服务器知道密钥)(5)用户有责任定期修改密码,保障验证机制的安全,3.正确验证证书4.防止信息泄漏5.防止蛮力攻击6.防止

6、滥用密码修改功能7.日志,监控和通知,问题,http/*,攻击会话管理,从本质上讲,HTTP协议没有状态。它基于一种简单的请求-响应模型,其中每对消息代表一个独立的事务。协议本身并无将某位用户提出的各种请求联系起来的机制,并将它们与Web服务器收到的所有其他请求区分开来,执行会话的最简单、也是最常见的方法就是向每名用户发布一个唯一的会话令牌或标识符。和验证机制一样,通常会话管理功能中也存在着大量缺陷,攻击者只需递增应用程序向他们发布的令牌值,就可以转换到另一名用户的账户。,攻击会话管理,会话管理机制中存在的漏洞主要分为两类:1.会话令牌生成过程中的薄弱环节;2.在整个生命周期过程中处理会话令牌

7、的薄弱环节。,会话令牌生成过程中的薄弱环节,1.令牌有一定含义(一些会话令牌通过用户的用户名或电子邮件地址转换而来,或者使用与其相关的其他信息创建。这些信息可以某种方式进行编码或模糊处理,也可与其他数据结合在一起。)dXNlcm5hbWU6Y2hlbnl6O2FwcD1hZG1pbjtkYXRlOjIwMTAtMDEtMTI=进行Base64解码username:chenyz;app=admin;date:2010-01-12攻击者可以利用这个会话令牌的含义猜测其他应用程序用户的当前会话。使用一组枚举出的用户名或常见用户名,就能够迅速生成大量可能有效的令牌,并进行测试以确定它们是否有效。,在生

8、命周期过程中处理会话令牌的薄弱环节,2.令牌在网络的泄漏一些应用程序在登录阶段选择使用HTTPS保护用户证书的安全,但在用户会话的其他阶段转而使用HTTP。许多Web邮件应用程序以这种方式运作。窃听者无法拦截用户的证书,但仍然可以截获会话令牌http:/,在生命周期过程中处理会话令牌的薄弱环节,3.会话的可预测性4.会话终止易受攻击(1)尽可能缩短一个会话的寿命可降低攻击者截获、猜测或滥用有效会话令牌的可能性(1)如果用户不再需要现有会话,终止会话为用户提供一种使其失效的途径,例如服务器端发布一个set-cookie清空指令5.宽泛的cookie范围(1)cookie域限制(2)cookie路

9、径限制,问题,登录应用程序后,服务器建立一下cookieSet-cookie:sessid=amltMjM6MTI0MToxMTk0OcwODYz;一个小时后再次登录得到以后cookie:Set-cookie:sessid=amltMjM6MTI0MToxMTk0ODc1MTMy;我们可以尝试得到什么推论,注入解释型语言,基于解释型语言的执行方法,产生了一系列的代码注入漏洞,任何实际用途的应用程序都会受到用户提交的数据helloworld.sh#!/bin/shecho$1输入执行./helloworld.sh hello worldhello world但在解释shell脚本环境支持使用反引

10、号()插入另一条命令./helloworld.sh ls-la,SQL注入,SQL注入攻击的种类1.没有正确过滤转义字符SELECT*FROM users WHERE name=+userName+;SELECT*FROM users WHERE name=a OR t=t;2.错误的类型处理SELECT*FROM data WHERE id=+a_variable+;SELECT*FROM DATA WHERE id=1;DROP TABLE users;3.数据库服务器中的漏洞MYSQL服务器中mysql_real_escape_string()函数漏洞,允许一个攻击者根据错误的统一字符编

11、码执行成功的SQL注入式攻击,SQL注入攻击的种类,4.盲目SQL注入式攻击Absinthe的工具就可以使这种攻击自动化5.条件响应6.条件性差错7.时间延误,防御和检查SQL注入的手段,1.使用参数化的过滤性语句2.还要避免使用解释程序3.防范SQL注入,还要避免出现一些详细的错误消息4.使用专业的漏洞扫描工具5.最后一点,企业要在Web应用程序开发过程的所有阶段实施代码的安全检查,渗透攻击测试步骤1.如果原始值为2,我们使用(1+1)或(3-1),程序作出相同回应,表明易受攻击2.如果单引号被过滤掉,我们可以用ASCII命令,使它返回字符的数字化代码,如51-ASCII(1)3.在URL编

12、码中,&和=用于链接名称/值对,建立查询字符串应当分别使用%26和%3d进行编码4.如查询字符串不允许使用空格,使用+或%20编码5.分号被用于分割cookie自读,使用%3d编码,利用路径遍历,如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其它后端文件系统的文件或目录,就会出现路径遍历String rurl=request.getParameter(“rurl”);BufferedWriter utput2=new BufferedWriter(new FileWriter(new File(“/home/chenyz/”+rurl);攻击者可以将路径遍历序列放入文件名内

13、,向上回溯,从而访问服务器上的任何文件,路径遍历序列叫“点-点-斜线”(.)http:/*/go.action?file=.etcpasswd,避开过滤第一种是过滤文件名参数中是否存在任何路径遍历序列(.)如果程序尝试删除(.)来净化用户输入,可以用./././.进行URL编码点-%2e 反斜杠-%2f 正斜杠-%5c进行16为Unicode编码点-%u002e 反斜杠-%u2215 正斜杠-%u2216进行双倍URL编码点-%252e 反斜杠-%u252f 正斜杠-%u255c进行超长UTF-8 Unicode编码点-%c0%2e%e0$40%ae%c0ae 反斜杠-%c0af%e0%80af%c0%af 正斜杠-%c0%5c%c0%80%5c,预防路径遍历1.对用户提交的文件名进行相关解码与规范化2.程序使用一个硬编码,被允许访问的文件类型列表3.使用getCanonicalPath方法检查访问的文件是否位于应用程序指定的起始位置,The end,Good bye,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号