IBM Rational AppScan 是一个面向 Web 应用安全检测的自动化检测工具,使用它可以自动化检测 Web 应用的安全漏洞。从 7.5 版本以后,Rational Appscan 提供了扩展机制 —— AppScan eXtension Framework。本文通过一个具体的实例展示了如何利用 AppScan eXtension Framework,在 Microsoft® Visual Studio® 2008 中基于 C# 来创建 Rational AppScan 插件从而增强 Rational AppScan 的应用能力。
AppScan 简介
IBM Rational AppScan 是一个面向 Web 应用安全检测的自动化工具,使用它可以自动化检测 Web 应用的安全漏洞,比如跨站点脚本攻击(Cross Site Scripting Flaws)、注入式攻击(Injection Flaws)、失效的访问控制(Broken Aclearcase/" target="_blank" >ccess Control)、缓存溢出问题(Buffer Overflows)等等。这些安全漏洞大多包括在 OWASP(Open Web Application Security Project,开放式 Web 应用程序安全项目)所公布的 Web 应用安全漏洞中
|
AppScan eXtension Framework 介绍
Rational AppScan 在 7.5 版本以后提供了一个扩展框架,称为 AppScan eXtension Frameowrk。利用 Appscan 提供的 eXtension framework,用户可以非常简单的为 AppScan 提供扩展。扩展的内容几乎没有任何限制,可以从一个简单的通知程序到一个非常复杂的安全分析工具,使得用户可以根据自己的需要来客户化 AppScan。AppScan eXtension Framework 支持多种语言,如 Python、C#、C++、J#、Jscript 等等,本文主要介绍如何利用 C# 进行扩展。
下面是 AppScan eXtension Framework 的扩展接口 IExtensionLogic 的类图:
IExtensionLogic 是 AppScan 扩展的入口接口,它包含两个方法:
void Load(IAppScan appScan, IAppScanGui appScanGui, string extensionDir)
扩展点初始化方法,一般来说,都是在 AppScan 启动时调用。
参数:
appScan
:AppScan SDK 的主接口 IAppScan 的实例对象。IAppScan 接口包含了 AppScan 扫描测试引擎的主要功能对象,通过使用这个接口的实例,就可以调用 AppScan 的主要功能,它一般作为客户端访问 AppScan 的入口。如该接口中的 Scan 属性,它实际上是 IScanManager 的实例对象。上面的类图列举了 IScanManager 中的部分方法,比如 Scan() 方法用来开始对目标网站的同步扫描,ScanAsync() 和 Scan() 方法功能相同,只不过是异步方法,ResetExploereAndTestData() 用来清空网站扫描和安全测试结果等等。
appScanGui
:AppScan 的图形界面元素入口,它实际上是 AppScan 扩展在 AppScan 界面上的体现,它使得 AppScan 的扩展点用户界面入口能够出现在 AppScan 界面的菜单(Extensions Menu、ToolsMenu、IssueContextMenu 和 AppTreeNodeContextMenu),工具栏,显示面板等位置。
extensionDir
:传入参数,用来确定扩展点的安装地址,方便扩展程序 IO 操作。 ExtensionVersionInfo GetUpdateData(Edition edition, Version targetAppVersion)
用来获取当前扩展的版本更新信息,如果没有更新数据或不支持这项功能,可以返回空值。
参数:
Edition
:当前 AppScan 的版次,是一个枚举类型,包含测试版,开发版等等 .
targetAppVersion
:当前版本信息,比如本文就是以 7.7 版本为例 .