bmt 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/bmt/version.rb +1 -1
- data/lib/data/0.10/methodologies/cloud_config_aws.json +621 -0
- data/lib/data/0.10/methodologies/cloud_config_azure.json +1402 -0
- data/lib/data/0.10/methodologies/cloud_config_gcp.json +431 -0
- data/lib/data/0.10/methodologies/mobile_ios.json +438 -0
- metadata +24 -34
- data/lib/data/0.1/methodologies/ai_llm.json +0 -517
- data/lib/data/0.1/methodologies/api_testing.json +0 -659
- data/lib/data/0.1/methodologies/mobile_ios.json +0 -452
- data/lib/data/0.9/mappings/templates.json +0 -17
- data/lib/data/0.9/mappings/templates.schema.json +0 -62
- data/lib/data/0.9/methodologies/active_directory.json +0 -426
- data/lib/data/0.9/methodologies/binaries.json +0 -252
- data/lib/data/0.9/methodologies/internal_network.json +0 -454
- data/lib/data/0.9/methodologies/mobile_android.json +0 -514
- data/lib/data/0.9/methodologies/mobile_ios.json +0 -452
- data/lib/data/0.9/methodologies/network.json +0 -207
- data/lib/data/0.9/methodologies/template.json +0 -83
- data/lib/data/0.9/methodologies/website_testing.json +0 -1078
- data/lib/data/0.9/schema.json +0 -124
- /data/lib/data/{0.1 → 0.10}/mappings/templates.json +0 -0
- /data/lib/data/{0.1 → 0.10}/mappings/templates.schema.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/active_directory.json +0 -0
- /data/lib/data/{0.9 → 0.10}/methodologies/ai_llm.json +0 -0
- /data/lib/data/{0.9 → 0.10}/methodologies/api_testing.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/binaries.json +0 -0
- /data/lib/data/{0.9 → 0.10}/methodologies/hardware_testing.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/internal_network.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/mobile_android.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/network.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/template.json +0 -0
- /data/lib/data/{0.1 → 0.10}/methodologies/website_testing.json +0 -0
- /data/lib/data/{0.1 → 0.10}/schema.json +0 -0
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
{
|
|
2
|
+
"metadata": {
|
|
3
|
+
"title": "iOS",
|
|
4
|
+
"release_date": "2025-11-19T00:00:00+00:00",
|
|
5
|
+
"description": "Bugcrowd iOS testing methodology",
|
|
6
|
+
"vrt_version": "1.17"
|
|
7
|
+
},
|
|
8
|
+
"content": {
|
|
9
|
+
"steps": [
|
|
10
|
+
{
|
|
11
|
+
"key": "architecture_design_and_threat_modelling",
|
|
12
|
+
"title": "Architecture, Design and Threat Modelling",
|
|
13
|
+
"description": "",
|
|
14
|
+
"type": "checklist",
|
|
15
|
+
"items": [
|
|
16
|
+
{
|
|
17
|
+
"key": "search_engine_discovery",
|
|
18
|
+
"title": "Conduct Search Engine Discovery and Reconnaissance for Information Leakage",
|
|
19
|
+
"description": "Identify all the endpoints and domains used in the application. Search for network diagrams, source code, configurations, privileged credentials, and error messages.",
|
|
20
|
+
"caption": "",
|
|
21
|
+
"tools": "Google Dorking, Manual Review, Static analysis using MobSF, jadx, Hopper",
|
|
22
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"key": "server_fingerprinting",
|
|
26
|
+
"title": "Fingerprint Servers and Endpoints Used by the Target Application",
|
|
27
|
+
"description": "Find the version and type of running server/endpoint to determine known vulnerabilities and the appropriate exploits (relevant for non-HTTP services as well).",
|
|
28
|
+
"caption": "",
|
|
29
|
+
"tools": "Manual Review",
|
|
30
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"key": "third_party_library_identification",
|
|
34
|
+
"title": "Determine Third Party Libraries Included in the Application",
|
|
35
|
+
"description": "Identify and fingerprint third-party libraries included embedded into the application package, checking for known vulnerabilities (CVEs) and ensuring they are recent versions. OS libraries are out of scope.",
|
|
36
|
+
"caption": "",
|
|
37
|
+
"tools": "Embedded Service Review, Manual Review",
|
|
38
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"key": "api_endpoint_identification",
|
|
42
|
+
"title": "Identify All API Endpoints",
|
|
43
|
+
"description": "Use static analysis to discover hidden endpoints. Perform API testing during dynamic analysis.",
|
|
44
|
+
"caption": "",
|
|
45
|
+
"tools": "MobSF, jadx, Hopper",
|
|
46
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"key": "data_storage_and_privacy",
|
|
52
|
+
"title": "Data Storage and Privacy",
|
|
53
|
+
"description": "",
|
|
54
|
+
"type": "checklist",
|
|
55
|
+
"items": [
|
|
56
|
+
{
|
|
57
|
+
"key": "local_storage_sensitive_data",
|
|
58
|
+
"title": "Test Local Storage for Sensitive Data",
|
|
59
|
+
"description": "Verify that sensitive data stored locally is properly protected and not exposed.",
|
|
60
|
+
"caption": "",
|
|
61
|
+
"tools": "Manual Review using ssh, ADB",
|
|
62
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"key": "logs_sensitive_data",
|
|
66
|
+
"title": "Test Logs for Sensitive Data",
|
|
67
|
+
"description": "Check that sensitive information is not logged or, if logged, is properly protected.",
|
|
68
|
+
"caption": "",
|
|
69
|
+
"tools": "ADB, Xcode, Manual Review",
|
|
70
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"key": "third_party_data_sharing",
|
|
74
|
+
"title": "Determine Whether Sensitive Data Is Shared with Third Parties via SDKs or Frameworks",
|
|
75
|
+
"description": "Assess whether sensitive data is unintentionally shared with third parties through embedded SDKs or frameworks.",
|
|
76
|
+
"caption": "",
|
|
77
|
+
"tools": "Manual Analysis",
|
|
78
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"key": "notification_data_sharing",
|
|
82
|
+
"title": "Determine Whether Sensitive Data Is Shared with Third Parties via Notifications",
|
|
83
|
+
"description": "Verify that sensitive data is not disclosed through notifications or is properly masked.",
|
|
84
|
+
"caption": "",
|
|
85
|
+
"tools": "Notification Analysis, Manual Review",
|
|
86
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"key": "keyboard_cache_disabled",
|
|
90
|
+
"title": "Determine Whether the Keyboard Cache Is Disabled for Text Input Fields",
|
|
91
|
+
"description": "Ensure that keyboard cache is disabled for input fields containing sensitive data.",
|
|
92
|
+
"caption": "",
|
|
93
|
+
"tools": "Keyboard Cache Review, Manual Analysis",
|
|
94
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"key": "backups_sensitive_data",
|
|
98
|
+
"title": "Test Backups for Sensitive Data",
|
|
99
|
+
"description": "Check that backups do not contain sensitive data or that such data is securely protected in backups.",
|
|
100
|
+
"caption": "",
|
|
101
|
+
"tools": "Backup Analysis Tools, Manual Review",
|
|
102
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"key": "memory_sensitive_data",
|
|
106
|
+
"title": "Test Memory for Sensitive Data",
|
|
107
|
+
"description": "Verify that sensitive data is not exposed in memory or is protected if it is. Note: This is only relevant for apps dealing with secrets/cipher keys and may require advanced analysis.",
|
|
108
|
+
"caption": "",
|
|
109
|
+
"tools": "Memory Analysis Tools, Manual Review",
|
|
110
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"key": "device_access_policy",
|
|
114
|
+
"title": "Testing the Device-Access-Security Policy",
|
|
115
|
+
"description": "Assess the security policies in place for device access and ensure they are properly enforced. Note: On iOS, the application's ability to govern the user's device configuration is limited.",
|
|
116
|
+
"caption": "",
|
|
117
|
+
"tools": "Device Security Policy Review, Manual Analysis",
|
|
118
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"key": "cryptography",
|
|
124
|
+
"title": "Cryptography",
|
|
125
|
+
"description": "",
|
|
126
|
+
"type": "checklist",
|
|
127
|
+
"items": [
|
|
128
|
+
{
|
|
129
|
+
"key": "symmetric_crypto",
|
|
130
|
+
"title": "Test Symmetric Cryptography",
|
|
131
|
+
"description": "Verify that symmetric cryptographic algorithms used in the app are secure and implemented correctly.",
|
|
132
|
+
"caption": "",
|
|
133
|
+
"tools": "Cryptography Analysis Tools, Manual Review",
|
|
134
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"key": "crypto_algorithm_configuration",
|
|
138
|
+
"title": "Review the Configuration of Cryptographic Standard Algorithms",
|
|
139
|
+
"description": "Ensure that cryptographic standard algorithms are configured according to industry best practices.",
|
|
140
|
+
"caption": "",
|
|
141
|
+
"tools": "Configuration Review Tools, Manual Analysis",
|
|
142
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"key": "random_number_generation",
|
|
146
|
+
"title": "Test Random Number Generation",
|
|
147
|
+
"description": "Verify that any random number generation used for cryptographic purposes (e.g., key generation, nonce creation, tokens) relies on secure system-provided APIs or other approved cryptographic random functions. This check does not apply to non-cryptographic randomness (e.g. UI effects, game logic, shuffling, etc.).",
|
|
148
|
+
"caption": "",
|
|
149
|
+
"tools": "Random Number Generators, Manual Review",
|
|
150
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"key": "key_usage_purposes",
|
|
154
|
+
"title": "Verify the Purposes of Keys",
|
|
155
|
+
"description": "Verify that cryptographic keys are used for their intended purposes and are managed properly.",
|
|
156
|
+
"caption": "",
|
|
157
|
+
"tools": "Key Management Tools, Manual Review",
|
|
158
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"key": "key_reuse",
|
|
162
|
+
"title": "Test for Cryptographic Key Reuse",
|
|
163
|
+
"description": "Ensure that high-security cryptographic keys (e.g., wallet keys) are not reused for low-security cipher tasks.",
|
|
164
|
+
"caption": "",
|
|
165
|
+
"tools": "Key Management Tools, Manual Review",
|
|
166
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"key": "authentication_and_session_management",
|
|
172
|
+
"title": "Authentication and Session Management",
|
|
173
|
+
"description": "",
|
|
174
|
+
"type": "checklist",
|
|
175
|
+
"items": [
|
|
176
|
+
{
|
|
177
|
+
"key": "remote_service_authentication",
|
|
178
|
+
"title": "Test Remote Service Authentication",
|
|
179
|
+
"description": "If the app provides users access to a remote service, some form of authentication, such as username/password authentication, is performed at the remote endpoint.",
|
|
180
|
+
"caption": ""
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"key": "secure_session_token_generation",
|
|
184
|
+
"title": "Test for Secure Session and Token Generation",
|
|
185
|
+
"description": "Validate that both stateful session identifiers and stateless tokens are securely generated (e.g., randomly generated, signed with a secure algorithm) by the remote endpoint.",
|
|
186
|
+
"caption": ""
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"key": "remote_endpoint_terminate",
|
|
190
|
+
"title": "Ensure the Remote Endpoint Terminates Session on Log Out",
|
|
191
|
+
"description": "The remote endpoint terminates the existing session when the user logs out. Beware potential external provider limitations (e.g., cloud services) where sessions may not immediately terminate and may be out of the clients control",
|
|
192
|
+
"caption": ""
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"key": "password_policy_exists",
|
|
196
|
+
"title": "Review Password Policy",
|
|
197
|
+
"description": "A password policy exists and is enforced at the remote endpoint.",
|
|
198
|
+
"caption": ""
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"key": "remote_endpoint_implementation_mechanism",
|
|
202
|
+
"title": "Test Login Functionality Against Brute-Force Attacks",
|
|
203
|
+
"description": "The remote endpoint implements a mechanism to protect against the submission of credentials an excessive number of times. Check for rate-limiting, WAF implementation, or similar mechanisms",
|
|
204
|
+
"caption": ""
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"key": "session_invalidated_at_remote_endpoint",
|
|
208
|
+
"title": "Test Session Timeout",
|
|
209
|
+
"description": "Sessions are invalidated at the remote endpoint after a predefined period of inactivity and access tokens expire. This should be applied based on the usage context of the application (e.g. apps handling highly sensitive data such as banking apps should have a much shorter timeout compared to a social media app).",
|
|
210
|
+
"caption": ""
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"key": "biometric_authentication",
|
|
214
|
+
"title": "Review Biometric Authentication",
|
|
215
|
+
"description": "Biometric authentication, if any, is not event-bound (i.e. using an API that simply returns true or false). Instead, it is based on unlocking the keychain/keystore.",
|
|
216
|
+
"caption": ""
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"key": "second_factor_authentication",
|
|
220
|
+
"title": "Test Multifactor Authentication",
|
|
221
|
+
"description": "Check whether a secure method of multi-factor authentication is available and enforced where relevant (apps dealing with highly sensitive data)",
|
|
222
|
+
"caption": ""
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"key": "sensitive_transaction_setup_authentication",
|
|
226
|
+
"title": "Review Sensitive Transactions",
|
|
227
|
+
"description": "Sensitive transactions require step-up authentication.",
|
|
228
|
+
"caption": ""
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"key": "inform_user_login_activities",
|
|
232
|
+
"title": "Ensure Login Activity Functionality Exists",
|
|
233
|
+
"description": "The app informs the user of all login activities with their account. Users are able view a list of devices used to access the account, and to block specific devices. This check is primarily focused on apps dealing with personal/sensitive data",
|
|
234
|
+
"caption": ""
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"key": "network_communication",
|
|
240
|
+
"title": "Network Communication",
|
|
241
|
+
"description": "",
|
|
242
|
+
"type": "checklist",
|
|
243
|
+
"items": [
|
|
244
|
+
{
|
|
245
|
+
"key": "data_encryption_on_network",
|
|
246
|
+
"title": "Test for Encrypted Communicatons",
|
|
247
|
+
"description": "Data is encrypted on the network using TLS. The secure channel is used consistently throughout the app.",
|
|
248
|
+
"caption": ""
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"key": "tls_settings_best_practices",
|
|
252
|
+
"title": "Review TLS Settings",
|
|
253
|
+
"description": "The TLS settings are in line with current best practices, or as close as possible if the mobile operating system does not support the recommended standards.",
|
|
254
|
+
"caption": ""
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"key": "remote_endpoint_certificate",
|
|
258
|
+
"title": "Review Certificates",
|
|
259
|
+
"description": "The app verifies the X.509 certificate of the remote endpoint when the secure channel is established. Only certificates signed by a trusted CA are accepted.",
|
|
260
|
+
"caption": ""
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"key": "app_certification",
|
|
264
|
+
"title": "Analyze Certificate Verification",
|
|
265
|
+
"description": "The app either uses its own certificate store, or pins the endpoint certificate or public key, and subsequently does not establish connections with endpoints that offer a different certificate or key, even if signed by a trusted CA.",
|
|
266
|
+
"caption": ""
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"key": "insecure_communication_channel",
|
|
270
|
+
"title": "Test for Insecure Communication Channels",
|
|
271
|
+
"description": "The app doesnt rely on a single insecure communication channel (email or SMS) for critical operations, such as enrollments and account recovery. This is highly dependent on the use-case of the application, primarily applicable to applications handling sensitive or personal information",
|
|
272
|
+
"caption": ""
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"key": "app_dependency_on_connectivity_and_library",
|
|
276
|
+
"title": "Check App Connectivity and Security Libraries",
|
|
277
|
+
"description": "The app only depends on up-to-date connectivity and security libraries. On iOS, this is almost always the case.",
|
|
278
|
+
"caption": ""
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"key": "secure_update_channel",
|
|
282
|
+
"title": "Validate Secure Update Channels",
|
|
283
|
+
"description": "Ensure that in-app updates are downloaded over secure, authenticated channels and verified for integrity (e.g., signature checks). This is only relevant in very limited cases, such as when the an app is enterprise-distributed or apps that download executable content to run in interpreted environments (e.g. Javascript in a webview, Lua scripts). In these cases, the integrity and authenticity of these downloads should be reviewed.",
|
|
284
|
+
"caption": "",
|
|
285
|
+
"tools": "Burp Suite, Charles Proxy, Traffic Inspection",
|
|
286
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
287
|
+
}
|
|
288
|
+
]
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"key": "platform_interaction",
|
|
292
|
+
"title": "Platform Interaction",
|
|
293
|
+
"description": "",
|
|
294
|
+
"type": "checklist",
|
|
295
|
+
"items": [
|
|
296
|
+
{
|
|
297
|
+
"key": "minimum_set_of_permission",
|
|
298
|
+
"title": "Review App Permissions",
|
|
299
|
+
"description": "The app only requests the minimum set of permissions necessary.",
|
|
300
|
+
"caption": ""
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"key": "external_source_input_validation",
|
|
304
|
+
"title": "Test Input Validation",
|
|
305
|
+
"description": "All inputs from external sources and the user are validated and if necessary sanitized. This includes data received via the UI, IPC mechanisms such as intents, custom URLs, and network sources.",
|
|
306
|
+
"caption": ""
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"key": "sensitive_functionality_via_url_schemes",
|
|
310
|
+
"title": "Review URL Scheme Implementations",
|
|
311
|
+
"description": "The app does not export sensitive functionality via custom URL schemes, unless these mechanisms are properly protected.",
|
|
312
|
+
"caption": ""
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"key": "export_sensitive_functionality_through_ipc",
|
|
316
|
+
"title": "Review IPC Implementations",
|
|
317
|
+
"description": "The app does not export sensitive functionality through IPC facilities, unless these mechanisms are properly protected.",
|
|
318
|
+
"caption": ""
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"key": "javascript_disabled",
|
|
322
|
+
"title": "Test Javascript in WebViews",
|
|
323
|
+
"description": "JavaScript is disabled in WebViews unless explicitly required.",
|
|
324
|
+
"caption": ""
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"key": "webview_minimum_set_of_protocol_handlers",
|
|
328
|
+
"title": "Review WebView Protocol Handler Configuration",
|
|
329
|
+
"description": "WebViews are configured to allow only the minimum set of protocol handlers required (ideally, only https is supported). Potentially dangerous handlers, such as file, tel and app-id, are disabled.",
|
|
330
|
+
"caption": ""
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"key": "webview_within_app_javascript_render",
|
|
334
|
+
"title": "Validate Secure WebView JavaScript-to-Native Interactions",
|
|
335
|
+
"description": "If native methods of the app are exposed to a WebView, verify that the WebView only renders JavaScript contained within the app package.",
|
|
336
|
+
"caption": ""
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"key": "object_deserialization",
|
|
340
|
+
"title": "Review Object Deserialization",
|
|
341
|
+
"description": "Object deserialization, if any, is implemented using safe serialization APIs.",
|
|
342
|
+
"caption": ""
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"key": "runtime_permission_enforcement",
|
|
346
|
+
"title": "Analyze Runtime Permission Enforcement",
|
|
347
|
+
"description": "Compare declared permissions with those used at runtime to detect excessive privilege or permission abuse.",
|
|
348
|
+
"caption": "",
|
|
349
|
+
"tools": "Runtime Analysis Tools, Logcat Monitoring",
|
|
350
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"key": "jailbreak_root_policy_enforcement",
|
|
354
|
+
"title": "Test Jailbreak/Root Policy Enforcement",
|
|
355
|
+
"description": "Ensure that the application not only detects rooted/jailbroken devices but also enforces security restrictions accordingly.",
|
|
356
|
+
"caption": "",
|
|
357
|
+
"tools": "Magisk, Frida, RootBeer, Manual Review",
|
|
358
|
+
"references": "https://mas.owasp.org/checklists/"
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"key": "security_controls_error_handling",
|
|
362
|
+
"title": "Review Error Handling",
|
|
363
|
+
"description": "Error handling logic in security controls denies access by default",
|
|
364
|
+
"caption": ""
|
|
365
|
+
}
|
|
366
|
+
]
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"key": "code_quality_and_build_settings",
|
|
370
|
+
"title": "Code Quality and Build Settings",
|
|
371
|
+
"description": "",
|
|
372
|
+
"type": "checklist",
|
|
373
|
+
"items": [
|
|
374
|
+
{
|
|
375
|
+
"key": "valid_certificate_sign",
|
|
376
|
+
"title": "Review App Signing Certificate",
|
|
377
|
+
"description": "The app is signed and provisioned with a valid certificate, and the private key is properly protected.",
|
|
378
|
+
"caption": ""
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"key": "built_in_release_mode",
|
|
382
|
+
"title": "Verify App is Built in Release Mode",
|
|
383
|
+
"description": "The app has been built in release mode, with settings appropriate for a release build (e.g. non-debuggable).",
|
|
384
|
+
"caption": ""
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"key": "debugging_symbol",
|
|
388
|
+
"title": "Check for Left Over Debugging Symbols",
|
|
389
|
+
"description": "Debugging symbols should have been removed from native binaries.",
|
|
390
|
+
"caption": ""
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"key": "debugging_and_verbose_errors",
|
|
394
|
+
"title": "Check for Left Over Debug Code",
|
|
395
|
+
"description": "Debugging code should have been removed, and the app does not log verbose errors or debugging messages.",
|
|
396
|
+
"caption": ""
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"key": "third_party_vulnerability_check",
|
|
400
|
+
"title": "Review Third-Party Components For Known Vulnerabilities",
|
|
401
|
+
"description": "All third-party components used by the mobile app, such as libraries and frameworks, are identified, and checked for known vulnerabilities.",
|
|
402
|
+
"caption": ""
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"key": "exception_handling",
|
|
406
|
+
"title": "Review Exception Handling",
|
|
407
|
+
"description": "The app catches and handles possible exceptions.",
|
|
408
|
+
"caption": ""
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"key": "memory_allocation",
|
|
412
|
+
"title": "Review Memory Allocation",
|
|
413
|
+
"description": "In unmanaged code, memory is allocated, freed and used securely.",
|
|
414
|
+
"caption": ""
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"key": "free_security_features_offered_by_toolchain",
|
|
418
|
+
"title": "Ensure All Offered Security Features are Activated",
|
|
419
|
+
"description": "Free security features offered by the toolchain, such as byte-code minification, stack protection, PIE support and automatic reference counting, are activated.",
|
|
420
|
+
"caption": ""
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"key": "upload_logs",
|
|
426
|
+
"title": "Upload logs",
|
|
427
|
+
"description": "This should include all associated traffic associated to the in-scope targets.",
|
|
428
|
+
"type": "large_upload"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"key": "executive_summary",
|
|
432
|
+
"title": "Executive summary",
|
|
433
|
+
"description": "The executive summary should be written with a high-level view of both risk and business impact. It should be concise and clear, therefore it is important to use plain English. This ensures that non-technical readers can gain insight into security concerns outlined in your report.",
|
|
434
|
+
"type": "executive_summary"
|
|
435
|
+
}
|
|
436
|
+
]
|
|
437
|
+
}
|
|
438
|
+
}
|
metadata
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bmt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Federico Tagliabue
|
|
8
8
|
- Andy White
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-02-18 00:00:00.000000000 Z
|
|
13
13
|
dependencies: []
|
|
14
|
-
description:
|
|
14
|
+
description:
|
|
15
15
|
email:
|
|
16
16
|
- federico.tagliabue@bugcrowd.com
|
|
17
17
|
- arcwhite@arcwhite.org
|
|
@@ -24,33 +24,23 @@ files:
|
|
|
24
24
|
- lib/bmt/methodology.rb
|
|
25
25
|
- lib/bmt/step.rb
|
|
26
26
|
- lib/bmt/version.rb
|
|
27
|
-
- lib/data/0.
|
|
28
|
-
- lib/data/0.
|
|
29
|
-
- lib/data/0.
|
|
30
|
-
- lib/data/0.
|
|
31
|
-
- lib/data/0.
|
|
32
|
-
- lib/data/0.
|
|
33
|
-
- lib/data/0.
|
|
34
|
-
- lib/data/0.
|
|
35
|
-
- lib/data/0.
|
|
36
|
-
- lib/data/0.
|
|
37
|
-
- lib/data/0.
|
|
38
|
-
- lib/data/0.
|
|
39
|
-
- lib/data/0.
|
|
40
|
-
- lib/data/0.
|
|
41
|
-
- lib/data/0.
|
|
42
|
-
- lib/data/0.
|
|
43
|
-
- lib/data/0.
|
|
44
|
-
- lib/data/0.9/methodologies/api_testing.json
|
|
45
|
-
- lib/data/0.9/methodologies/binaries.json
|
|
46
|
-
- lib/data/0.9/methodologies/hardware_testing.json
|
|
47
|
-
- lib/data/0.9/methodologies/internal_network.json
|
|
48
|
-
- lib/data/0.9/methodologies/mobile_android.json
|
|
49
|
-
- lib/data/0.9/methodologies/mobile_ios.json
|
|
50
|
-
- lib/data/0.9/methodologies/network.json
|
|
51
|
-
- lib/data/0.9/methodologies/template.json
|
|
52
|
-
- lib/data/0.9/methodologies/website_testing.json
|
|
53
|
-
- lib/data/0.9/schema.json
|
|
27
|
+
- lib/data/0.10/mappings/templates.json
|
|
28
|
+
- lib/data/0.10/mappings/templates.schema.json
|
|
29
|
+
- lib/data/0.10/methodologies/active_directory.json
|
|
30
|
+
- lib/data/0.10/methodologies/ai_llm.json
|
|
31
|
+
- lib/data/0.10/methodologies/api_testing.json
|
|
32
|
+
- lib/data/0.10/methodologies/binaries.json
|
|
33
|
+
- lib/data/0.10/methodologies/cloud_config_aws.json
|
|
34
|
+
- lib/data/0.10/methodologies/cloud_config_azure.json
|
|
35
|
+
- lib/data/0.10/methodologies/cloud_config_gcp.json
|
|
36
|
+
- lib/data/0.10/methodologies/hardware_testing.json
|
|
37
|
+
- lib/data/0.10/methodologies/internal_network.json
|
|
38
|
+
- lib/data/0.10/methodologies/mobile_android.json
|
|
39
|
+
- lib/data/0.10/methodologies/mobile_ios.json
|
|
40
|
+
- lib/data/0.10/methodologies/network.json
|
|
41
|
+
- lib/data/0.10/methodologies/template.json
|
|
42
|
+
- lib/data/0.10/methodologies/website_testing.json
|
|
43
|
+
- lib/data/0.10/schema.json
|
|
54
44
|
homepage: https://github.com/bugcrowd/bmt-ruby
|
|
55
45
|
licenses:
|
|
56
46
|
- MIT
|
|
@@ -60,7 +50,7 @@ metadata:
|
|
|
60
50
|
source_code_uri: https://github.com/bugcrowd/bmt-ruby
|
|
61
51
|
bug_tracker_uri: https://github.com/bugcrowd/bmt-ruby/issues
|
|
62
52
|
rubygems_mfa_required: 'true'
|
|
63
|
-
post_install_message:
|
|
53
|
+
post_install_message:
|
|
64
54
|
rdoc_options: []
|
|
65
55
|
require_paths:
|
|
66
56
|
- lib
|
|
@@ -75,8 +65,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
75
65
|
- !ruby/object:Gem::Version
|
|
76
66
|
version: '0'
|
|
77
67
|
requirements: []
|
|
78
|
-
rubygems_version: 3.
|
|
79
|
-
signing_key:
|
|
68
|
+
rubygems_version: 3.0.3.1
|
|
69
|
+
signing_key:
|
|
80
70
|
specification_version: 4
|
|
81
71
|
summary: Ruby wrapper for Bugcrowd's Methodology Taxonomy
|
|
82
72
|
test_files: []
|