Skip to main content

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:個人情報の漏洩