HP Fortify 规则抑制属性 C#

Posted

技术标签:

【中文标题】HP Fortify 规则抑制属性 C#【英文标题】:HP Fortify Rule Suppression Attribute C# 【发布时间】:2015-02-19 15:19:36 【问题描述】:

有没有办法使用 C# 中的属性来抑制或解决 HP Fortify 的发现?现有的模拟将是 Visual Studio 代码分析工具中的 SuppressMessage 属性。 (https://msdn.microsoft.com/en-us/library/ms244717(v=vs.110).aspx)

我想使用 C# 属性,例如 [SuppressMessage(..)] 来解决问题,因此我不必使用 Fortify 工具手动解决这些问题。在创建新基线或共享代码时,使用该工具变得相当乏味。

【问题讨论】:

当您使用 Fortify 工具尝试 SurpressMessage 时;它尊重那个属性吗? George,Fortify 工具中的抑制按钮有效,但不会向代码添加属性。相反,抑制存储在 .fpr 文件中。创建新基线时,我们必须重新抑制所有内容。我希望通过将抑制信息作为属性存储在代码中,可以消除重复工作。此外,我们想做的不仅仅是抑制,我们希望使用属性将发现作为“不是问题”或其他使用 C# 属性来解决。 这不是给窃贼一件隐形斗篷吗? :P @DavidPeden 好电话。如果他们有代码和 Fortify,他们可以很容易地找到相同的信息。但这个解决方案会让有恶意的人更容易一些。 【参考方案1】:

您是否尝试过将您的第一个 FPR 合并到新基线中?这会将抑制带入当前基线,因此您不必重复分析。这就是压制的设计方式。您也可以通过使用软件安全中心来实现这一点。

您也可以尝试将 Fortify 问题发布到他们的在线论坛https://protect724.hp.com。支持小组监控这些论坛。

【讨论】:

我们被告知这将在更大的代码重组工作(如大升级)中开始崩溃。因此,我们希望将我们的辛勤工作转化为更持久的格式,例如代码中的属性。有人建议,如果我们以较小的块工作,合并可能会更持久。 只要你经常扫描和经常合并,这种方法就可以正常工作。如果您对应用程序进行扫描,然后在大量代码已更改的情况下进行另一次扫描,则它可能会开始崩溃。这可能会导致 Fortify 用于跨扫描跟踪问题的问题 ID 可能会发生变化。即使在这种情况下,最好处理一些问题重叠而不是从头开始。 我很欣赏这个答案,这就是我可能要做的,但我仍然想知道如何在代码中做到这一点。有人告诉我这是可能的,但找不到任何文档。 Fortify 有 Java 注释,但没有 .NET。如果您查看 SCA 安装中的 Samples/advanced 文件夹,就会看到 Java Annotations 的一些示例代码。 嗨,埃里克。我已经开始a thread in the Fortify community forums 关于这个。你能看看那里吗?

以上是关于HP Fortify 规则抑制属性 C#的主要内容,如果未能解决你的问题,请参考以下文章

HP Fortify 路径操作验证规则

如何基于Fortify扫描结果使TFS构建失败

HP Fortify:ASP.NET 不良做法:存储在会话中的不可序列化对象

HP Fortify Cookie头操作错误

HP Fortify -- 注释方法参数

HP fortify XML 外部实体注入