当前位置: 首页 > 服务器 > 架站技术 > Web服务器 > 在实际Web项目中应用Glass Box扫描

在实际Web项目中应用Glass Box扫描

2012-07-10 18:17 来源:风信网 作者:末信 人气指数: 我要评论

Glass Box 是 IBM 发布的一项领先混合测试技术,它增强了 Rational AppScan Standard Edition 的探索能力,提高了扫描效率和结果准确性。本文将跟读者分享这项新技术,帮助读者掌握在实际项目中应用 Glass Box 扫描。

Web 应用的自动化安全测试技术一般分为两类:黑盒安全测试和白盒安全测试。这两种方法孰优孰劣一直众口不一。广为公认的是,这两种方式各有优缺点,且具有良好的互补性。下面笔者简单介绍一下两种测试技术的原理,便于读者了解这两种技术的优缺点。

白盒安全测试技术

白盒安全测试有时候也被称为静态测试,主要基于源代码进行分析。因此,白盒安全测试不需要部署、运行整个应用。白盒安全测试主要分析代码中的函数及其调用关系,分析数据在其中的不同的执行路径。常见白盒安全测试工具主要采用污染分析(Taint Analysis)方法,它检测代码中所有可能的数据流,寻找黑客可以利用的输入数据,跟踪这些数据在整个应用中的使用过程,以及最终的数据去向,结合规则来判断当前数据流是否存在安全漏洞。例如,如果某个输入字段通过 HTTP 请求传入系统中,最终被编织到某个数据库查询语句被执行,白盒安全检测工具就能根据这个数据流分析出可能存在 SQL 注入漏洞。白盒安全测试的优势很明显,它通常能检查整个应用中的所有代码,分析代码中的所有执行路径,精确定位到具体代码行存在的安全漏洞。但它的缺点也比较多,譬如:

  • 基于白盒安全测试的原理,它能检测应用中代码的所有执行路径和数据流。但事实总跟理论有些差距,实际项目中白盒安全测试并不能真正做到这一点。譬如:如果代码中采取了反射机制,白盒安全就难以处理这类逻辑;如果代码中存在大量多线程并发,白盒安全测试也难以检测这些并发问题;此外,如果应用的控制流是基于配置文件实现的,譬如基于 Spring 配置,白盒安全测试工具也难以分析这类框架下完整的数据流。
  • 白盒安全测试仅侧重代码的分析,而不考虑中间件部署等问题。测试过程不依赖运行环境虽然简化了安全测试方法,但是存在很多基础中间件层的安全漏洞,白盒安全测试技术无法检测此类问题,可以说这是白盒安全测试先天性的不足。
  • 白盒安全测试引以为傲的一点是,它能测试代码中的所有执行路径。这其实是一把双刃剑。实际项目运行过程中,实际会执行到的路径跟理论存在的路径相比,会远远小于理论路径数量。读者可以找些代码进行度量分析,某些方法圈复杂度可能会 30 以上,但实际我们不一定为它写那么多单元测试用例,我们的单元测试用例往往只会覆盖到实际项目可能会命中的那些路径。因此,白盒安全测试工具往往会检测出大量的安全漏洞,其中大量问题事实上在运行期永远不会被执行到。

黑盒安全测试技术

