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

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   本番コードにはデバッグエントリポイントを含めない

ERR01-J (L3)

SV.IL.DEV   設計情報のリーク

ERR03-J (L3)

SV.HTTP_SPLIT   HTTP 応答分割

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

ERR04-J (L3)

JD.FINRET   最終的に内部に戻る

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 が定数から来る場合の 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   ネイティブメソッドにはラッパーを定義する

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   メソッド引数の検証には決してアサートを使用しない

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   空の無限ループを使用しない

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   NaN と比較しようとしない

NUM09-J (L2)

JAVA.LOOP.CTR.FLOAT   浮動小数点変数をループカウンターとして使用しない

NUM10-J (L2)

JAVA.BIGDEC.FLOAT   浮動小数点リテラルから BigDecimal オブジェクトを構築しない

OBJ01-J (L1)

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

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

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

SV.STRUTS.PRIVATE   Struts フォーム: フィールドがプライベートではありません

SV.STRUTS.STATIC   Struts フォーム: 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   Struts フォーム: static フィールド

OBJ11-J (L1)

JAVA.CTOR.EXCEPT   コンストラクターが例外をスローすることに注意する

JAVA.FINAL.STATIC.VAR   非 final 静的変数の使用

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   シリアル化可能なクラスでは、メソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります

SER03-J (L2)

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

SV.SERIAL.NOWRITE   メソッド writeObject() をシリアル化可能なクラスに対して定義する必要があります

SER05-J (L1)

JAVA.SERIALIZE.INNER   内部クラスのインスタンスをシリアル化しない

SER06-J (L3)

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

SV.SERIAL.NOREAD   メソッド readObject() をシリアル化可能なクラスに対して定義する必要があります

SER09-J (L3)

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

SER12-J (L2)

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

SV.SERIAL.NOREAD   メソッド readObject() をシリアル化可能なクラスに対して定義する必要があります

THI00-J (L3)

JD.THREAD.RUN   'Thread.run' メソッドの明示的な呼び出し

THI01-J (L3)

JAVA.THREADGROUP   ThreadGroup メソッドを呼び出さない

THI03-J (L3)

JAVA.WAIT.IN.LOOP   wait() メソッドと await() メソッドは必ずループ内で呼び出す

VNA00-J (L2)

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

VNA01-J (L3)

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

VNA02-J (L2)

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