Skip to main content

Swiftのスキャンルール

 

Contrast Scanでは、Swiftに対して以下のルールをサポートしています。

深刻度

Contrastルール

エンジンルールID

説明

重大

Code Injection

OPT.SWIFT.SECURITY.CodeInjection

CodeInjection:動的なコード評価における無害化されていないユーザ制御入力の回避

重大

Command Injection

OPT.SWIFT.SECURITY.CommandInjection

CommandInjection:OSコマンドで使用する特殊要素の不適切な無害化(OSコマンドインジェクション)

重大

Connection String Parameter Pollution

OPT.SWIFT.SECURITY.ConnectionStringParameterPollution

ConnectionStringParameterPollution::信頼できない入力で汚染された接続文字列

重大

Cross Site Scripting

OPT.SWIFT.SECURITY.CrossSiteScripting

CrossSiteScripting:Webページ生成中の入力の不適切な無害化(クロスサイトスクリプティング)

重大

Header Manipulation

OPT.SWIFT.SECURITY.HeaderManipulation

HeaderManipulation:HTTPレスポンスヘッダやCookieにおける未検証データの使用の回避

重大

JSON Injection

OPT.SWIFT.SECURITY.JSONInjection

JSONInjection:JSONエンティティにおける無害化されていないユーザ制御入力の使用の回避(JSONインジェクション)

重大

Mail Command Injection

OPT.SWIFT.SECURITY.MailCommandInjection

MailCommandInjection:メールコマンドインジェクション

重大

No SQL Injection

OPT.SWIFT.SECURITY.NoSQLInjection

NoSQLInjection:データクエリロジックにおける特殊要素の不適切な無害化(NoSQLインジェクション)

重大

Regex Injection

OPT.SWIFT.SECURITY.RegexInjection

RegexInjection:悪意のある正規表現によるDos攻撃の防止(正規表現インジェクション)

重大

SQL Injection

OPT.SWIFT.SECURITY.SqlInjection

SqlInjection:無害化されていないユーザ入力によって生成されるSQLコードの回避(SQLインジェクション攻撃に対して脆弱)

重大

Xpath Injection

OPT.SWIFT.SECURITY.XpathInjection

XpathInjection:無害化されていないユーザ入力で生成されるXPath式の回避

重大

Missing Password Field Masking

OPT.SWIFT.SECURITY.MissingPasswordFieldMasking

MissingPasswordFieldMasking:マスクされていないパスワード入力フィールド

重大

Avoid Dangerous Try

OPT.SWIFT.RELIABILITY.AvoidDangerousTry

AvoidDangerousTry:try演算子と!演算子の併用回避

重大

Path Traversal

OPT.SWIFT.SECURITY.PathTraversal

PathTraversal:リソースへのパス名で構成される、無害化されていないユーザ制御の入力の回避

重大

Weak Cryptographic Hash

OPT.SWIFT.SECURITY.WeakCryptographicHash

WeakCryptographicHash:脆弱な暗号化ハッシュのデータの完全性の欠如

重大

Weak Cryptographic Hash Salt

OPT.SWIFT.SECURITY.WeakCryptographicHashSalt

WeakCryptographicHashSalt:脆弱な暗号化ソルトのデータの完全性の欠如

重大

Weak Cryptographic Key

OPT.SWIFT.SECURITY.WeakCryptographicKey

WeakCryptographicKey:暗号化に使用される脆弱なキー

重大

Weak Encryption

OPT.SWIFT.SECURITY.WeakEncryption

WeakEncryption:脆弱な共通鍵暗号アルゴリズム

重大

Weak Key Derivation Iteration

OPT.SWIFT.SECURITY.WeakKeyDerivationIteration

WeakKeyDerivationIteration:キー導出の反復回数不足

重大

Weak Key Derivation Password

OPT.SWIFT.SECURITY.WeakKeyDerivationPassword

WeakKeyDerivationPassword:キー導出における空のパスワード/nilのパスワードの使用

重大

Weak Symmetric Encryption Initialization Vector

OPT.SWIFT.SECURITY.WeakSymmetricEncryptionInitializationVector

WeakSymmetricEncryptionInitializationVector:脆弱な暗号初期化ベクトル

重大

Weak Symmetric Encryption Mode Of Operation

OPT.SWIFT.SECURITY.WeakSymmetricEncryptionModeOfOperation

WeakSymmetricEncryptionModeOfOperation:共通鍵暗号での脆弱な操作モードの使用禁止

Http Parameter Pollution Rule

