渗透testing工具

我们有数百个以asp,.net和java开发的网站,我们正在为一家外部机构花费大量资金对我们的网站进行渗透testing,以检查安全漏洞。 有没有(好的)软件(付费或免费)来做到这一点?

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

有几个不同的方向可以使用自动化testing工具的Web应用程序。

首先是商业networking扫描仪 ,其中HP WebInspect和Rational AppScan是最受欢迎的两种。 这些是“一劳永逸”,“即丢即用”的工具,您可以下载并安装在内部Windows桌面上,然后提供一个URL来蜘蛛网站,扫描众所周知的漏洞(即,已经击中了Bugtraq),并探讨了跨站点脚本和SQL注入漏洞。

其次, 有源代码扫描工具 ,其中Coverity和Fortify可能是两个最有名的。 这些是您在开发人员的桌面上安装的工具,用于处理您的Java或C#源代码,并查找众所周知的不安全代码模式,如不良inputvalidation。

最后是渗透testing工具 。 到目前为止,安全专家中最受欢迎的Web应用程序渗透testing工具是Burp Suite,您可以在http://www.portswigger.net/proxyfind它。; 其他的还有Spike Proxy和OWASP WebScarab。 再次,您将安装在内部Windows桌面上。 它将作为HTTP代理运行,并且您将浏览器指向它。 您将以普通用户的身份使用您的应用程序,同时logging您的操作。 然后,您可以返回到每个单独的页面或HTTP操作并针对安全问题进行探测。

在一个复杂的环境中,特别是如果你正在考虑任何DIY, 我强烈推荐渗透testing工具 。 原因如下:

商业networking扫描仪提供了很多“广度”,以及出色的报告。 然而:

  • 他们往往会错过的东西,因为每个应用程序是不同的。

  • 它们非常昂贵(WebInspect从十几万开始)。

  • 你正在为你不需要的东西付钱(比如九十年代已知的坏CGI的数据库)。

  • 他们很难定制。

  • 他们可以产生噪音的结果。

源代码扫描程序比Web扫描程序更彻底。 然而:

  • 它们比networking扫描仪还贵。

  • 他们需要源代码来操作。

  • 为了有效,他们经常要求你注释你的源代码(例如,selectinputpath)。

  • 他们倾向于产生误报。

商业扫描仪和源代码扫描仪都有一个坏习惯成为shelfware。 更糟糕的是,即使他们工作,他们的成本相当于获得咨询公司审计的1或2个完整申请。 如果你相信你的顾问,那么你可以保证从他们那里得到更好的结果。

渗透testing工具也有缺点:

  • 他们比使用防火的商业扫描仪更难使用。

  • 他们承担了一些Web应用程序漏洞的专业知识 – 你必须知道你在找什么。

  • 他们很less或根本没有正式的报告。

另一方面:

  • 它们要便宜得多 – 最好的Burp Suite,价格只有99EU,而且有免费的版本。

  • 他们很容易定制并添加到testing工作stream程中。

  • 他们更好地帮助您从内部“了解”您的应用程序。

以下是您使用基本Web应用程序的笔testing工具执行的操作:

  1. 通过代理login到应用程序

  2. 创build应用程序的主要function区域的“命中列表”,并运用一次。

  3. 使用笔testing应用程序中的“蜘蛛”工具来查找应用程序中的所有页面,动作和处理程序。

  4. 对于蜘蛛揭示的每个dynamic页面和每个HTML表单,使用“fuzzer”工具(Burp称之为“入侵者”)来对每个参数进行无效input。 大多数模糊器都带有基本的testingstring,包括:

    • SQL元字符

    • HTML / Javascript转义和元字符

    • 这些国际化的变种逃避inputfilter

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

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

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

这是一个劳动密集型的“裸机”方法。 但是,当您的公司拥有实际的应用程序时,裸机方法就会得到回报,因为您可以使用它来构build回归testing套件,并在每个应用程序的每个开发周期像钟表一样运行。 由于一系列原因,这是一场胜利:

  • 您的安全testing将花费每个应用程序的可预测的时间和资源,这使您可以进行预算和分类。

  • 您的团队将获得最准确和最彻底的结果,因为您的testing将会被调整到您的应用程序。

  • 这将比商业扫描仪成本低,顾问也less。

当然,如果你走这条路,你基本上把自己变成你公司的安全顾问。 我不认为这是一件坏事。 如果你不需要这些专业知识,WebInspect或Fortify不会帮你什么忙。

