我们有数百个以asp,.net和java开发的网站,我们为外部机构支付了大量资金,对我们的网站进行渗透测试,以检查安全漏洞.有没有(好的)软件(付费或免费)这样做?
或..是否有任何技术文章可以帮助我开发这个工具?
使用Web应用程序的自动化测试工具,您可以使用几个不同的方向.
首先,有商业网络扫描仪,其中HP WebInspect和Rational AppScan是最受欢迎的两种.这些是"一体化","即发即忘"的工具,您可以在内部Windows桌面上下载并安装这些工具,然后提供一个URL来蜘蛛网站,扫描众所周知的漏洞(即,已经打了Bugtraq),并探测跨站点脚本和SQL注入漏洞.
其次,有源代码扫描工具,其中Coverity和Fortify可能是最着名的两个.这些是您在开发人员桌面上安装的工具,用于处理Java或C#源代码,并查找众所周知的不安全代码模式,例如糟糕的输入验证.
最后,还有渗透测试工具.到目前为止,安全专业人员中最受欢迎的Web应用程序渗透测试工具是Burp Suite,您可以在http://www.portswigger.net/proxy找到它.其他包括Spike Proxy和OWASP WebScarab.同样,您将在内部Windows桌面上安装它.它将作为HTTP代理运行,您将指向浏览器.您将以普通用户的身份使用您的应用程序,同时记录您的操作.然后,您可以返回到每个单独的页面或HTTP操作,并针对安全问题进行探测.
在复杂的环境中,特别是如果你正在考虑任何DIY,我强烈推荐渗透测试工具.原因如下:
商业网络扫描仪提供了大量的"广度",以及出色的报告.然而:
他们往往会错过一些东西,因为每个应用都是不同的.
它们很昂贵(WebInspect以数十万的方式开始).
你需要支付你不需要的东西(比如90年代已知的不良CGI数据库).
他们很难定制.
它们会产生嘈杂的结果.
源代码扫描程序比Web扫描程序更彻底.然而:
它们比网络扫描仪更贵.
它们需要源代码才能运行.
为了有效,它们通常要求您注释源代码(例如,选择输入路径).
他们倾向于产生误报.
商用扫描仪和源代码扫描仪都有成为搁置软件的坏习惯.更糟糕的是,即使它们有效,它们的成本也相当于获得咨询公司审核的1或2个完整申请; 如果您信任您的顾问,您可以保证从他们那里获得比从工具更好的结果.
渗透测试工具也有缺点:
它们比使用即用型商用扫描仪更难使用.
他们假设一些Web应用程序漏洞的专业知识 - 您必须知道您在寻找什么.
他们很少或根本没有正式报告.
另一方面:
它们的价格要便宜得多 - 最好的,Burp Suite,售价仅为99EU,并且有免费版本.
它们易于定制并添加到测试工作流程中.
他们在帮助您从内部"了解"您的应用程序方面做得更好.
以下是使用基本Web应用程序的笔测试工具执行的操作:
通过代理登录应用程序
创建应用程序主要功能区域的"命中列表",并每次执行一次.
使用笔测试应用程序中的"spider"工具查找应用程序中的所有页面和操作以及处理程序.
对于每一个动态页面和每个HTML表单蜘蛛揭示,使用"模糊器"工具(打嗝称之为一个"入侵者")行使各项参数无效投入.大多数模糊器都带有基本的测试字符串,包括:
SQL元字符
HTML/Javascript转义和元字符
这些国际化变体可以避开输入过滤器
众所周知的默认表单字段名称和值
众所周知的目录名,文件名和处理程序动词
花几个小时过滤产生的错误(一个表单的典型模糊运行可能会生成1000个),寻找可疑的响应.
这是一种劳动密集型的"裸机"方法.但是当你的公司拥有实际应用程序时,裸机方法会得到回报,因为你可以使用它来构建回归测试套件,这些套件将在每个应用程序的每个开发周期运行.由于一系列原因,这是一场胜利:
您的安全测试将为每个应用程序花费可预测的时间和资源,从而允许您进行预算和分类.
您的团队将获得最准确,最彻底的结果,因为您的测试将根据您的应用进行调整.
它的成本低于商业扫描仪,而不是顾问.
当然,如果你走这条路,你基本上就是把自己变成了公司的安全顾问.我不认为这是件坏事; 如果您不想要这些专业知识,WebInspect或Fortify无论如何都不会对您有所帮助.