AppScan:软件安全的“充电器”
打开Developer版的AppScan(与Eclipse绑定,现在很多工具都时兴把自己插到Eclipse这个平台上),在Eclipse的Welcome页面中选择"Samples",进入"Rational AppScan Developer Edition sample"。

导入Sample项目之前需要安装和配置好Tomcat,步骤如下:
1、在Eclipse中选择Window -> Show View -> Servers打开Server视图。
2、在Server视图中定义一个新的Tomcat 5.5服务器:右键 -> New -> Server。在接下来的New Server向导中选择Apcahe tomcat v5.5服务器。
3、在添加和移除项目页中选择AltoroJ。
导入项目后,我们可以针对这个Sample项目新建一个安全测试,方法是选中AltoroJ项目,然后按右键,选择New ->AppScan security scan。

"Test Connection"按钮可用于测试"Application URL"中的页面是否可以访问到。"View licensed targets"按钮用于查看可扫描的对象是哪些,这与license有关,试用版的license可以扫描host在本机的页面。如果要同时扫描源代码,可以把"source code scan"也选择上。

接下来的操作可以参照右边的"Cheat Sheets"视图中的步骤指示来一步步完成,录制登录网站的过程中输入用户名"jsmith",密码"demo1234"。

简单扫描了一下Altoro Mutual网站的查询功能后,就发现了4种类型的安全漏洞。包括跨站脚本攻击漏洞(XSS)、Include Injection、SQL注入、信息泄漏。

对于SQL注入、XSS大家可能比较熟悉,对于Include Injection大家可能就比较陌生了,幸好AppScan在Advisory中给出了详细的解释:
It is possible to view the contents of any file (for example, databases, user information or configuration files) on the web server (under the permission restrictions of the web server user)
翻译过来就是:这个漏洞可能导致Web服务器上的数据库、用户信息或配置文件等文件内容的泄漏(即使是那些权限被Web服务器加以限制的用户也可以浏览到这些文件内容)。
进一步的,AppScan还告诉我们可能导致这个漏洞的原因是:用户的输入没有被很好地验证到。而且还给出一个JSP的例子,告诉我们漏洞是怎样在代码中引入的:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Vulnerable JSP</title>
</head>
<body>
<jsp:include page='<%= request.getParameter("val") %>' />
</body>
</html>
有如此详尽的漏洞成因分析,相信对于软件开发团队形成安全开发非常好的实践而言是非常有帮助的。