一尘不染

渗透测试工具

sql

我们有成百上千个使用asp,.net和java开发的网站,并且我们为外部机构付出了很多钱,以对我们的网站进行渗透测试以检查安全漏洞。是否有任何(好的)软件(收费或免费)可以做到这一点?

或..有什么技术文章可以帮助我开发此工具?


阅读 188

收藏
2021-05-05

共1个答案

一尘不染

使用针对Web应用程序的自动测试工具,可以有两个不同的方向。

首先,有 商用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. 在笔测应用程序中使用“蜘蛛”工具查找应用程序中的所有页面,动作和处理程序。

  4. 对于蜘蛛发现的每个动态页面和每个HTML表单,请使用“模糊器”工具(Burp称其为“入侵者”)来使用无效输入来执行每个参数。大多数模糊测试工具都附带基本的测试字符串,其中包括:

    • SQL元字符

    • HTML / Java转义符和元字符

    • 这些的国际化变体规避输入过滤器

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

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

  5. 花几个小时来过滤产生的错误(一种形式的典型模糊测试可能会生成1000个错误),以寻找可疑的响应。

这是一种劳动密集型的“裸机”方法。但是,当您的公司拥有实际的应用程序时,裸机方法便会奏效,因为您可以使用它来构建回归测试套件,该套件将在每个应用程序的每个开发周期中像发条一样运行。这是一个胜利,原因有很多:

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

  • 因为您的测试将针对您的应用程序进行调整,所以您的团队将获得最大程度的准确和彻底的结果。

  • 它的成本将低于商用扫描仪,也将低于顾问。

当然,如果您走这条路,基本上就是在将自己变成公司的安全顾问。我不认为这是一件坏事。如果您不想要这些专业知识,WebInspect或Fortify不会为您提供任何帮助。

2021-05-05