正面交锋:渗透测试vs.漏洞扫描

为了发布合理安全的产品,供应商必须在软件开发生命周期的所有hth华体会最新官方网站阶段集成软件安全过程。这将包括产品架构和设计;实施和验证;实地部署和监测;然后再回到设计,以解决不断变化的威胁环境、市场需求和产品问题。

在这篇博文中,我们将重点关注安全过程的验证阶段,这意味着确保安全特性已经正确实现。这个过程包括找出产品中已知的弱点和漏洞以及相关的漏洞;识别安全漏洞;并全面了解产品的安全配置文件。这需要对成品作为一个整体进行处理,也需要对其单个组件进行处理,无论它们是完全在内部开发的、使用一些开放源代码构建的,还是从第三方供应商获得的。

无论您是将产品引入市场的供应商、另一方产品的集成商,还是使用您品牌下的现成产品的OEM/服务提供商,都适用相同的责任。以上各方均可对在产品软件中发现的安全问题承担责任。安全验证过程可以通过评估产品的安全状况和可能的风险,以及确定需要解决的问题来提供帮助。对于产品购买者,它可以提供有形的证据来证实(或反驳)供应商提供的安全信息。

然而,实现这些目标有不同的方法。传统方法涉及开发和验证阶段的内部质量保证;由独立的外部组织进行渗透测试;和外部认证。同时,较新的方法侧重于自动化测试和漏洞扫描.每一种方法都有其优点和缺点,其中一些或所有方法的结合可能是解决所有相关问题的必要条件。

为了了解什么适合您的特定需求,我们将详细研究每种方法。

致力于安全职能的质量保证

质量保证(QA)是开发过程的一个既定阶段,通常由内部团队执行。QA人员可能是开发团队的一部分,也可能是一个独立的团队,可能处于独立的管理之下,这使其具有一定的独立性。QA团队的结构可以影响其方法,它在多大程度上受到开发人员输入的影响,以及他们在实践中运行什么测试。

一个优秀的QA团队采取对抗的方法进行测试,试图找到破坏产品代码并使其失败的方法(消极测试)——与攻击者和钢笔测试人员所采取的方法非常相似。更常见的是,QA团队测试产品代码是否如预期那样执行所需的功能(积极测试)。

例如,在测试软件更新机制时,积极测试检查代码的健壮性和应用有效更新的能力。阴性测试包括检查无效的更新内容、错误的签名或无效的证书链。这些阴性病例更有可能出现在攻击场景中。

QA团队越是超负荷工作,他们就越专注于积极的测试,这是产品发布所必需的。这通常意味着他们倾向于牺牲阴性测试,这是验证产品安全所必需的。

为了恰当地执行安全功能,QA团队必须拥有专门的资源,并开发足够的安全专业知识。2022世界杯阿根廷预选赛赛程至少,组织中的其他安全专业人员必须定期参与进来,指导QA团队并就测试计划进行协作。然而,这减少了QA通常(也是必要的!)对功能测试的关注。

由于这些原因,很少有组织提供所需的QA资源来确保发布安全的连接产品。2022世界杯阿根廷预选赛赛程hth华体会最新官方网站相反,为了建立产品的安全地位,大多数组织选择外部渗透测试。

为深度分析进行渗透测试

渗透测试是由外部专家团队采用进攻性方法进行的安全验证。而不是验证产品功能,渗透测试只关注发现安全漏洞和弱点。

笔测员使用白盒或黑盒方法,它们对内部文档甚至产品源代码的暴露程度不同。在白盒方法中,测试人员可以访问内部信息,类似于内部QA团队。在黑箱方法中,他们接收到的都是实时产品和任何公开可用的文档——真实世界的攻击者可以访问的信息。

然后,钢笔测试人员设置一个测试环境,该环境至少包括产品,还可能包括整个系统实例,包括云或服务器帐户。这使得测试人员能够让产品通过各种上线和更新流程,并测试提交到云中无效的输入,而不会危及供应商的生产部署。

笔杆测试者的知识和技能倾向于进攻方,这有助于模拟真实世界攻击者的态度。为了产生一个完整的漏洞评估,他们检查产品的外部属性,比如网络接口和所有通过它的通信,以及内部属性,比如设备的固件映像内容。他们试图破坏产品,从较温和的攻击开始,如拒绝服务和数据暴露;加强他们的尝试,以更侵入性的方式获得访问和劫持控制;一直到对软件逻辑的永久修改,以及破坏云中的数据和/或逻辑的方法。

渗透测试比内部测试更有好处,因为测试人员的专业技能和组织独立性。尽管一份好的测试报告全面涵盖了产品的安全问题,但在实践中它可能会有所欠缺。因为大多数渗透测试都是用黑盒方法执行的,测试人员经常关注产品对外公开的组件,例如web应用程序和远程登录接口,而牺牲了脆弱的内部功能。此外,测试人员被鼓励在有限的时间内找到最令人印象深刻的漏洞,因此他们的发现往往是“容易摘的果实”,主要集中在容易实现的攻击上。深入分析产品的安全架构可能不符合他们的兴趣。

另一个缺点是渗透测试是高度主观的,很大程度上取决于钢笔测试者的经验。两个团队将根据各自的优势和工具等变量生成不同的报告。

好的渗透测试团队使用自动化工具,从端口扫描工具开始,例如nmap并以工具套件结束,例如MetasploitDetectify.自动化工具简化了最初的侦察过程,创建产品受攻击面的总体图像,为攻击者找到初始入口点,等等。软件扫描工具可以帮助笔测员找到他们可以在报告中使用的有价值的安全漏洞,包括第三方库和开源代码中的已知漏洞。这些信息可以让他们找到有希望进行更彻底调查的领域,或者帮助他们在产品代码中站稳脚跟,然后利用这些代码进行进一步的攻击。更高级的工具将会产生更复杂的结果,比如更深层次的架构问题。下面我们将更深入地研究自动化工具。

