Klocwork C および C++ チェッカーにマッピングされた PCI DSS ID
支払カード業界データセキュリティ基準 (PCI DSS) は、アカウントデータを保護するように考案された、技術要件と運用要件のベースラインとして機能します。PCI DSS は、カード会員のデータセキュリティを促進、強化するとともに、一貫したデータセキュリティ対策の広範な採用を全世界的に促進する目的で開発されました。
以下の表は、PCI DSS バージョン 3.2.1 ID を Klocwork 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 バッファオーバーフロー - 配列インデックスが範囲外 CXX.SUSPICIOUS_INDEX_CHECK 境界チェック後のインデックスの不審な使用 CXX.SUSPICIOUS_INDEX_CHECK.CALL 境界チェック後の関数呼び出しでのインデックスの不審な使用 CXX.SUSPICIOUS_INDEX_CHECK.ZERO ゼロのインデックスチェック後のインデックスの不審な使用 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 特権の昇給の使用 |