Klocwork Java チェッカーにマッピングされた CERT Java ID

Klocwork Java チェッカーに対する CERT Java ID の以下のマッピングは、コミュニティで開発されたマッピングです。

ガイドライン チェッカー名および説明
DCL02-J(L3)

JD.UNMOD   変更できないコレクションの変更

ENV03-J(L1)

SV.CLEXT.POLICY   クラスが 'java.security.Policy' を拡張しています

ERR01-J(L3)

SV.IL.DEV   設計情報の漏洩

ERR03-J(L3)

SV.HTTP_SPLIT   HTTP 応答分割

SV.SSRF.URI   無効化されたユーザー入力に基づく URI です。

ERR04-J(L3)

JD.FINRET   finally 内の return

ERR05-J(L3)

JD.UNCAUGHT   例外がキャッチされていません

ERR07-J(L2)

EXC.BROADTHROWS   過度に広範な範囲に対応するメソッドが宣言をスローしています

ERR08-J(L1)

JD.CATCH   ランタイム例外のキャッチ

ERR09-J(L3)

SV.UMC.EXIT   System.exit() および Runtime.exit() メソッドの呼び出しをサーブレット コードで使用すべきではありません

UMC.EXIT   System.exit() メソッドの呼び出しは好ましくありません

EXP00-J(L2)

RI.IGNOREDCALL   immutable オブジェクトに対して呼び出されたメソッドから返された値が無視されています

RR.IGNORED   戻り値が無視されています

EXP01-J(L3)

NPE.COND   null チェック後の null ポインタを参照しています

NPE.CONST   null 定数が代入されたオブジェクトを参照しています

NPE.RET   メソッドから返された null ポインタを参照しています

NPE.RET.UTIL   マップまたはコレクションから返されたnull 値を参照しています

NPE.STAT   戻り値の null ポインタ 参照 (統計情報)

REDUN.EQNULL   equals() に式と null が指定された疑わしい呼び出しです(決して true にはなりません)

EXP02-J(L2)

JD.EQ.ARR   配列に対する 'equals' の呼び出し

EXP03-J(L2)

CMP.OBJ   == によるオブジェクトの比較

FIO01-J(L3)

SV.PERMS.HOME   パーミッションを設定せずに、ユーザーのホームディレクトリに作成されるファイル

SV.PERMS.WIDE   広すぎるパーミッション

FIO03-J(L2)

SV.DOS.TMPFILEDEL   JVM のライフタイムの間一時ファイルが存続します

SV.DOS.TMPFILEEXIT   一時ファイルが存続します

FIO04-J(L3)

RLK.AWT   AWT オブジェクトが終了時に破棄されていません

RLK.FIELD   フィールドに保存されたシステム リソースがリークする可能性があります

RLK.HIBERNATE   Hibernate オブジェクトが終了時に閉じられていません

RLK.IMAGEIO   ImageIO ストリームが終了時に閉じられていません

RLK.IN   入力ストリームが終了時に閉じられていません

RLK.JNDI   JNDI コンテキストが終了時に閉じられていません

RLK.JPA   {3} オブジェクトが終了時に閉じられていません。

RLK.MAIL   JavaMail オブジェクトが終了時に閉じられていません

RLK.MICRO   Java Microedition 接続が終了時に閉じられていません

RLK.NIO   NIO オブジェクトが終了時に閉じられていません

RLK.OUT   出力ストリームが終了時に閉じられていません

RLK.SOCK   ソケットが終了時に閉じられていません

RLK.SQLCON   Sql 接続が終了時に閉じられていません

RLK.SQLOBJ   Sql オブジェクトが終了時に閉じられていません

RLK.SWT   SWT オブジェクトが終了時に破棄されていません

RLK.ZIP   Zip ファイルが終了時に閉じられていません

FIO13-J(L3)

SV.IL.SESSION   セッション ID のログ記録

FIO16-J(L3)

SV.EXEC.PATH   信頼できない検索パス

SV.PATH   パスまたはファイル名のインジェクション

SV.PATH.INJ   ファイル インジェクション

SV.TMPFILE   一時ファイルのパス改ざん

IDS00-J(L1)

SV.DATA.DB   データ インジェクション

SV.SQL   SQL インジェクション

SV.SQL.DBSOURCE   未検証のデータベースからの情報がSQL文に使用されています

IDS01-J(L1)

SV.TAINT   不正データ

SV.TAINT_NATIVE   不正データがネイティブ コードに渡されています

SV.XSS.DB   クロスサイト スクリプティング (Stored XSS)

SV.XSS.REF   クロスサイト スクリプティング (Reflected XSS)

IDS03-J(L2)

SV.LOG_FORGING   ログの偽造

IDS07-J(L1)

SV.EXEC   プロセス インジェクション

SV.EXEC.DIR   プロセス インジェクション。作業ディレクトリ

SV.EXEC.ENV   プロセス インジェクション。環境変数

SV.EXEC.LOCAL   プロセス インジェクション。ローカル引数

SV.EXEC.PATH   信頼できない検索パス

IDS16-J(L1)

JAVA.SV.XML.INVALID   XML は Java オブジェクトにマーシャリング解除される前に検証されません

IDS17-J(L2)

SV.XXE.DBF   XML 外部実体攻撃の可能性

SV.XXE.SF   XML 外部実体攻撃の可能性

SV.XXE.SPF   XML 外部実体攻撃の可能性

SV.XXE.TF   XML 外部実体攻撃の可能性

SV.XXE.XIF   XML 外部実体攻撃の可能性

SV.XXE.XRF   XML 外部実体攻撃の可能性

JNI01-J(L1)