虽然渗透测试报告可以用作独立认证的印章,这可能有助于说服客户相信产品的安全地位,但通常最好使用专用流程来实现认证。我们将在下一节中回顾该选项。

获得独立的安全和合规性认证

有些市场需要独立实验室的认证或符合标准。在安全是一个大问题的地方,这是最明显的。例如,在汽车、医疗和工业部门,法律要求遵守不同的认证。对于嵌入式或物联网设备等联网产品,大多数市场仍然没有明确的网络安全合规要求,但监管机构正越来越多地引入相关立法和标签计划。hth华体会最新官方网站在其他垂直领域,认证可能不是强制性的,但仍然可以带来明显的竞争优势,特别是在客户对安全功能的需求不断增加的情况下。由于这些原因,供应商经常提交他们的产品进行独立认证。hth华体会最新官方网站

网络安全认证程序通常是围绕一个标准文档定义的。相关标准涵盖了从封闭的和专有的标准,通常是由认证组织自己开发的标准(如UL 2900标准系列),到免费和开放的标准(如NIST CMVP文件,ENISAIoTSF标准),以及介于两者之间的所有内容(例如,用于ISA / IEC 62443在电子邮件注册后可用)。

对于每个标准,供应商通常必须检查其内容并实现所有程序和技术需求。然后,供应商需要提交详细的证据,记录产品是如何符合标准的,或者在哪里偏离了标准。认证过程本身差别很大。在这个范围的一端,你有自我认证,它只需要供应商填写一份问卷,并公布答案,以便潜在的客户可以访问它。另一方面,合规问题涉及由独立组织进行测试,由实验室进行自己详尽的产品测试,并审查供应商提交的文档。

无论哪种方式,大部分的举证责任仍落在供应商身上,因为他们必须准备产品和附带的文档。这通常需要大量的开发工作,以及向认证机构和任何涉及的实验室或顾问支付费用。即使认证已经完成,当产品更新或产品线扩展时,由于认证可能需要维护或更新,可能会产生额外的成本。

网络安全标准的主题内容差异很大。有些标准专门针对供应商的文档和安全流程本身(有些甚至要求使用渗透测试或自动化工具来查找安全漏洞和已知的漏洞)。一些关注安全编码技术。其他的则更加技术性,因为它们涉及产品体系结构和配置,或者至少包括一些技术章节。

大多数标准将其技术要求保持在相对较高的水平,只有少数标准提供了满足这些要求所需的实际技术说明(关于一些积极的例子,请参阅独联体基准国防部斯蒂格或者是榴弹炮安全蓝图).这使得供应商在开始认证过程之前甚至很难估计他们的初始遵从程度,并且显著增加了完成认证所需的成本。这就是自动化工具可以帮助减少过程中涉及的工作和成本的地方。

为客观结果自动扫描漏洞

有许多类型的自动化工具,每一种都涵盖了产品安全验证的不同方面。有些使用动态方法,通过网络扫描正在运行的应用程序或设备,以诊断其web服务器和通信安全。其他人则使用静态方法,扫描产品的源代码或二进制图像。

动态工具需要一个运行的产品,而静态工具更灵活,因为它们只需要一个软件文件。另一个区别是动态工具仅限于产品的外部行为,而静态工具也检查软件的内部。静态工具可以涵盖安全编码实践,找到已知的安全漏洞和利用,识别潜在的零日漏洞,甚至突出从最低的应用程序层(引导加载程序和操作系统内部)到上层的各种配置和体系结构问题。

一个完善的工具可以运行数百甚至数千个单独的扫描或测试,静态测试的优点是可以在几分钟内产生手动渗透测试人员需要几天才能得到的结果。整个测试过程可以自动应用,并无缝集成到CI/CD流中,潜在地扫描每个产品和每个版本,如果没有自动化,这是不可能的。

一个好的自动漏洞扫描工具必须基于丰富的研究和开发,包括网络安全专家和渗透测试人员的重要贡献。这使得能够准确检测漏洞,并基于对威胁的深入理解智能地确定优先级。

自动化安全测试的另一个好处是结果不是主观的。相同的工具总是返回关于完整产品或软件组件的客观结果,这使得自动化工具对于外部认证非常有用。

如果自动化工具包含对外部标准的支持,则可以帮助进行认证。他们可以分析软件,并根据给定的标准输出差距报告;这提供了对实现遵从性所需的时间和努力的理解。这可以在几分钟或几小时内完成,而手动完成相同的过程可能需要数周的文档和分析。

安全验证是必须的

总而言之,安全验证是必要的,但是有不同的方法来实现它。手工方法可以产生优秀的结果,但需要一个专门的团队,以及时间和精力,有时会产生扭曲的结果,特别是在激励不一致的情况下。具有广泛产品组合和上市时间压力的供应商将不得不利用自动化测试来大规模验证其产品的安全性。hth华体会最新官方网站

独立认证有它自己的缺点,主要是高成本和冗长的工作过程,由于需要为每个版本重新进行认证,这使得情况更加糟糕。另一方面,独立认证有时是进入市场所必需的,而且可能是供应商可以用来获得竞争优势的最令人信服的安全质量标志。自动化工具也可以帮助进行认证。

随着涉及软件漏洞的新网络攻击不断成为头条新闻,监管机构越来越多地参与到强制安全规范中来,安全验证正成为迫切需要。因为自动化工具可以为广泛的产品提供按需的、详细的安全验证,它们在安全验证任务中的份额将继续上升。hth华体会最新官方网站

学习如何JFrogx光可以帮助将安全自动化作为软件开发生命周期的一部分。