OPT.SWIFT.SECURITY.HttpParameterPollutionRule

HttpParameterPollutionRule:HTTPパラメータ汚染(HPP)

Log Forging

OPT.SWIFT.SECURITY.LogForging

LogForging:ログの出力の不適切な無害化

Open Redirect

OPT.SWIFT.SECURITY.OpenRedirect

OpenRedirect:未検証の入力によってリダイレクト先のURLを制御することを許可しない

Resource Injection

OPT.SWIFT.SECURITY.ResourceInjection

ResourceInjection:リソース識別子の不適切な制御 (リリソースインジェクション) 

Unsafe Reflection

OPT.SWIFT.SECURITY.UnsafeReflection

UnsafeReflection:クラスまたはコードを選択するための外部制御入力の使用(安全でないリフレクション)

URL Scheme Hijacking

OPT.SWIFT.SECURITY.URLSchemeHijacking

URLSchemeHijacking:ユーザ入力によるURLスキームの乗っ取り

XML Entity Injection

OPT.SWIFT.SECURITY.XMLEntityInjection

XMLEntityInjection:XMLエンティティインジェクション

XML Injection

OPT.SWIFT.SECURITY.XMLInjection

XMLInjection: XMLインジェクション(別名、ブラインドXPathインジェクション)

Hardcoded Ip

OPT.SWIFT.SECURITY.HardcodedIp

HardcodedIp:ソースコードにおけるIPアドレスの書き込み禁止

Avoid Maximum Location Accuracy When Possible

OPT.SWIFT.EFFICIENCY.AvoidMaximumLocationAccuracyWhenPossible

AvoidMaximumLocationAccuracyWhenPossible:デフォルトでの最適な位置情報精度の使用回避

Cache Date Formatters

OPT.SWIFT.EFFICIENCY.CacheDateFormatters

CacheDateFormatters:NSDateFormatterのキャッシュ(NSDateFormatter型のインスタンスを複数作成するのではなく、単一のインスタンスをキャッシュして再利用)

Do Not Instantiate Temporal Objects Loops

OPT.SWIFT.EFFICIENCY.DoNotInstantiateTemporalObjectsLoops

DoNotInstantiateTemporalObjectsLoops:ループ本体における一時オブジェクトの割り当ての回避

Minimize Bluetooth Interaction

OPT.SWIFT.EFFICIENCY.MinimizeBluetoothInteraction

MinimizeBluetoothInteraction:スキャンオプションとしてのCBCentralManagerScanOptionAllowDuplicatesKey定数の使用の回避

Class Cyclomatic Complexity

OPT.SWIFT.MAINTAINABILITY.ClassCyclomaticComplexity

ClassCyclomaticComplexity:循環的複雑度の高いクラスの使用の回避

Dead Stores

OPT.SWIFT.MAINTAINABILITY.DeadStores

DeadStores:未使用のboundローカル変数

Method Cyclomatic Complexity

OPT.SWIFT.MAINTAINABILITY.MethodCyclomaticComplexity

MethodCyclomaticComplexity:循環的複雑度の高いメソッドの使用の回避

Unused Local Var

OPT.SWIFT.MAINTAINABILITY.UnusedLocalVar

UnusedLocalVar:未使用のローカル変数

Hardcoded Absolute Path

OPT.SWIFT.PORTABILITY.HardcodedAbsolutePath

HardcodedAbsolutePath:絶対パスのハードコード禁止

Avoid Empty Catch Blocks

OPT.SWIFT.RELIABILITY.AvoidEmptyCatchBlocks

AvoidEmptyCatchBlocks:空のCATCHブロックの使用の回避

User Controlled SQL Primary Key

OPT.SWIFT.SECURITY.UserControlledSQLPrimaryKey

UserControlledSQLPrimaryKey:ユーザ制御の主キーのクエリ使用禁止

Insecure Transport

OPT.SWIFT.SECURITY.InsecureTransport

InsecureTransport:安全でない送信

Password In Comment Rule

OPT.SWIFT.SECURITY.PasswordInCommentRule

PasswordInCommentRule:システムまたはシステムコード内に平文でのパスワード/パスワードの詳細の保存を検出(システムのセキュリティを脅かす可能性あり)

Avoid Locks

OPT.SWIFT.EFFICIENCY.AvoidLocks

AvoidLocks:ロックの使用の回避

Avoid Commented Out Code

OPT.SWIFT.MAINTAINABILITY.AvoidCommentedOutCode

