appscan策略_AppScan策略简介
IBM Security Appscan(AppScan)是一种自动化的动态安全测试工具。 它运行各种测试以探查已知的漏洞和弱点,并将结果格式化为报告,以帮助您了解应用程序中的漏洞。 这些报告还提供了更多信息,以在您实施必要的保护时为您提供帮助。
AppScan有多个版本,可满足整个软件开发生命周期(SDLC)中的Web应用程序安全测试需求。 在本文中,我们指的是AppScan Standard和Enterprise Edition,通常由开发人员,测试人员和安全团队使用。
AppScan包含许多测试,将近2000,并且每次更新都添加了新测试。 自然,并非所有应用程序都需要进行所有测试。 为了使事情变得容易,AppScan将测试分组到测试策略中。 通过选择策略,可以自定义针对应用程序运行的测试类型,从而使您可以针对应用程序和环境确定正确的测试。
本文详细解释了什么是测试和策略,研究了“开箱即用”的可用策略,并讨论了如何选择最适合您需求的策略。
了解策略,测试和变体
在最高级别,AppScan中的测试策略是安全性测试的集合,这些安全性测试用于评估Web应用程序的安全性。 不同的策略包含不同的测试集以实现特定的测试目标。 测试将探查应用程序,并尝试检测特定类型的漏洞。 测试可能会寻找一般漏洞,例如“跨站点脚本”,或者可能会寻找更具体的问题。
测试由一个或多个测试变体组成。 测试变体是旨在检测特定漏洞的特定过程。 一个测试中包含的测试变体数量从一个到超过100个。更一般的测试具有更多的变体。
例如,AppScan的测试可以检查“跨站点脚本”错误,其中包括105个不同的变体。 一种这样的变体是将用户输入修改为>'"<script>alert(1)</script>
。另一种变体可能是插入--><script>alert(1)</script>
到页面参数。这两个例子将是在给定的不同的场景的网络应用程序检测“跨站点脚本”是有用的。
配置测试策略时,可以选择适合您的应用程序和组织目标的测试和测试变体。
了解测试类别
AppScan根据测试是否具有侵入性,类型,严重性以及Web应用程序安全联盟(WASC)分类对测试进行分类。
侵入性测试
测试可以分为侵入性或非侵入性。 侵入式测试可探测诸如缓冲区溢出,命令执行和拒绝服务之类的漏洞。 侵入性测试通常是托管中间件或应用程序库中的错误,而不是应用程序团队引入的缺陷。 由于侵入式测试会破坏数据库或操纵服务器的配置,因此它们通常在隔离的测试环境中运行。 运行侵入性测试也可能导致服务器不稳定。
测试类型
测试可以是以下类型之一:
- 应用程序:这些测试检查通常与应用程序中非安全编码做法相关的漏洞。
- 基础结构:这些测试着眼于中间件(例如,Web服务器或数据库)的配置和已知的弱点。 他们测试已知的产品漏洞和不安全的配置。
- 第三方Web组件:与应用程序测试类似,这些测试查找非安全的编码做法,但针对库(例如Dojo或MyFaces)和应用程序(例如WordPress或Joomla)中发现的特定已知问题。 。
测试严重性
根据测试的CVSS或用户定义的严重性评分,将测试分为高,中,低或信息性测试。
- 高严重性测试将查找预期具有最大影响和最容易执行的漏洞。 示例包括跨站点脚本编写,SQL注入或路径遍历。
- 中级严重性测试寻找在执行过程中预期影响较小或要求更高难度的漏洞。 一些示例包括跨站点请求伪造,HTTP响应拆分或蛮力攻击。
- 低严重性测试查找的漏洞可能导致收集有关您的网站的信息或泄漏信息,例如路径披露,目录列表或信用卡模式。
- 信息严重性测试报告了各种条件,这些条件可能不是最佳条件,但没有达到严重性较低的水平。 一些示例包括在HTML源代码中找到的默认安装页面或电子邮件地址模式。
管理测试政策
在AppScan Standard Edition和AppScan Enterprise Edition之间,测试策略的管理方式有所不同,以下各节对此进行了描述。
使用AppScan Standard Edition管理测试策略
可通过AppScan工具栏访问策略。 从工具栏中选择扫描配置 ,如图1所示。
AppScan工具栏
要管理测试策略,请从“扫描配置”窗口中选择“ 测试”>“测试策略 ”,如图2所示。
扫描配置窗口
AppScan包含九种预配置的策略,可以根据需要选择或编辑它们。 为了在此过程中为您提供帮助,AppScan Standard将根据“ 管理测试策略”中描述的策略类别对策略设置进行分组。 您还可以使用“使用CVSS”过滤器查看具有用户指定的严重性级别的测试。 通过过滤器中的“已启用/已禁用”分组,您可以查看针对特定测试策略启用了哪些测试。
AppScan Standard版可让您创建高级测试策略,其中包含您在测试期间选择运行的确切测试集。 可以从AppScan Standard Edition导出这些高级测试策略,并将其导入到AppScan Standard Edition或AppScan Enterprise版本的其他实例中。
使用AppScan Enterprise Edition管理测试策略
在AppScan Enterprise Edition中,只有具有管理访问权限的用户才能管理测试策略。 要管理测试策略,请在管理控制台中打开“安全测试策略”页面,如图3所示。
安全测试策略窗口
在“安全测试策略”页面上,您可以创建新的简单策略,编辑现有策略,删除现有策略或导入新的高级测试策略。 您无法在AppScan Enterprise Edition中创建高级测试策略,但是可以在AppScan Standard Edition中创建高级测试策略,将其导出到文件,然后将其导入AppScan Enterprise版本。
单击策略名称以打开“策略详细信息”页面。 “策略详细信息”页面显示特定策略中定义的所有测试。 它还列出了一些配置设置,测试类型和侵入性测试选项。 您还可以通过“问题类型”页面调整各个测试的严重性。
预先配置的测试策略
AppScan带有九个预定义的策略。 表1总结了每个预定义策略中包含的测试类型。
测试政策类别
政策名称 | 包括应用测试? | 包括第三方测试? | 包括基础设施测试? | 包括侵入性测试? | 笔记 |
---|---|---|---|---|---|
完成 | 是 | 是 | 是 | 是 | 此政策包括所有测试。 它可能需要很长时间才能完成,并且侵入性测试可能会导致服务器不稳定 |
默认 | 是 | 是 | 是 | 没有 | 与“完整”测试类似,但没有可能导致应用程序或Web服务器崩溃的侵入性测试。 |
仅申请 | 是 | 没有 | 没有 | 没有 | 在开发周期中的任何时候都可以运行的良好策略。 此测试检查常见的Web应用程序漏洞,例如sql注入,未加密的凭据,正确的安全配置(例如ssl,会话或cookie)或跨站点脚本。 |
仅基础设施 | 没有 | 没有 | 是 | 没有 | 帮助评估操作系统,服务器和中间件的正确配置和安全性。 该测试面向系统管理员,是测试生产服务器的理想选择。 当您测试配置较宽松的开发环境时,它可能会产生误报。 |
仅第三方 | 没有 | 是 | 没有 | 没有 | 如果要部署第三方应用程序或库,则应使用此测试。 为了提高性能,您可以针对所使用的第三方应用程序自定义并且仅选择测试。 |
开发人员要点 | 部分的 | 没有 | 没有 | 没有 | 可用的最小策略(26个测试)。 它具有各种应用程序测试类型,具有很高的成功机会。 |
重要的事 | 部分的 | 部分的 | 部分的 | 没有 | 一项小型策略(229个测试),具有选定的高成功率测试。 此策略有利于初步分类,以了解对不同安全区域的关注程度。 由于该策略不全面,因此无法保证完整的安全性。 |
有创 | 部分的 | 部分的 | 部分的 | 是 | 该政策包括所有侵入性检查。 大多数侵入性测试分为两类:拒绝服务和缓冲区溢出。 它们利用应用程序或第三方中间件中的已知漏洞,并且可能崩溃或影响服务器的稳定性。 |
网页服务 | 部分的 | 部分的 | 部分的 | 没有 | 此策略包括与服务实现的常见方面相关的测试,例如参数验证和欺骗,会话和身份验证安全性,加密和配置。 |
选择测试策略
选择测试策略时,应考虑几个重要因素。 您需要考虑进行测试时软件开发生命周期的阶段。 测试人员的角色,职责和目标; 被测试的应用程序的类型; 以及执行测试的组织的成熟度。 以下各节将讨论这些因素中的每一个。
考虑发展阶段
通常认为,您在软件开发生命周期(SDLC)中越早发现缺陷,修复缺陷的成本就越低。 考虑到这一点,许多组织正在将安全测试从在SDLC结束时的大门变成早期阶段。
在SDLC的开发阶段,关注应用程序代码漏洞最为有用。 具体的政策选择可能会根据所进行的开发类型而有所不同。 在纯自定义开发方案中,好的选择是Developer Essentials和完整的Application Only测试策略。 如果您要自定义第三方代码和库,那么也必须对这些组件进行测试非常重要,并且您可能希望在测试策略中包括特定的,相关的第三方测试。 如果您的应用程序包含Web服务,则使用Web服务测试策略分别测试那些服务同样重要。
当一个应用程序进入SDLC的集成阶段时,您必须确保该应用程序具有生产配置设置,并确定各个组件相互交互时的安全性。 为了支持这些目标,开发阶段测试策略通常由扩展的基础结构测试组成,以验证系统和第三方组件配置或补丁程序级别。
SDLC的预生产阶段是进行深度测试的最佳场所,通常在此阶段使用更广泛的测试策略进行测试,包括侵入性测试。 预生产环境应配置为与生产服务器相同,并且这些配置应通过测试进行验证。 这通常也是进行合规性测试并使用符合组织合规性标准的策略的阶段。
实际上,已部署的应用程序通常不应接受此类测试。 部署的应用程序的自动动态测试可能会对生产环境的安全性(例如,可用性或完整性)产生负面影响。
考虑测试人员的责任
执行测试的个人的角色也是选择测试策略的一个因素。 安全测试通常由安全专家执行。 但是,如果在组织中建立了与Web应用程序漏洞和工具相关的适当程度的教育,则与其他角色分担安全测试责任是有好处的。
当开发人员执行安全测试时,他们最了解应用程序的内部代码。 为了利用这种见解,他们的测试通常集中在应用程序和代码漏洞上。 如果应用程序使用Web服务,则除Web服务测试策略外,供开发人员使用的良好测试策略还包括Developers Essentials和Application Only。 开发人员还可以利用AppScan Source Edition等静态分析工具。
当系统管理员和网站管理员执行安全测试时,通常会着重于测试基础结构和其他第三方组件。 这利用了他们对这些组件的配置的了解。
内部IS审核员和QA人员进行测试时,通常会支持合规性计划。 这些合规性计划通常基于内部策略,外部合规性要求,合同条款或源自SANS或OWASP等组织的标准。 通常针对此类测试的政策进行定制,以专门满足这些程序的目标。
考虑应用程序类型
被测试应用程序的类型也是确定哪种测试策略适合测试应用程序的因素。
Web开发中非常常见的模式是自定义和组合多个现成的组件(商业和开源)。 使用此模式时,不仅要使用“仅应用程序”测试,而且还要使用能够识别这些组件中特定已知漏洞的相关第三方测试来测试这些组件,这一点很重要。
在应用程序中使用Web服务时,通常会通过应用程序测试对Web服务进行某种程度的测试。 但是,使用Web服务测试策略专门测试它们以增加Web服务的覆盖范围也很重要。
考虑组织的成熟度
许多公司在开发安全测试能力中心的早期阶段就收购了AppScan。 如果安全能力团队不熟悉Web应用程序安全测试的实际情况,那么通常会使用过于广泛的测试策略(例如“完成”)来配置初始测试运行。 这可能会导致对自动动态安全性测试不满意,因为尝试运行“完整”测试可能会花费很长时间,报告许多误报,导致系统不稳定,并创建百科全书报告。 交付包含缺陷的大量报告会导致对测试工具甚至安全测试组织本身失去信心。
通常,从较小的测试策略开始进行初始工作通常是一个更好的主意。 通常,在此阶段,像Developer's Essentials或The Vital Few这样的测试策略是一个不错的选择,因为这些测试策略包括针对重要安全漏洞的测试,这些漏洞在以最小方式进行配置时通常具有较少的误报结果。 随着组织的Web应用程序安全测试能力和工具经验的增加,应扩展并定制此初始测试策略以专门支持组织目标。
结论
IBM Security AppScan是功能强大的工具,可帮助您识别和纠正Web应用程序中的安全漏洞。 了解何时以及如何使用默认策略以及每个策略的组件可以帮助您最大化AppScan的效率。
翻译自: https://www.ibm.com/developerworks/security/library/se-appscan/index.html