Klocwork チェッカーにマッピングされた支払カード業界データセキュリティ基準 ID
以下の表では、支払カード業界データセキュリティ基準 (PCI DSS) バージョン 3.2.1 ID が Klocwork チェッカーにマッピングされています。PCI DSS は、カード会員のデータセキュリティを促進、強化するとともに、一貫したデータセキュリティ対策の広範な採用を全世界的に促進する目的で開発されました。PCI DSS は、アカウントデータを保護するように考案された、技術要件と運用要件のベースラインとして機能します。
C と C++
ID | チェッカー名および説明 |
---|---|
6.5.1 |
LS.CALL GUI 関数におけるローカライズされない文字列の不審な使用 LS.CALL.STRING GUI 関数におけるローカライズされない文字列の不審な使用 SV.BRM.HKEY_LOCAL_MACHINE レジストリ操作関数の 'hkey' とパラメーターしての HKEY_LOCAL_MACHINE の使用 SV.CODE_INJECTION.SHELL_EXEC シェル実行へのコマンドインジェクション SV.DLLPRELOAD.NONABSOLUTE.DLL DLL プリロードのハイジャック ベクターの可能性 SV.DLLPRELOAD.NONABSOLUTE.EXE プロセスインジェクションベクターの可能性 SV.DLLPRELOAD.SEARCHPATH DLL の検索に SearchPath の使用は推奨されません SV.FIU.PROCESS_VARIANTS 危険なプロセス作成の使用 SV.FMTSTR.GENERIC 書式文字列の脆弱性 SV.LPP.CONST 危険な関数についての安全でないマクロの使用 SV.LPP.VAR 危険な関数についての安全でないパラメーターの使用 SV.PCC.CONST CreateFile の呼び出し時に安全でない (定数) テンポラリファイルの名前が使用されています SV.PCC.INVALID_TEMP_PATH CreateFile の呼び出し時に安全でないテンポラリファイルの名前が使用されています SV.PCC.MISSING_TEMP_CALLS.MUST CreateFile の呼び出し時に安全なテンポラリファイルの名前が欠落しています SV.PCC.MISSING_TEMP_FILENAME CreateFile の呼び出し時にテンポラリファイルの名前が欠落しています SV.PCC.MODIFIED_BEFORE_CREATE CreateFile の呼び出し前にテンポラリファイルが変更されます SV.PIPE.CONST パイプのハイジャックの可能性 SV.PIPE.VAR パイプのハイジャックの可能性 SV.SIP.CONST 危険な関数についての安全でないマクロの使用 SV.SIP.VAR 危険な関数についての安全でないパラメーターの使用 SV.STR_PAR.UNDESIRED_STRING_PARAMETER ファイルパスの不要な文字列 SV.TAINTED.ALLOC_SIZE メモリ割り当て時の未検証の整数の使用 SV.TAINTED.BINOP バイナリ演算での未検証整数値の使用 SV.TAINTED.CALL.BINOP バイナリ演算での未検証整数値の使用 SV.TAINTED.CALL.DEREF 未検証ポインターの逆参照 SV.TAINTED.CALL.INDEX_ACCESS 関数呼び出し時の配列インデックスとしての未検証の整数の使用 SV.TAINTED.CALL.LOOP_BOUND 関数呼び出しのループ条件での未検証の整数の使用 SV.TAINTED.DEREF 未検証ポインターの逆参照 SV.TAINTED.INDEX_ACCESS 配列インデックスとしての未検証の整数の使用 SV.TAINTED.INJECTION コマンドインジェクション SV.TAINTED.LOOP_BOUND ループ条件での未検証の整数の使用 SV.TAINTED.PATH_TRAVERSAL パストラバーサルでの未検証データの使用 SV.TAINTED.SECURITY_DECISION セキュリティ決定 SV.TOCTOU.FILE_ACCESS ファイル アクセス時の作成日時/使用日時の競合状態 SV.USAGERULES.PERMISSIONS 特権の昇給の使用 SV.USAGERULES.PROCESS_VARIANTS 危険なプロセス作成関数の使用 UNINIT.CTOR.MIGHT コンストラクタにおける未初期化の変数の可能性 UNINIT.CTOR.MUST コンストラクタにおける未初期化の変数 UNINIT.HEAP.MIGHT 未初期化のヒープの使用の可能性 UNINIT.HEAP.MUST 未初期化のヒープの使用 UNINIT.STACK.ARRAY.MIGHT 未初期化の配列の可能性 UNINIT.STACK.ARRAY.MUST 未初期化の配列 UNINIT.STACK.ARRAY.PARTIAL.MUST 一部が未初期化の配列 UNINIT.STACK.MIGHT 未初期化の変数の可能性 UNINIT.STACK.MUST 未初期化の変数 |
6.5.2 |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.ITERATOR バッファオーバーフロー - 配列インデックスが範囲外の可能性 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.TAINTED 未検証の入力によるバッファオーバーフロー ABV.UNICODE.BOUND_MAP 文字関数のマッピング時のバッファオーバーフロー ABV.UNICODE.FAILED_MAP 関数のマッピングに失敗します ABV.UNICODE.NNTS_MAP 文字関数のマッピング時のバッファオーバーフロー ABV.UNICODE.SELF_MAP 関数のマッピングに失敗します ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 NNTS.MIGHT バッファオーバーフロー - 非 NULL 終了文字列 NNTS.MUST バッファオーバーフロー - 非 NULL 終了文字列 NNTS.TAINTED 未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列 RABV.CHECK 境界チェック前のインデックスの不審な使用 RN.INDEX 負の値のチェック前のインデックスの使用は問題となる可能性があります SV.FMT_STR.BAD_SCAN_FORMAT 入力書式指定子エラー SV.STRBO.BOUND_COPY.OVERFLOW バインドされた文字列コピーでのバッファオーバーフロー SV.STRBO.BOUND_COPY.UNTERM 次の文字列演算でバッファオーバーフローの可能性があります SV.STRBO.BOUND_SPRINTF バインドされた sprintf でのバッファオーバーフロー SV.STRBO.UNBOUND_COPY バインドされていない文字列コピーでのバッファオーバーフロー SV.STRBO.UNBOUND_SPRINTF バインドされていない sprintf でのバッファオーバーフロー SV.TAINTED.ALLOC_SIZE メモリ割り当て時の未検証の整数の使用 SV.TAINTED.CALL.INDEX_ACCESS 関数呼び出し時の配列インデックスとしての未検証の整数の使用 SV.TAINTED.FMTSTR 書式文字列での未検証データの使用 SV.TAINTED.INDEX_ACCESS 配列インデックスとしての未検証の整数の使用 SV.UNBOUND_STRING_INPUT.CIN バインドされていない文字列入力についての cin の使用法 SV.UNBOUND_STRING_INPUT.FUNC バインドされていない文字列入力の使用法 |
6.5.3 |
HCC ハードコードされた資格情報の使用 HCC.PWD ハードコードされたパスワードの使用 HCC.USER ハードコードされたユーザー名の使用 RCA 危険な暗号化アルゴリズムが使用されています RCA.HASH.SALT.EMPTY 空のソルトを持つ一方向性ハッシュの使用 SV.PCC.CONST CreateFile の呼び出し時に安全でない (定数) テンポラリファイルの名前が使用されています SV.PCC.INVALID_TEMP_PATH CreateFile の呼び出し時に安全でないテンポラリファイルの名前が使用されています SV.PCC.MISSING_TEMP_CALLS.MUST CreateFile の呼び出し時に安全なテンポラリファイルの名前が欠落しています SV.PCC.MISSING_TEMP_FILENAME CreateFile の呼び出し時にテンポラリファイルの名前が欠落しています SV.PCC.MODIFIED_BEFORE_CREATE CreateFile の呼び出し前にテンポラリファイルが変更されます SV.WEAK_CRYPTO.WEAK_HASH 弱ハッシュ関数 |
6.5.4 |
SV.BFC.USING_STRUCT bind 関数の呼び出しに使用される struct sockaddr_in 構造の sin_addr.s_addr フィールドでの INADDR_ANY の使用 SV.USAGERULES.SPOOFING スプーフィングの影響を受けやすい関数の使用 |
6.5.5 |
AUTOSAR.EXCPT.DYNAMIC_SPEC 動的な例外指定は使用してはなりません AUTOSAR.EXCPT.NOEXCPT_THROW 関数を noexcept、noexcept(true)、または noexcept(<true condition>) と宣言する場合、その関数は例外を送出して終了してはなりません MISRA.CATCH.ALL try-catch ブロックに省略記号例外ハンドラーがありません MISRA.CATCH.BY_VALUE クラス タイプの例外オブジェクトが値によってキャッチされています MISRA.CATCH.NOALL 省略記号例外ハンドラーが try-catch ブロックの最後に置かれていません MISRA.CATCH.WRONGORD try-catch ブロックで基本例外クラスのハンドラーが派生例外クラスのハンドラーよりも先に置かれています MISRA.CTOR.TRY.NON_STATIC コンストラクタまたはデストラクタの関数 try-catch ブロックが非スタティックなメンバーを参照しています MISRA.DECL.EXCPT.SPEC 異なる例外指定で関数が宣言されています MISRA.DTOR.THROW デストラクタにスローします MISRA.INCL.SIGNAL.2012 標準ヘッダーファイル signal.h は使用しない MISRA.STDLIB.LONGJMP setjmp マクロまたは longjmp 関数の使用 MISRA.STDLIB.SIGNAL signal.h の信号処理装置の使用 MISRA.THROW.EMPTY 空のスロー式が catch ブロックに属していません MISRA.THROW.NULL NULL が明示的にスローされています MISRA.THROW.PTR 例外オブジェクトがポインタになっています MISRA.TRY.JUMP goto ステートメントまたは switch ステートメントでコントロールを try ブロックに転送できます |
6.5.7 |
SV.TAINTED.XSS.REFLECTED クロスサイト スクリプティング脆弱性 |
6.5.8 |
SV.STR_PAR.UNDESIRED_STRING_PARAMETER ファイルパスの不要な文字列 SV.TAINTED.SECURITY_DECISION セキュリティ決定 SV.USAGERULES.PERMISSIONS 特権の昇給の使用 |
C#
ID | チェッカー名および説明 |
---|---|
6.5.1 |
CS.SQL.INJECT.LOCAL SQL インジェクション |
6.5.3 |
CS.RCA 危険な暗号化アルゴリズムが使用されています |
6.5.5 |
CS.EMPTY.CATCH 空の catch 句 |
6.5.8 |
CS.NPS アクセスする前に、リソースに設定されたパーミッションがありません |
Java
ID | チェッカー名および説明 |
---|---|
6.5.1 |
SV.CLASSDEF.INJ ランタイムクラス定義インジェクション SV.CLASSLOADER.INJ クラスローダー URL インジェクション SV.DATA.BOUND 信頼できないデータが信頼できるストレージにリークしています SV.DATA.DB データ インジェクション SV.EXEC プロセス インジェクション SV.EXEC.DIR プロセス インジェクション。作業ディレクトリ SV.EXEC.ENV プロセス インジェクション。環境変数 SV.EXEC.LOCAL プロセス インジェクション。ローカル引数 SV.PATH パスまたはファイル名のインジェクション SV.PATH.INJ ファイル インジェクション SV.SQL SQL インジェクション SV.SQL.DBSOURCE 未検証のデータベースからの情報がSQL文に使用されています |
6.5.2 |
SV.DOS.ARRINDEX 不正なインデックスが配列アクセスに使用されています SV.DOS.ARRSIZE 不正なサイズが配列割り当てに使用されています |
6.5.3 |
SV.HASH.NO_SALT ソルトなしの一方向性暗号化ハッシュの使用 SV.PASSWD.HC ハードコードされたパスワード SV.PASSWD.HC.EMPTY 空のパスワード SV.PASSWD.PLAIN プレーンテキストのパスワード SV.RANDOM 安全ではない乱数ジェネレータの使用 SV.SENSITIVE.DATA 暗号化されていない機密データが書き込まれます SV.SENSITIVE.OBJ 暗号化されていない機密データを持つオブジェクトが保存されます SV.WEAK.CRYPT 破られたまたは危険な暗号化アルゴリズムの使用 |
6.5.4 |
SV.EMAIL 未チェックの電子メール SV.HTTP_SPLIT HTTP 応答分割 SV.SERIAL.NOREAD メソッド readObject() を Serializable クラスに対して定義する必要があります SV.SERIAL.NOWRITE メソッド writeObject() を Serializable クラスに対して定義する必要があります SV.SERIAL.SIG Serializable クラスのメソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります SV.TAINT 不正データ SV.TAINT_NATIVE 不正データがネイティブ コードに渡されています |
6.5.5 |
ECC.EMPTY Catch 節が空です EXC.BROADTHROWS 過度に広範な範囲に対応するメソッドが宣言をスローしています JD.CATCH ランタイム例外のキャッチ JD.FINRET finally 内の return JD.UNCAUGHT 例外がキャッチされていません SV.IL.DEV 設計情報の漏洩 SV.IL.FILE ファイル名のリーク UMC.SYSERR System.err メソッドの呼び出しを使用したデバッグ プリントは好ましくありません UMC.SYSOUT System.out メソッドの呼び出しを使用したデバッグ プリントは好ましくありません |
6.5.7 |
SV.XSS.DB クロスサイト スクリプティング (Stored XSS) SV.XSS.REF クロスサイト スクリプティング (Reflected XSS) |
6.5.8 |
ANDROID.LIFECYCLE.SV.FRAGMENTINJ 未検証のフラグメント クラス名 ANDROID.LIFECYCLE.SV.GETEXTRA 未検証の外部データ SV.DOS.TMPFILEDEL JVM のライフタイムの間一時ファイルが存続します SV.DOS.TMPFILEEXIT 一時ファイルが存続します |
6.5.9 |
SV.CSRF.GET GET リクエスト中の CSRF トークン SV.CSRF.ORIGIN オリジンチェックなしの要求ハンドラ SV.CSRF.TOKEN CSRF チェックなしの状態変更要求ハンドラ |
6.5.10 |
SV.ECV クラスローダが直接使用されています SV.LDAP 未検証のユーザ入力が LDAP フィルタとして使用されています |