以下のルールは CQA モードで有効にできます。


APSC_DV.001460.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する

APSC_DV.001460.UIS - 標準パターンを使用して ISerializable を実装する

APSC_DV.000160.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.000160.RSAKS - 2048 ビット以上の RSA キーを使用する 

APSC_DV.000160.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.000170.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.000170.RSAKS - 2048 ビット以上の RSA キーを使用する 

APSC_DV.000170.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.000460.UAA - ページおよびコントローラーで authorization 属性を使用する 

APSC_DV.000500.AUEP - 昇格された権限の使用を避ける 

APSC_DV.000510.ISE - セッション有効期限が適切であるようにする 

APSC_DV.000510.UAA - ページおよびコントローラーで authorization 属性を使用する 

APSC_DV.000530.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

APSC_DV.000650.ALSI - 機密情報をログに記録しない 

APSC_DV.001460.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.001460.ALSI - 機密情報をログに記録しない 

APSC_DV.001460.AUEP - 昇格された権限の使用を避ける 

APSC_DV.001460.DNICV - SSL 証明書の検証を無効化しない 

APSC_DV.001460.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない 

APSC_DV.001460.IREC - 完全性のチェックを行わずに外部コードを実行しない 

APSC_DV.001460.ISE - セッション有効期限が適切であるようにする 

APSC_DV.001460.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする。 

APSC_DV.001460.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

APSC_DV.001460.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

APSC_DV.001460.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

APSC_DV.001460.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

APSC_DV.001460.PDTDP - DTD 処理を防ぐ 

APSC_DV.001460.RSAKS - 2048 ビット以上の RSA キーを使用する 

APSC_DV.001460.RSFSS - SecureString から文字列を再作成しない 

APSC_DV.001460.SDE - 例外に機密データを含めない 

APSC_DV.001460.SSFP - パスワードには String ではなく SecureString を使用する 

APSC_DV.001460.UAA - ページおよびコントローラーで authorization 属性を使用する 

APSC_DV.001460.UAAMC - 認可属性がコントローラーと一致していることを確認する 

APSC_DV.001460.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.001460.VAFT - POST メソッドでは anti-forgery 属性を使用する 

APSC_DV.001460.VLT - 使用する前にショートカットのターゲット パスを検証する 

APSC_DV.001660.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.001860.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.001860.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.002000.ISE - セッション有効期限が適切であるようにする 

APSC_DV.002010.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.002010.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.002290.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.002290.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

APSC_DV.002350.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

APSC_DV.002350.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

BRM.APNFT - スレッドには必ず名前を付ける 

BRM.CMT.MSC - メンバーにはコメントを付けるべきである 

BRM.CMT.TSC - 型にはコメントを付けるべきである 

BRM.HBCM - 基底クラスのメソッドを隠蔽することを避ける 

BRM.HBCP - 基底クラスのプロパティを隠蔽することを避ける 

BRM.MLL - 1 行の桁数は定義済みのパラメーター値を超えてはならない 

CMUG.MU.AUPM - 未使用の private メソッドを避ける 

CS.BRM.AIBA - as の前に is を使用しない 

CS.BRM.BEB - 空のブロック ステートメントを避ける 

CS.BRM.CCB - if および else の本文を必ず括弧で囲む 

CS.BRM.CPEB - 内容が空の checkeduncheckedfixed および unsafe 文を避ける 

CS.BRM.ES - 空の文字列には string.Empty を使用する 

CS.BRM.ETK - 頭文字が大文字のメンバーにアクセスする場合、明示的に this キーワードを使用する 

CS.BRM.ICB - 反復文の本文を必ず括弧で囲む 

CS.BRM.IDOU - 他の式の中でインクリメント/デクリメント演算子を使用しない 

CS.BRM.IEB - 内容が空の初期化文を避ける 

CS.BRM.KFATNC - ファイル名と型名の一貫性を保持する 

