bmt 0.1.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bmt/item.rb +3 -1
- data/lib/bmt/step.rb +3 -2
- data/lib/bmt/version.rb +1 -1
- data/lib/data/0.1/mappings/templates.json +17 -0
- data/lib/data/0.1/mappings/templates.schema.json +62 -0
- data/lib/data/0.1/methodologies/binaries.json +252 -0
- data/lib/data/0.1/methodologies/mobile_android.json +514 -0
- data/lib/data/0.1/methodologies/mobile_ios.json +452 -0
- data/lib/data/0.1/methodologies/network.json +207 -0
- data/lib/data/0.1/methodologies/template.json +32 -6
- data/lib/data/0.1/methodologies/website_testing.json +324 -101
- data/lib/data/0.1/schema.json +12 -2
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54db582c2fa9dee7782d78679c394a81bd58be62c19a543dcf2f343b48f9acd9
|
4
|
+
data.tar.gz: c2c95ae74e58f7025f7a9a1e3f39238e83a5350c8f1bee875f407e9bf4d435c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a8a16cb4896e1b004f69790782a3a89eb294ac42b87821fca2664bc6823acfd9ec83cbcfa4c8dbbceb556ffecb35919a6a671a542419eb3d5bcf368b0f74aa4
|
7
|
+
data.tar.gz: c0de897ad4c9bcf04412fee1035eb108b9f2f905b16616df7c0c316c981e473744df0475e3245cb207ee9ed826798e32e755a427d253a4251995077dd7183eda
|
data/lib/bmt/item.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
module BMT
|
2
2
|
class Item
|
3
|
-
attr_reader :key, :title, :description, :vrt_category, :step
|
3
|
+
attr_reader :key, :title, :caption, :description, :tools, :vrt_category, :step
|
4
4
|
|
5
5
|
def initialize(step:, attributes:)
|
6
6
|
@step = step
|
7
7
|
@key = attributes['key']
|
8
8
|
@title = attributes['title']
|
9
|
+
@caption = attributes['caption']
|
9
10
|
@description = attributes['description']
|
11
|
+
@tools = attributes['tools']
|
10
12
|
@vrt_category = attributes['vrt_category']
|
11
13
|
end
|
12
14
|
end
|
data/lib/bmt/step.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module BMT
|
2
2
|
class Step
|
3
|
-
attr_reader :key, :title, :description, :methodology
|
3
|
+
attr_reader :key, :title, :description, :methodology, :type
|
4
4
|
|
5
5
|
def initialize(methodology:, attributes:)
|
6
6
|
@methodology = methodology
|
7
7
|
@key = attributes['key']
|
8
8
|
@title = attributes['title']
|
9
9
|
@description = attributes['description']
|
10
|
-
@
|
10
|
+
@type = attributes['type']
|
11
|
+
@items_data = attributes['items'] || []
|
11
12
|
end
|
12
13
|
|
13
14
|
def items
|
data/lib/bmt/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"metadata": {
|
3
|
+
"title": "Methodology Taxonomy Template Mapping"
|
4
|
+
},
|
5
|
+
"content": [
|
6
|
+
{
|
7
|
+
"methodology": "website_testing",
|
8
|
+
"children": [
|
9
|
+
{
|
10
|
+
"key": "information",
|
11
|
+
"attribute": "notes",
|
12
|
+
"template": "information.md"
|
13
|
+
}
|
14
|
+
]
|
15
|
+
}
|
16
|
+
]
|
17
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
3
|
+
"title": "Methodology Taxonomy Mapping",
|
4
|
+
"description": "Mapping to methodology taxonomy",
|
5
|
+
"definitions": {
|
6
|
+
"MappingMetadata": {
|
7
|
+
"type": "object",
|
8
|
+
"properties": {
|
9
|
+
"title": {
|
10
|
+
"type": "string",
|
11
|
+
"pattern": "^[ a-zA-Z0-9\\-+()\/,.<]*$"
|
12
|
+
}
|
13
|
+
},
|
14
|
+
"required": ["title"]
|
15
|
+
},
|
16
|
+
"BMTKey": { "type": "string", "pattern": "^[a-z_]*$" },
|
17
|
+
"Attribute": { "type": "string", "pattern": "^[a-z_]*$" },
|
18
|
+
"Template": { "type": "string", "pattern": "[a-z_.]*$" },
|
19
|
+
"Mapping": {
|
20
|
+
"type": "object",
|
21
|
+
"properties": {
|
22
|
+
"key": { "$ref": "#/definitions/BMTKey" },
|
23
|
+
"attribute": { "$ref": "#/definitions/Attribute" },
|
24
|
+
"template" : { "$ref": "#/definitions/Template" }
|
25
|
+
},
|
26
|
+
"required": ["key", "attribute", "template"],
|
27
|
+
"additionalProperties": false
|
28
|
+
},
|
29
|
+
"MappingParent": {
|
30
|
+
"type": "object",
|
31
|
+
"properties": {
|
32
|
+
"methodology": { "$ref": "#/definitions/BMTKey" },
|
33
|
+
"children": {
|
34
|
+
"type": "array",
|
35
|
+
"items" : {
|
36
|
+
"anyOf": [
|
37
|
+
{ "$ref": "#/definitions/Mapping" }
|
38
|
+
]
|
39
|
+
}
|
40
|
+
}
|
41
|
+
},
|
42
|
+
"required": ["methodology", "children"],
|
43
|
+
"additionalProperties": false
|
44
|
+
}
|
45
|
+
},
|
46
|
+
"type": "object",
|
47
|
+
"required": ["metadata", "content"],
|
48
|
+
"properties": {
|
49
|
+
"metadata": {
|
50
|
+
"$ref": "#/definitions/MappingMetadata"
|
51
|
+
},
|
52
|
+
"content": {
|
53
|
+
"type": "array",
|
54
|
+
"items" : {
|
55
|
+
"anyOf": [
|
56
|
+
{ "$ref": "#/definitions/MappingParent" },
|
57
|
+
{ "$ref": "#/definitions/Mapping" }
|
58
|
+
]
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
@@ -0,0 +1,252 @@
|
|
1
|
+
{
|
2
|
+
"metadata": {
|
3
|
+
"title": "Binary",
|
4
|
+
"release_date": "2022-01-10T00:00:00+00:00",
|
5
|
+
"description": "Bugcrowd Binary testing methodology",
|
6
|
+
"vrt_version": "10.0.1"
|
7
|
+
},
|
8
|
+
"content": {
|
9
|
+
"steps": [
|
10
|
+
{
|
11
|
+
"key": "insufficient_authentication_authorization",
|
12
|
+
"title": "Insufficient Authentication/Authorization",
|
13
|
+
"description": "",
|
14
|
+
"type": "checklist",
|
15
|
+
"items": [
|
16
|
+
{
|
17
|
+
"description": "",
|
18
|
+
"key": "multi_user_environment",
|
19
|
+
"caption": "",
|
20
|
+
"title": "Assess the application for multi-user environments and ensure it includes functionality for role separation."
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"description": "",
|
24
|
+
"key": "password_recovery_mechanism",
|
25
|
+
"caption": "",
|
26
|
+
"title": "Assess password recovery mechanisms and ensure session management is properly maintained/terminated at the remote endpoint."
|
27
|
+
}
|
28
|
+
]
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"key": "insecure_network_services",
|
32
|
+
"title": "Insecure Network Services",
|
33
|
+
"description": "",
|
34
|
+
"type": "checklist",
|
35
|
+
"items": [
|
36
|
+
{
|
37
|
+
"description": "",
|
38
|
+
"key": "ensure_network_services",
|
39
|
+
"caption": "",
|
40
|
+
"title": "Assess the application to ensure network services for potentially interesting crashes or denial-of-service conditions that might indicate the presence of a memory corruption issue."
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"description": "",
|
44
|
+
"key": "ensure_debugging_services",
|
45
|
+
"caption": "",
|
46
|
+
"title": "Assess the application to ensure debugging services are not present (and if present, test those services for access controls/default credentials)."
|
47
|
+
}
|
48
|
+
]
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"key": "lack_of_transport_encryption",
|
52
|
+
"title": "Lack of Transport Encryption",
|
53
|
+
"description": "",
|
54
|
+
"type": "checklist",
|
55
|
+
"items": [
|
56
|
+
{
|
57
|
+
"description": "",
|
58
|
+
"key": "assess_encrypted_communication",
|
59
|
+
"caption": "",
|
60
|
+
"title": "Assess the application to determine the use of modern encrypted communication between endpoints."
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"description": "",
|
64
|
+
"key": "assess_encrypted_practice",
|
65
|
+
"caption": "",
|
66
|
+
"title": "Assess the application to determine if accepted encryption practices are used."
|
67
|
+
}
|
68
|
+
]
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"key": "privacy_concerns",
|
72
|
+
"title": "Privacy Concerns",
|
73
|
+
"description": "",
|
74
|
+
"type": "checklist",
|
75
|
+
"items": [
|
76
|
+
{
|
77
|
+
"description": "",
|
78
|
+
"key": "assess_personal_information_collected",
|
79
|
+
"caption": "",
|
80
|
+
"title": "Assess the application to determine the amount of personal information collected."
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"description": "",
|
84
|
+
"key": "assess_personal_data_encryption",
|
85
|
+
"caption": "",
|
86
|
+
"title": "Assess the application to determine if collected personal data is properly protected using encryption at rest and in transit."
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"description": "",
|
90
|
+
"key": "assess_data_de_identified_or_anonymized",
|
91
|
+
"caption": "",
|
92
|
+
"title": "Assess the application to determine if data is de-identified or anonymized."
|
93
|
+
},
|
94
|
+
{
|
95
|
+
"description": "",
|
96
|
+
"key": "no_sesitive_data",
|
97
|
+
"caption": "",
|
98
|
+
"title": "No sensitive data, such as passwords or pins, are exposed through the user interface."
|
99
|
+
},
|
100
|
+
{
|
101
|
+
"description": "",
|
102
|
+
"key": "no_sensitive_log_info",
|
103
|
+
"caption": "",
|
104
|
+
"title": "No sensitive information is contained in logs generated by the application."
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"description": "",
|
108
|
+
"key": "assess_personal_info_sending_to_remote_location",
|
109
|
+
"caption": "",
|
110
|
+
"title": "Assess whether the application sends personal/identifying information to a remote location even though it is only required for local use."
|
111
|
+
}
|
112
|
+
]
|
113
|
+
},
|
114
|
+
{
|
115
|
+
"key": "insecure_cloud_interface",
|
116
|
+
"title": "Insecure Cloud Interface (where applicable)",
|
117
|
+
"description": "",
|
118
|
+
"type": "checklist",
|
119
|
+
"items": [
|
120
|
+
{
|
121
|
+
"description": "",
|
122
|
+
"key": "assess_cloud_for_security_vulnerability",
|
123
|
+
"caption": "",
|
124
|
+
"title": "Assess the cloud interfaces for security vulnerabilities (e.g.testing both API interfaces and cloud-based web interfaces for common (and uncommon) web application issues)."
|
125
|
+
},
|
126
|
+
{
|
127
|
+
"description": "",
|
128
|
+
"key": "assess_secure_transport_in_cloud",
|
129
|
+
"caption": "",
|
130
|
+
"title": "Assess all cloud interfaces to ensure secure transport encryption is used."
|
131
|
+
}
|
132
|
+
]
|
133
|
+
},
|
134
|
+
{
|
135
|
+
"key": "insecure_software_firmware",
|
136
|
+
"title": "Insecure Software/Firmware",
|
137
|
+
"description": "",
|
138
|
+
"type": "checklist",
|
139
|
+
"items": [
|
140
|
+
{
|
141
|
+
"description": "",
|
142
|
+
"key": "assess_application_update_capability",
|
143
|
+
"caption": "",
|
144
|
+
"title": "Assess the application to ensure it includes update capability and can be updated quickly when vulnerabilities are discovered."
|
145
|
+
},
|
146
|
+
{
|
147
|
+
"description": "",
|
148
|
+
"key": "assess_encrypted_file_transfer",
|
149
|
+
"caption": "",
|
150
|
+
"title": "Assess the application to ensure it uses encrypted update files and that the files are transmitted using encryption."
|
151
|
+
},
|
152
|
+
{
|
153
|
+
"description": "",
|
154
|
+
"key": "assess_signed_files",
|
155
|
+
"caption": "",
|
156
|
+
"title": "Assess the application to ensure it uses signed files and then validates those files before installation."
|
157
|
+
},
|
158
|
+
{
|
159
|
+
"description": "",
|
160
|
+
"key": "assess_insecure_function_calls",
|
161
|
+
"caption": "",
|
162
|
+
"title": "Assess the application for insecure/dangerous function calls."
|
163
|
+
},
|
164
|
+
{
|
165
|
+
"description": "",
|
166
|
+
"key": "assess_user_input_sanitization",
|
167
|
+
"caption": "",
|
168
|
+
"title": "Assess the application to ensure ensure all user-controllable input data is sanitized prior to use."
|
169
|
+
},
|
170
|
+
{
|
171
|
+
"description": "",
|
172
|
+
"key": "ensure_all_third_party_components",
|
173
|
+
"caption": "",
|
174
|
+
"title": "Ensure all third party components used by the application, such as libraries and frameworks, are identified, and checked for known vulnerabilities."
|
175
|
+
},
|
176
|
+
{
|
177
|
+
"description": "",
|
178
|
+
"key": "assess_hardcoded_sensitive_info",
|
179
|
+
"caption": "",
|
180
|
+
"title": "Assess the application for signs of hardcoded sensitive information - e.g. credentials, URLs, API keys, etc."
|
181
|
+
},
|
182
|
+
{
|
183
|
+
"description": "",
|
184
|
+
"key": "assess_secure_random_number_generator",
|
185
|
+
"caption": "",
|
186
|
+
"title": "Assess the application to ensure all random values are generated using a sufficiently secure random number generator."
|
187
|
+
},
|
188
|
+
{
|
189
|
+
"description": "",
|
190
|
+
"key": "assess_input_via_dynamic_testing",
|
191
|
+
"caption": "",
|
192
|
+
"title": "Assess inputs on the application via dynamic testing (e.g. fuzzing) to identify potentially interesting crashes or denial-of-service conditions that might suggest the presence of a memory corruption or command injection issue."
|
193
|
+
},
|
194
|
+
{
|
195
|
+
"description": "",
|
196
|
+
"key": "assess_misconfigured_permission",
|
197
|
+
"caption": "",
|
198
|
+
"title": "Assess the application for misconfigured permissions, allowing for the escalation of privileges (e.g. DLL spoofing/hijacking, etc)."
|
199
|
+
},
|
200
|
+
{
|
201
|
+
"description": "",
|
202
|
+
"key": "assess_minimal_permissions",
|
203
|
+
"caption": "",
|
204
|
+
"title": "Assess the application to ensure it only uses the minimum set of permissions necessary."
|
205
|
+
},
|
206
|
+
{
|
207
|
+
"description": "",
|
208
|
+
"key": "assess_object_deserialization",
|
209
|
+
"caption": "",
|
210
|
+
"title": "Assess the application for unsafe object deserialization behavior that might lead to command injection."
|
211
|
+
},
|
212
|
+
{
|
213
|
+
"description": "",
|
214
|
+
"key": "assess_compiler_os_exploit_mitigation",
|
215
|
+
"caption": "",
|
216
|
+
"title": "Assess the application to ensure Basic OS/compiler exploit mitigation features, such stack protection/exploit mitigation (DEP, ASLR, stack canaries, etc) are activated."
|
217
|
+
},
|
218
|
+
{
|
219
|
+
"description": "",
|
220
|
+
"key": "assess_authentication_bypass",
|
221
|
+
"caption": "",
|
222
|
+
"title": "Assess the application for authentication bypasses and backdoors, allowing for access to functions/features outside of intended-use flows."
|
223
|
+
},
|
224
|
+
{
|
225
|
+
"description": "",
|
226
|
+
"key": "assess_application_for_internal_use",
|
227
|
+
"caption": "",
|
228
|
+
"title": "Assess the application for ability to access/use components meant for internal or administrative use (e.g. leftover debugging functionality not intended to exist in production)."
|
229
|
+
},
|
230
|
+
{
|
231
|
+
"description": "",
|
232
|
+
"key": "assess_for_undocumented_api_endpoints",
|
233
|
+
"caption": "",
|
234
|
+
"title": "Assess the application for undocumented API endpoints, and assess those for common vulnerabilities, as well as authentication bypasses."
|
235
|
+
}
|
236
|
+
]
|
237
|
+
},
|
238
|
+
{
|
239
|
+
"key": "upload_logs",
|
240
|
+
"title": "Upload logs",
|
241
|
+
"description": "This should include all associated traffic associated to the in-scope targets.",
|
242
|
+
"type": "large_upload"
|
243
|
+
},
|
244
|
+
{
|
245
|
+
"key": "executive_summary",
|
246
|
+
"title": "Executive summary",
|
247
|
+
"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.",
|
248
|
+
"type": "executive_summary"
|
249
|
+
}
|
250
|
+
]
|
251
|
+
}
|
252
|
+
}
|