我在已经开发的源代码上运行了 fortify SCA,发现了几个问题。我应该如何解决这些问题?我应该采取什么方法?因为当我开始修复现有的漏洞时,可能会出现新的漏洞。如果我对此没有适当的方法,我可能会花很多时间绕圈子。请提出我应该采取的可行方法。
1 回答
TLDR:从最可怕的漏洞开始,沿着恐怖的清单往下走。
Fortify 提供了一个名为“Fortify Priority Order”的通用问题排名,Fortify 会根据您在项目描述中的条目进行调整。如果这是一个 Web 应用程序,您可能更喜欢使用 OWASP 十大属性之一。如果这是美国联邦政府的申请,您可以选择 FISMA 属性。就我个人而言,我更喜欢 Fortify Priority,因为它色彩丰富:减少关键问题的红色栏可能会令人欣慰。请放心,管理层将专注于那些引人注目的批评。一旦那些坏人走了,明亮的橙色高点就会引起他们的注意。
Fortify 还为您提供了一组过滤器,以帮助您集中精力。这些范围从“开发人员视图”中的基本要素到“关键暴露视图”中的增加数量,再到“安全审计员视图”中的所有血腥细节。尽管“开发人员视图”可能因其简洁而具有吸引力,但如果 QA 或审核员查看您的扫描,猜猜他们会打开哪一个。:-)
这些属性中的每一个都可以按优先级顺序(关键、高、中和低)和/或弱点类别进一步过滤。如果时间很短(并非总是如此!),您可以考虑修复明显可利用且易于补救的“低悬的果实”,而不是陷入复杂的重构工作。最后,您的安全运营中心可能会建议您关注特定的弱点,因为这些是他们在您的网络或主机上看到的攻击媒介。
重新扫描代码的时间取决于。如果应用程序很小并且可以快速完成扫描,那么立即重新扫描将最大限度地减少处理代码修复期间您“注入”的错误的难度。频繁的重新扫描减少了多个注入错误相互作用或以其他方式相互混淆的机会。频繁扫描可以更轻松地关注修复手头问题的影响。然而,随着扫描时间的增加,获得扫描结果的延迟从烦人到不切实际。由于扫描大型复杂应用程序的开销,大多数团队将在每次构建时扫描一次;因此,频率取决于它们的构建周期。管理通过频繁扫描生成的 FPR 文件的数量可能是一件小麻烦;你可能不
幸运的是,Fortify 允许您隐藏或抑制您认为无关紧要的问题。(请参阅我对 HP Fortify 的回答 — 注释方法参数。)尽管如此,您仍然会看到所有未处理的问题。