CS.BRM.SCHR - C# のコードでは Strings.Chr() および Strings.ChrW() メソッドを使用しない 

CS.BRM.SWDEFLAST - switch 文の最後の case として default を配置する 

CS.BRM.UCB - using 文の本文を必ず括弧で囲む 

CS.CDD.DUPU - using 文の重複を避ける 

CS.EU.VZS - すべての列挙型に値が 0 のメンバーがあることを確認する 

CS.INTER.ITT - 文字列リテラルを国際化するべきである 

CS.NG.VAR.PNCFV - メソッドの変数および定数の適切な命名規則に従う 

CS.PB.ANIL - 繰り返し不可能なループを避ける 

CS.PB.AWC - 条件の中で代入しない 

CS.PB.BITBOOL - オペランドがブール型の場合はビット演算子を使用しない 

CS.PB.CCA - コンストラクター引数への混乱する代入を避ける 

CS.PB.CEB - 内容が空の条件文を避ける 

CS.PB.CNFA - as 演算子を使用したら null チェックを行う 

CS.PB.DEFSWITCH - switch 文に default: を用意する 

CS.PB.EEB - 内容が空の trycatchfinally および using 文を避ける 

CS.PB.FPLI - ループのインデックスとして浮動小数点型の変数を使用しない 

CS.PB.IDNE - 効果のないインクリメント文およびデクリメント文を避ける 

CS.PB.IEB - 内容が空の反復文を避ける 

CS.PB.IVFLC - for ループの条件で初期化子の変数を使用する 

CS.PB.IVFLI - for ループのイテレーター セクションで初期化子変数を使用する 

CS.PB.MCO - '?:' 演算子が誤って使用されていないかどうかを確認する 

CS.PB.NACC - アクセスできないクラスおよび構造体を避ける 

CS.PB.NSIVFLB - for ループの初期化子変数を for ループの本文で変更しない 

CS.PB.NSIVFLN - 複数のネストされた for ループ文で同じ変数をインクリメントまたはデクリメントしない 

CS.PB.PUO - 単項演算子 + を使用しない 

CS.PB.USC.CC - 条件内の到達できないコードを避ける 

CS.PB.USC.UC - 到達できないコードを避ける 

CS.PB.VTNV - 値型と null を比較してはならない 

CS.PB.WIBS - ブロックのないステートメントを誤ってインデントしない

CS.PROTC - const ではなく readonly を使用する 

CS.SEC.AUK - 'unsafe' キーワードを避ける 

CS.SEC.RSFSS - SecureString から文字列を再作成しない

CS.SEC.SSFP - パスワードには String ではなく SecureString を使用する 

CS.SERIAL.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する 

CS.SERIAL.UIS - 標準パターンを使用して ISerializable を実装する 

CS.TRS.LCB - lock 文の本文を必ず括弧で囲む 

CS.TRS.LEB - 内容が空の lock 文を避ける 

CT.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける 

CT.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける 

CWE.120.AUK - 'unsafe' キーワードを避ける 

CWE.131.AUK - 'unsafe' キーワードを避ける 

CWE.1321.SDE - 例外に機密データを含めない 

CWE.1386.VLT - 使用する前にショートカットのターゲット パスを検証する 

CWE.190.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける 

CWE.190.AIWIL - ループでのインデクサーのラップアラウンドを避ける 

CWE.191.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける 

CWE.191.AIWIL - ループでのインデクサーのラップアラウンドを避ける 

CWE.197.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける 

CWE.200.SDE - 例外に機密データを含めない 

CWE.209.SDE - 例外に機密データを含めない 

CWE.250.AUEP - 昇格された権限の使用を避ける 

CWE.269.UAAMC - 認可属性がコントローラーと一致していることを確認する 

CWE.287.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない 

CWE.287.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

CWE.287.UAAMC - 認可属性がコントローラーと一致していることを確認する 

CWE.295.DNICV - SSL 証明書の検証を無効化しない 

