




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 IBM Software Group 2007 IBM Corporation WEBWEB应用安全培训应用安全培训 姓名庄俊乾 职务IBM Rational 高级技术顾问 邮箱 IBM Software Group | Rational software 2 内容 uWEB应用安全定位 uWEB应用基础技术 uWEB应用常见攻击手段 u使用AppScan测试WEB应用安全 u常见的应用安全设置之重复页面过滤(冗余路径) IBM Software Group | Rational software 3 所使用的资源: 安装AppScan桌面版本,安装介质和步骤如下: 1)首先安装Ratl_A
2、ppScan_Std_7.9_win目录下launchpad.exe 2)安装后安装-AppScan_Setup.exe升级包,升级到最新版本. 3) 按照AppScan导入Lic步骤.doc导入License.Licesne文件地址在 License目录下。 IBM Software Group | Rational software 4 Web 应用基础概念 Web Server (Presentation) App Server (Business Logic) Database Client Tier (Browser) Middle Tier Data Tier Fir
3、ewall IBM Software Group | Rational software 5 DesktopTransportNetworkWeb applications Antivirus protection Encryption (SSL) Firewalls / IDS / IPS Firewall Web servers Databases Backend server Application servers 我们当前的安全手段 Legit network-level user Port 80 else document.body.bgColor=#ff0000; Hello Wo
4、rld IBM Software Group | Rational software 18 Middle tier: 表现层 产生并展现WEB网页 4 Apache 4 IIS 4 etc. 也可以产生动态动容 4 Active Server Pages (ASP) 4 Java Server Pages (JSP) 4 Perl Hypertext Pre-processor (PHP) 4 CGI/ Perl scripts 可以是应用服务器的一部分 4 Websphere IBM Software Group | Rational software 19 Middle tier: 业务逻
5、辑层 实现业务逻辑功能 经常包括众多的技术,如 4 J2EE 4 .NET 4 Others (Cold Fusion, PHP, etc.) IBM Software Group | Rational software 20 Data tier数据层 最后台的一层服务器,存储数据 管理数据 经常是企业级别的关系型数据库,如 4Microsoft SQL Server 4Oracle 4DB2 4Sybase, MySQL, etc. IBM Software Group | Rational software 21 页面地址的组成(网址) Uniform Resource Locator (
6、URL) 实例: 4 http:/ protocol (HTTPS, FTP, Gopher, file) 4 host name 4 :80 port () 4 /products/appscan/default.aspx 文件地址路径 4 数据也可以包含在路径中, 如“?” 以后的内容就是采用 QUERY 方法传递的数据 特别注意: 4 发送到WEB服务器的数据会被进行编码,编码为特定的格式;因为网址里面不允许包 含特殊字符,如空格,换行符等;通用的编码格式类似%HH space - %20 “ - %22 ( - %28 IBM Software Group | Rational sof
7、tware 22 HTML forms(HTML 表单) GET POST IBM Software Group | Rational software 23 HTTP: Hypertext Transfer Protocol HTTP 是 Web 应用的客户端和服务器端交互最经常使用的协议 Versions: 0.9, 1.0, 1.1 RFCs: 1945, 2068, 2616 Describes the “language” used by browsers and Web servers(浏览器和服 务器之间通讯的共同语言) Client Server Request Respons
8、e IBM Software Group | Rational software 24 HTTP request/response 例子 Request Response IBM Software Group | Rational software 25 HTTP request methods (最常用的HTTP 请求方法) GET: retrieve a document(请求信息) HEAD: retrieve header information(请求头信息) POST: send data to the server(发送数据到服务器) PUT, DELETE: store an e
9、ntity-body at the URL, and delete a URL (保存,修改实体信息) TRACE: 允许客户端察看传输过程,经常用于调试 IBM Software Group | Rational software 26 HTTP response codes 1XX: 警告信息. 可以继续 2XX: 请求得到成功响应. 客户端的请求被成功接收,处理和理解 3XX:重定向重定向. 被指向了其他的页面 4XX: Client Error.客户端错误,如404表示网页找不到,401表示客户端端权限不够 5XX: 服务器端错误;服务器处理客户端请求时候出错;如500表示服务器内部错
10、误; IBM Software Group | Rational software 27 HTTP 响应信息(代码实例) IBM Software Group | Rational software 28 HTTP 是没有状态的协议,怎么保证一个会话的连续? Session会话: 4Cookie 保存在客户段,经常用于标示用户身份的信息 经常是在服务器端产生,然后保存在了客户端 Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Set-Cookie: ASP.NET_SessionId=zsi
11、0ij45xls3ccrlio523h55; path=/; HttpOnly Set-Cookie: amSessionId=10228114238; path=/ Cache-Control: no-cache Pragma: no-cache Content-Type: text/html; charset=utf-8 Content-Length: 9605 客户端状态的管理 IBM Software Group | Rational software 29 常用工具,协助了解Http和html: Fiddler,FireBug Fiddler 记录客户端和服务器端的通信内容 Fidd
12、ler 允许你截获客户端发送到服务器的数据,并进行修改,然后继 续提交 Tamper Data是和Fiddler类似的小工具 FindBug工具帮助分析页面元素的html代码 Download: IBM Software Group | Rational software 30 实验: 检查客户端和服务器端的交互信息 使用Fidder,TamperData,FireBug等工具 来检查WEB应用 IBM Software Group | Rational software 31 本章小结 完成本次培训后,您将掌握: 描述WEB应用的通用架构和模块 了解WEB应用最经常使用的技术,如HTML 和
13、HTTP IBM Software Group | Rational software 32 内容 uWEB应用安全定位 uWEB应用基础技术 uWEB应用常见攻击手段 u使用AppScan测试WEB应用安全 u常见的应用安全设置之重复页面过滤(冗余路径) IBM Software Group | Rational software 33 十大应用安全隐患 * 2007 OWASP Top 10 IBM Software Group | Rational software 34 1. Cross-Site Scripting (XSS) XSS又叫CSS (Cross Site Script)
14、 ,跨站脚本攻击。它指的是恶意攻击者往Web页 面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被 执行,从而达到恶意用户的特殊目的。 通过XSS产生的恶果 4 对于有价值的session信息进行盗取 4 篡改用户浏览的正常内容 4 窃取用户处理信息 IBM Software Group | Rational software 35 您收到过这样的邮件吗?。 IBM Software Group | Rational software 36 HTML code: IBM Software Group | Rational software 37 HTML cod
15、e: IBM Software Group | Rational software 38 XSS描述 在各种搜索、错误处理、表单处理中经常可以见到 4XSS在各种页面中经常碰到,十分常见 窃取任何用户输入信息 4Path, Query, Post-data, Cookie, Header, etc. 最新的浏览器技术更增加XSS的能力 4XMLHttpRequest (AJAX), Flash, IFrame XSS也有各种各样的变种. 4XSS in attribute, DOM Based XSS, etc. IBM Software Group | Rational software 3
16、9 XSS常见攻击过程 E User 1)通过邮件发送 关于银行信息的url 2) 用户在脚本环境中登陆银行,进行操作 3) 用户的操作和数据被脚本捕获 4) 脚本自动将窃取的 用户信息发送给黑客 5) 黑客借助于窃取的信息 登陆银行,进行操作 IBM Software Group | Rational software 40 如何修补XSS问题 验证输入内容(validate input) 4Validate input (from all sources) for length, type, syntax, and business rules 4As often as po
17、ssible, only accept known good values rather than sanitizing positive security model. 输出内容进行编码等格式转换 4Encode all output 4It is best to encode all characters an approach used in the Microsoft Anti-XSS library Im in! SELECT * FROM users WHERE name=jsmith- AND pwd=a IBM Software Group | Rational softwar
18、e 43 SELECT * FROM users WHERE name=jsmith- AND pwd=a IBM Software Group | Rational software 44 http:/ 22 SQL injection: example Example: http:/ The SELECT command: 4Username: jsmithPassword: asdf SELECT _ WHERE username=jsmith and password=asdf 4Username: jsmithPassword: asdf SELECT _ WHERE usernam
19、e=jsmith and password=asdf 4Username: or True -Password: asdf SELECT _ WHERE username= or 1=1 - and password=asdf IBM Software Group | Rational software 45 Injection Flaws SQL注入不仅进行查询 4SQL命令操作数据库. 4通过SQL借助数据库,攻击OS 不止限于SQL注入,攻击手段还有很多 4LDAP, XPath, SSI 4HTML Injection (Cross Site Scripting) 4HTTP Inje
20、ction(修改header/get/post的内容) IBM Software Group | Rational software 46 一个非典型的注入一个非典型的注入:select phoneID,giftName from phone_gift where phoneID= IBM Software Group | Rational software 47 注入问题分析 Injection flaws are created when data is interpreted as code HTML example 4“AltoroMutual” and “Welcome to Alt
21、oro” strings are user input data 4Everything else is code and will be interpreted by the web browser 4Consider the input change: “Welcome to Altoro” 4Unless the tags are sanitized or encoded they will be interpreted by the web browser This injection flaw is fairly harmless. Lets consider something m
22、ore dangerous Altoro Mutual Welcome to Altoro Altoro Mutual Welcome to Altoro IBM Software Group | Rational software 48 注入问题分析 JavaScript example 4“white” in this example was input by the user on a previous page 4Consider how this input might affect the page: ;alert(12345); 4”; ends the function con
23、text 4alert(12345); is the hackers attack vector 4 ends the script context This is an example of a cross-site scripting vulnerability Both of these examples were on the client tier What about one of the other tiers function toggleBackColor() if (document.body.bgColor=red) document.body.bgColor=white
24、; else document.body.bgColor=red; Hello World function toggleBackColor() if (document.body.bgColor=red) document.body.bgColor=;alert(12345); else document.body.bgColor=red; Hello World IBM Software Group | Rational software 49 Injection flaws: Code versus data SQL example 4This is a typical SQL stat
25、ement that retrieves credit card information from the DB based on userid 4The userid is being taken directly from the session 4Hacker uses Fiddler to change the real value of userid, jsmith, to: - 4The ends the userid string context making it a blank string 4- is an SQL comment which forces the rest
26、 of the statement to be ignored Effectively ending the SQL statement context This is a SQL Injection vulnerability SELECT card_numb, card_type, limit FROM promo WHERE userid= + curUserName + SELECT card_numb, card_type, limit FROM promo WHERE userid=jsmith SELECT card_numb, card_type, limit FROM pro
27、mo WHERE userid=- Not Hacked: Hacked: IBM Software Group | Rational software 50 Positive security model 白名单黑名单 A positive security model defines what is acceptable input and rejects everything else 4Might reject valid data (false positive) if definition is not broad enough OReilly 4Can protect from
28、known and unknown (future) attacks 4Can affect usability. A negative security model defines what is unacceptable input and rejects it 4Addresses current (known) attacks and must be updated to handle future attacks 4Can not address the unknown (false negatives) Bad data is allowed through 4All negati
29、ve security models are potentially weak IBM Software Group | Rational software 51 10. Failure to Restrict URL Access 对于敏感的资源,应该通过特定的授权,通过业务逻辑控制进行访问 常见的攻击 4对于敏感信息的泄漏和修改 4窃取管理员信息 IBM Software Group | Rational software 52 管理员登陆 /admin/admin.aspx IBM Software Group | Rational software 53 一般用户登陆, 直接访问管理员
30、内容 admin jsmith IBM Software Group | Rational software 54 Failure to Restrict URL Access: 权限设置蔓延 对于特定内容需要特定的权限访问 4 非应用相干的文件不应被访问 (*.bak, “Copy Of”, *.inc, *.cs, ws_, etc.) 垂直的权限问题 4 匿名用户访问特定内容 4 一般用户访问管理员用户 水平的权限问题 4 用户访问其他用户的内容 4 比如银行账户可以访问其他人的账户信息 IBM Software Group | Rational software 55 水平权限蔓延的例
31、子。 IBM Software Group | Rational software 56 应用威胁应用威胁产生影响产生影响典型结果典型结果 Cross Site scriptingCross Site scripting盗取认证,信息泄漏, 伪装正常用户,或者控制用户操作 Injection FlawsInjection Flaws非法操作数据库/应用服 务器 直接窃取数据 Malicious Malicious 在服务器端执行命令控制 服务器 窃取服务器内容 Insecure Direct Object Insecure Direct Object ReferenceReference 超越
32、权限控制,访问敏感 的信息和资源 窃取敏感信息内容 Cross-Site Request Cross-Site Request ForgeryForgery 通过调用恶意操作,借助 正常用户进行攻击 通过后台逻辑,将正常帐户划入黑 客账户 Information Leakage Information Leakage and Improper Error and Improper Error HandlingHandling 获取详细的信息,方便进 行攻击 盗取操作系统信息,进一步攻击操 作 Broken Authentication Broken Authentication String
33、password = request.getParameter(password); / . String query = SELECT * from tUsers where + userid= + username + + AND password= + password + ; / . ResultSet rs = stmt.executeQuery(query); 白盒分析技术原理-SQL注入 User can change executed SQL commands Sink - a potentially dangerous method Source a method retur
34、ning tainted string IBM Software Group | Rational software 74 74 / . String password = request.getParameter(password); / . userid= + username + + AND password= + password + ; / . String username = request.getParameter(username); String query = SELECT + username ResultSet rs = stmt.executeQuery(query
35、); String username = request.getParameter(username); String query = SELECT * from tUsers where + ResultSet rs = stmt.executeQuery(query); 白盒分析技术工作原理 IBM Software Group | Rational software 75 75 / . String username = request.getParameter(username); String password = request.getParameter(password); /
36、. String query = SELECT * from tUsers where + userid= + username + + AND password= + password + ; / . ResultSet rs = stmt.executeQuery(query); / . String username = request.getParameter(username); String password = request.getParameter(password); / . String query = SELECT * from tUsers where + useri
37、d= + Encode(username) + + AND password= + Encode(password) + ; / . ResultSet rs = stmt.executeQuery(query); 应用安全漏洞的修复方式- SQL Injection alidation 修改程序,避免漏洞修改程序,避免漏洞 IBM Software Group | Rational software 76 76 组合测试和分析 准确性 无需源代码 代码覆盖率低 要求满足HTTP协议 支持多组件 需要可以部署的应用 代码/路径覆盖率高 受限于给定代码 不仅仅支持HTTP 支持部分应用的分析 按
38、照不同程序语言/框架提供支持 无需部署应用 黑盒分析技术 白黑分析技术 较少前提条件 误报率增加 类似黑客的真实攻击 集成/部署的漏洞无法发现 IBM Software Group | Rational software 77 全面的分析技术 静态代码分析静态代码分析 = 白盒测试白盒测试 - 发现代码级安全问题(代码级安全扫描) 动态测试动态测试 = 黑盒测试黑盒测试 - 向可运行的应用发送测试,模拟黑客 攻击 String Analysis - IBM专利申请的代码分析技术 - 代码分析的“扫描专家”,有效的帮助 用户配置扫描参数获得精确的结果。 复合分析复合分析 - 结合所有的测试技术,
39、改善报告的精 确性。 - 平衡各种技术,克服每一个单独技术 的弱点。 运行时分析运行时分析 - 当系统运行时,发现在执行代码中的安 全问题,同时监控系统级别,问题的表现。 支持的源代码包括: Java, JSP , C , C+ .NET (C#, ASP.NET, VB.NET) Classic ASP (JavaScript/VBScript) , Visual Basic 6 IBM Software Group | Rational software 78 内容 uWEB应用安全定位 uWEB应用基础技术 uWEB应用常见攻击手段 u使用AppScan测试WEB应用安全 uAppSca
40、n企业版 u常见的应用安全设置之重复页面过滤(冗余路径) IBM Software Group | Rational software 79 79 AppScan的核心价值:SDLC中的Web应用安全 需求需求编码编码构建构建安全安全生产生产质量质量 AppScan Standard (桌面版) AppScan Build ( 扫描代理) AppScan souce edition (桌面版) AppScan Tester (扫描代理和客户 端) 安全需求定义 (安全模版) AppScan OnDemand (SaaS) AppScan Enterprise / Reporting Conso
41、le (企业级安全检测和报告) 在测试平台进行统一在测试平台进行统一 的安全的安全/遵从测试遵从测试 在设计和开发之前在设计和开发之前 进行安全需求定义进行安全需求定义 安全审计和生产环安全审计和生产环 境监控的外包测试境监控的外包测试 安全安全/遵从测试遵从测试, 勘勘 查查, 控制控制, 循规循规, 审审 计计 将安全测试集成到将安全测试集成到 开发环境开发环境 应用安全最佳实践应用安全最佳实践 在构建过程进行自在构建过程进行自 动化的安全动化的安全/遵从遵从 测试测试 全生命周期的应用安全管理全生命周期的应用安全管理 IT安全管理的安全审计解决安全管理的安全审计解决 方案方案 从头开始解决安全从头开始解决安全 问题问题 IBM Software Group | Rational software 80 使用企业级AppScan 客户机客户机AppScan Enterprise目标系统目标系统 IBM Software Group | Rational software 81 8 Delta Analysis Select scans for analysis 4 Base scan 4 Target scan Report Content 4 Application UR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务周例会分析流程
- 职工心理健康提升培训心得体会
- 工业厂房施工进度计划及材料保障措施
- 矿山机械维护保养服务方案计划
- 语文培优生课题研究思路及措施
- 生态修复施工措施计划
- 教师团队合作强化计划
- 成人教育网上教学专题培训心得体会
- 2025年度酒店销售部渠道管理计划
- 六年级线上体育技能提升计划
- 人工水磨钻劳务合同标准文本
- 全过程工程咨询投标方案(技术方案)
- 风力发电对环境影响评估-深度研究
- 2025年防台防汛考试题及答案
- 《水利工程建设项目文件收集与归档规范SLT 824-2024》知识培训
- 蒙氏数学流程
- 病理切片HE染色
- 装修工程招标书范本
- 钢结构居间协议范本年
- 火灾自动报警系统的维护与保养
- 2025年江苏南京水务集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论