-
Notifications
You must be signed in to change notification settings - Fork 326
/
Copy pathacr_checklist.pt.json
323 lines (323 loc) · 16.2 KB
/
acr_checklist.pt.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": "Segurança"
},
{
"name": "Topologia e conectividade de rede"
},
{
"name": "Gestão de operações"
},
{
"name": "Automação de plataforma"
},
{
"name": "Segurança"
},
{
"name": "Livro-razão"
},
{
"name": "Log"
},
{
"name": "Rede"
},
{
"name": "Descoberta e classificação de dados"
},
{
"name": "Mascaramento de dados"
},
{
"name": "Código"
}
],
"items": [
{
"category": "Segurança",
"description": "Desative a exportação de imagens para evitar a exfiltração de dados. Observe que isso impedirá a importação de imagens para outra instância do 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": "Proteção de dados",
"text": "Desabilitar a exportação de imagem do Registro de Contêiner do Azure",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Habilite a visibilidade de conformidade de auditoria habilitando o Azure Policy para o Registro de Contêiner do Azure",
"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": "Proteção de dados",
"text": "Habilitar Políticas do Azure para o Registro de Contêiner do Azure",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "O Azure Key Vault (AKV) é usado para armazenar uma chave de assinatura que pode ser utilizada por?notação?com o plug-in AKV de notação (azure-kv) para assinar e verificar imagens de contêiner e outros artefatos. O ACR (Registro de Contêiner do Azure) permite que você anexe essas assinaturas usando o?az?ou?oras? Comandos da 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": "Proteção de dados",
"text": "Assinar e verificar contêineres com notação (Notary v2)",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "O Registro de Contêiner do Azure criptografa automaticamente imagens e outros artefatos que você armazena. Por padrão, o Azure criptografa automaticamente o conteúdo do Registro em repouso usando chaves gerenciadas pelo serviço. Usando uma chave gerenciada pelo cliente, você pode complementar a criptografia padrão com uma camada de criptografia 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": "Média",
"subcategory": "Proteção de dados",
"text": "Criptografar o registro com uma chave gerenciada pelo cliente",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Usar identidades gerenciadas para proteger o acesso RBAC ACRPull/Push de aplicativos 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": "Controle de identidade e acesso",
"text": "Usar identidades gerenciadas para se conectar em vez de entidades de serviço",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "A conta de administrador local está desabilitada por padrão e não deve ser habilitada. Em vez disso, use métodos de acesso baseados em token ou 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": "Controle de identidade e acesso",
"text": "Desabilitar a autenticação local para acesso ao plano de gerenciamento",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Desabilitar a conta de administrador e atribuir funções RBAC a entidades de segurança para operações de pull/push do 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": "Controle de identidade e acesso",
"text": "Atribuir funções RBAC AcrPull e AcrPush em vez de conceder acesso administrativo a entidades de identidade",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Desabilitar acesso anônimo de pull/push",
"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": "Média",
"subcategory": "Controle de identidade e acesso",
"text": "Desabilitar o acesso pull anônimo",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "A autenticação de token não dá suporte à atribuição a uma entidade de segurança do AAD. Quaisquer tokens fornecidos podem ser usados por qualquer pessoa que possa acessar o 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": "Controle de identidade e acesso",
"text": "Desabilitar tokens de acesso no escopo do repositório",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Implantar imagens de contêiner em um ACR por trás de um ponto de extremidade privado em uma rede confiável",
"guid": "b3bec3d4-f343-47c1-936d-b55f27a71eee",
"id": "A02.06",
"service": "ACR",
"severity": "Alto",
"subcategory": "Controle de identidade e acesso",
"text": "Implantar imagens de um ambiente confiável",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Somente tokens com um público-alvo do ACR podem ser usados para autenticação. Usado ao habilitar políticas de acesso 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": "Média",
"subcategory": "Controle de identidade e acesso",
"text": "Desabilitar tokens de audiência do ARM do Azure para autenticação",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Configure uma configuração de diagnóstico para enviar 'repositoryEvents' e 'LoginEvents' para o Log Analytics como o destino central para registro em log e monitoramento. Isso permite que você monitore a atividade do plano de controle no próprio recurso do ACR.",
"guid": "8a488cde-c486-42bc-9bd2-1be77f26e5e6",
"id": "A03.01",
"link": "https://learn.microsoft.com/azure/container-registry/monitor-service",
"service": "ACR",
"severity": "Média",
"subcategory": "Registro e monitoramento",
"text": "Habilitar o log de diagnóstico",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "O serviço dá suporte à desabilitação do acesso à rede pública usando a regra de filtragem de ACL IP no nível do serviço (não NSG ou Firewall do Azure) ou usando uma opção de alternância 'Desabilitar Acesso à Rede 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": "Média",
"subcategory": "Segurança de rede",
"text": "Controle o acesso à rede de entrada com Link Privado",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Desative o acesso à rede pública se o acesso à rede de entrada for protegido usando o Link Privado",
"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": "Média",
"subcategory": "Segurança de rede",
"text": "Desabilitar o acesso à rede pública",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Somente o SKU do ACR Premium dá suporte ao acesso ao Link Privado",
"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": "Média",
"subcategory": "Segurança de rede",
"text": "Usar um SKU do Registro de Contêiner do Azure que dá suporte ao Link Privado (SKU Premium)",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "O Azure Defender para contêineres ou serviço equivalente deve ser usado para verificar se há vulnerabilidades em imagens de contêiner",
"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": "Baixo",
"subcategory": "Segurança de rede",
"text": "Habilitar o Defender para Contêineres para verificar se há vulnerabilidades no Registro de Contêiner do Azure",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Implante código confiável que foi validado e verificado em busca de vulnerabilidades de acordo com as práticas de DevSecOps.",
"guid": "4451e1a2-d345-4293-a763-9637a551c5c0",
"id": "A05.01",
"service": "ACR",
"severity": "Média",
"subcategory": "Gerenciamento de vulnerabilidades",
"text": "Implantar imagens de contêiner validadas",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Use as versões mais recentes de plataformas, linguagens de programação, protocolos e estruturas com suporte.",
"guid": "4e401955-387e-45ce-b126-cd132af5b20c",
"id": "A05.02",
"service": "ACR",
"severity": "Alto",
"subcategory": "Gerenciamento de vulnerabilidades",
"text": "Use plataformas, linguagens, protocolos e frameworks atualizados",
"waf": "Segurança"
}
],
"metadata": {
"name": "Azure Container Registry Security Review",
"state": "Preview",
"timestamp": "October 23, 2024",
"waf": "security"
},
"severities": [
{
"name": "Alto"
},
{
"name": "Média"
},
{
"name": "Baixo"
}
],
"status": [
{
"description": "Esta verificação ainda não foi analisada",
"name": "Não verificado"
},
{
"description": "Há um item de ação associado a essa verificação",
"name": "Abrir"
},
{
"description": "Essa verificação foi verificada e não há mais itens de ação associados a ela",
"name": "Cumprido"
},
{
"description": "Não aplicável para o projeto atual",
"name": "N/A"
},
{
"description": "Não é necessário",
"name": "Não é necessário"
}
],
"waf": [
{
"name": "Fiabilidade"
},
{
"name": "Segurança"
},
{
"name": "Custar"
},
{
"name": "Operações"
},
{
"name": "Desempenho"
}
],
"yesno": [
{
"name": "Sim"
},
{
"name": "Não"
}
]
}