Java Path チェッカーの作成

Java Path チェッカーは、プログラムコードによってデータを追跡し、指摘を含む実行パスを見つけます。 具体的には、Java Path チェッカーはソースからシンクへのデータフローを追跡します。

Java Path チェッカーを作成するには、解析エンジンで追跡する対象のデータを決定する必要があります。条件を特定したら、JKB という Java のような宣言子を使用する Java knowledge base (ナレッジベース) ファイルの形式でその条件をエンジンに知らせる必要があります。

Java knowledge base (ナレッジベース) では、それぞれ以下を行なう呼び出しを指定する必要があります。

  • 危険性のあるデータを作成する。 これらがソースになります。NPE (NPE.RET など) の場合、ソースは null を返す呼び出しです。
  • ソースからの危険性を実際の指摘に変換する。 これらがシンクになります。NPE の場合、シンクはパラメーターを逆参照する呼び出しになります。

null を返す呼び出しと、それを逆参照する呼び出しの 2 つの呼び出しがある場合は、NPE 指摘があります。

オプションで、以下を行う呼び出しを指定できます。

  • 危険性のあるデータが確認され、安全であることを保証する。 これらがチェックになります。
  • 1 つのオブジェクトの危険なステートを他のオブジェクトに伝播する。 これらが props になります。