1

関数をチェックし、関数が表示されたときにフラグを立てるだけの強化ルールを作成しようとしていました。次のコードで Java ファイルを作成しました。

class t {
public static void main(String[] args) {
System.out.println("test");
}
}

class DialogError {
int getErrorCode() {
return 10;
}}

私が書いた fortify ルールの意図は、getErrorCodeinsideの発生を検出DialogErrorし、同じフラグを立てることです。

<?xml version="1.0" encoding="UTF-8"?>
<RulePack xmlns="xmlns://www.fortifysoftware.com/schema/rules">
    <RulePackID>FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF</RulePackID>
    <Name><![CDATA[my test ruleset]]></Name>
    <Version>1.0</Version>
    <Description><![CDATA[Rule to identify an instance of getErrorCode]]></Description>
    <Rules version="3.10">
        <RuleDefinitions>
            <SemanticRule formatVersion="3.10" language="java">
                <MetaInfo>
                    <Group name="Accuracy">5.0</Group>
                    <Group name="Impact">5.0</Group>
                    <Group name="RemediationEffort">5.0</Group>
                    <Group name="Probability">5.0</Group>
                </MetaInfo>
        <Label>label lololololol</Label>
                <RuleID>01239X14-ASDF-41AA-BDFA-DF134asdf79A</RuleID>
                <Notes><![CDATA[Checks if DialogError class if found yo]]></Notes>
                <VulnKingdom>Security Features</VulnKingdom>
                <VulnCategory>Function is evil</VulnCategory>
                <VulnSubcategory>Some ol category</VulnSubcategory>
                <DefaultSeverity>3.0</DefaultSeverity>
                <Description formatVersion="3.2">
                    <Abstract><![CDATA[YO FIRING YO]]></Abstract>
                    <Explanation><![CDATA[YOYOYOYOYO]]></Explanation>
                    <Recommendations><![CDATA[YOYOYOYOY]]></Recommendations>
                    <References>
                        <Reference>
                            <Title><![CDATA[YO]]></Title>
                            <Source><![CDATA[YOYOYOYOYOYO]]></Source>
                        </Reference>
                    </References>
                </Description>
                <Type>default</Type>
                <FunctionIdentifier>
                    <ClassName>
                        <Value>DialogError</Value>
                    </ClassName>
                    <FunctionName>
                        <Value>getErrorCode</Value>
                    </FunctionName>
                    <ApplyTo implements="true" overrides="true" extends="true"/>
                </FunctionIdentifier>
            </SemanticRule>
        </RuleDefinitions>
    </Rules>
</RulePack>

私は何を間違っていますか?

4

1 に答える 1

2

まず、テスト コードが不適切な関数を呼び出すことはありません。これが修正されたコードです。

class t {
public static void main(String[] args) {
System.out.println(DialogError.getErrorCode());
}
}

class DialogError {
int getErrorCode() {
return 10;
}}

次に、SKU タグがルール定義にありません。カスタム ルール エディタは、XML ビュー ウィンドウに誤った XML を表示します。

<?xml version="1.0" encoding="UTF-8"?>
<RulePack xmlns="xmlns://www.fortifysoftware.com/schema/rules">
  <RulePackID>FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF</RulePackID>
  <SKU>SKU-8F66A5A4-CFDA-419B-97D8-4BF26B78EED9</SKU>
  <Name><![CDATA[my test ruleset]]></Name>
  <Version>1.0</Version>
  <Description><![CDATA[Rule to identify an instance of getErrorCode]]></Description>
  <Rules version="3.10">
    <RuleDefinitions>
      <SemanticRule formatVersion="3.10" language="java">
        <MetaInfo>
          <Group name="Accuracy">5.0</Group>
          <Group name="Impact">5.0</Group>
          <Group name="RemediationEffort">5.0</Group>
          <Group name="Probability">5.0</Group>
        </MetaInfo>
        <Label>label lololololol</Label>
        <RuleID>01239X14-ASDF-41AA-BDFA-DF134asdf79A</RuleID>
        <Notes><![CDATA[Checks if DialogError class if found yo]]></Notes>
        <VulnKingdom>Security Features</VulnKingdom>
        <VulnCategory>Function is evil</VulnCategory>
        <VulnSubcategory>Some ol category</VulnSubcategory>
        <DefaultSeverity>3.0</DefaultSeverity>
        <Description formatVersion="3.2">
          <Abstract><![CDATA[YO FIRING YO]]></Abstract>
          <Explanation><![CDATA[YOYOYOYOYO]]></Explanation>
          <Recommendations><![CDATA[YOYOYOYOY]]></Recommendations>
          <References>
            <Reference>
              <Title><![CDATA[YO]]></Title>
              <Source><![CDATA[YOYOYOYOYOYO]]></Source>
            </Reference>
          </References>
        </Description>
        <Type>default</Type>
        <FunctionIdentifier>
          <ClassName>
            <Value>DialogError</Value>
          </ClassName>
          <FunctionName>
            <Value>getErrorCode</Value>
          </FunctionName>
          <ApplyTo implements="true" overrides="true" extends="true"/>
        </FunctionIdentifier>
      </SemanticRule>
    </RuleDefinitions>
  </Rules>
</RulePack>
于 2012-10-15T17:54:21.223 に答える