CWE.307.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

CWE.316.RSFSS - "SecureString から文字列を再作成しない 

CWE.316.SSFP - パスワードには String ではなく SecureString を使用する 

CWE.326.RSAKS - 2048 ビット以上の RSA キーを使用する 

CWE.327.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

CWE.329.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

CWE.350.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない 

CWE.352.VAFT - POST メソッドでは anti-forgery 属性を使用する 

CWE.391.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

CWE.396.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

CWE.397.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

CWE.426.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

CWE.427.DNICV - SSL 証明書の検証を無効化しない 

CWE.476.CNFA - as 演算子を使用したら null チェックを行う 

CWE.480.PUO - 単項演算子 + を使用しない 

CWE.481.AWC - 条件の中で代入しない 

CWE.494.IREC - 完全性のチェックを行わずに外部コードを実行しない 

CWE.502.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する

CWE.502.UIS - 標準パターンを使用して ISerializable を実装する

CWE.522.VLT - 使用する前にショートカットのターゲット パスを検証する 

CWE.532.ALSI - 機密情報をログに記録しない 

CWE.561.UC - 到達できないコードを避ける 

CWE.59.VLT - 使用する前にショートカットのターゲット パスを検証する 

CWE.595.REVT - ReferenceEquals() を値型で使用しない 

CWE.611.PDTDP - DTD 処理を防ぐ 

CWE.613.ISE - セッション有効期限が適切であるようにする 

CWE.617.ATA - Do not use the Trace.Assert() method in production code 

CWE.64.VLT - 使用する前にショートカットのターゲット パスを検証する 

CWE.676.APDM - 潜在的に危険なメソッドの使用を避ける 

CWE.681.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける 

CWE.770.UHCF - HttpClient オブジェクトを作成することで HttpClient クラスをインスタンス化しない 

CWE.780.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

CWE.827.PDTDP - DTD 処理を防ぐ 

CWE.835.IVFLC - for ループの条件で初期化子の変数を使用する 

CWE.835.IVFLI - for ループのイテレーター セクションで初期化子変数を使用する 

CWE.835.NSIVFLN - 複数のネストされた for ループ文で同じ変数をインクリメントまたはデクリメントしない 

CWE.838.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない 

CWE.862.UAA - ページおよびコントローラーで authorization 属性を使用する 

CWE.863.UAAMC - 認可属性がコントローラーと一致していることを確認する 

EXCEPT.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

EXCEPT.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

IFD.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする 

IFD.IDDR - 破棄可能なリソースを使用する型では IDisposable を実装する 

OPU.CPTEQ - Equals(Object) メソッドのパラメーターと null を比較する 

OPU.CPTEQ - Equals(Object) メソッドのパラメーターの型を比較する 

OPU.REVT - ReferenceEquals() を値型で使用しない 

OWASP_ASVS_403.V1_5_2.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する

OWASP_ASVS_403.V1_5_2.UIS - 標準パターンを使用して ISerializable を実装する

OWASP_ASVS_403.V5_5_1.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する

OWASP_ASVS_403.V5_5_1.UIS - 標準パターンを使用して ISerializable を実装する

OWASP2017.A10.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

OWASP2017.A2.ISE - セッション有効期限が適切であるようにする 

OWASP2017.A2.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

OWASP2017.A3.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

OWASP2017.A3.ALSI - 機密情報をログに記録しない 

OWASP2017.A3.DNICV - SSL 証明書の検証を無効化しない 

OWASP2017.A3.RSFSS - SecureString から文字列を再作成しない 

OWASP2017.A3.SDE - 例外に機密データを含めない 

OWASP2017.A3.SSFP - パスワードには String ではなく SecureString を使用する 

OWASP2017.A3.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

OWASP2017.A4.PDTDP - DTD 処理を防ぐ 

OWASP2017.A5.AUEP - 昇格された権限の使用を避ける 

