RPG4のスキャンルール
Contrast Scanでは、RPG4に対して以下のルールをサポートしています。
深刻度 | Contrastルール | エンジンルールID | 説明 |
---|---|---|---|
重大 | Connection String Parameter Pollution | OPT.RPG4.SEC.ConnectionStringParameterPollution | ConnectionStringParameterPollution::信頼できない入力で汚染された接続文字列 |
重大 | Cross Site Scripting | OPT.RPG4.SEC.CrossSiteScripting | CrossSiteScripting:Webページ生成中の入力の不適切な無害化(クロスサイトスクリプティング) |
重大 | OS Command Injection | OPT.RPG4.SEC.OSCommandInjection | OSCommandInjection:OSコマンドで使用する特殊要素の不適切な無害化(OSコマンドインジェクション) |
重大 | Process Control | OPT.RPG4.SEC.ProcessControl | ProcessControl:ユーザ入力によって名前が制御される可能性のあるサブプログラムの呼び出しの回避 |
重大 | Regex Injection | OPT.RPG4.SEC.RegexInjection | RegexInjection:悪意のある正規表現によるDoS攻撃の防止(正規表現インジェクション) |
重大 | Resource Injection | OPT.RPG4.SEC.ResourceInjection | ResourceInjection:リソース識別子の不適切な制御 (リソースインジェクション) |
重大 | SQL Injection | OPT.RPG4.SEC.SqlInjection | SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション) |
重大 | Alloc Heap Misuse | OPT.RPG4.REL.AllocHeapMisuse | AllocHeapMisuse:割り当てられたメモリが適切に解放されているかの確認 |
重大 | Path Manipulation | OPT.RPG4.SEC.PathManipulation | PathManipulation:ファイル名またはパスの外部制御 |
重大 | Read Record Before Update Delete | OPT.RPG4.SEC.ReadRecordBeforeUpdateDelete | ReadRecordBeforeUpdateDelete:レコードのUPDATE/DELETE命令に必要なレコード読み取り(CHAINまたはREADxxx) |
重大 | Special Authority Granted | OPT.RPG4.SEC.SpecialAuthorityGranted | SpecialAuthorityGranted:特殊権限の付与による最小権限の原則違反 |
重大 | Unexpected Key Select | OPT.RPG4.SEC.UnexpectedKeySelect | UnexpectedKeySelect:ユーザ制御のSQL主キーによる認可のバイパス |
重大 | Check Crypto Return Code | OPT.RPG4.SEC.CheckCryptoReturnCode | CheckCryptoReturnCode:暗号命令のリターンコードの検証 |
重大 | Hardcoded Crypto Key | OPT.RPG4.SEC.HardcodedCryptoKey | HardcodedCryptoKey:ハードコードされた暗号鍵の使用 |
高 | Ldap Injection | OPT.RPG4.SEC.LdapInjection | LdapInjection:LDAP検索フィルタにおける無害化されていないユーザ制御入力の回避 |
高 | Log Forging | OPT.RPG4.SEC.LogForging | LogForging:ログの出力の不適切な無害化 |
高 | Avoid Binary Declarations | OPT.RPG4.AvoidBinaryDeclarations | AvoidBinaryDeclarations:バイナリ型の変数宣言の回避 |
高 | Const Params When Not Modified | OPT.RPG4.ConstParamsWhenNotModified | ConstParamsWhenNotModified:変更されないサブプロシージャのパラメータにおける「Const」キーワードの指定 |
高 | Initialize Variables | OPT.RPG4.InitializeVariables | InitializeVariables:宣言内の各変数の初期化 |
高 | Call Parameter Mismatch | OPT.RPG4.REL.CallParameterMismatch | CallParameterMismatch:CALLのパラメータ不一致 |
高 | Pointer Arithmetic | OPT.RPG4.SEC.PointerArithmetic | PointerArithmetic:RPGでのポインタ演算の回避 |
高 | Hardcoded Ip | OPT.RPG4.SEC.HardcodedIp | HardcodedIp:ソースコードにおけるIPアドレスの書き込み禁止 |
高 | No Active Debug Rule | OPT.RPG4.SEC.NoActiveDebugRule | NoActiveDebugRule:デバッグ情報による情報の漏洩 |
高 | Position Before Read File | OPT.RPG4.SEC.PositionBeforeReadFile | PositionBeforeReadFile:全てのREADEコマンドの前にSETLLが必要 |
高 | Sensitive Security Api Call | OPT.RPG4.SEC.SensitiveSecurityApiCall | SensitiveSecurityApiCall:機密性の高いセキュリティAPI要素の呼び出し |
高 | Insecure Randomness | OPT.RPG4.SEC.InsecureRandomness | InsecureRandomnes:安全でない標準的な擬似乱数生成器 |
高 | Insufficient Key Size | OPT.RPG4.SEC.InsufficientKeySize | InsufficientKeySize:脆弱な暗号方式・鍵長の検出 |
高 | Weak Crypto Hash | OPT.RPG4.SEC.WeakCryptoHash | WeakCryptoHash:脆弱な暗号化ハッシュのデータの完全性の欠如 |
高 | Weak Encryption Algorithm | OPT.RPG4.SEC.WeakEncryptionAlgorithm | WeakEncryptionAlgorithm:脆弱な暗号化アルゴリズム |
情報 | Avoid Capital Specification | OPT.RPG4.AvoidCapitalSpecification | AvoidCapitalSpecification:特定のセクションにおける小文字の使用 |
情報 | Avoid Hard Coding | OPT.RPG4.AvoidHardCoding | AvoidHardCoding:定数の使用(文字列リテラルや整数リテラルの代わりに定数を宣言する) |
情報 | Avoid Old Opcodes | OPT.RPG4.AvoidOldOpcodes | AvoidOldOpcodes:RPG IVでの古い計算の回避 |
情報 | Capital Logical Operator | OPT.RPG4.CapitalLogicalOperator | CapitalLogicalOperator:論理演算子の大文字での記述 |
情報 | Comments In Program | OPT.RPG4.CommentsInProgram | CommentsInProgram:RPGプログラムのヘッダーと各プロシージャ宣言におけるコメントの記述 |
情報 | Declarations Order | OPT.RPG4.DeclarationsOrder | DeclarationsOrder:RPGプログラム/プロシージャにおける要素の宣言順序 |
情報 | Format H Specifications | OPT.RPG4.FormatHSpecifications | FormatHSpecifications:制御仕様の開始桁(制御仕様は8桁目から始まること) |
情報 | Store Copy Prototype | OPT.RPG4.StoreCopyPrototype | StoreCopyPrototype:必要な場合におけるプロトタイプのコピー |
情報 | Use B I F Instead Op Code | OPT.RPG4.UseBIFInsteadOpCode | UseBIFInsteadOpCode:組み込み関数の使用(命令コードの代わりに組み込み関数を使用すること) |
情報 | Use Eval For String Manipulation | OPT.RPG4.UseEvalForStringManipulation | UseEvalForStringManipulation:フリーフォーマットのEVAL文の使用の推奨 |
情報 | Use Select Instead Cas Or Nested If | OPT.RPG4.UseSelectInsteadCasOrNestedIf | UseSelectInsteadCasOrNestedIf:複雑なIF ... ELSEIFやCASxxの回避 |
情報 | Password In Comment | OPT.RPG4.SEC.PasswordInComment | PasswordInComment:コードコメントにおけるパスワードやその他の機密情報の記述の禁止 |
低 | Avoid Blocked Records | OPT.RPG4.AvoidBlockedRecords | AvoidBlockedRecords:レコードを読み込取るには(N)オプションを使用すること |
低 | Avoid Dangerous Conditional Sentences | OPT.RPG4.AvoidDangerousConditionalSentences | AvoidDangerousConditionalSentences:GOTO/TAG、CABXX、COMP文の使用禁止 |
低 | Avoid Display Operation | OPT.RPG4.AvoidDisplayOperation | AvoidDisplayOperation:Display命令の禁止 |
低 | Avoid From Column In Data Fields | OPT.RPG4.AvoidFromColumnInDataFields | AvoidFromColumnInDataFields:フィールドの先頭を示す列の使用禁止 |
低 | Avoid Obsolete Loops | OPT.RPG4.AvoidObsoleteLoops | AvoidObsoleteLoops:IFxx、WHENxx、DOUxx、DOWxx命令の使用禁止 |
低 | Avoid Read E In Loops | OPT.RPG4.AvoidReadEInLoops | AvoidReadEInLoop:ループ内でのREADE命令の使用禁止 |
低 | Avoid Read P Read Pe | OPT.RPG4.AvoidReadPReadPe | AvoidReadPReadPe:READPおよびREADPEの回避 |
低 | Avoid Special Chars | OPT.RPG4.AvoidSpecialChars | AvoidSpecialChars:変数の定義での特殊文字使用の禁止 |
低 | Built In Functions With Params | OPT.RPG4.BuiltInFunctionsWithParams | BuiltInFunctionsWithParams:パラメータ付きでの%EOF()、%FOUND()、%EQUAL()の使用 |
低 | Check Indicators Near Set | OPT.RPG4.CheckIndicatorsNearSet | CheckIndicatorsNearSet:標識の割り当てとその使用の間隔が広がりすぎることの回避 |
低 | Close Opened Files | OPT.RPG4.CloseOpenedFiles | CloseOpenedFiles:開いている全てのファイルのクローズ |
低 | End Block Instructions | OPT.RPG4.EndBlockInstructions | EndBlockInstructions:「EndX」命令の使用(汎用的な「End」ではなく「EndX」を使用すること) |
低 | Eval Instead Of Set Move | OPT.RPG4.EvalInsteadOfSetMove | EvalinsteadOfSetMove:標識に対するEVALの使用(SETON、SETOFF、MOVE、および MOVEAではなくEVALを使用すること) |
低 | Include Procedure In Large Programs | OPT.RPG4.IncludeProcedureInLargePrograms | IncludeProcedureInLargePrograms:長すぎるプログラムの回避 |
低 | Large Procedures | OPT.RPG4.LargeProcedures | LargeProcedures:大きすぎるプロシージャの回避 |
低 | Naming Conventions | OPT.RPG4.NamingConventions | NamingConventions:一部の命名規則の遵守の必要性 |
低 | Overlay Instead Positional Notation | OPT.RPG4.OverlayInsteadPositionalNotation | OverlayInsteadPositionalNotation:位置表記の回避 |
低 | Record Format In File Operations | OPT.RPG4.RecordFormatInFileOperations | RecordFormatInFileOperations:ファイル操作におけるレコード形式の使用 |
低 | Use Free Format Syntax | OPT.RPG4.UseFreeFormatSyntax | UseFreeFormatSyntax:フリーフォーマット構文の使用(使用可能な場合) |
低 | Use Named Constants To Call Programs | OPT.RPG4.UseNamedConstantsToCallPrograms | UseNamedConstantsToCallPrograms:CALLおよびCALLB命令における名前付き定数の使用 |
低 | Avoid Debug Control Sentences | OPT.RPG4.AvoidDebugControlSentences | AvoidDebugControlSentences:制御仕様文におけるDEBUGの使用禁止 |
中 | Format String Injection | OPT.RPG4.SEC.FormatStringInjection | FormatStringInjection:無害化されていないユーザ入力をフォーマット文字列から除外 |
中 | Avoid Calling Modules | OPT.RPG4.AvoidCallingModules | AvoidCallingModules:モジュールの呼び出しの回避 |
中 | Avoid Declare Vbles In Calc Spec | OPT.RPG4.AvoidDeclareVblesInCalcSpec | AvoidDeclareVblesInCalcSpec:計算仕様での変数宣言の禁止 |
中 | Constant Instead Array Table | OPT.RPG4.ConstantInsteadArrayTable | ConstantInsteadArrayTable:配列の定数化(配列フィールドに一度だけ値が代入される場合は、配列を定数として宣言する) |
中 | Declare Date Properly | OPT.RPG4.DeclareDateProperly | DeclareDateProperly:適切な型での変数宣言 |
中 | Improve Function Keys | OPT.RPG4.ImproveFunctionKeys | ImproveFunctionKeys:*Ink[x]標識の使用の回避 |
中 | Include Inz Sr | OPT.RPG4.IncludeInzSr | IncludeInzSr:RPGプログラムのメインセクションに*InzSrサブルーチンを含める |
中 | Naming Indicators | OPT.RPG4.NamingIndicators | NamingIndicators:宣言された全ての標識への名前付け |
中 | Use Built In Instead Of Indicator | OPT.RPG4.UseBuiltInInsteadOfIndicator | UseBuiltInInsteadOfIndicator:組み込み関数による標識の代替 |
中 | Use Only Call P | OPT.RPG4.UseOnlyCallP | UseOnlyCallP:CALL/CALLBの使用禁止 |
中 | Hardcoded Credential | OPT.RPG4.SEC.HardcodedCredential | HardcodedCredential:ハードコードされた資格情報の使用 |
中 | Poor Error Handling | OPT.RPG4.SEC.PoorErrorHandling | PoorErrorHandling:エラー処理の不備(エラー条件を無視することで、攻撃者が気づかれずに予期せぬ動作を引き起こす可能性あり) |
中 | Privacy Violation | OPT.RPG4.SEC.PrivacyViolation | PrivacyViolation:個人情報の漏洩 |