我正在使用 Fortify 创建一些海关规则,但我想知道是否有任何方法可以自定义这些规则,以便它们可以针对特定语言。
这样做的原因是能够在 Java 和 .NET 中提供关于 SQL 注入的自定义描述和自定义引用,以便它们可以是特定于语言的。
Fortify 似乎按类别映射自定义规则,但是当我们有两个包时出现问题,一个用于 .NET,另一个用于 Java,并且它们都公开了一个称为跨站点脚本的类别。
你们知道如何使这个规则特定于语言吗?
谢谢。
使用规则的语言属性,如下所示:
<StructuralRule formatVersion="3.8" language="dotnet">
<RuleID>1537A69A-F7EA-4D14-9F8F-0CC17806780A</RuleID>
<VulnKingdom>Input Validation and Representation</VulnKingdom>
<VulnCategory>SQL Injection</VulnCategory>
<DefaultSeverity>2.0</DefaultSeverity>
<Description></Description>
<Predicate><![CDATA[
FunctionCall fc: fc.function is [Function f: f.name == "set_CommandText" and
f.enclosingClass.supers contains [Class c: c.name == "System.Data.IDbCommand"]] and
not fc.enclosingFunction contains [FunctionCall call: call.function is
[Function f1: f1.name == "set_CommandType" and
f1.enclosingClass.supers contains [Class c1: c1.name == "System.Data.IDbCommand"]] and
call.arguments[0].constantValue == 4]
]]></Predicate>
</StructuralRule>