黑盒安全测试有时候也被称为动态测试。这种方法主要测试应用的功能点,而不是分析内部代码。黑盒安全不需要测试人员具备编程能力,不需要测试人员了解代码实现的逻辑,因此常常是业界安全测试人员的首选安全测试方法。黑盒安全测试过程中,往往通过网页爬虫模拟正常用户访问应用站点,探测出应用站点的全部访问路径,然后基于探测结果生成安全测试用例。黑盒测试工具会分析安全测试用例触发的 HTTP 响应,判断其中是否存在某种安全漏洞。由此看出,黑盒测试时,被测站点往往被视为一个黑盒,我们不用去关心它如何运行,用何种语言编写。黑盒测试技术从用户的角度,或者说是从黑客的角度去分析测试站点,它所发现的问题往往更为精确,同时也能检测出中间件配置问题所导致的安全漏洞。黑盒安全测试同样也存在着一些不足。

  • 测试覆盖率较低。由于黑盒安全测试是从用户角度分析站点的 URL,而不是从源代码级分析方法的参数,因此,黑盒测试的测试覆盖率会小于白盒安全测试。对于黑盒安全测试工具而言,以下场景都很难自动探测出来。譬如:根据特定表单字段内容控制的不同页面逻辑;某个请求存在隐式的参数(即某些参数没公开,通过 URL 发现不到这些参数)等。
  • 黑盒安全测试无法发现某些安全漏洞。由于黑盒安全测试本质上基于服务器端的响应来验证漏洞是否存在。大多数安全漏洞可以通过这种方式分析出来,但不是所有漏洞都能如此。譬如:密码以明文存储,这种安全隐患就不能通过黑盒测试检测出来;系统存在默认调试密码的现象也无法通过黑盒测试检测出来。由此可见,只要被污染参数没有被写回 HTTP 响应,黑盒安全测试技术就无法探测出相应的漏洞。
  • 黑盒安全测试所发现的安全漏洞修复难度大。尽管黑盒安全测试所发现的安全漏洞容易被重现,但根据 HTTP 请求 / 响应找出存在安全漏洞的代码行并不是一件容易的事情。相信从事过相关安全漏洞修复的读者对此都感受深刻。
  • 黑盒安全测试效率较低。根据黑盒安全测试原理可以知道,黑盒测试工具往往会根据所探测出来的 URL 设计安全测试用例(也称为测试变体),譬如一个 URL 中存在三个参数,黑盒测试工具会为每个参数都设计大量的测试变体,如 XSS 变体、注入变体等等。随着已知漏洞数量的增加,需要设计的测试变体会越来越多。这样对于一个 URL 的测试变体往往会有好几十个,甚至上百个。这种测试方法不仅仅会对被测试站点带来较高的访问压力,对于测试机器而言,也会因多线程发送大量请求、分析大量响应导致测试性能低下。尤其对于一个大型站点来说,黑盒安全测试的性能往往比较低下,需要针对性的进行扫描性能调优。

由此可见,黑盒安全测试和白盒安全测试两种方法各具特色和不足,且两者具备较好的互补性。目前业界基本公认,两者的结合(即混合测试,Hybrid Test)是下一代安全检测技术的发展趋势。AppScan Standard v8.5(下文简称 AppScan)新发布了 Glass Box 安全测试技术(下文称之为"玻璃盒测试技术"),创新地在黑盒安全测试工具中引入了代码分析技术,实现了混合测试。下文笔者将跟读者分析这一新技术,探究它的运行原理,帮助读者掌握并运用到实际项目中去。

为您推荐: Web项目 扫描 Glass Box

其他相关的新闻

大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

芈月传 老司机玩法 萌乐网 黑科技 坐骑揭秘 三国令 铁血皇城 竞技场攻略 书剑恩仇录 披风玩法 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 哥们网 天书世界 奇珍商城 热血战歌 传奇宝藏抽奖 门徒 范伟打天下 打开方式 门徒获取玩法 三大萌宠简介 新手攻略 挂机系统简介 材料副本 大海战 鸵鸟 大黑 激情玩法 门徒战力提升 万世 强化属性 上古降魔 提升战力 装备攻略 九阴绝学 品质推荐 老干妈 激战来袭 大黑游戏 新服亮点 福利多多 画江山 资料片 玩家 九阴真经 江湖儿女 真实场景 现实 虚拟 随机副本 风色轨迹 听天由命 ppwan 神助攻 武林秘药 激活八大脉门 九天劫变 猎命格 天问 大型PVP 花千骨 激战更尽兴 网易mumu 手游玩家 安卓模拟器 安卓 单挑群战 武侠传说 女神 孙尚香专访 胸猛抱团 新游 占山为王 跨服城战 蜀山战纪 剑雨江湖 攻略 实时VR交互 七大女神代言 酷炫走江湖 世界四大杀手 玩家专访 三国经典 大制作 好玩网页游戏 盘点 宇宙霸主 境界玩法 莽荒纪 勇闯难关 镜像副本 荒漠霸主 装备精通 三大战役 鹌小彦奇谈