寻找安全顾问进行深入的代码审查?

信息安全 应用安全 Web应用程序 php 代码审查
2021-08-23 10:36:04

我们有一个 PHP 应用程序,我们知道它的编码实践很差(因为开发人员对 PHP / 编程基础没有很好的理解)。这可能会导致我们的代码即使在“逻辑级别”也存在严重的安全漏洞。

我如何/在哪里找到一个会进行手动代码审查的咨询团队,以真正了解我们试图做什么,然后看看我们哪里出错了/如何规避这个过程?我们尝试了一位顾问,该顾问似乎只是对代码进行了自动扫描,但这绝对没有增加任何价值。

这个问题基于完成手动安全代码审查 - 需要注意什么?- 我是同一个人,但我无法再访问我之前基于 cookie 的会话。

3个回答

代码审查可能是对顾问时间和预算的昂贵使用,以确保您物有所值,您可以考虑执行以下操作;

  1. 对您需要审查的代码进行分类这样您可能会发现您可以专注于完成您担心的特定角色的代码,例如授权/会话管理/特定业务逻辑等。如果你有剩余的预算,你可以转移到其他不太重要的代码领域。

  2. 估计所需的时间和精力作为一个非常粗略的估计,您可以使用 1k 行代码 = 一整天的审查(不包括报告)。不同的语言和代码复杂性会改变这一点,但它在查看预算要求时提供了一个很好的起点。

  3. 自动化作为辅助自动化代码扫描有它的位置,但只有在顾问知道如何配置工具并将其用作手动审查的辅助时才能增加价值。使用混合的自动手动方法可以加快参与并降低成本。顾问应该熟练掌握所审查的语言,以了解安全问题并消除任何误报,并确保没有误报通过。

  4. 对应用程序进行威胁建模如果您能够理解业务逻辑以及攻击者如何与您的应用程序交互,从而使您能够对潜在的攻击向量进行建模,那么这将有助于定义更具体和更有针对性的代码审查。然后可以将这种详细程度传递给顾问,以确保他们了解应用程序的工作原理,这将使他们能够提供量身定制的建议和指导,而不是通用的——这里有一些风险。

  5. 将调查结果放入应用程序的上下文中 在一天结束时,您需要就要修复的问题以及优先级顺序进行调用。挑战顾问提出明确的建议并提供证据以帮助了解代码审查的结果是否实际上是一种威胁 - 即发现易受攻击的代码位于后端并且它们不是用户交互的途径,那么这是一个与易受攻击的代码位于提供给最终用户的主要授权代码中相比,风险更低。这应该会减少内部时间,因此可以节省成本,可以抵消代码审查的成本。

这取决于您所在的国家/地区。但是有一些事情你应该注意。

首先,明确定义并记录现在想要的内容。您想要深入的安全审查,您想要(深入的?)质量审查吗?您想咨询顾问关于开发过程的意见/建议吗?您需要有关选择开发公司的建议吗?确保你明确表达你的所有期望并详细记录它们。

此外,一定要选择有能力的公司。请求参考并花一些时间找到一个好的。准备花一些钱,手动代码审查非常耗时。不要选择非常便宜的,因为它们不能仅仅因为时间=金钱而为您提供真正的解决方案,而且您需要时间进行深入的手动审查。

在这种情况下,您需要一家技术性很强的咨询公司,不要选择同时提供技术服务的管理咨询公司。

您需要考虑审查的广度和深度。所谓广度,我的意思是审查将涵盖哪些范围的风险/攻击/威胁。您应该从 OWASP 应用程序安全验证标准开始了解这里应该涵盖的内容。所谓深度,我的意思是顾问将在多大程度上验证每个区域都得到了充分的保护。在低端,自动工具扫描几乎没有保证。在高端,手动检查或实际测试用例应该基本上证明正确的防御措施已经到位,设计正确,并且可以在需要的任何地方使用。

不要相信代码审查必然比其他方法更耗时的论点。在许多情况下,这是快速、准确并以尽可能最佳的覆盖范围验证安全性的最有效方法。

请咨询一些参与 OWASP 的公司。他们在经济高效地验证 Web 应用程序的安全性方面拥有丰富的经验。