-
Notifications
You must be signed in to change notification settings - Fork 327
/
Copy pathacr_checklist.es.json
323 lines (323 loc) · 16.3 KB
/
acr_checklist.es.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
{
"categories": [
{
"name": "Seguridad"
},
{
"name": "Topología de red y conectividad"
},
{
"name": "Gestión de operaciones"
},
{
"name": "Automatización de plataformas"
},
{
"name": "Seguridad"
},
{
"name": "Libro mayor"
},
{
"name": "Registro"
},
{
"name": "Gestión de redes"
},
{
"name": "Detección y clasificación de datos"
},
{
"name": "Enmascaramiento de datos"
},
{
"name": "Código"
}
],
"items": [
{
"category": "Seguridad",
"description": "Deshabilite la exportación de imágenes para evitar la exfiltración de datos. Tenga en cuenta que esto evitará la importación de imágenes a otra instancia de ACR.",
"guid": "ab91932c-9fc9-4d1b-a880-37f5e6bfcb9e",
"id": "A01.01",
"link": "https://learn.microsoft.com/azure/container-registry/data-loss-prevention",
"query": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | extend acrName = name, acrId = id | extend exportPolicyStatus = properties.policies.exportPolicy.status | extend compliant = iif(exportPolicyStatus =~ 'Disabled', true, false) | project acrName, acrId, exportPolicyStatus, compliant",
"service": "ACR",
"severity": "Alto",
"subcategory": "Protección de datos",
"text": "Deshabilitación de la exportación de imágenes de Azure Container Registry",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Habilite la visibilidad del cumplimiento de auditorías mediante la habilitación de Azure Policy para Azure Container Registry",
"guid": "d503547c-d447-4e82-9128-a7100f1cac6d",
"id": "A01.02",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-azure-policy",
"service": "ACR",
"severity": "Alto",
"subcategory": "Protección de datos",
"text": "Habilitación de Azure Policies para Azure Container Registry",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Azure Key Vault (AKV) se usa para almacenar una clave de firma que se puede usar mediante la notación con el complemento de notación AKV (azure-kv) para firmar y comprobar imágenes de contenedor y otros artefactos. Azure Container Registry (ACR) le permite adjuntar estas firmas mediante el ?az?or?oras? Comandos de la CLI.",
"guid": "d345293c-7639-4637-a551-c5c04e401955",
"id": "A01.03",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-tutorial-sign-build-push",
"service": "ACR",
"severity": "Alto",
"subcategory": "Protección de datos",
"text": "Firmar y verificar contenedores con notación (Notary v2)",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Azure Container Registry cifra automáticamente las imágenes y otros artefactos que almacene. De forma predeterminada, Azure cifra automáticamente el contenido del Registro en reposo mediante claves administradas por el servicio. Mediante el uso de una clave administrada por el cliente, puede complementar el cifrado predeterminado con una capa de cifrado adicional.",
"graph": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | extend acrName = name, acrId = id | extend encryptionStatus = properties.encryption.status | extend compliant = iif(encryptionStatus == 'disabled', false, true) | project acrName, acrId, encryptionStatus, compliant",
"guid": "0bd05dc2-efd5-4d76-8d41-d2500cc47b49",
"id": "A01.04",
"link": "https://learn.microsoft.com/azure/container-registry/tutorial-customer-managed-keys",
"service": "ACR",
"severity": "Medio",
"subcategory": "Protección de datos",
"text": "Cifrar el registro con una clave administrada por el cliente",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Uso de identidades administradas para proteger el acceso ACRPull/Push RBAC desde aplicaciones cliente",
"guid": "8f42d78e-79dc-47b3-9bd2-a1a27e7a8e90",
"id": "A02.01",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-authentication-managed-identity",
"service": "ACR",
"severity": "Alto",
"subcategory": "Control de identidad y acceso",
"text": "Uso de identidades administradas para conectarse en lugar de entidades de servicio",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "La cuenta de administrador local está deshabilitada de forma predeterminada y no debe estar habilitada. En su lugar, use métodos de acceso basados en token o RBAC",
"graph": "resources | where type =~ 'microsoft.containerregistry/registries' | extend localAdminDisabled = properties.adminUserEnabled // Adjust this property as needed | extend compliant = iif(localAdminDisabled == 'false', true, false) // Check if local admin is disabled | project compliant, name, id, tags | distinct id, compliant",
"guid": "be0e38ce-e297-411b-b363-caaab79b198d",
"id": "A02.02",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-authentication-managed-identity",
"service": "ACR",
"severity": "Alto",
"subcategory": "Control de identidad y acceso",
"text": "Deshabilitación de la autenticación local para el acceso al plano de administración",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Deshabilite la cuenta de administrador y asigne roles de RBAC a las entidades de seguridad para las operaciones de extracción/inserción de ACR",
"graph": "resources | where type =~ 'microsoft.containerregistry/registries' | extend localAdminDisabled = properties.adminUserEnabled // Adjust this property as needed | extend compliant = iif(localAdminDisabled == 'false', true, false) // Check if local admin is disabled | project compliant, name, id, tags | distinct id, compliant",
"guid": "387e5ced-126c-4d13-8af5-b20c6998a646",
"id": "A02.03",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-roles?tabs=azure-cli",
"service": "ACR",
"severity": "Alto",
"subcategory": "Control de identidad y acceso",
"text": "Asigne roles RBAC AcrPull y AcrPush en lugar de conceder acceso administrativo a las entidades de identidad",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Deshabilitar el acceso anónimo de extracción/inserción",
"graph": "resources | where type =~ 'microsoft.containerregistry/registries' | extend compliant = iif(properties.anonymousPullEnabled == false, true, false) | project compliant, name, id, tags | distinct id, compliant",
"guid": "e338997e-41c7-47d7-acf6-a62a1194956d",
"id": "A02.04",
"link": "https://learn.microsoft.com/azure/container-registry/anonymous-pull-access#configure-anonymous-pull-access",
"service": "ACR",
"severity": "Medio",
"subcategory": "Control de identidad y acceso",
"text": "Deshabilitar el acceso de extracción anónimo",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "La autenticación de token no admite la asignación a una entidad de seguridad de AAD. Los tokens proporcionados pueden ser utilizados por cualquier persona que pueda acceder al token",
"guid": "698dc3a2-fd27-4b2e-8870-1a1252beedf6",
"id": "A02.05",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-authentication?tabs=azure-cli",
"service": "ACR",
"severity": "Alto",
"subcategory": "Control de identidad y acceso",
"text": "Deshabilitación de tokens de acceso con ámbito de repositorio",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Implementación de imágenes de contenedor en un ACR detrás de un punto de conexión privado dentro de una red de confianza",
"guid": "b3bec3d4-f343-47c1-936d-b55f27a71eee",
"id": "A02.06",
"service": "ACR",
"severity": "Alto",
"subcategory": "Control de identidad y acceso",
"text": "Implementación de imágenes desde un entorno de confianza",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Solo los tokens con una audiencia de ACR se pueden usar para la autenticación. Se usa al habilitar directivas de acceso condicional para ACR",
"guid": "3a041fd3-2947-498b-8288-b3c6a56ceb54",
"id": "A02.07",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-enable-conditional-access-policy",
"service": "ACR",
"severity": "Medio",
"subcategory": "Control de identidad y acceso",
"text": "Deshabilitación de tokens de audiencia de Azure ARM para la autenticación",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Configure una configuración de diagnóstico para enviar 'repositoryEvents' y 'LoginEvents' a Log Analytics como destino central para el registro y la supervisión. Esto le permite supervisar la actividad del plano de control en el propio recurso ACR.",
"guid": "8a488cde-c486-42bc-9bd2-1be77f26e5e6",
"id": "A03.01",
"link": "https://learn.microsoft.com/azure/container-registry/monitor-service",
"service": "ACR",
"severity": "Medio",
"subcategory": "Registro y monitoreo",
"text": "Habilitación del registro de diagnósticos",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "El servicio admite la deshabilitación del acceso a la red pública mediante la regla de filtrado de ACL de IP de nivel de servicio (no NSG ni Azure Firewall) o mediante un conmutador de alternancia \"Deshabilitar el acceso a la red pública\"",
"guid": "21d41d25-00b7-407a-b9ea-b40fd3290798",
"id": "A04.01",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-private-link",
"service": "ACR",
"severity": "Medio",
"subcategory": "Seguridad de la red",
"text": "Controle el acceso a la red entrante con Private Link",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Deshabilitar el acceso a la red pública si el acceso a la red entrante está protegido mediante Private Link",
"graph": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | where sku.name =~ 'Premium' // Check for Premium SKU | extend publicAccessEnabled = properties.publicNetworkAccess | extend defaultAction = tostring(properties.networkRuleSet.defaultAction) // Extract defaultAction | extend compliant = iif(publicAccessEnabled != 'Enabled' or defaultAction == 'Deny', true, false) | project name, id, publicAccessEnabled, defaultAction, compliant",
"guid": "cd289ced-6b17-4db8-8554-62f2aee4553a",
"id": "A04.02",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-access-selected-networks#disable-public-network-access",
"service": "ACR",
"severity": "Medio",
"subcategory": "Seguridad de la red",
"text": "Deshabilitar el acceso a la red pública",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Solo la SKU ACR Premium admite el acceso a Private Link",
"graph": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | extend skuName = sku.name // Extract the SKU name | extend compliant = iif(skuName == 'Premium', true, false) // Check if SKU is Premium | project name, id, skuName, compliant",
"guid": "fc833934-8b26-42d6-ac5f-512925498f6d",
"id": "A04.03",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-skus",
"service": "ACR",
"severity": "Medio",
"subcategory": "Seguridad de la red",
"text": "Uso de una SKU de Azure Container Registry que admita Private Link (SKU Premium)",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Azure Defender para contenedores o un servicio equivalente debe usarse para examinar las imágenes de contenedor en busca de vulnerabilidades",
"guid": "bad37dac-43bc-46ce-8d7a-a9b24604489a",
"id": "A04.04",
"link": "https://learn.microsoft.com/azure/defender-for-cloud/defender-for-containers-introduction",
"service": "ACR",
"severity": "Bajo",
"subcategory": "Seguridad de la red",
"text": "Habilitación de Defender para contenedores para examinar Azure Container Registry en busca de vulnerabilidades",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Implemente código de confianza que se validó y analizó en busca de vulnerabilidades de acuerdo con las prácticas de DevSecOps.",
"guid": "4451e1a2-d345-4293-a763-9637a551c5c0",
"id": "A05.01",
"service": "ACR",
"severity": "Medio",
"subcategory": "Gestión de vulnerabilidades",
"text": "Implementación de imágenes de contenedor validadas",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Utilice las versiones más recientes de las plataformas, lenguajes de programación, protocolos y marcos compatibles.",
"guid": "4e401955-387e-45ce-b126-cd132af5b20c",
"id": "A05.02",
"service": "ACR",
"severity": "Alto",
"subcategory": "Gestión de vulnerabilidades",
"text": "Utilice plataformas, lenguajes, protocolos y marcos actualizados",
"waf": "Seguridad"
}
],
"metadata": {
"name": "Azure Container Registry Security Review",
"state": "Preview",
"timestamp": "October 23, 2024",
"waf": "security"
},
"severities": [
{
"name": "Alto"
},
{
"name": "Medio"
},
{
"name": "Bajo"
}
],
"status": [
{
"description": "Esta comprobación aún no se ha examinado",
"name": "No verificado"
},
{
"description": "Hay un elemento de acción asociado a esta comprobación",
"name": "Abrir"
},
{
"description": "Esta comprobación se ha verificado y no hay más elementos de acción asociados a ella",
"name": "Cumplido"
},
{
"description": "No aplicable para el diseño actual",
"name": "N/A"
},
{
"description": "No es necesario",
"name": "No es necesario"
}
],
"waf": [
{
"name": "Fiabilidad"
},
{
"name": "Seguridad"
},
{
"name": "Costar"
},
{
"name": "Operaciones"
},
{
"name": "Rendimiento"
}
],
"yesno": [
{
"name": "Sí"
},
{
"name": "No"
}
]
}