SV.LOADLIB.INJ   'loadLibrary' メソッドに対する信頼できない呼び出し

LCK05-J(L3)

SV.SHARED.VAR   サーブレットから static 変数への非同期アクセス

LCK07-J(L3)

JD.LOCK   取得したロックを解放していません

LCK09-J(L3)

JD.LOCK.NOTIFY   ロックが保持された状態で 'notify' メソッドが呼び出されています

JD.LOCK.SLEEP   ロックが保持された状態で 'sleep' メソッドが呼び出されています

JD.LOCK.WAIT   ロックが保持された状態で 'wait' メソッドが呼び出されています

LCK10-J(L3)

JD.SYNC.DCL   ダブルチェック ロッキング

MET09-J(L3)

EHC.EQ   クラスが hashCode() を定義していますが、equals() は定義していません

EHC.HASH   クラスが equals() を定義していますが、hashCode() は定義していません

MET12-J(L2)

FIN.EMPTY   空の finalize() メソッドは削除する必要があります

FIN.NOSUPER   finalize() メソッドの実装は super.finalize() を呼び出す必要があります

JD.UMC.FINALIZE   'Object.finalize' メソッドが明示的に呼び出されています

JD.UMC.RUNFIN   runFinalizersOnExit() が呼び出されています

SV.EXPOSE.FIN   finalize() メソッドは、public ではなく protected アクセス修飾子を使用する必要があります

MSC00-J(L2)

SV.WEAK.TLS   脆弱な SSL/TLS プロトコルは使用しないでください。

MSC02-J(L1)

SV.RANDOM   安全ではない乱数ジェネレータの使用

MSC03-J(L1)

SV.PASSWD.HC   ハードコードされたパスワード

SV.PASSWD.HC.EMPTY   空のパスワード

SV.PASSWD.PLAIN   プレーンテキストのパスワード

SV.PASSWD.PLAIN.HC   プレーンテキストのパスワード

SV.SENSITIVE.DATA   暗号化されていない機密データが書き込まれます

SV.SENSITIVE.OBJ   暗号化されていない機密データを持つオブジェクトが保存されます

MSC05-J(L3)

JD.INF.ALLOC   無限ループ内での割り当てです。

SV.DOS.ARRSIZE   不正なサイズが配列割り当てに使用されています

SV.INT_OVF   不正データが整数オーバーフローを引き起こす可能性があります

MSC06-J(L3)

JD.CONCUR   ConcurrentModificationException の可能性があります

MSC11-J(L2)

SV.IL.SESSION   セッション ID のログ記録

SV.IL.SESSION.CLIENT   HttpServletRequest.getRequestedSessionId メソッドは使用しないでください。

SV.SESSION.FIXATION.COOKIE   cookie は、セッションの固定化に対して脆弱であってはなりません

SV.SPRING.FIXATION   セッション固定化保護が無効になっています。

NUM00-J(L3)

SV.INT_OVF   不正データが整数オーバーフローを引き起こす可能性があります

OBJ01-J(L1)

SV.EXPOSE.FIELD   static フィールドは悪意のあるコードによって変更される可能性があります

SV.EXPOSE.IFIELD   インスタンス フィールドは final にする必要があります

SV.EXPOSE.MUTABLEFIELD   static mutable フィールドは悪意のあるコードによってアクセスされる可能性があります

SV.STRUTS.PRIVATE   ステータス フォーム: non-private フィールド

SV.STRUTS.STATIC   ステータス フォーム: static フィールド

OBJ04-J(L2)

SV.EXPOSE.RET   内部表現が露出される可能性があります

SV.EXPOSE.STORE   メソッドが mutable オブジェクトへの参照を保存しています

OBJ05-J(L1)

SV.EXPOSE.RET   内部表現が露出される可能性があります

SV.EXPOSE.STORE   メソッドが mutable オブジェクトへの参照を保存しています

OBJ09-J(L2)

CMP.CLASS   クラス名による比較が行われています

OBJ10-J(L2)

SV.EXPOSE.FIELD   static フィールドは悪意のあるコードによって変更される可能性があります

SV.STRUTS.STATIC   ステータス フォーム: static フィールド

SEC00-J(L2)

SV.PRIVILEGE.MISSING   呼び出されるメソッドは doPrivileged ブロック内にあってはなりません

SEC03-J(L1)

SV.CLASSLOADER.INJ   クラスローダー URL インジェクション

SV.CLEXT.CLLOADER   クラスが 'java.lang.ClassLoader' を拡張しています

SV.CLLOADER   クラスローダが直接使用されています

SER01-J(L1)

SV.SERIAL.SIG   Serializable クラスのメソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります

SER03-J(L2)

SV.SERIAL.NOFINAL   シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOWRITE   メソッド writeObject() を Serializable クラスに対して定義する必要があります

SER06-J(L3)

SV.SERIAL.NOFINAL   シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD   メソッド readObject() を Serializable クラスに対して定義する必要があります

SER09-J(L3)

SV.SERIAL.OVERRIDE   readObject() メソッドからオーバーライド可能なメソッドを呼び出さないでください

SER12-J(L2)

SV.SERIAL.NOFINAL   シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD   メソッド readObject() を Serializable クラスに対して定義する必要があります

THI00-J(L3)

JD.THREAD.RUN   'Thread.run' メソッドが明示的に呼び出されています

VNA00-J(L2)

SV.SHARED.VAR   サーブレットから static 変数への非同期アクセス

VNA01-J(L3)

SV.SHARED.VAR   サーブレットから static 変数への非同期アクセス

VNA02-J(L2)

SV.SHARED.VAR   サーブレットから static 変数への非同期アクセス