我知道你特别提到了笔测工具,但是由于这些工具已经得到了充分的回答(我通常会同时使用AppScan和训练有素的笔记本),所以我认为指出笔测不是唯一的方法来检查安全漏洞“,往往不是最有效的

源代码审查工具可以为您提供对代码库的更好的可视性,并发现pentesting不会有的许多缺陷。

这些包括Fortify和OunceLabs(昂贵的和许多语言),VisualStudio.NET CodeAnalysis(对于.NET和C + +,与VSTS免费,体面但不是很好),OWASP的LAPSE for Java(免费,体面不大),CheckMarx ,用于.NET和Java的fanTASTic工具,但开销很大)等等。

必须注意的一点很重要 – (大部分)自动化工具没有find所有的漏洞,甚至没有发现。 你可以期望自动化工具find大约35-40%的职业笔记本可以find的秘密; 自动化与手动源代码审查也是一样的。

当然,一个正确的SDLC(安全开发生命周期),包括威胁build模,devise评审等,将有助于更多…

你可以考虑香肠

就付费解决scheme,以及Nikto(免费解决scheme)和其他开源工具而言,我已经听说过有关SpiDynamics WebInspect的好消息。 Nessus是一个非常好的基础设施工具,以防你需要检查图层。 你可以用一些名为Nubuntu的工具(Auditor,Helix或者其他基于安全的分发工具)select一个live CD,然后Google为这个特定的工具编写一些教程。 始终,始终确保从本地networking进行扫描。 如果您在未经授权的情况下从WAN扫描一个盒子,则可能会冒着被数据中心阻挡的风险。 经验教训很难。 ;)

Skipfish,w3af,arachni,ratproxy,ZAP,WebScarab:所有免费和非常好的IMO

http://www.nessus.org/nessus/ – Nessus将帮助build议如何使您的服务器更好。 它不能真正testing自定义应用程序,但我认为插件相对容易创build自己的。

看看Rational App Scan (以前称为Watchfire)。 它不是免费的,但有一个很好的用户界面,是强大的,生成报告(定制和反对标准的合规框架,如Basel2),我相信你可以脚本到您的CI构build。

尼克怎么样 ?

对于这种types的testing,你真的想看看某种types的模糊testing仪。 SPIKE代理是几个Web应用程序的模糊testing器之一。 它是开源的,用Python编写。 我相信BlackHat或DefCON有几个使用SPIKE的video,但是我很难find它们。

有几个高端的专业软件包,将做networking应用程序testing等等。 CoreImpact是比较stream行的工具之一

如果您打算自行完成钢笔testing,我强烈build议您阅读大部分的OWASP项目文档 。 尤其是OWASP应用程序安全validation和testing/开发指南。 你需要彻底testing你的应用程序的思维方式与你正常的开发思维有点不同(不是说它应该是不同的,但通常是这样)。

大鼠代理呢?

半自动化的,主要是被动的networking应用程序安全审计工具,针对复杂的Web 2.0环境中现有的用户启动的stream量进行观察,针对潜在问题和安全相关devise模式进行了精确敏感的检测和自动注释优化。

检测和优先处理各种安全问题,如dynamic跨站点信任模型考虑,脚本包含问题,内容服务问题,XSRF和XSS防御不足等等

Ratproxy目前被认为支持Linux,FreeBSD,MacOS X和Windows(Cygwin)环境。

我知道你特别提到了笔测工具,但是由于这些工具已经得到了充分的回答(我通常会使用AppScan和训练有素的笔记本),所以我认为指出笔测不是唯一的方法来检查安全漏洞“,往往不是最有效的。

源代码审查工具可以为您提供对代码库的更好的可视性,并发现pentesting不会有的许多缺陷。

这些包括Fortify和OunceLabs(昂贵和许多语言),VisualStudio.NET CodeAnalysis(对于.NET和C + +,免费与VSTS,体面但不是很好),OWASP的LAPSE的Java(免费,体面不大),CheckMarx(不便宜,用于.NET和Java的fanTASTic工具,但开销很大)等等。

必须注意的一点很重要 – (大部分)自动化工具没有find所有的漏洞,甚至没有发现。 你可以期望自动化工具find大约35-40%的职业笔记本可以find的秘密; 自动化与手动源代码审查也是一样的。

当然,一个正确的SDLC(安全开发生命周期),包括威胁build模,devise评审等,将有助于更多…

以前黑客安全迈克菲安全。