AvoidCommentedOutCode:コメントアウトされたコードブロックの回避

Functions Should Not Return Constants

OPT.SWIFT.MAINTAINABILITY.FunctionsShouldNotReturnConstants

FunctionsShouldNotReturnConstants:関数における同じ定数の戻り値の回避

Review Useless Empty Blocks

OPT.SWIFT.MAINTAINABILITY.ReviewUselessEmptyBlocks

ReviewUselessEmptyBlocks:空のブロックでのループや条件文の使用回避

Unused Parameter

OPT.SWIFT.MAINTAINABILITY.UnusedParameter

UnusedParameter:未使用の関数パラメータ

Only One Return

OPT.SWIFT.RELIABILITY.OnlyOneReturn

OnlyOneReturn:関数またはメソッドでのreturn文の多用

Unconditional Jump Statements

OPT.SWIFT.RELIABILITY.UnconditionalJumpStatements

UnconditionalJumpStatements:無条件ジャンプ文の誤った使用

Plaintext Storage In A Cookie Rule

OPT.SWIFT.SECURITY.PlaintextStorageInACookieRule

PlaintextStorageInACookieRule:Cookieでの機密情報の平文保存

Unsafe Cookie

OPT.SWIFT.SECURITY.UnsafeCookie

UnsafeCookie:適切なセキュリティプロパティを持つサーバ側のCookieの生成

Serialization Injection

OPT.SWIFT.SECURITY.SerializationInjection

SerializationInjection:信頼できないデータのデシリアライゼーション

String Format Injection

OPT.SWIFT.SECURITY.StringFormatInjection

StringFormatInjection:無害化されていないユーザ入力をフォーマット文字列から除外

Hardcoded Username Password

OPT.SWIFT.SECURITY.HardcodedUsernamePassword

HardcodedUsernamePassword:ハードコードされた資格情報の使用

HTTP Response Caching Leak

OPT.SWIFT.SECURITY.HTTPResponseCachingLeak

HTTPResponseCachingLeak:機密性の高いHTTPレスポンスのキャッシュ

Insecure Temporary File

OPT.SWIFT.SECURITY.InsecureTemporaryFile

InsecureTemporaryFile:安全ではない一時ファイルの作成と使用(アプリケーションとシステムのデータが攻撃に対して脆弱性になる可能性あり)

Keyboard Caching Leak

OPT.SWIFT.SECURITY.KeyboardCachingLeak

KeyboardCachingLeak:キーボードキャッシュによる機密データの漏洩

Password In Configuration File

OPT.SWIFT.SECURITY.PasswordInConfigurationFile

PasswordInConfigurationFile:設定ファイルでの認証情報の使用

Pasteboard Caching Leak

OPT.SWIFT.SECURITY.PasteboardCachingLeak

PasteboardCachingLeak:ペーストポードのキャッシュメカニズムによる機密データの漏洩

Privacy Violation

OPT.SWIFT.SECURITY.PrivacyViolation

PrivacyViolation:個人情報の漏洩(プライバシー侵害)

Sensitive Core Data

OPT.SWIFT.SECURITY.SensitiveCoreData

SensitiveCoreData:CoreDataに格納された機密情報(プライバシー侵害)

Sensitive Data Accessed From Itunes

OPT.SWIFT.SECURITY.SensitiveDataAccessedFromItunes

SensitiveDataAccessedFromItunes:個人情報の漏洩(プライバシー侵害)

Sensitive SQL

OPT.SWIFT.SECURITY.SensitiveSQL

SensitiveSQL:SQLデータベースに格納された機密データ(プライバシーの侵害)

Sensitive No SQL

OPT.SWIFT.SECURITY.SensitiveNoSQL

SensitiveNoSQL:NoSQLデータベースに格納された機密データ(プライバシーの侵害)

Sensitive User Defaults

OPT.SWIFT.SECURITY.SensitiveUserDefaults

SensitiveUserDefaults:UserDefaultsに格納された機密情報(プライバシー侵害)

Serializable Class Containing Sensitive Data

OPT.SWIFT.SECURITY.SerializableClassContainingSensitiveData

SerializableClassContainingSensitiveData:機密データを含むシリアライズ可能クラスの検出

Screen Caching Leak

OPT.SWIFT.SECURITY.ScreenCachingLeak

ScreenCachingLeak:アプリがバックグランドに移動した時の画面キャッシュメカニズムによる機密データの漏洩

Third Party Keyboard Allowed

OPT.SWIFT.SECURITY.ThirdPartyKeyboardAllowed