OWASP2017.A5.UAA - ページおよびコントローラーで authorization 属性を使用する 

OWASP2017.A5.UAAMC - 認可属性がコントローラーと一致していることを確認する 

OWASP2017.A5.VAFT - POST メソッドでは anti-forgery 属性を使用する 

OWASP2017.A6.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

OWASP2017.A6.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

OWASP2017.A8.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する

OWASP2017.A8.UIS - 標準パターンを使用して ISerializable を実装する

OWASP2019.API10.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

OWASP2019.API2.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

OWASP2019.API2.RSFSS - SecureString から文字列を再作成しない 

OWASP2019.API2.SSFP - パスワードには String ではなく SecureString を使用する 

OWASP2019.API3.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

OWASP2019.API3.ALSI - 機密情報をログに記録しない 

OWASP2019.API3.ATA - 運用コードで Trace.Assert() メソッドを使用しない 

OWASP2019.API3.SDE - 例外に機密データを含めない 

OWASP2019.API3.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

OWASP2019.API4.UHCF - HttpClient オブジェクトを作成することで HttpClient クラスをインスタンス化しない 

OWASP2019.API5.ISE - セッション有効期限が適切であるようにする 

OWASP2019.API5.UAA - ページおよびコントローラーで authorization 属性を使用する 

OWASP2019.API5.UAAMC - 認可属性がコントローラーと一致していることを確認する 

OWASP2019.API7.DNICV - SSL 証明書の検証を無効化しない 

OWASP2019.API7.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける 

OWASP2019.API7.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

OWASP2019.API7.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

OWASP2019.API8.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない 

OWASP2019.API8.AUK - 'unsafe' キーワードを避ける 

OWASP2019.API8.IREC - 完全性のチェックを行わずに外部コードを実行しない 

OWASP2019.API8.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

OWASP2019.API8.PDTDP - DTD 処理を防ぐ 

OWASP2021.A1.AUEP - 昇格された権限の使用を避ける 

OWASP2021.A1.DNICV - SSL 証明書の検証を無効化しない 

OWASP2021.A1.UAA - ページおよびコントローラーで authorization 属性を使用する 

OWASP2021.A1.UAAMC - 認可属性がコントローラーと一致していることを確認する 

OWASP2021.A1.VAFT - POST メソッドでは anti-forgery 属性を使用する 

OWASP2021.A1.VLT - 使用する前にショートカットのターゲット パスを検証する 

OWASP2021.A2.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

OWASP2021.A2.RSAKS - 2048 ビット以上の RSA キーを使用する 

OWASP2021.A2.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

OWASP2021.A4.RSFSS - SecureString から文字列を再作成しない 

OWASP2021.A4.SDE - 例外に機密データを含めない 

OWASP2021.A4.SSFP - パスワードには String ではなく SecureString を使用する 

OWASP2021.A5.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

OWASP2021.A5.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

OWASP2021.A5.PDTDP - DTD 処理を防ぐ 

OWASP2021.A7.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない 

OWASP2021.A7.ISE - セッション有効期限が適切であるようにする 

OWASP2021.A7.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

OWASP2021.A8.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する

OWASP2021.A8.IREC - 完全性のチェックを行わずに外部コードを実行しない 

OWASP2021.A8.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

OWASP2021.A8.UIS - 標準パターンを使用して ISerializable を実装する

OWASP2021.A9.ALSI - 機密情報をログに記録しない 

OWASP2021.A9.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

PB.ACDE - Application.DoEvents() メソッドを呼び出さない 

PB.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない 

PB.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける 

PB.CFF - 複合書式機能の引数の数を検証する 

PB.DNCF - 浮動小数点型の等価を比較しない 

PB.EMPTYMETHODS - 空のメソッドを避ける 

PB.INOE - String.IsNullOrEmpty を使用して string null または empty かどうかをチェックする 

PB.STATICFLD - static でないメソッドから static フィールドに書き込まない 

