渗透测试工具

Sho*_*ban 45 sql security sql-injection

我们有数百个以asp,.net和java开发的网站,我们为外部机构支付了大量资金,对我们的网站进行渗透测试,以检查安全漏洞.有没有(好的)软件(付费或免费)这样做?

或..是否有任何技术文章可以帮助我开发这个工具?

小智 67

使用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应用程序的笔测试工具执行的操作:

  1. 通过代理登录应用程序

  2. 创建应用程序主要功能区域的"命中列表",并每次执行一次.

  3. 使用笔测试应用程序中的"spider"工具查找应用程序中的所有页面和操作以及处理程序.

  4. 对于每一个动态页面和每个HTML表单蜘蛛揭示,使用"模糊器"工具(打嗝称之为一个"入侵者")行使各项参数无效投入.大多数模糊器都带有基本的测试字符串,包括:

    • SQL元字符

    • HTML/Javascript转义和元字符

    • 这些国际化变体可以避开输入过滤器

    • 众所周知的默认表单字段名称和值

    • 众所周知的目录名,文件名和处理程序动词

  5. 花几个小时过滤产生的错误(一个表单的典型模糊运行可能会生成1000个),寻找可疑的响应.

这是一种劳动密集型的"裸机"方法.但是当你的公司拥有实际应用程序时,裸机方法会得到回报,因为你可以使用它来构建回归测试套件,这些套件将在每个应用程序的每个开发周期运行.由于一系列原因,这是一场胜利:

  • 您的安全测试将为每个应用程序花费可预测的时间和资源,从而允许您进行预算和分类.

  • 您的团队将获得最准确,最彻底的结果,因为您的测试将根据您的应用进行调整.

  • 它的成本低于商业扫描仪,而不是顾问.

当然,如果你走这条路,你基本上就是把自己变成了公司的安全顾问.我不认为这是件坏事; 如果您不想要这些专业知识,WebInspect或Fortify无论如何都不会对您有所帮助.

  • 优秀的回复. (5认同)