この規格 プレビューページの目次
※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。
索引
エイダ、25, 72, 76, 89
AMV – データの型破壊再解釈、84
API
アプリケーションプログラミングインターフェース、28
APL, 61
アップル
OS X, 144
アプリケーションの脆弱性, 19
最小権限の遵守 [XYN], 152
認証ロジック エラー [XZO], 146
クロックの問題 [CCI], 167
クロスサイトスクリプティング [XYT], 134
矛盾情報流出[XZL], 161
整合性チェックなしのコードのダウンロード [DLB], 130
信頼できないコードの実行またはロード [XYS], 131
ハードコードされた資格情報 [XYP], 149
ハードコードされたパスワード - ハードコードされた資格情報、149 を参照してください。
過剰な認証試行の不適切な制限 [WPL], 148
不適切に検証された署名 [XZR], 155
共有リソースの不十分なセキュア通信 [CGY], 156
信頼されていないコントロール領域からの機能の組み込み [DHU], 132
不正な承認 [BJE], 151
インジェクション[RST], 137
資格情報の保護が不十分 [XYM], 150
メモリロック[XZX], 158
アクセス制御 [XZN] の欠落または不一致、151
必要な暗号化ステップ [XZS] の欠落、154
パストラバーサル [EWR], 141
特権サンドボックスの問題 [XYO], 153
リソース枯渇[XZP], 145
リソース名 [HTS], 144
[XZK] を使用する前に機密情報がクリアされていない、159
消費時間測定[CCM], 160
時間のドリフトとジッター [CDJ], 169
引用符で囲まれていない検索パスまたは要素 [XZQ], 140
無制限のファイル アップロード [CBF], 129
特定されていない機能 [BVQ], 162
信頼されていないサイトへの URL リダイレクト (「オープン リダイレクト」) [PYQ], 136
ソルトなしの一方向ハッシュの使用 [MVX], 156
管理されていない、または汚染されたソースからのチェックされていないデータの使用[EFS], 133
アプリケーションの脆弱性, 14
アリアン5, 34
ビット演算子、60
BJE - 不正な承認、151
BJL—名前空間の問題、56
BKK - 多形変数、96
ブラックリスト、130, 140
BLP – Liskov代替原則または契約モデルの違反、93
BQF - 詳細不明の動作、111
破る, 73
BRS - あいまいな言語機能, 109
バッファ境界違反、36
バッファ オーバーフロー、36, 39
バッファアンダーライト、36
BVQ - 指定されていない機能、162
C, 60, 63, 64, 70, 71, 73, 76
C の例、62
C++、60, 64, 71, 76, 89, 90, 105
コピーで呼び出す, 74
名前で呼ぶ, 74
参照による呼び出し, 74
結果による呼び出し, 74
値による呼び出し, 74
value-result による呼び出し、74
CBF – 無制限のファイル アップロード、129
CCB – 列挙子の問題、31
CCI - クロックの問題、167
CCM - 消費時間測定、160
CDJ - 時間のドリフトとジッター、169
CGA - 並行性 - アクティベーション、117
CGM - ロック プロトコル エラー、124
CGS - 並行性 - 早期終了、122
CGT - コンカレンシー - 指示された終了、119
CGX - 同時データ アクセス、120
CGY - 共有リソースの不十分なセキュア通信、156
CJM—文字列終端、35
CLL—Switch ステートメントと静的分析、67
競争、11
続ける, 73
暗号、155
CSJ - パラメータと戻り値の受け渡し, 74
ダングリングリファレンス、45
データの破損, 42
DCM - スタック フレームへのダングリング リファレンス, 76
無効化されたコード定義、66
デッドコードの定義、66
デッドロック, 125
意味
無効化されたコード、66
デッドコード、66
DHU - 信頼されていない制御範囲からの機能の組み込み、132
Diffie-Hellman スタイル、147
デジタル署名、103
DJS – 言語間通話、100
DLB – 整合性チェックなしのコードのダウンロード、130
DOS
サービス拒否、145
動的リンク, 102
EFS – 管理されていない、または汚染されたソースからのチェックされていないデータの使用、133
暗号化、154, 155
エンディアン
大、27
少し、27
エンディアン, 26
列挙、31
EOJ—制御フローの境界、69
EWD—非構造化プログラミング、73
EWF - 未定義の動作、112
EEA - パス トラバーサル、141
例外ハンドラ、105
FAB – 実装定義の動作、114
失敗、14
FIF – 算術ラップアラウンド エラー、47
FLC - 変換エラー、33
フォートラン、84
GDL-再帰、80
ジェネリック, 89
gif, 130
後藤 73
ハードコードされたパスワード - ハードコードされた資格情報を参照してください, 149
HCB – バッファー境界違反 (バッファー オーバーフロー)、36
HFC - ポインター型変換、42
HJW – ライブラリ ルーチンからの予期しない例外、104
HTML
ハイパーテキスト マークアップ言語、139
HTS - リソース名、144
HTTP
ハイパーテキスト転送プロトコル、136
べき等、47, 112
IHN – 型システム、23
継承、91
IPアドレス、146
ISO/IEC/IEEE 60559, 28
ジャワ、65, 89
Java の例、62
JavaScript, 134, 135, 136
JCW - 演算子の優先順位と結合規則、60
KOA—間違った表現の可能性が高い、63
言語の脆弱性
ライブラリ関数への引数の受け渡し [TRJ], 99
算術ラップアラウンド エラー [FIF], 47
ビット表現 [STR], 26
バッファ境界違反 (バッファ オーバーフロー) [HCB], 36
明確な名前の選択 [NAI], 50
同時実行アクティベーション[CGA], 117
同時実行による終了 [CGT], 119
並行性 - 早期終了 [CGS], 122
同時データ アクセス [CGX], 120
変換エラー [FLC], 33
ヒープへのダングリング参照 [XYK], 45
スタック フレームへのダングリング参照 [DCM], 76
デッドおよび非アクティブ化されたコード [XYQ], 65
デッドストア [WXQ], 52
深いコピーと浅いコピー [YAN], 86
制御フローの境界 [EOJ], 69
非推奨の言語機能 [MEM], 116
動的にリンクされたコードと自己修正コード [NYY], 102
列挙子の問題[CCB], 31
追加の組み込み関数 [LRM], 97
浮動小数点演算 [PLF], 28
識別子名の再利用 [YOW], 54
無視されたエラー ステータスと未処理の例外 [OYB], 81
実装定義の動作[FAB], 114
継承[RIP], 91
変数の初期化 [LAV], 58
言語間通話 [DJS], 100
ライブラリ署名 [NSQ], 103
間違っている可能性が高い表現 [KOA], 63
ロック プロトコル エラー [CGM], 124
ループ制御変数 [TEX] , 70
メモリ リークとヒープの断片化 [XYL], 87
定数の変更 [UJO], 172
名前空間の問題[BJL], 56
NULL ポインター逆参照 [XYH], 44
あいまいな言語機能 [BRS], 109
オフ バイ ワン エラー [XZH], 71
演算子の優先順位と結合性 [JCW], 60
パラメータと戻り値を渡す[CSJ], 74
ポインター演算 [RVG], 43
ポインタ型変換 [HFC], 42
多相変数 [BKK], 96
プリプロセッサ ディレクティブ [NMP], 105
本質的に危険な操作の提供 [SKL], 108
再帰[GDL], 80
再発送[PPH], 94
外部フォーマット文字列への依存 [SHL], 126
副作用と評価の順序[SAM], 61
文字列終端 [CJM], 35
非構造化プログラミング [EWD], 73
サブプログラム署名の不一致 [OTR], 78
言語定義のランタイム チェックの抑制 [MXB], 107
Switch ステートメントと静的解析 [CLL], 67
テンプレートとジェネリック [SYM], 89
型システム [IHN], 23
データの型破壊再解釈[AMV], 84
ライブラリ ルーチンからの予期しない例外 [HJW], 104
チェックされていない配列のコピー [XYW], 40
チェックされていない配列のインデックス [XYZ], 38
未定義の動作 [EWF], 112
不明な動作 [BFQ], 111
未使用変数 [YZS], 53
乗算と除算にシフト演算を使用する [PIK], 49
Liskov代替原則または契約モデル[BLP]の違反、93
言語の脆弱性、14
LAV - 変数の初期化、58
リナックス、144
ライブロック、125
ロングジャンプ、73
LRM - 追加の組み込み関数、97
マコフ、146
MEM - 非推奨の言語機能、116
メモリ開示、159
マイクロソフト
Win16, 144
窓、159
Windows XP, 144
MIME
多目的インターネット メール拡張機能、140
ミスラ C, 43
MISRA C++、105
mlock, ()、159
MVX — ソルトなしの一方向ハッシュの使用、156
MXB - 言語定義の実行時チェックの抑制、107
NAI—明確な名前の選択、50
名前の種類の等価性, 24
NMP - プリプロセッサ ディレクティブ、105
NSQ—ライブラリ署名、103
NTFS
新技術ファイルシステム、130
ゼロ、44, 71
NULL ポインタ, 44
ヌルポインタ、44
NYY – 動的にリンクされたコードと自己変更コード、102
OTR - サブプログラム署名の不一致、78
OYB – 無視されたエラー ステータスと未処理の例外、81
パスカル、100
ペソ、139
PIK – 乗算と除算にシフト演算を使用する、49
PLF - 浮動小数点演算、28
POSIX, 118
PPH - 再発送、94
プラグマ、89, 114
予測可能な実行、13, 19
PYQ – 信頼されていないサイトへの URL リダイレクト (「オープン リダイレクト」)、136
実数、28
リアルタイムJava, 124
リソースの枯渇、145
RIP継承、91
RST-インジェクション、137
RVG - ポインター演算、43
安全上の問題、13
安全上重要なソフトウェア、14
SAM - 副作用と評価の順序、61
セキュリティの脆弱性, 14
セットジャンプ、73
SHL – 外部フォーマット文字列への依存、126
SKL – 本質的に危険な操作の提供、108
ソフトウェアの品質, 13
ソフトウェアの脆弱性, 19
SQL
構造化クエリ言語、165
STR - ビット表現、26
strcpy, 36
strncpy, 36
構造型の等価性, 24
スイッチ、67
SYM—テンプレートとジェネリック、89
シンボリックリンク、142
テンプレート、89, 90
TEX - ループ制御変数、70
スレッド 、11
TRJ - ライブラリ関数への引数の受け渡し、99
タイプ強制, 33
タイプセーフ、24
タイプセキュア、24
型システム, 24
UJO—定数の変更、172
UNC
統一命名規則、142
普遍的な命名規則、142
Unchecked_Conversion 、85
UNIX, 102, 142, 144, 152
不明な機能, 162
URI
統一資源識別子、136
URL
ユニフォームリソースロケーター、136
VirtualLock, ()、159
ホワイトリスト、129, 136, 140
窓、118
WPL – 過剰な認証試行の不適切な制限、148
WXQ-デッド ストア、52
XSS
クロスサイトスクリプティング、134
XYH - ゼロ ポインタ参照、44
XYK - ヒープへのダングリング参照、45
XYL - メモリ リークとヒープの断片化、87
XYM - 資格情報の保護が不十分、150
XYN - 最小特権への準拠、152
XYO – 特権サンドボックスの問題、153
XYP - ハードコードされた資格情報、149
XYQ - デッドおよび非アクティブ化されたコード、65
XYS – 信頼できないコードの実行または読み込み、131
XYT - クロスサイト スクリプティング、134
XYW - チェックされていない配列のコピー、40
XYZ - 未チェックの配列インデックス、38
XZH – オフ バイ ワン エラー、71
XZK – 使用前に消去されない機密情報、159
XZL – 不一致情報漏洩、161
XZN - 欠落または一貫性のないアクセス制御、151
XZO - 認証ロジック エラー、146
XZP - リソースの枯渇、145
XZQ – 引用符で囲まれていない検索パスまたは要素、140
XZR – 不適切に検証された署名、155
XZS – 必要な暗号化ステップの欠落、154
XZX - メモリ ロック、158
YAN - 深いコピーと浅いコピー、86
YOW - 識別子名の再利用、54
YZS - 未使用変数、53
Index
Ada, 25, 72, 76, 89
AMV – Type-breaking reinterpretation of data, 84
API
Application Programming Interface, 28
APL, 61
Apple
OS X, 144
Application vulnerabilities, 19
Adherence to least privilege [XYN], 152
Authentication logic error [XZO], 146
Clock issues [CCI], 167
Cross-site scripting [XYT], 134
Discrepancy information leak [XZL], 161
Download of code without integrity check [DLB], 130
Executing or loading untrusted code [XYS], 131
Hard-coded credential [XYP], 149
Hard-coded password – see Hard-coded credentials, 149
Improper restriction of excessive authentication attempts [WPL], 148
Improperly verified signature [XZR], 155
Inadequately secure communication of shared resources [CGY], 156
Inclusion of functionality from untrusted control sphere [DHU], 132
Incorrect authorization [BJE], 151
Injection [RST], 137
Insufficiently protected credentials [XYM], 150
Memory locking [XZX], 158
Missing or inconsistent access control [XZN], 151
Missing required cryptographic step [XZS], 154
Path traversal [EWR], 141
Privilege sandbox issues [XYO], 153
Resource exhaustion [XZP], 145
Resource names [HTS], 144
Sensitive information not cleared before Use [XZK], 159
Time consumption measurement [CCM], 160
Time drift and jitter [CDJ], 169
Unquoted search path or element [XZQ], 140
Unrestricted file upload [CBF], 129
Unspecified functionality [BVQ], 162
URL redirection to untrusted site ('open redirect') [PYQ], 136
Use of a one-way hash without a salt [MVX], 156
Use of unchecked data from an uncontrolled or tainted source [EFS], 133
application vulnerability, 14
Ariane 5, 34
bitwise operators, 60
BJE – Incorrect authorization, 151
BJL – Namespace issues, 56
BKK – Polymorphic variables, 96
black-list, 130, 140
BLP – Violations of the Liskov substitution principle or contract model, 93
BQF – Unspecified behaviour, 111
break, 73
BRS – Obscure language features, 109
buffer boundary violation, 36
buffer overflow, 36, 39
buffer underwrite, 36
BVQ – Unspecified functionality, 162
C, 60, 63, 64, 70, 71, 73, 76
C example, 62
C++, 60, 64, 71, 76, 89, 90, 105
call by copy, 74
call by name, 74
call by reference, 74
call by result, 74
call by value, 74
call by value-result, 74
CBF – Unrestricted file upload, 129
CCB – Enumerator issues, 31
CCI – Clock issues, 167
CCM - Time consumption measurement, 160
CDJ – Time drift and jitter, 169
CGA – Concurrency – Activation, 117
CGM – Lock protocol errors, 124
CGS – Concurrency – Premature termination, 122
CGT - Concurrency – Directed termination, 119
CGX – Concurrent data access, 120
CGY – Inadequately secure communication of shared resources, 156
CJM – String termination, 35
CLL – Switch statements and static analysis, 67
concurrency, 11
continue, 73
cryptologic, 155
CSJ – Passing parameters and return values, 74
dangling reference, 45
data corruption, 42
DCM – Dangling references to stack frames, 76
Deactivated code definition, 66
Dead code definition, 66
deadlock, 125
Definition
Deactivated code, 66
Dead code, 66
DHU – Inclusion of functionality from untrusted control sphere, 132
Diffie-Hellman-style, 147
digital signature, 103
DJS – Inter-language calling, 100
DLB – Download of code without integrity check, 130
DoS
Denial of Service, 145
dynamically linked, 102
EFS – Use of unchecked data from an uncontrolled or tainted source, 133
encryption, 154, 155
endian
big, 27
little, 27
endianness, 26
Enumerations, 31
EOJ – Demarcation of control flow, 69
EWD – Unstructured programming, 73
EWF – Undefined behaviour, 112
EWR – Path traversal, 141
exception handler, 105
FAB – Implementation-defined behaviour, 114
failure, 14
FIF – Arithmetic wrap-around error, 47
FLC – Conversion errors, 33
Fortran, 84
GDL – Recursion, 80
generics, 89
GIF, 130
goto, 73
Hard-coded password – see hard coded credentials, 149
HCB – Buffer boundary violation (buffer overflow), 36
HFC – Pointer type conversions, 42
HJW – unanticipated exceptions from library routines, 104
HTML
Hyper Text Markup Language, 139
HTS – Resource names, 144
HTTP
Hypertext Transfer Protocol, 136
idempotent, 47, 112
IHN –Type system, 23
inheritance, 91
IP address, 146
ISO/IEC/IEEE 60559, 28
Java, 65, 89
Java example, 62
JavaScript, 134, 135, 136
JCW – Operator precedence and associativity, 60
KOA – Likely incorrect expression, 63
Language vulnerabilities
Argument passing to library functions [TRJ], 99
Arithmetic wrap-around error [FIF], 47
Bit representations [STR], 26
Buffer boundary violation (buffer overflow) [HCB], 36
Choice of clear names [NAI], 50
Concurrency – Activation [CGA], 117
Concurrency – Directed termination [CGT], 119
Concurrency – Premature termination [CGS], 122
Concurrent data access [CGX], 120
Conversion errors [FLC], 33
Dangling reference to heap [XYK], 45
Dangling references to stack frames [DCM], 76
Dead and deactivated code [XYQ], 65
Dead store [WXQ], 52
Deep vs shallow copying [YAN], 86
Demarcation of control flow [EOJ], 69
Deprecated language features [MEM], 116
Dynamically-linked code and self-modifying code [NYY], 102
Enumerator issues [CCB], 31
Extra intrinsics [LRM], 97
Floating-point arithmetic [PLF], 28
Identifier name reuse [YOW], 54
Ignored error status and unhandled exceptions [OYB], 81
Implementation-defined behaviour [FAB], 114
Inheritance [RIP], 91
Initialization of variables [LAV], 58
Inter-language calling [DJS], 100
Library signature [NSQ], 103
Likely incorrect expression [KOA], 63
Lock protocol errors [CGM], 124
Loop control variables [TEX] , 70
Memory leaks and heap fragmentation [XYL], 87
Modifying Constants [UJO], 172
Namespace issues [BJL], 56
Null pointer dereference [XYH], 44
Obscure language features [BRS], 109
Off-by-one error [XZH], 71
Operator precedence and associativity [JCW], 60
Passing parameters and return values [CSJ], 74
Pointer arithmetic [RVG], 43
Pointer type conversions [HFC], 42
Polymorphic variables [BKK], 96
Pre-processor directives [NMP], 105
Provision of inherently unsafe operations [SKL], 108
Recursion [GDL], 80
Redispatching [PPH], 94
Reliance on external format strings[SHL], 126
Side-effects and order of evaluation [SAM], 61
String termination [CJM], 35
Unstructured programming [EWD], 73
Subprogram signature mismatch [OTR], 78
Suppression of language-defined run-time checking [MXB], 107
Switch statements and static analysis [CLL], 67
Templates and generics [SYM], 89
Type system [IHN], 23
Type-breaking reinterpretation of data [AMV], 84
Unanticipated exceptions from library routines [HJW], 104
Unchecked array copying [XYW], 40
Unchecked array indexing [XYZ], 38
Undefined behaviour [EWF], 112
Unspecified behaviour [BFQ], 111
Unused variable [YZS], 53
Using shift operations for multiplication and division [PIK], 49
Violations of the Liskov substitution principle or contract model [BLP], 93
language vulnerability, 14
LAV – Initialization of variables, 58
Linux, 144
livelock, 125
longjmp, 73
LRM – Extra intrinsics, 97
macof, 146
MEM – Deprecated language features, 116
memory disclosure, 159
Microsoft
Win16, 144
Windows, 159
Windows XP, 144
MIME
Multipurpose Internet Mail Extensions, 140
MISRA C, 43
MISRA C++, 105
mlock(), 159
MVX – use of a one-way hash without a salt, 156
MXB – Suppression of language-defined run-time checking, 107
NAI – Choice of clear names, 50
name type equivalence, 24
NMP – Pre-processor Directives, 105
NSQ – Library signature, 103
NTFS
New Technology File System, 130
NULL, 44, 71
NULL pointer, 44
null-pointer, 44
NYY – Dynamically-linked code and self-modifying code, 102
OTR – Subprogram signature mismatch, 78
OYB – Ignored error status and unhandled exceptions, 81
Pascal, 100
PHP, 139
PIK – Using shift operations for multiplication and division, 49
PLF – Floating-point arithmetic, 28
POSIX, 118
PPH – Redispatching, 94
pragmas, 89, 114
predictable execution, 13, 19
PYQ – URL redirection to untrusted site ('open redirect'), 136
real numbers, 28
Real-Time Java, 124
resource exhaustion, 145
RIP – Inheritance, 91
RST – Injection, 137
RVG – Pointer arithmetic, 43
safety hazard, 13
safety-critical software, 14
SAM – Side-effects and order of evaluation, 61
security vulnerability, 14
setjmp, 73
SHL – Reliance on external format strings, 126
SKL – Provision of inherently unsafe operations, 108
software quality, 13
software vulnerabilities, 19
SQL
Structured query language, 165
STR – Bit representations, 26
strcpy, 36
strncpy, 36
structure type equivalence, 24
switch, 67
SYM – Templates and Generics, 89
symlink, 142
templates, 89, 90
TEX – Loop control variables, 70
thread , 11
TRJ – Argument passing to library functions, 99
type coercion, 33
type safe, 24
type secure, 24
type system, 24
UJO – Modifying Constants, 172
UNC
Uniform Naming Convention, 142
Universal Naming Convention, 142
Unchecked_Conversion, 85
UNIX, 102, 142, 144, 152
Unspecified functionality, 162
URI
Uniform Resource Identifier, 136
URL
Uniform Resource Locator, 136
VirtualLock(), 159
white-list, 129, 136, 140
Windows, 118
WPL – Improper restriction of excessive authentication attempts, 148
WXQ – Dead store, 52
XSS
Cross-site scripting, 134
XYH – Null pointer deference, 44
XYK – Dangling reference to heap, 45
XYL – Memory leaks and heap fragmentation, 87
XYM – Insufficiently protected credentials, 150
XYN – Adherence to least privilege, 152
XYO – Privilege sandbox issues, 153
XYP - Hard-coded credentials, 149
XYQ – Dead and deactivated code, 65
XYS – Executing or loading untrusted code, 131
XYT – Cross-site scripting, 134
XYW – Unchecked array copying, 40
XYZ – Unchecked array indexing, 38
XZH – Off-by-one error, 71
XZK – Sensitive information not cleared before use, 159
XZL – Discrepancy information leak, 161
XZN – Missing or inconsistent access control, 151
XZO – Authentication logic error, 146
XZP – Resource exhaustion, 145
XZQ – Unquoted search path or element, 140
XZR – Improperly verified signature, 155
XZS – Missing required cryptographic step, 154
XZX – Memory locking, 158
YAN – Deep vs shallow copying, 86
YOW – Identifier name reuse, 54
YZS – Unused variable, 53