PB.THROWFIN - finally ブロックで throw 文を使用しない 

PCIDSS32.6510.ISE - セッション有効期限が適切であるようにする 

PCIDSS32.6510.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

PCIDSS32.652.AUK - 'unsafe' キーワードを避ける 

PCIDSS32.653.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

PCIDSS32.653.RSFSS - "SecureString から文字列を再作成しない 

PCIDSS32.653.SSFP - パスワードには String ではなく SecureString を使用する 

PCIDSS32.653.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

PCIDSS32.654.RSFSS - "SecureString から文字列を再作成しない 

PCIDSS32.654.SSFP - パスワードには String ではなく SecureString を使用する 

PCIDSS32.655.ATA - 運用コードで Trace.Assert() メソッドを使用しない 

PCIDSS32.655.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

PCIDSS32.655.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

PCIDSS32.655.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

PCIDSS32.658.AUEP - 昇格された権限の使用を避ける 

PCIDSS32.658.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

PCIDSS32.658.UAA - ページおよびコントローラーで authorization 属性を使用する 

PCIDSS32.658.UAAMC - 認可属性がコントローラーと一致していることを確認する 

PCIDSS32.659.VAFT - POST メソッドでは anti-forgery 属性を使用する 

PCIDSS40.6242.AIWIL - ループでのインデクサーのラップアラウンドを避ける 

PCIDSS40.6242.AUK - 'unsafe' キーワードを避ける 

PCIDSS40.6243.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

PCIDSS40.6243.RSFSS - SecureString から文字列を再作成しない 

PCIDSS40.6243.SSFP - パスワードには String ではなく SecureString を使用する 

PCIDSS40.6243.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

PCIDSS40.6244.ATA - 運用コードで Trace.Assert() メソッドを使用しない 

PCIDSS40.6244.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

PCIDSS40.6244.NCSAE - 'Exception''SystemException''ApplicationException' に対する "catch" の使用を避ける 

PCIDSS40.6244.NTSAE - 'Exception''SystemException''AppicationException' をスローしてはならない 

PCIDSS40.6244.SDE - 例外に機密データを含めない 

PCIDSS40.6245.AUEP - 昇格された権限の使用を避ける 

PCIDSS40.6245.DNICV - SSL 証明書の検証を無効化しない 

PCIDSS40.6245.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない 

PCIDSS40.6245.ISE - セッション有効期限が適切であるようにする 

PCIDSS40.6245.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

PCIDSS40.6245.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

PCIDSS40.6245.UAA - ページおよびコントローラーで authorization 属性を使用する 

PCIDSS40.6245.UAAMC - 認可属性がコントローラーと一致していることを確認する 

SEC.ACCA - カスタム暗号化アルゴリズムの使用を避ける 

SEC.ACWNS - 名前空間のないクラスがあるべきではない 

SEC.AIWIL - ループでのインデクサーのラップアラウンドを避ける 

SEC.ALSI - 機密情報をログに記録しない 

SEC.APDM - 潜在的に危険なメソッドの使用を避ける 

SEC.ATA - Do not use the Trace.Assert() method in production code 

SEC.AUEP - 昇格された権限の使用を避ける 

SEC.IREC - 完全性のチェックを行わずに外部コードを実行しない 

SEC.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする 

SEC.PBRTE - 必ず実行コマンドへの絶対パスを指定する 

SEC.RSAKS - 2048 ビット以上の RSA キーを使用する 

SEC.SDE - 例外に機密データを含めない 

SEC.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

SEC.VLT - 使用する前にショートカットのターゲット パスを検証する 

SEC.WEB.DNICV - SSL 証明書の検証を無効化しない 

SEC.WEB.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない 

SEC.WEB.ISE - セッション有効期限が適切であるようにする 

SEC.WEB.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

SEC.WEB.UAA - ページおよびコントローラーで authorization 属性を使用する 