ThirdPartyKeyboardAllowed:サードパーティのキーボードへの機密データ公開の回避

Avoid Comparing Count To Zero

OPT.SWIFT.EFFICIENCY.AvoidComparingCountToZero

AvoidComparingCountToZero:isEmptyを使用したコレクションの空チェック

Stop Scanning On Device Found

OPT.SWIFT.EFFICIENCY.StopScanningOnDeviceFound

StopScanningOnDeviceFound:デバイス検出時のスキャンの停止

Vars Should Be Constants

OPT.SWIFT.EFFICIENCY.VarsShouldBeConstants

VarsShouldBeConstants:値が変更されない変数の定数化

Avoid Excessive Nested Statements

OPT.SWIFT.MAINTAINABILITY.AvoidExcessiveNestedStatements

AvoidExcessiveNestedStatements:深すぎるネストのステートメントの回避

Avoid Same Class Field Names

OPT.SWIFT.MAINTAINABILITY.AvoidSameClassFieldNames

AvoidSameClassFieldNames:クラス名と属性名の一致禁止

Avoid Same Method Field Names

OPT.SWIFT.MAINTAINABILITY.AvoidSameMethodFieldNames

AvoidSameMethodFieldNames:メソッドとクラスフィールドを大文字と小文字の違いのみで区別することの禁止

Avoid Many Parameters Function

OPT.SWIFT.MAINTAINABILITY.AvoidManyParametersFunction

AvoidManyParametersFunction:関数やメソッドにおける引数の多用

Density Of Comments

OPT.SWIFT.MAINTAINABILITY.DensityOfComments

DensityOfComments:ソースコードの適切なコメント化

Nested Switch Statement

OPT.SWIFT.MAINTAINABILITY.NestedSwitchStatement

NestedSwitchStatement:switch文のネストの回避

One Statement Per Line

OPT.SWIFT.MAINTAINABILITY.OneStatementPerLine

OneStatementPerLine:1行に1つのステートメントのみを使用

Unused Private Function

OPT.SWIFT.MAINTAINABILITY.UnusedPrivateFunction

UnusedPrivateFunction:未使用のprivateメソッドとコンストラクタの回避

Avoid Forced Type Conversion

OPT.SWIFT.RELIABILITY.AvoidForcedTypeConversion

AvoidForcedTypeConversion:強制的な型変換の回避

Buffer Overflow

OPT.SWIFT.RELIABILITY.BufferOverflow

BufferOverflow::メモリ破損の可能性

Local Vars With Global Name

OPT.SWIFT.RELIABILITY.LocalVarsWithGlobalName

LocalVarsWithGlobalName:ローカル変数とグローバル変数の名前の重複

Potential Encoding Buffer Overflow

OPT.SWIFT.RELIABILITY.PotentialEncodingBufferOverflow

PotentialEncodingBufferOverflow:メモリ破損の可能性

Unreachable Code

OPT.SWIFT.RELIABILITY.UnreachableCode

UnreachableCode:到達不可能なコードの回避

Use Weak References With Delegate Protocols

OPT.SWIFT.RELIABILITY.UseWeakReferencesWithDelegateProtocols

UseWeakReferencesWithDelegateProtocols:デリゲートプロトコルはクラスのみであることの制限

Avoid S M S

OPT.SWIFT.SECURITY.AvoidSMS

AvoidSMS:SMS関連の操作の回避

Biometric Without Message

OPT.SWIFT.SECURITY.BiometricWithoutMessage

BiometricWithoutMessage:ユーザ認証を求める理由なしでの、指紋認証の要求

Execution After Redirect

OPT.SWIFT.SECURITY.ExecutionAfterRedirect

ExecutionAfterRedirect:リダイレクト処理後のコードの実行(EAR)

Missing Content Validation

OPT.SWIFT.SECURITY.MissingContentValidation

MissingContentValidation:コンテンツ検証の欠落

Potential Infinite Loop

OPT.SWIFT.SECURITY.PotentialInfiniteLoop

PotentialInfiniteLoop:到達不可能な終了条件を持つルール(無限ループ)

Server Trust Credential Check

OPT.SWIFT.SECURITY.ServerTrustCredentialCheck

ServerTrustCredentialChec:サーバ証明書のトラストチェーンの評価

Unchecked Input In Loop Condition

OPT.SWIFT.SECURITY.UncheckedInputInLoopCondition

UncheckedInputInLoopCondition:ループ条件における未チェックの入力