如何编写Fortify自定义规则语言?

时间:2013-08-29 21:17:11

标签: java fortify

我正在使用Fortify创建一些海关规则,但我想知道是否有任何方法可以自定义规则,因此它们可以是特定于语言的。

原因是能够在Java和.NET中提供关于SQL注入和自定义引用的自定义描述,因此它们可以是特定于语言的。

似乎Fortify按类别映射自定义规则,但是当我们有两个软件包时会出现问题,一个用于.NET,另一个用于Java,并且它们都暴露了一个名为跨站点脚本的类别。

你们知道如何使这个规则特定于语言吗?

感谢。

1 个答案:

答案 0 :(得分:0)

使用规则的语言属性,如:

<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>