SEC.WEB.UAAMC - 認可属性がコントローラーと一致していることを確認する 

SEC.WEB.UHCF - HttpClient オブジェクトを作成することで HttpClient クラスをインスタンス化しない 

SEC.WEB.VAFT - POST メソッドでは anti-forgery 属性を使用する 

SEC.XXE.PDTDP - DTD 処理を防ぐ 

SERIAL.XML.SOAFAP - XmlElementAttribute で使用される型と、シリアライズされるフィールド/プロパティの型が必ず互換性を持つようにする 

VB.BRM.ES - 空の文字列には string.Empty を使用する 

VB.PB.DEFSWITCH - Select Case 文には Case Else を用意する 

VVSG.11_1_B.ALSI - 機密情報をログに記録しない 

VVSG.11_3_1_A.UAA - ページおよびコントローラーで authorization 属性を使用する 

VVSG.11_3_1_A.UAAMC - 認可属性がコントローラーと一致していることを確認する 

VVSG.11_4_A.AUEP - 昇格された権限の使用を避ける 

VVSG.11_4_A.UAA - ページおよびコントローラーで authorization 属性を使用する 

VVSG.11_5_A.ISE - セッション有効期限が適切であるようにする 

VVSG.11_5_C.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする 

VVSG.13_3_C.RSAKS - 2048 ビット以上の RSA キーを使用する 

VVSG.13_3_C.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する 

VVSG.14_2_G.AUPM - 未使用の private メソッドを避ける 

VVSG.14_2_G.NACC - アクセスできないクラスおよび構造体を避ける 

VVSG.14_2_G.UC - 到達できないコードを避ける 

VVSG.14_2_G.USCCC - 条件内の到達できないコードを避ける 

VVSG.2_5_2_A.IREC - 完全性のチェックを行わずに外部コードを実行しない 

VVSG.2_5_2_A.VAFT - POST メソッドでは anti-forgery 属性を使用する 

VVSG.2_5_2_A.VLT - 使用する前にショートカットのターゲット パスを検証する 

VVSG.2_5_4_C.AUK - 'unsafe' キーワードを避ける 

VVSG.2_5_4_F.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける 

VVSG.2_5_4_F.AIWIL - ループでのインデクサーのラップアラウンドを避ける 

VVSG.2_5_4_I.CNFA - as 演算子を使用したら null チェックを行う 

VVSG.2_5_4_J.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする 

VVSG.3_1_1_C.MSC - メンバーにはコメントを付けるべきである 

VVSG.3_1_1_C.TSC - 型にはコメントを付けるべきである 

VVSG.5_2_B.ITT - 文字列リテラルを国際化するべきである

 

以下のルールは CQA モードで有効化できますが、Visual Basic (.vb) ファイルを解析する場合、または dottest.rulewizard.enforceold 設定が有効化されている場合はサポートされません。

APSC_DV.000460.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001250.AUMS - Millisecond プロパティ値の使用がセキュリティ上の問題につながらないかを検査する

APSC_DV.001250.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001250.AUMS - Millisecond プロパティ値の使用がセキュリティ上の問題につながらないかを検査する

APSC_DV.001270.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001460.DMSC -セキュリティ設定の変更を検査する    

APSC_DV.001460.NCNRE - NullReferenceException をキャッチしてはいけない

APSC_DV.001460.SMIII - internal インターフェイスを実装するメソッドをシールする    

APSC_DV.001460.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.001660.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.001810.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001820.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001850.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001860.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.001860.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.001940.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.001950.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.001995.INVOKE -同期呼び出しより非同期呼び出しを使用する

APSC_DV.001995.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする

APSC_DV.002010.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002020.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002030.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002040.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002050.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002290.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002310.DMSC -セキュリティ設定の変更を検査する    

APSC_DV.002340.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002350.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002360.DMSC -セキュリティ設定の変更を検査する    

APSC_DV.002440.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.002440.ENFL - 注意を要するメソッドへのすべての呼び出しが記録されるよう保証する

