EN JP CN

knowledge base (ナレッジベース) のエントリ

knowledge base (ナレッジベース) のエントリ

kwcreatechecker を実行すると、--code オプションで指定した <CHECKER.CODE>/kb ディレクトリに knowledge-base (ナレッジベース) ファイルが作成されます。knowledge base (ナレッジベース) の注釈の例は .jkb ファイルで提供されます。

knowledge base (ナレッジベース) ファイルは、Java Path チェッカーの作成で最も重要なファイルです。Java knowledge base (ナレッジベース) ファイルを使用して、データフローの条件についてチェッカーに学習させます。拡張子が .jkb の単純なテキストファイルでチェッカーに対して条件を "宣言" します。それには、対象のメソッドをインクルードしてから、特定の Java knowledge base (ナレッジベース) (JKB) 注釈を使用して、マークアップすることで処理方法を指定します。

ソースでは、問題のある可能性のあるデータを生成するメソッドを特定し、knowledge base (ナレッジベース) ファイルにそのメソッドをコピーし、ソースとして注釈を付けます。次に、その問題のあるデータを使用するメソッドを特定し、そのメソッドをファイルにコピーし、シンクとして注釈を付けます。

ソースとシンクは同じデータで接続されます。指摘が発生するのは、シンクでソースからの汚染データが使用されているパスがある場合です。

SV チェッカーおよび Common チェッカーの場合、knowledge-base (ナレッジベース) (.jkb) ファイルで、適切な JKB 注釈を使用してソースおよびシンクとしてそれぞれ少なくとも 1 つのパスを指定する必要があります。これを行わないと指摘は報告されません。RLK チェッカーの場合、ソースのみを指定する必要があります。オプションで、チュートリアル - Java Path チェッカーの作成で示したとおり、チェックと prop も指定できます。

@Source および @Sink は、チェッカー作成に非常に重要な JKB 注釈です。Java knowledge base (ナレッジベース) リファレンスでは、すべての knowledge-base (ナレッジベース) 注釈について例を示して詳しく説明しています。