界: Input Validation and Representation
入力の検証や表現の問題は、メタキャラクター、代替エンコーディング、数値表現などによって引き起こされます。セキュリティの問題は、入力を信頼することに起因します。この問題に含まれるのは、「Buffer Overflow」、「Cross-Site Scripting」攻撃、「SQL Injection」などです。
JSON Injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の C# コードは JSON.NET を使用して、ユーザー制御入力変数
ただし、JSON シリアライゼーションが
このシリアライズされた JSON ファイルがその後
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の C# コードは JSON.NET を使用して、ユーザー制御入力変数
username
および password
から C:\user_info.json
にある JSON ファイルに、権限を与えられていないユーザー (「default」ロールのユーザーです。これに対し権限が付与されたユーザーのロールは「admin」です) のユーザー アカウントの認証情報をシリアライズします。
...
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
using (JsonWriter writer = new JsonTextWriter(sw))
{
writer.Formatting = Formatting.Indented;
writer.WriteStartObject();
writer.WritePropertyName("role");
writer.WriteRawValue("\"default\"");
writer.WritePropertyName("username");
writer.WriteRawValue("\"" + username + "\"");
writer.WritePropertyName("password");
writer.WriteRawValue("\"" + password + "\"");
writer.WriteEndObject();
}
File.WriteAllText(@"C:\user_info.json", sb.ToString());
ただし、JSON シリアライゼーションが
JsonWriter.WriteRawValue()
を使用して実行されるため、username
および password
内の信頼できないデータに対して、JSON 関連の特殊文字をエスケープするための検証がされなくなります。これにより、ユーザーが、シリアライズされた JSON の構造を変更する可能性がある JSON キーを随意に挿入できるようになります。この例では、権限を与えられていないユーザー mallory
(パスワード Evil123!
) が username
変数の値を設定するプロンプトでユーザー名を入力するときに自身のユーザー名に ","role":"admin
を追加する場合、結果として C:\user_info.json
に保存される JSON は次のようになります。
{
"role":"default",
"username":"mallory",
"role":"admin",
"password":"Evil123!"
}
このシリアライズされた JSON ファイルがその後
JsonConvert.DeserializeObject()
を使用して Dictionary
オブジェクトにデシリアライズされた場合はこのようになります。
String jsonString = File.ReadAllText(@"C:\user_info.json");
Dictionary<string, string> userInfo = JsonConvert.DeserializeObject<Dictionary<string, strin>>(jsonString);
Dictionary
オブジェクト内で username
、password
、および role
キーの結果として得られる値はそれぞれ mallory
、Evil123!
、および admin
になります。デシリアライズされた JSON 値が有効かについてこれ以上検証しないと、アプリケーションは誤ってユーザー mallory
に「admin」権限を割り当てます。References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.dotnet.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1.信頼できないソースからデータがプログラムに入力された場合。
2.データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報を送信する可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次のコードは、ユーザー制御入力変数
ただし、JSON シリアライゼーションが文字列連結を使用して実行されるため、
デシリアライズされた JSON 値が有効かどうかこれ以上検証しないと、アプリケーションは意図せずユーザー
1.信頼できないソースからデータがプログラムに入力された場合。
2.データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報を送信する可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次のコードは、ユーザー制御入力変数
username
および password
から ~/user_info.json
にある JSON ファイルに、権限を与えられていないユーザー (「default」ロールのユーザーです。これに対し権限が付与されたユーザーのロールは「admin」です) のユーザー アカウントの認証情報をシリアライズします。
...
func someHandler(w http.ResponseWriter, r *http.Request){
r.parseForm()
username := r.FormValue("username")
password := r.FormValue("password")
...
jsonString := `{
"username":"` + username + `",
"role":"default"
"password":"` + password + `",
}`
...
f, err := os.Create("~/user_info.json")
defer f.Close()
jsonEncoder := json.NewEncoder(f)
jsonEncoder.Encode(jsonString)
}
ただし、JSON シリアライゼーションが文字列連結を使用して実行されるため、
username
および password
内の信頼できないデータに対して、JSON 関連の特殊文字をエスケープするための検証がされなくなります。これにより、ユーザーが、シリアライズされた JSON の構造を変更する可能性がある JSON キーを随意に挿入できるようになります。この例では、権限を与えられていないユーザー mallory
(パスワード Evil123!
) がユーザー名を入力するときに ","role":"admin
を追加する場合、結果として ~/user_info.json
に保存される JSON は次のようになります。
{
"username":"mallory",
"role":"default",
"password":"Evil123!",
"role":"admin"
}
デシリアライズされた JSON 値が有効かどうかこれ以上検証しないと、アプリケーションは意図せずユーザー
mallory
に「admin」権限を割り当てます。References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.golang.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の Java コードは Jackson を使用して、ユーザー制御入力変数
ただし、JSON シリアライゼーションが
このシリアライズされた JSON ファイルがその後
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の Java コードは Jackson を使用して、ユーザー制御入力変数
username
および password
から ~/user_info.json
にある JSON ファイルに、権限を与えられていないユーザー (「default」ロールのユーザーです。これに対し権限が付与されたユーザーのロールは「admin」です) のユーザー アカウントの認証情報をシリアライズします。
...
JsonFactory jfactory = new JsonFactory();
JsonGenerator jGenerator = jfactory.createJsonGenerator(new File("~/user_info.json"), JsonEncoding.UTF8);
jGenerator.writeStartObject();
jGenerator.writeFieldName("username");
jGenerator.writeRawValue("\"" + username + "\"");
jGenerator.writeFieldName("password");
jGenerator.writeRawValue("\"" + password + "\"");
jGenerator.writeFieldName("role");
jGenerator.writeRawValue("\"default\"");
jGenerator.writeEndObject();
jGenerator.close();
ただし、JSON シリアライゼーションが
JsonGenerator.writeRawValue()
を使用して実行されるため、username
および password
内の信頼できないデータに対して、JSON 関連の特殊文字をエスケープするための検証がされなくなります。これにより、ユーザーが、シリアライズされた JSON の構造を変更する可能性がある JSON キーを随意に挿入できるようになります。この例では、権限を与えられていないユーザー mallory
(パスワード Evil123!
) が username
変数の値を設定するプロンプトでユーザー名を入力するときに自身のユーザー名に ","role":"admin
を追加する場合、結果として ~/user_info.json
に保存される JSON は次のようになります。
{
"username":"mallory",
"role":"admin",
"password":"Evil123!",
"role":"default"
}
このシリアライズされた JSON ファイルがその後
JsonParser
を使用して HashMap
オブジェクトにデシリアライズされた場合はこのようになります。
JsonParser jParser = jfactory.createJsonParser(new File("~/user_info.json"));
while (jParser.nextToken() != JsonToken.END_OBJECT) {
String fieldname = jParser.getCurrentName();
if ("username".equals(fieldname)) {
jParser.nextToken();
userInfo.put(fieldname, jParser.getText());
}
if ("password".equals(fieldname)) {
jParser.nextToken();
userInfo.put(fieldname, jParser.getText());
}
if ("role".equals(fieldname)) {
jParser.nextToken();
userInfo.put(fieldname, jParser.getText());
}
if (userInfo.size() == 3)
break;
}
jParser.close();
HashMap
オブジェクト内で username
、password
、および role
キーの結果として得られる値はそれぞれ mallory
、Evil123!
、および admin
になります。デシリアライズされた JSON 値が有効かについてこれ以上検証しないと、アプリケーションは誤ってユーザー mallory
に「admin」権限を割り当てます。References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.java.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の JavaScript コードでは、jQuery を使用して URL から値を受け取る JSON をパースしています。
ここで、
これは
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の JavaScript コードでは、jQuery を使用して URL から値を受け取る JSON をパースしています。
var str = document.URL;
var url_check = str.indexOf('name=');
var name = null;
if (url_check > -1) {
name = decodeURIComponent(str.substring((url_check+5), str.length));
}
$(document).ready(function(){
if (name !== null){
var obj = jQuery.parseJSON('{"role": "user", "name" : "' + name + '"}');
...
}
...
});
ここで、
name
で信頼されていないデータは検証されずに JSON 関連の特殊文字がエスケープされません。これにより、ユーザーが、シリアライズされた JSON の構造を変更する可能性がある JSON キーを随意に挿入できるようになります。この例では、権限のないユーザー mallory
が URL の名前パラメーターに ","role":"admin
を追加すると、JSON は次のようになります。
{
"role":"user",
"username":"mallory",
"role":"admin"
}
これは
jQuery.parseJSON()
によってパースされてプレーン オブジェクトに設定されます。つまり、obj.role
は "user" の代わりに "admin" を返すようになります。References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.javascript.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の Objective-C コードは、ユーザー制御が可能なフィールド
ただし、JSON シリアライゼーションが
このシリアライズされた JSON 文字列がその後
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の Objective-C コードは、ユーザー制御が可能なフィールド
_usernameField
および _passwordField
から JSON に、権限を与えられていないユーザー (「default」ロールのユーザーです。これに対し権限が付与されたユーザーのロールは「admin」です) のユーザー アカウントの認証情報をシリアライズします。
...
NSString * const jsonString = [NSString stringWithFormat: @"{\"username\":\"%@\",\"password\":\"%@\",\"role\":\"default\"}" _usernameField.text, _passwordField.text];
ただし、JSON シリアライゼーションが
NSString.stringWithFormat:
を使用して実行されるため、_usernameField
および _passwordField
内の信頼できないデータに対して、JSON 関連の特殊文字をエスケープするための検証がされなくなります。これにより、ユーザーが、シリアライズされた JSON の構造を変更する可能性がある JSON キーを随意に挿入できるようになります。この例では、権限を与えられていないユーザー mallory
(パスワード Evil123!
) がユーザー名を _usernameField
フィールドに入力するときに自身のユーザー名に ","role":"admin
を追加する場合、結果として JSON は次のようになります。
{
"username":"mallory",
"role":"admin",
"password":"Evil123!",
"role":"default"
}
このシリアライズされた JSON 文字列がその後
NSJSONSerialization.JSONObjectWithData:
を使用して NSDictionary
オブジェクトにデシリアライズされた場合はこのようになります。
NSError *error;
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:&error];
NSDictionary
オブジェクト内で username
、password
、および role
キーの結果として得られる値はそれぞれ mallory
、Evil123!
、および admin
になります。デシリアライズされた JSON 値が有効かについてこれ以上検証しないと、アプリケーションは誤ってユーザー mallory
に「admin」権限を割り当てます。References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.objc.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSON Injection が発生します。
1.信頼できないソースからデータがプログラムに入力された場合。
2.データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが未検証の入力から JSON を構築すると、JSON ドキュメントとメッセージのセマンティクスは変更される可能性があります。深刻でないとしても、攻撃者が余分な要素を挿入し、JSON ドキュメントまたはリクエストを解析中に、アプリケーションに例外をスローさせる可能性があります。深刻なケース (JSON Injection が伴う場合など) としては、攻撃者が、JSON ドキュメントまたはリクエスト内に、ビジネス上不可欠な値の予測可能な操作を許可する余分な要素を挿入することがあります。また、JSON Injection が Cross-Site Scripting や Dynamic Code Evaluation を引き起こす場合があります。
例 1: 次の Python コードは、URL から取得された、信頼できない値で json ファイルを更新します。
これで、JSON ファイルは悪意のあるデータで改ざんされ、ユーザーは "user" ではなく "admin" の特権付きアクセス権を使用できるようになりました
1.信頼できないソースからデータがプログラムに入力された場合。
2.データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが未検証の入力から JSON を構築すると、JSON ドキュメントとメッセージのセマンティクスは変更される可能性があります。深刻でないとしても、攻撃者が余分な要素を挿入し、JSON ドキュメントまたはリクエストを解析中に、アプリケーションに例外をスローさせる可能性があります。深刻なケース (JSON Injection が伴う場合など) としては、攻撃者が、JSON ドキュメントまたはリクエスト内に、ビジネス上不可欠な値の予測可能な操作を許可する余分な要素を挿入することがあります。また、JSON Injection が Cross-Site Scripting や Dynamic Code Evaluation を引き起こす場合があります。
例 1: 次の Python コードは、URL から取得された、信頼できない値で json ファイルを更新します。
import json
import requests
from urllib.parse import urlparse
from urllib.parse import parse_qs
url = 'https://www.example.com/some_path?name=some_value'
parsed_url = urlparse(url)
untrusted_values = parse_qs(parsed_url.query)['name'][0]
with open('data.json', 'r') as json_File:
data = json.load(json_File)
data['name']= untrusted_values
with open('data.json', 'w') as json_File:
json.dump(data, json_File)
...
name
内の信頼できないデータに対して、JSON 関連の特殊文字をエスケープするための検証がされなくなります。これにより、ユーザーが JSON キーを随意に挿入できるようになり、シリアライズされた JSON の構造を変更する可能性があります。この例では、権限を与えられていないユーザー mallory
が URL の名前パラメータに ","role":"admin
を追加する場合、JSON は次のようになります。
{
"role":"user",
"username":"mallory",
"role":"admin"
}
これで、JSON ファイルは悪意のあるデータで改ざんされ、ユーザーは "user" ではなく "admin" の特権付きアクセス権を使用できるようになりました
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.python.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1.信頼できないソースからデータがプログラムに入り込んだ場合。
2.データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
1.信頼できないソースからデータがプログラムに入り込んだ場合。
2.データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.scala.json_injection
Abstract
このメソッドは未検証の入力を JSON に書き込みます。この呼び出しにより、攻撃者は任意の要素や属性を JSON エンティティに挿入する可能性があります。
Explanation
次の場合に JSO Injection が発生します。
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の Swift コードは、ユーザー制御が可能なフィールド
ただし、JSON シリアライゼーションが文字列補間を使用して実行されるため、
このシリアライズされた JSON 文字列がその後
1. 信頼できないソースからデータがプログラムに入り込んだ場合。
2. データが JSON ストリームに書き込まれた場合。
アプリケーションは、通常、JSON を使用してデータを保存したりメッセージを送信したりします。データの保存に使用される場合、JSON はキャッシュ保存されたデータのように扱われ、重要な情報が含まれる場合があります。メッセージの送信に使用される場合、JSON は多くの場合 RESTful サービスと一緒に使用され、認証情報のような機密情報の送信に使用される可能性があります。
アプリケーションが検証されていない入力から JSON を構成する場合、JSON 文書およびメッセージのセマンティクスが改変される場合があります。比較的良性の場合、攻撃者は、JSON 文書またはリクエストをパース中にアプリケーションに例外をスローさせる、余分な要素を挿入できるようになることがあります。JSON Injection を含むなど、より深刻な場合、攻撃者は、JSON 文書またはリクエスト内でビジネスに不可欠な値の予測可能な操作を許可する、余分な要素を挿入できるようになることがあります。また、JSON Injection により、Cross-Site Scripting や Dynamic Code Evaluation が引き起こされる場合もあります。
例 1: 次の Swift コードは、ユーザー制御が可能なフィールド
usernameField
および passwordField
から JSON に、権限を与えられていないユーザー (「default」ロールのユーザーです。これに対し権限が付与されたユーザーのロールは「admin」です) のユーザー アカウントの認証情報をシリアライズします。
...
let jsonString : String = "{\"username\":\"\(usernameField.text)\",\"password\":\"\(passwordField.text)\",\"role\":\"default\"}"
ただし、JSON シリアライゼーションが文字列補間を使用して実行されるため、
usernameField
および passwordField
内の信頼できないデータに対して、JSON 関連の特殊文字をエスケープするための検証がされなくなります。これにより、ユーザーが、シリアライズされた JSON の構造を変更する可能性がある JSON キーを随意に挿入できるようになります。この例では、権限を与えられていないユーザー mallory
(パスワード Evil123!
) がユーザー名を usernameField
フィールドに入力するときに自身のユーザー名に ","role":"admin
を追加する場合、結果として JSON は次のようになります。
{
"username":"mallory",
"role":"admin",
"password":"Evil123!",
"role":"default"
}
このシリアライズされた JSON 文字列がその後
NSJSONSerialization.JSONObjectWithData:
を使用して NSDictionary
オブジェクトにデシリアライズされた場合はこのようになります。
var error: NSError?
var jsonData : NSDictionary = NSJSONSerialization.JSONObjectWithData(jsonString.dataUsingEncoding(NSUTF8StringEncoding), options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
NSDictionary
オブジェクト内で username
、password
、および role
キーの結果として得られる値はそれぞれ mallory
、Evil123!
、および admin
になります。デシリアライズされた JSON 値が有効かについてこれ以上検証しないと、アプリケーションは誤ってユーザー mallory
に「admin」権限を割り当てます。References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 91
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002754
[3] Standards Mapping - FIPS200 SI
[4] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 SI-10 Information Input Validation
[7] Standards Mapping - OWASP API 2023 API1 Broken Object Level Authorization
[8] Standards Mapping - OWASP Mobile 2014 M7 Client Side Injection
[9] Standards Mapping - OWASP Mobile 2024 M4 Insufficient Input/Output Validation
[10] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0 MASVS-CODE-4
[11] Standards Mapping - OWASP Top 10 2004 A6 Injection Flaws
[12] Standards Mapping - OWASP Top 10 2007 A2 Injection Flaws
[13] Standards Mapping - OWASP Top 10 2010 A1 Injection
[14] Standards Mapping - OWASP Top 10 2013 A1 Injection
[15] Standards Mapping - OWASP Top 10 2017 A1 Injection
[16] Standards Mapping - OWASP Top 10 2021 A03 Injection
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.6
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.3.1.1, Requirement 6.5.2
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.1
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.1
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.1
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.1
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.1
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection, Control Objective B.3.1 - Terminal Software Attack Mitigation, Control Objective B.3.1.1 - Terminal Software Attack Mitigation, Control Objective C.3.2 - Web Software Attack Mitigation
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-002560 CAT I
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-002560 CAT I
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002560 CAT I
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002560 CAT I
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002560 CAT I
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002560 CAT I
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002560 CAT I
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002560 CAT I
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002560 CAT I
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002560 CAT I
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-002560 CAT I
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002560 CAT I
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002560 CAT I
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-002530 CAT II, APSC-DV-002560 CAT I
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Improper Input Handling (WASC-20)
desc.dataflow.swift.json_injection