APSC_DV.002450.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002460.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.002460.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002470.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.002470.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.002480.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

APSC_DV.002520.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない

APSC_DV.002520.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない

APSC_DV.002530.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない

APSC_DV.002530.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない

APSC_DV.002570.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない

APSC_DV.002570.AUIC    -信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない

APSC_DV.002590.AUPS - Process.Start() の呼び出しを検査する

APSC_DV.002960.AUPS - Process.Start() の呼び出しを検査する

APSC_DV.003100.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

APSC_DV.003140.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

ARRU.DNUNGIF - 非ジェネリック コレクションを使用してカスタム コレクションを作成してはならない

ARRU.NGLVD - 非ジェネリック コレクション型のローカル変数を宣言してはならない

BRM.BOOLNEGNAME - ブール型を返すプロパティ/メソッドの名前には、否定ではなく肯定を使用する

BRM.COLLPLURALNAME - コレクション/配列型のプロパティ名は複数形を使用する。名前に collection/array を使用しない

BRM.ISPREFIX - boolean を返すメソッドだけに is で始まる名前を付ける

BRM.LONGNAMES - 15 文字以上のクラス、構造体、インターフェイス名を使用しない

CLS.ACAC - プロパティのアクセシビリティとアクセサーのアクセシビリティを同一にする

CLS.CONV - 変換演算子を提供する場合は、代替の変換方法も提供する

CLS.ENTY - 列挙体の基になる型を整数型にする

CLS.NOOO - CLS に準拠する場合は演算子のオーバーロードを使用しない 

CLS.NOPT - CLS に準拠する場合は、ポインター型を使用しない

CLS.PRMT - CLS 準拠 プリミティブ型だけを使用する

CLS.TYPR - 型指定された参照を使用してはならない

CMUG.MU.VALRETURN - メソッドまたはプロパティから値を返すのに値型を使用しない

CMUG.PRU.DPAV - nHibernate を使用するクラスから派生するクラスのプロパティを virtual として宣言する

CS.IFD.DNPTHIS - デストラクターまたは dispose メソッドの内側から this への参照を渡してはならない

CS.OOM.CAST2CONCRETE - 具象 Collection 型にキャストしない

CS.PB.INVOKE -同期呼び出しより非同期呼び出しを使用する

CS.SMC - case 文の多すぎる switch 文を避ける

CS.TRS.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする

CWE.330.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

CWE.362.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする

CWE.395.NCNRE - NullReferenceException をキャッチしてはいけない

CWE.829.DMSC -セキュリティ設定の変更を検査する

EXCEPT.NCNRE - NullReferenceException をキャッチしてはいけない

GC.DCGC - 明示的に 'System.GC.Collect()' または 'System.GC.Collect(int)' を呼び出さない

GC.RCCB - 'ClipBounds' の複数回の呼び出し

INTER.TOLOWERTOUPPER - ToLower()ToUpper() string メソッドを直接使用しない

OOM.LNDM - 1 クラスあたりのデータ メンバーの数を多くしない

OOM.LNMM - 1 クラスあたりのメソッドの数を多くしない

OOM.LNPBD - 1 クラスあたりの public データ メンバーの数を多くしない

OOM.LNPBM - 1 クラスあたりの public メソッドの数を多くしない

OOM.LNPM - 1 メソッドあたりのパラメーターの数を多くしない

OOM.LNPTD - 1 クラスあたりの protected データ メンバーの数を多くしない

OOM.LNPTM - 1 クラスあたりの protected メソッドの数を多くしない

OOM.LNPVD - 1 クラスあたりの privateデータ メンバーの数が多い

OOM.LNPVM - 1 クラスあたりの private メソッドの数を多くしない

OOM.MLCI - クラスの継承レベルを深くしすぎない

OPU.NOREFEQUAL - ReferenceEquals() メソッドをオーバーライドしない

