Web安全性测试技术综述_于莉莉
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表1
Web 安全威胁类别 验证 授权 客户端攻击 命令执行 信息暴露 逻辑性攻击
2
静态分析技术
静态分析( static analysis ) 技术是指在不执行的情况下对
[9 ]
Web 应用安全威胁分类
概念
程序代码进行评估
, 是一种典型的白盒测试方法 。 其基本
思想是通过分析程序的运行流程来构建程序工作的数学模型, 然后对该数学模型进行审查以发掘程序的安全缺陷 。 常见的 静态分析方法主要包括词法语法分析 、 模式匹配分析、 数据流 分析、 补丁比较分析和模型化分析等 。 近年来, 静态分析技术 在 Web 应用安全性测试领域的研究成果主要包括以下内容 。 Jovanovic 等人[10] 实现了针对 PHP 语言的源代码静态分 该工具通过对 PHP 源代码执行静态数据流分析 析工具 Pixy, 来发掘 PHP 应用中 SQL 注入、 跨站点脚本等类型的漏洞, 具有 效率高、 误报率低等优点, 但是存在不能支持 PHP 的面向对象 特性以及无法解决源代码中文件包含等问题 。 类似的工具还 PHPSat 等。 包括 PHP String Analyzer、 Huang 等人[11] 将 Web 应用程序漏洞看做是一个安全信息 流问题( secure information flow problem) , 提出了源自类型系统 并阐述了它的可靠性。 和类型状态的基于格的静态分析算法, 同时, 他们 根 据 该 算 法 实 现 了 WebSSARI 工 具, 并 对 SourceForge. net 上 230 个开源 Web 应用进行了测试, 发现其中 69 个 有安全隐患。 Martin 等人[12] 提 出 了 一 种 目 标 导 向 的 模 型 检 验 ( goaldirected modelchecking) 方法来自动生成测试用例, 发掘由 Jabased ) 的漏洞。 va 开发的大型 Web 应用中基于污点数据( taint他们选取了源代码总行数达到 130 000 行的 3 个大型 Web 应 用进行实验, 发现其中存在的 10 个 SQL 注入漏洞和 13 个跨站 点脚本漏洞。
收稿日期: 2012-03-25 ; 修回日期: 2012-05-11 ( 90718018 )
造成 Web 应用安全漏洞的原因一方面是 Web 应用开发人 员经验不足、 对安全问题不够重视, 更重要的则是缺乏全面彻 软件测试 底的安全性测试。根据 IEEE 的软件工程标准术语, 被定义为: 使用人工和自动手段来运行或测试某个系统的过 程, 其目的在于检验它是否满足规定的需求或是弄清预期结果 与实际结果之间的差别
首先介绍了 Web 应用安全威胁分类, 总结了常见的 Web 应用 安全 漏洞; 然 后对当前 Web 安全性测试技术 的 研 究进行了全面概述, 比较了静态技术和动态技术各自的优缺点, 同时对在 Web 安全性测试中新 兴涌现的模糊 测 试技术进行了详细的介绍和总结; 最后指出了 Web 安全测试中有待解决的问题以及未来的研究方向。 关键词: Web 应用安全漏洞; 静态分析; 动态分析; 模糊测试 中图分类号: TP391 文献标志码: A 文章编号: 1001-3695 ( 2012 ) 11-4001-05 3695. 2012. 11. 001 doi: 10. 3969 / j. issn. 1001-
Survey on Web security testing technologies
2 YU Lili1, ,DU Mengshan3 ,ZHANG Ping1 ,JI Lingli4
( 1 . Dept. of Computer Science & Technology,Beihang University,Beijing 100191 ,China; 2 . Software Testing & Evaluation Center of the Second Artillery Force,Beijing 100085 ,China; 3 . Communication Navigation & Auto Command Institute,Air Force Equipment Academy,Beijing 100085 ,China; 4 . The Second Artillery Force Equipment Academy,Beijing 100085 ,China)
[5 ]
。该定义中提到的需求通常包括了
基金项目: 二炮研究院青年创新基金资助项目( 2011619 ) ; 国家自然科学基金资助项目
123@ 263. net ) ; 杜蒙杉( 1978-) , 作者简介: 于莉莉( 1978-) , 女, 河南开封人, 博士研究生, 主要研究方向为回归测试、 质性研究方法、 软件维护( xueer辽宁沈阳人, 工程师, 主要研究方向为软件工程; 张平, 工程师, 主要研究方向为软件测试; 纪琳俐, 高级工程师, 主要研究方向为软件安全.
。在 Web 应用测试中, 利用模糊测试技术有目的
地构造大量的有效或者无效的用户输入数据提交给 Web 应 用, 同时能够通过多种方式监测 Web 应用的行为, 进而分析任 何引起 Web 应用出现异常甚至崩溃的原因, 将有 助 于 发 掘 Web 应用中存在的安全漏洞和隐患, 最终达到提高 Web 应用 安全性的目的。
[2 ] mantec Internet security threat report 》 , 60% 以上的软件安全
漏洞是关于 Web 应用的。这些安全漏洞可能会导致 Web 应用 SQL 注入、 遭受各种攻击, 如拒绝服务攻击、 窃取用户信息等。 Web 应用的特殊 尽管防火墙、 入侵检测等技术已经比较成熟, 因为 Web 应用 性往往导致防范各类安全性问题的难度很大, 并且可能来自任何在线用户, 甚至包括 攻击通常来自应用层,
第 29 卷第 11 期 2012 年 11 月
计 算 机 应 用 研 究 Application Research of Computers
Vol. 29 No. 11 Nov. 2012
Web 安全性测试技术综述 *
1, 2 3 于莉莉 ,杜蒙杉 ,张 1 4 平 ,纪玲利
( 1. 北京航空航天大学 计算机科学与技术系,北京 100191 ; 2. 二炮软件测评中心,北京 100085 ; 3. 空军装备研 究院 通信导航与指挥自动化研究所,北京 100085 ; 4. 二炮装备研究院,北京 100085 ) 摘 要: 对 Web 应用程序进行有效彻底的测试是及早发现安全漏洞、 提高 Web 应用安全质量的一种重 要 手段。
[6 ]
攻击者可以利用这个漏洞发送特定请求给 Web 应用, 使 其执行任意代码。 5 ) 隐藏的字段 “查看源文件” 用户可以通过在 Web 浏览器中执行 等操作 然后手工修改这些字段的参数值, 再通 查看这些字段的内容, 过 URL 参数传回给服务器端。攻击者可以通过修改 HTML 源 文件中的这些隐藏字段达到恶意攻击的目的 。 6 ) 不恰当的异常处理 用户提交给 Web 应用的正常请求有可能频繁地产生错误 和异常情况, 如内存不足、 系统调用失败、 数据库链接错误等。 不恰当 的 异 常 处 理 会 将 详 细 的 内 部 错 误 信 息 如 堆 栈 追 踪 ( stack trace) 、 数据库结构以及错误代码等提供给攻击者, 给 Web 应用带来安全隐患。 7 ) 远程命令执行 Web 服务器可能简单地将用户提供的输入数据传递给其 他应用或操作系统本身 。 如果这些输入数据没有经过适当的 验证, 那么攻击者就可以直接执行目标系统上的命令 。 8 ) 远程代码注入 引起这个漏洞的主要原因是 Web 应用开发者不良的编码 习惯, 如允许将未经验证的用户输入传递给如 include ( ) 或 require( ) 这样的方法, 这将允许本地应用或远程的 PHP 代码 攻击者可将他们自己的 PHP 代码注 入 到 目 标 被包含进来, Web 应用中。
发展。在我国的中国互联网络信息中心( CNNIC ) 2012 年 1 月 《中国互联网络发展状况统计报告 》 发布的 中指出: 截止 2011 年 12 月, 网民规模达到 5 亿, 互联网普及率攀至 38. 3%
[1 ]
。
Web 应用也逐渐 互联网已经成为一项重要的社会基础设施, 社交网络、 博客、 论坛 成为软件开发的主流之一 。以电子商务、 社区为代表的 Web 应用已经在人们的生活中扮演了越来越重 并逐渐改变了人们的生活方式 。 要的角色, 但在 Web 应用中存在的各种安全漏洞也逐渐暴露出来, 这些漏洞可能导致 Web 应用遭受各种攻击, 严重影响了社会 《Sy稳定、 经济发展和人们的正常生活 。根据 Symantec 发布的
1
Web 应用安全漏洞
RFC 2828 将漏洞定义为系统设计 、 实现或者操作和管理
中存在的缺陷和弱点, 可能被攻击者所利用, 从而突破系统的 安全策略, 访问未授权的资源和数据
[7 ]
。 Web 应用安全漏洞
Web 则可以定义为一个 Web 系统的各个组件( 包括 Web 应用、 服务器、 数据库等) 在设计与实现以及安全策略上的漏洞 。 Web 应用安全协会 ( Web Application Security Consortium, WASC) [8] 的 Web 安全威胁分类( threat classification, TC ) 项目 将 Web 应用安全威胁分为如表 1 所示的六类。
· 4002·
计 算 机 应 用 研 究
到攻击者的恶意目的。 4 ) 缓冲区溢出
第 29 卷
软件功能、 性能、 可用性、 安全性等诸多方面, 而在传统 Web 应 测试人员更注重对正常功能的验证, 往往忽视 用测试过程中, 安全性方面的需求。 Web 应用作为一种特殊的软件, 面临着 比传统单机软件更为严峻的安全威胁和更为复杂的用户环境 。 因此在 Web 应用发布前对其进行全面彻底的安全性测试, 发 掘 Web 应 用 中 的 安 全 漏 洞 和 潜 在 的 安 全 隐 患 是 非 常 有 必 要的。 在 Web 应用领域中, 发现安全漏洞的常用技术方法有静 态分析技术和动态分析技术 。 模糊测试( fuzzing ) 技术作为软 近年来开始被应用到 Web 件测试研究中一种新的思路和方法, 应用测试领域。Web 应用存在的漏洞和安全隐患很大程度上 是由于对用户的某些输入数据缺乏相应的校验或异常处理机 制造成的
wenku.baidu.com
0
引言
近 20 年来, 互联网技术在全球范围内得到了持续快速的
已经通 过 认 证 的 用 户
[3 ]
。 开 放 式 Web 应 用 程 序 安 全 项 目
[4 ]
( open Web application security project, OWASP ) 在 2010 年公布 的 Web 应用十大安全漏洞 ( 图 1 ) 中, 排名靠前的注入( injection) 、 XSS ) 、 跨站点脚本( cross site scripting, 未能限制 URL 访问( failure to restrict URL access ) 等几种漏洞都是由于未能 正确处理用户请求而引起的 。
Abstract: A thorough test for Web application programs can be beneficial to finding security vulnerabilities promptly and improving the security quality of Web application. This paper firstly introduced the classification of Web application security threat and summarized common Web application security vulnerabilities. Then it comprehensively surveyed the state of Web security testing technology research,respectively compared weaknesses and merits of the static technologies and the dynamic technologies. At the same time,it introduced and concluded the detail of fuzzing,which was the new emerging technology in Web security testing. At last,this paper presented the problem to be solved and the future research direction. Key words: Web application security vulnerabilities; static analysis; dynamic analysis; fuzzing
Web 安全威胁类别 验证 授权 客户端攻击 命令执行 信息暴露 逻辑性攻击
2
静态分析技术
静态分析( static analysis ) 技术是指在不执行的情况下对
[9 ]
Web 应用安全威胁分类
概念
程序代码进行评估
, 是一种典型的白盒测试方法 。 其基本
思想是通过分析程序的运行流程来构建程序工作的数学模型, 然后对该数学模型进行审查以发掘程序的安全缺陷 。 常见的 静态分析方法主要包括词法语法分析 、 模式匹配分析、 数据流 分析、 补丁比较分析和模型化分析等 。 近年来, 静态分析技术 在 Web 应用安全性测试领域的研究成果主要包括以下内容 。 Jovanovic 等人[10] 实现了针对 PHP 语言的源代码静态分 该工具通过对 PHP 源代码执行静态数据流分析 析工具 Pixy, 来发掘 PHP 应用中 SQL 注入、 跨站点脚本等类型的漏洞, 具有 效率高、 误报率低等优点, 但是存在不能支持 PHP 的面向对象 特性以及无法解决源代码中文件包含等问题 。 类似的工具还 PHPSat 等。 包括 PHP String Analyzer、 Huang 等人[11] 将 Web 应用程序漏洞看做是一个安全信息 流问题( secure information flow problem) , 提出了源自类型系统 并阐述了它的可靠性。 和类型状态的基于格的静态分析算法, 同时, 他们 根 据 该 算 法 实 现 了 WebSSARI 工 具, 并 对 SourceForge. net 上 230 个开源 Web 应用进行了测试, 发现其中 69 个 有安全隐患。 Martin 等人[12] 提 出 了 一 种 目 标 导 向 的 模 型 检 验 ( goaldirected modelchecking) 方法来自动生成测试用例, 发掘由 Jabased ) 的漏洞。 va 开发的大型 Web 应用中基于污点数据( taint他们选取了源代码总行数达到 130 000 行的 3 个大型 Web 应 用进行实验, 发现其中存在的 10 个 SQL 注入漏洞和 13 个跨站 点脚本漏洞。
收稿日期: 2012-03-25 ; 修回日期: 2012-05-11 ( 90718018 )
造成 Web 应用安全漏洞的原因一方面是 Web 应用开发人 员经验不足、 对安全问题不够重视, 更重要的则是缺乏全面彻 软件测试 底的安全性测试。根据 IEEE 的软件工程标准术语, 被定义为: 使用人工和自动手段来运行或测试某个系统的过 程, 其目的在于检验它是否满足规定的需求或是弄清预期结果 与实际结果之间的差别
首先介绍了 Web 应用安全威胁分类, 总结了常见的 Web 应用 安全 漏洞; 然 后对当前 Web 安全性测试技术 的 研 究进行了全面概述, 比较了静态技术和动态技术各自的优缺点, 同时对在 Web 安全性测试中新 兴涌现的模糊 测 试技术进行了详细的介绍和总结; 最后指出了 Web 安全测试中有待解决的问题以及未来的研究方向。 关键词: Web 应用安全漏洞; 静态分析; 动态分析; 模糊测试 中图分类号: TP391 文献标志码: A 文章编号: 1001-3695 ( 2012 ) 11-4001-05 3695. 2012. 11. 001 doi: 10. 3969 / j. issn. 1001-
Survey on Web security testing technologies
2 YU Lili1, ,DU Mengshan3 ,ZHANG Ping1 ,JI Lingli4
( 1 . Dept. of Computer Science & Technology,Beihang University,Beijing 100191 ,China; 2 . Software Testing & Evaluation Center of the Second Artillery Force,Beijing 100085 ,China; 3 . Communication Navigation & Auto Command Institute,Air Force Equipment Academy,Beijing 100085 ,China; 4 . The Second Artillery Force Equipment Academy,Beijing 100085 ,China)
[5 ]
。该定义中提到的需求通常包括了
基金项目: 二炮研究院青年创新基金资助项目( 2011619 ) ; 国家自然科学基金资助项目
123@ 263. net ) ; 杜蒙杉( 1978-) , 作者简介: 于莉莉( 1978-) , 女, 河南开封人, 博士研究生, 主要研究方向为回归测试、 质性研究方法、 软件维护( xueer辽宁沈阳人, 工程师, 主要研究方向为软件工程; 张平, 工程师, 主要研究方向为软件测试; 纪琳俐, 高级工程师, 主要研究方向为软件安全.
。在 Web 应用测试中, 利用模糊测试技术有目的
地构造大量的有效或者无效的用户输入数据提交给 Web 应 用, 同时能够通过多种方式监测 Web 应用的行为, 进而分析任 何引起 Web 应用出现异常甚至崩溃的原因, 将有 助 于 发 掘 Web 应用中存在的安全漏洞和隐患, 最终达到提高 Web 应用 安全性的目的。
[2 ] mantec Internet security threat report 》 , 60% 以上的软件安全
漏洞是关于 Web 应用的。这些安全漏洞可能会导致 Web 应用 SQL 注入、 遭受各种攻击, 如拒绝服务攻击、 窃取用户信息等。 Web 应用的特殊 尽管防火墙、 入侵检测等技术已经比较成熟, 因为 Web 应用 性往往导致防范各类安全性问题的难度很大, 并且可能来自任何在线用户, 甚至包括 攻击通常来自应用层,
第 29 卷第 11 期 2012 年 11 月
计 算 机 应 用 研 究 Application Research of Computers
Vol. 29 No. 11 Nov. 2012
Web 安全性测试技术综述 *
1, 2 3 于莉莉 ,杜蒙杉 ,张 1 4 平 ,纪玲利
( 1. 北京航空航天大学 计算机科学与技术系,北京 100191 ; 2. 二炮软件测评中心,北京 100085 ; 3. 空军装备研 究院 通信导航与指挥自动化研究所,北京 100085 ; 4. 二炮装备研究院,北京 100085 ) 摘 要: 对 Web 应用程序进行有效彻底的测试是及早发现安全漏洞、 提高 Web 应用安全质量的一种重 要 手段。
[6 ]
攻击者可以利用这个漏洞发送特定请求给 Web 应用, 使 其执行任意代码。 5 ) 隐藏的字段 “查看源文件” 用户可以通过在 Web 浏览器中执行 等操作 然后手工修改这些字段的参数值, 再通 查看这些字段的内容, 过 URL 参数传回给服务器端。攻击者可以通过修改 HTML 源 文件中的这些隐藏字段达到恶意攻击的目的 。 6 ) 不恰当的异常处理 用户提交给 Web 应用的正常请求有可能频繁地产生错误 和异常情况, 如内存不足、 系统调用失败、 数据库链接错误等。 不恰当 的 异 常 处 理 会 将 详 细 的 内 部 错 误 信 息 如 堆 栈 追 踪 ( stack trace) 、 数据库结构以及错误代码等提供给攻击者, 给 Web 应用带来安全隐患。 7 ) 远程命令执行 Web 服务器可能简单地将用户提供的输入数据传递给其 他应用或操作系统本身 。 如果这些输入数据没有经过适当的 验证, 那么攻击者就可以直接执行目标系统上的命令 。 8 ) 远程代码注入 引起这个漏洞的主要原因是 Web 应用开发者不良的编码 习惯, 如允许将未经验证的用户输入传递给如 include ( ) 或 require( ) 这样的方法, 这将允许本地应用或远程的 PHP 代码 攻击者可将他们自己的 PHP 代码注 入 到 目 标 被包含进来, Web 应用中。
发展。在我国的中国互联网络信息中心( CNNIC ) 2012 年 1 月 《中国互联网络发展状况统计报告 》 发布的 中指出: 截止 2011 年 12 月, 网民规模达到 5 亿, 互联网普及率攀至 38. 3%
[1 ]
。
Web 应用也逐渐 互联网已经成为一项重要的社会基础设施, 社交网络、 博客、 论坛 成为软件开发的主流之一 。以电子商务、 社区为代表的 Web 应用已经在人们的生活中扮演了越来越重 并逐渐改变了人们的生活方式 。 要的角色, 但在 Web 应用中存在的各种安全漏洞也逐渐暴露出来, 这些漏洞可能导致 Web 应用遭受各种攻击, 严重影响了社会 《Sy稳定、 经济发展和人们的正常生活 。根据 Symantec 发布的
1
Web 应用安全漏洞
RFC 2828 将漏洞定义为系统设计 、 实现或者操作和管理
中存在的缺陷和弱点, 可能被攻击者所利用, 从而突破系统的 安全策略, 访问未授权的资源和数据
[7 ]
。 Web 应用安全漏洞
Web 则可以定义为一个 Web 系统的各个组件( 包括 Web 应用、 服务器、 数据库等) 在设计与实现以及安全策略上的漏洞 。 Web 应用安全协会 ( Web Application Security Consortium, WASC) [8] 的 Web 安全威胁分类( threat classification, TC ) 项目 将 Web 应用安全威胁分为如表 1 所示的六类。
· 4002·
计 算 机 应 用 研 究
到攻击者的恶意目的。 4 ) 缓冲区溢出
第 29 卷
软件功能、 性能、 可用性、 安全性等诸多方面, 而在传统 Web 应 测试人员更注重对正常功能的验证, 往往忽视 用测试过程中, 安全性方面的需求。 Web 应用作为一种特殊的软件, 面临着 比传统单机软件更为严峻的安全威胁和更为复杂的用户环境 。 因此在 Web 应用发布前对其进行全面彻底的安全性测试, 发 掘 Web 应 用 中 的 安 全 漏 洞 和 潜 在 的 安 全 隐 患 是 非 常 有 必 要的。 在 Web 应用领域中, 发现安全漏洞的常用技术方法有静 态分析技术和动态分析技术 。 模糊测试( fuzzing ) 技术作为软 近年来开始被应用到 Web 件测试研究中一种新的思路和方法, 应用测试领域。Web 应用存在的漏洞和安全隐患很大程度上 是由于对用户的某些输入数据缺乏相应的校验或异常处理机 制造成的
wenku.baidu.com
0
引言
近 20 年来, 互联网技术在全球范围内得到了持续快速的
已经通 过 认 证 的 用 户
[3 ]
。 开 放 式 Web 应 用 程 序 安 全 项 目
[4 ]
( open Web application security project, OWASP ) 在 2010 年公布 的 Web 应用十大安全漏洞 ( 图 1 ) 中, 排名靠前的注入( injection) 、 XSS ) 、 跨站点脚本( cross site scripting, 未能限制 URL 访问( failure to restrict URL access ) 等几种漏洞都是由于未能 正确处理用户请求而引起的 。
Abstract: A thorough test for Web application programs can be beneficial to finding security vulnerabilities promptly and improving the security quality of Web application. This paper firstly introduced the classification of Web application security threat and summarized common Web application security vulnerabilities. Then it comprehensively surveyed the state of Web security testing technology research,respectively compared weaknesses and merits of the static technologies and the dynamic technologies. At the same time,it introduced and concluded the detail of fuzzing,which was the new emerging technology in Web security testing. At last,this paper presented the problem to be solved and the future research direction. Key words: Web application security vulnerabilities; static analysis; dynamic analysis; fuzzing