CERT ID (Java)

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

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

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

ENV03-J (L1)

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

ENV06-J (L1)

JAVA.DEBUG.ENTRY  TRANSLATE ME: Production code must not contain debugging entry points

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 外部実体攻撃の可能性

JNI00-J (L3)

JAVA.NATIVE.PUBLIC  TRANSLATE ME: Define wrappers around native methods

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  ダブルチェック ロッキング

MET01-J (L2)

JAVA.ASSERT.ARG  TRANSLATE ME: Never use assertions to validate method arguments

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 プロトコルは使用しないでください。

MSC01-J (L3)

JAVA.INF.LOOP.EMPTY  TRANSLATE ME: Do not use an empty infinite loop

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  不正データが整数オーバーフローを引き起こす可能性があります

NUM07-J (L3)

JAVA.COMPARE.NAN  TRANSLATE ME: Do not attempt comparisons with NaN

NUM09-J (L2)

JAVA.LOOP.CTR.FLOAT  TRANSLATE ME: Do not use floating-point variables as loop counters

NUM10-J (L2)

JAVA.BIGDEC.FLOAT  TRANSLATE ME: Do not construct BigDecimal objects from floating-point literals

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 フィールド

OBJ11-J (L1)

JAVA.CTOR.EXCEPT  TRANSLATE ME: Be wary of letting constructors throw exceptions

JAVA.FINAL.STATIC.VAR  TRANSLATE ME: Use of nonfinal static variable

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 クラスに対して定義する必要があります

SER05-J (L1)

JAVA.SERIALIZE.INNER  TRANSLATE ME: Do not serialize instances of inner classes

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' メソッドが明示的に呼び出されています

THI01-J (L3)

JAVA.THREADGROUP  TRANSLATE ME: Do not invoke ThreadGroup methods

THI03-J (L3)

JAVA.WAIT.IN.LOOP  TRANSLATE ME: Always invoke wait() and await() methods inside a loop

VNA00-J (L2)

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

VNA01-J (L3)

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

VNA02-J (L2)

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