OPU.NOSTATICEQUAL - 静的な Object.Equals() メソッドをオーバーライドしない

OWASP2017.A6.DMSC -セキュリティ設定の変更を検査する    

OWASP2017.A6.NCNRE - NullReferenceException をキャッチしてはいけない

OWASP2017.A6.SMIII - internal インターフェイスを実装するメソッドをシールする

OWASP2019.API1.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

OWASP2019.API10.ENFL - 注意を要するメソッドへのすべての呼び出しが記録されるよう保証する

OWASP2019.API7.DMSC -セキュリティ設定の変更を検査する    

OWASP2019.API7.NCNRE - NullReferenceException をキャッチしてはいけない

OWASP2019.API7.SMIII - internal インターフェイスを実装するメソッドをシールする    

OWASP2019.API8.AUPS - Process.Start() の呼び出しを検査する

OWASP2021.A2.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

OWASP2021.A5.NCNRE - NullReferenceException をキャッチしてはいけない

OWASP2021.A5.SMIII - internal インターフェイスを実装するメソッドをシールする

OWASP2021.A8.DMSC -セキュリティ設定の変更を検査する

OWASP2023.API1.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

OWASP2023.API3.DMSC -セキュリティ設定の変更を検査する    

OWASP2023.API3.NCNRE - NullReferenceException をキャッチしてはいけない

OWASP2023.API3.SMIII - internal インターフェイスを実装するメソッドをシールする    

OWASP2023.API6.ENFL - 注意を要するメソッドへのすべての呼び出しが記録されるよう保証する

OWASP2023.API8.DMSC -セキュリティ設定の変更を検査する    

OWASP2023.API8.NCNRE - NullReferenceException をキャッチしてはいけない

OWASP2023.API8.SMIII - internal インターフェイスを実装するメソッドをシールする    

OWASP_ASVS_403.V12_3_6.DMSC - セキュリティ設定の変更を検査する

OWASP_ASVS_403.V1_11_2.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする

PB.CONSOLEWRITE - System.Console 'Write()' または 'WriteLine()' を使用しない

PCIDSS32.655.NCNRE - NullReferenceException をキャッチしてはいけない

PCIDSS40.6244.NCNRE - NullReferenceException をキャッチしてはいけない

SEC.AASV - 環境変数にアクセスしている呼び出しを検査する

SEC.AFNRO - readonly として宣言された配列フィールドを検査する

SEC.ALBM - レイト バインディング メソッドの呼び出しを検査する

SEC.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない

SEC.ASNRF - readonly でない static フィールドを検査し、readonly にすることを検討する

SEC.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない

SEC.AUMS - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

SEC.AUPS - Process.Start() の呼び出しを検査する

SEC.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する

SEC.DMSC -セキュリティ設定の変更を検査する

SEC.HPTR - ポインター型フィールドを private にする

SEC.MCMF - セキュリティ確保のため、 Clone( ) メソッドを virtual にしない

SEC.SMIII - internal インターフェイスを実装するメソッドをシールする

SEC.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する

SERIAL.GETOBJ - ISerializable.GetObjectData を実装する場合は WriteObjectdata を呼び出す。

SPR.ENFL - すべてのセキュリティ関連メソッドの呼び出しを必ずログに記録する

VVSG.2_4_A.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない

VVSG.2_4_A.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない

VVSG.2_4_A.HPTR - ポインター型フィールドを private にする

VVSG.2_4_A.SMIII - internal インターフェイスを実装するメソッドをシールする

VVSG.2_5_4_I.HPTR - ポインター型フィールドを private にする

VVSG.2_5_4_I.NOPT - CLS に準拠する場合は、ポインター型を使用しない

VVSG.2_5_B.INVOKE -同期呼び出しより非同期呼び出しを使用する

VVSG.5_2_B.TOLOWERTOUPPER - ToLower()、ToUpper() string メソッドを直接使用しない






  • No labels