Translated ['src/pentesting-cloud/azure-security/az-basic-information/RE

This commit is contained in:
Translator
2025-02-10 00:25:52 +00:00
parent 16f4a09efe
commit 0f2ac075ca
2 changed files with 36 additions and 35 deletions

View File

@@ -28,7 +28,7 @@
### Grupos de Recursos
[Dos docs:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) Um grupo de recursos é um **container** que contém **recursos relacionados** para uma solução do Azure. O grupo de recursos pode incluir todos os recursos para a solução, ou apenas aqueles **recursos que você deseja gerenciar como um grupo**. Geralmente, adicione **recursos** que compartilham o **mesmo ciclo de vida** ao mesmo grupo de recursos para que você possa facilmente implantar, atualizar e excluí-los como um grupo.
[Dos docs:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) Um grupo de recursos é um **container** que contém **recursos relacionados** para uma solução do Azure. O grupo de recursos pode incluir todos os recursos para a solução ou apenas aqueles **recursos que você deseja gerenciar como um grupo**. Geralmente, adicione **recursos** que compartilham o **mesmo ciclo de vida** ao mesmo grupo de recursos para que você possa facilmente implantar, atualizar e excluí-los como um grupo.
Todos os **recursos** devem estar **dentro de um grupo de recursos** e podem pertencer apenas a um grupo e, se um grupo de recursos for excluído, todos os recursos dentro dele também são excluídos.
@@ -50,7 +50,7 @@ Para uma máquina virtual chamada myVM em um grupo de recursos `myResourceGroup`
### Azure
Azure é a **plataforma de computação em nuvem abrangente da Microsoft, oferecendo uma ampla gama de serviços**, incluindo máquinas virtuais, bancos de dados, inteligência artificial e armazenamento. Atua como a base para hospedar e gerenciar aplicativos, construir infraestruturas escaláveis e executar cargas de trabalho modernas na nuvem. O Azure fornece ferramentas para desenvolvedores e profissionais de TI criarem, implantarem e gerenciarem aplicativos e serviços de forma contínua, atendendo a uma variedade de necessidades, desde startups até grandes empresas.
Azure é a **plataforma de computação em nuvem abrangente da Microsoft, oferecendo uma ampla gama de serviços**, incluindo máquinas virtuais, bancos de dados, inteligência artificial e armazenamento. Ela atua como a base para hospedar e gerenciar aplicativos, construir infraestruturas escaláveis e executar cargas de trabalho modernas na nuvem. O Azure fornece ferramentas para desenvolvedores e profissionais de TI criarem, implantarem e gerenciarem aplicativos e serviços de forma contínua, atendendo a uma variedade de necessidades, desde startups até grandes empresas.
### Entra ID (anteriormente Azure Active Directory)
@@ -58,7 +58,7 @@ Entra ID é um serviço de **gerenciamento de identidade e acesso baseado em nuv
### Serviços de Domínio do Entra (anteriormente Azure AD DS)
Os Serviços de Domínio do Entra estendem as capacidades do Entra ID, oferecendo **serviços de domínio gerenciados compatíveis com ambientes tradicionais do Active Directory do Windows**. Suporta protocolos legados como LDAP, Kerberos e NTLM, permitindo que as organizações migrem ou executem aplicativos mais antigos na nuvem sem implantar controladores de domínio locais. Este serviço também suporta Política de Grupo para gerenciamento centralizado, tornando-o adequado para cenários onde cargas de trabalho legadas ou baseadas em AD precisam coexistir com ambientes modernos de nuvem.
Os Serviços de Domínio do Entra estendem as capacidades do Entra ID, oferecendo **serviços de domínio gerenciados compatíveis com ambientes tradicionais do Active Directory do Windows**. Ele suporta protocolos legados como LDAP, Kerberos e NTLM, permitindo que as organizações migrem ou executem aplicativos mais antigos na nuvem sem implantar controladores de domínio locais. Este serviço também suporta Política de Grupo para gerenciamento centralizado, tornando-o adequado para cenários onde cargas de trabalho legadas ou baseadas em AD precisam coexistir com ambientes modernos de nuvem.
## Principais do Entra ID
@@ -107,7 +107,7 @@ Você pode verificá-las em [https://learn.microsoft.com/en-us/entra/fundamental
- **Usuários convidados têm o mesmo acesso que membros**.
- **Usuários convidados têm acesso limitado a propriedades e associações de objetos de diretório (padrão)**. Isso restringe o acesso do convidado apenas ao seu próprio perfil de usuário por padrão. O acesso a informações de outros usuários e grupos não é mais permitido.
- **O acesso de usuários convidados é restrito a propriedades e associações de seus próprios objetos de diretório** é o mais restritivo.
- **Opções de convite para convidados**:
- **Opções de convite de convidados**:
- **Qualquer pessoa na organização pode convidar usuários convidados, incluindo convidados e não administradores (mais inclusivo) - Padrão**
- **Usuários membros e usuários atribuídos a funções administrativas específicas podem convidar usuários convidados, incluindo convidados com permissões de membro**
- **Apenas usuários atribuídos a funções administrativas específicas podem convidar usuários convidados**
@@ -142,13 +142,13 @@ Um **Principal de Serviço** é uma **identidade** criada para **uso** com **apl
### Registros de Aplicativos
Um **Registro de Aplicativo** é uma configuração que permite que uma aplicação se integre ao Entra ID e realize ações.
Um **Registro de Aplicativo** é uma configuração que permite que uma aplicação se integre com o Entra ID e realize ações.
#### Componentes Chave:
1. **ID da Aplicação (Client ID):** Um identificador único para seu aplicativo no Azure AD.
2. **URIs de Redirecionamento:** URLs onde o Azure AD envia respostas de autenticação.
3. **Certificados, Segredos e Credenciais Federadas:** É possível gerar um segredo ou um certificado para fazer login como o principal de serviço da aplicação, ou conceder acesso federado a ele (por exemplo, Github Actions).
3. **Certificados, Segredos e Credenciais Federadas:** É possível gerar um segredo ou um certificado para fazer login como o principal de serviço da aplicação ou conceder acesso federado a ele (por exemplo, Github Actions).
1. Se um **certificado** ou **segredo** for gerado, é possível que uma pessoa **faça login como o principal de serviço** com ferramentas CLI conhecendo o **ID da aplicação**, o **segredo** ou **certificado** e o **inquilino** (domínio ou ID).
4. **Permissões da API:** Especifica quais recursos ou APIs o aplicativo pode acessar.
5. **Configurações de Autenticação:** Define os fluxos de autenticação suportados pelo aplicativo (por exemplo, OAuth2, OpenID Connect).
@@ -193,7 +193,7 @@ Identidades Gerenciadas **não geram credenciais eternas** (como senhas ou certi
É apenas uma **tabela no Azure para filtrar principais de serviço** e verificar as aplicações que foram atribuídas a.
**Não é outro tipo de “aplicação”**, não nenhum objeto no Azure que seja uma “Aplicação Empresarial”, é apenas uma abstração para verificar os Principais de Serviço, Registros de Aplicativos e Identidades Gerenciadas.
**Não é outro tipo de “aplicação”**, não existe nenhum objeto no Azure que seja uma “Aplicação Empresarial”, é apenas uma abstração para verificar os Principais de Serviço, Registros de Aplicativos e Identidades Gerenciadas.
### Unidades Administrativas
@@ -212,34 +212,28 @@ Exemplo:
- Conceder o papel de "Administrador de Usuários" ao pessoal de TI regional, limitado à AU de sua região.
- Resultado: Administradores de TI regionais podem gerenciar contas de usuário dentro de sua região sem afetar outras regiões.
### Funções do Entra ID
### Funções e Permissões do Entra ID
- Para gerenciar o Entra ID, existem algumas **funções integradas** que podem ser atribuídas a principais do Entra ID para gerenciar o Entra ID
- Verifique as funções em [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference)
- Funções marcadas como **`PRIVILEGIADAS`** pelo EntraID devem ser atribuídas com cautela, pois como a Microsoft explica [nos docs](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference): Atribuições de função privilegiadas podem levar à elevação de privilégios se não forem usadas de maneira segura e intencional.
- A função mais privilegiada é **Administrador Global**
- Na descrição da função, é possível ver suas **permissões granulares**
- As funções agrupam **permissões granulares** e podem ser encontradas em suas descrições.
- É possível **criar funções personalizadas** com as permissões desejadas. Embora, por algum motivo, nem todas as permissões granulares estejam disponíveis para os administradores criarem funções personalizadas.
- As funções no Entra ID são completamente **independentes** das funções no Azure. A única relação é que os principais com a função **Administrador Global** no Entra ID podem elevar para a função **Administrador de Acesso do Usuário** no Azure.
- **Não é possível usar curingas** nas funções do Entra ID.
## Funções e Permissões
## Funções e Permissões do Azure
**Funções** são **atribuídas** a **principais** em um **escopo**: `principal -[HAS ROLE]->(scope)`
**Funções** atribuídas a **grupos** são **herdadas** por todos os **membros** do grupo.
Dependendo do escopo ao qual a função foi atribuída, a **função** pode ser **herdada** para **outros recursos** dentro do contêiner de escopo. Por exemplo, se um usuário A tem uma **função na assinatura**, ele terá essa **função em todos os grupos de recursos** dentro da assinatura e em **todos os recursos** dentro do grupo de recursos.
### Funções Clássicas
| **Proprietário** | <ul><li>Acesso total a todos os recursos</li><li>Pode gerenciar o acesso de outros usuários</li></ul> | Todos os tipos de recursos |
| ------------------------------- | ---------------------------------------------------------------------------------------------------- | -------------------------- |
| **Contribuidor** | <ul><li>Acesso total a todos os recursos</li><li>Não pode gerenciar acesso</li></ul> | Todos os tipos de recursos |
| **Leitor** | • Visualizar todos os recursos | Todos os tipos de recursos |
| **Administrador de Acesso do Usuário** | <ul><li>Visualizar todos os recursos</li><li>Pode gerenciar o acesso de outros usuários</li></ul> | Todos os tipos de recursos |
- **Funções** são **atribuídas** a **principais** em um **escopo**: `principal -[TEM FUNÇÃO]->(escopo)`
- **Funções** atribuídas a **grupos** são **herdadas** por todos os **membros** do grupo.
- Dependendo do escopo ao qual a função foi atribuída, a **função** pode ser **herdada** para **outros recursos** dentro do contêiner de escopo. Por exemplo, se um usuário A tem uma **função na assinatura**, ele terá essa **função em todos os grupos de recursos** dentro da assinatura e em **todos os recursos** dentro do grupo de recursos.
### Funções Integradas
[Dos docs: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[O controle de acesso baseado em função do Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) tem várias **funções integradas do Azure** que você pode **atribuir** a **usuários, grupos, principais de serviço e identidades gerenciadas**. As atribuições de função são a maneira de controlar **o acesso aos recursos do Azure**. Se as funções integradas não atenderem às necessidades específicas de sua organização, você pode criar suas próprias [**funções personalizadas do Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.**
[Dos docs: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[O controle de acesso baseado em função do Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) tem várias **funções integradas do Azure** que você pode **atribuir** a **usuários, grupos, principais de serviço e identidades gerenciadas**. As atribuições de função são a maneira de controlar **o acesso aos recursos do Azure**. Se as funções integradas não atenderem às necessidades específicas de sua organização, você pode criar suas próprias [**funções personalizadas do Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles).
As funções **Integradas** se aplicam apenas aos **recursos** para os quais são **destinadas**, por exemplo, verifique esses 2 exemplos de **Funções Integradas sobre recursos de Computação**:
As **funções integradas** se aplicam apenas aos **recursos** para os quais são **destinadas**, por exemplo, verifique estes 2 exemplos de **funções integradas sobre recursos de Computação**:
| [Leitor de Backup de Disco](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Fornece permissão ao cofre de backup para realizar backup de disco. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |
@@ -303,7 +297,7 @@ Exemplo de JSON de permissões para uma função personalizada:
### Administrador Global
O Administrador Global é um papel do Entra ID que concede **controle total sobre o locatário do Entra ID**. No entanto, ele não concede nenhuma permissão sobre recursos do Azure por padrão.
Administrador Global é um papel do Entra ID que concede **controle total sobre o locatário do Entra ID**. No entanto, ele não concede nenhuma permissão sobre recursos do Azure por padrão.
Usuários com o papel de Administrador Global têm a capacidade de '**elevar' para o papel de Administrador de Acesso do Usuário no Grupo de Gerenciamento Raiz**. Assim, Administradores Globais podem gerenciar o acesso em **todas as assinaturas e grupos de gerenciamento do Azure.**\
Essa elevação pode ser feita no final da página: [https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/\~/Properties](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties)
@@ -318,7 +312,7 @@ De acordo com **[a documentação](https://learn.microsoft.com/en-us/azure/role-
Assim como as atribuições de papéis, **atribuições de negação** são usadas para **controlar o acesso a recursos do Azure**. No entanto, **atribuições de negação** são usadas para **negar explicitamente o acesso** a um recurso, mesmo que um usuário tenha recebido acesso por meio de uma atribuição de papel. **Atribuições de negação** têm precedência sobre **atribuições de papel**, o que significa que se um usuário receber acesso por meio de uma atribuição de papel, mas também for explicitamente negado acesso por meio de uma atribuição de negação, a atribuição de negação terá precedência.
Assim como as atribuições de papéis, **atribuições de negação** são aplicadas sobre algum escopo indicando os principais afetados e as permissões que estão sendo negadas. Além disso, no caso de atribuições de negação, é possível **impedir que a negação seja herdada** por recursos filhos.
Assim como as atribuições de papel, **atribuições de negação** são aplicadas sobre algum escopo indicando os principais afetados e as permissões que estão sendo negadas. Além disso, no caso de atribuições de negação, é possível **impedir que a negação seja herdada** por recursos filhos.
### Políticas do Azure
@@ -339,12 +333,12 @@ As Políticas do Azure são **proativas**: elas podem impedir que recursos não
2. **Impondo Padrões de Nomenclatura**: Políticas podem impor convenções de nomenclatura para recursos do Azure. Isso ajuda na organização e identificação fácil de recursos com base em seus nomes, o que é útil em grandes ambientes.
3. **Restringindo Certos Tipos de Recursos**: Esta política pode restringir a criação de certos tipos de recursos. Por exemplo, uma política pode ser definida para impedir a criação de tipos de recursos caros, como certos tamanhos de VM, para controlar custos.
4. **Impondo Políticas de Tagging**: Tags são pares chave-valor associados a recursos do Azure usados para gerenciamento de recursos. Políticas podem impor que certas tags devem estar presentes ou ter valores específicos para todos os recursos. Isso é útil para rastreamento de custos, propriedade ou categorização de recursos.
5. **Limitando o Acesso Público a Recursos**: Políticas podem impor que certos recursos, como contas de armazenamento ou bancos de dados, não tenham endpoints públicos, garantindo que sejam acessíveis apenas dentro da rede da organização.
5. **Limitando Acesso Público a Recursos**: Políticas podem impor que certos recursos, como contas de armazenamento ou bancos de dados, não tenham endpoints públicos, garantindo que sejam acessíveis apenas dentro da rede da organização.
6. **Aplicando Configurações de Segurança Automaticamente**: Políticas podem ser usadas para aplicar automaticamente configurações de segurança a recursos, como aplicar um grupo de segurança de rede específico a todas as VMs ou garantir que todas as contas de armazenamento usem criptografia.
Observe que as Políticas do Azure podem ser anexadas a qualquer nível da hierarquia do Azure, mas são **comumente usadas no grupo de gerenciamento raiz** ou em outros grupos de gerenciamento.
Exemplo de json de política do Azure:
Exemplo de política do Azure em json:
```json
{
"policyRule": {
@@ -375,7 +369,7 @@ Essa estrutura hierárquica permite uma gestão eficiente e escalável das permi
**RBAC** (controle de acesso baseado em função) é o que já vimos nas seções anteriores: **Atribuir uma função a um principal para conceder acesso** a um recurso.\
No entanto, em alguns casos, você pode querer fornecer **uma gestão de acesso mais detalhada** ou **simplificar** a gestão de **centenas** de atribuições de função.
O **ABAC** do Azure (controle de acesso baseado em atributos) se baseia no Azure RBAC, adicionando **condições de atribuição de função baseadas em atributos** no contexto de ações específicas. Uma _condição de atribuição de função_ é uma **verificação adicional que você pode opcionalmente adicionar à sua atribuição de função** para fornecer um controle de acesso mais detalhado. Uma condição filtra as permissões concedidas como parte da definição de função e da atribuição de função. Por exemplo, você pode **adicionar uma condição que exige que um objeto tenha uma tag específica para ler o objeto**.\
O **ABAC** do Azure (controle de acesso baseado em atributos) se baseia no Azure RBAC, adicionando **condições de atribuição de função com base em atributos** no contexto de ações específicas. Uma _condição de atribuição de função_ é uma **verificação adicional que você pode opcionalmente adicionar à sua atribuição de função** para fornecer um controle de acesso mais detalhado. Uma condição filtra as permissões concedidas como parte da definição de função e da atribuição de função. Por exemplo, você pode **adicionar uma condição que exige que um objeto tenha uma tag específica para ler o objeto**.\
Você **não pode** explicitamente **negar** **acesso** a recursos específicos **usando condições**.
## Referências

View File

@@ -184,9 +184,9 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
{{#endtab }}
{{#endtabs }}
Quando você **faz login** via **CLI** no Azure com qualquer programa, você está usando uma **Aplicação Azure** de um **tenant** que pertence à **Microsoft**. Essas Aplicações, como as que você pode criar em sua conta, **têm um id de cliente**. Você **não poderá ver todas elas** nas **listas de aplicações permitidas** que você pode ver no console, **mas elas são permitidas por padrão**.
Quando você **faz login** via **CLI** no Azure com qualquer programa, você está usando uma **Aplicação Azure** de um **inquilino** que pertence à **Microsoft**. Essas Aplicações, como as que você pode criar em sua conta, **têm um id de cliente**. Você **não poderá ver todas elas** nas **listas de aplicações permitidas** que você pode ver no console, **mas elas são permitidas por padrão**.
Por exemplo, um **script powershell** que **autentica** usa um app com id de cliente **`1950a258-227b-4e31-a9cf-717495945fc2`**. Mesmo que o app não apareça no console, um sysadmin poderia **bloquear essa aplicação** para que os usuários não possam acessar usando ferramentas que se conectam via esse App.
Por exemplo, um **script powershell** que **autentica** usa um aplicativo com id de cliente **`1950a258-227b-4e31-a9cf-717495945fc2`**. Mesmo que o aplicativo não apareça no console, um sysadmin poderia **bloquear essa aplicação** para que os usuários não possam acessar usando ferramentas que se conectam via esse App.
No entanto, existem **outros ids de cliente** de aplicações que **permitirão que você se conecte ao Azure**:
```bash
@@ -487,7 +487,7 @@ Os proprietários do grupo podem adicionar novos usuários ao grupo
Add-AzureADGroupMember -ObjectId <group_id> -RefObjectId <user_id> -Verbose
```
> [!WARNING]
> Grupos podem ser dinâmicos, o que basicamente significa que **se um usuário cumprir certas condições, ele será adicionado a um grupo**. Claro, se as condições forem baseadas em **atributos** que um **usuário** pode **controlar**, ele pode abusar desse recurso para **entrar em outros grupos**.\
> Grupos podem ser dinâmicos, o que basicamente significa que **se um usuário cumprir certas condições, ele será adicionado a um grupo**. Claro, se as condições forem baseadas em **atributos** que um **usuário** pode **controlar**, ele poderia abusar dessa funcionalidade para **entrar em outros grupos**.\
> Confira como abusar de grupos dinâmicos na página a seguir:
{{#ref}}
@@ -496,7 +496,7 @@ Add-AzureADGroupMember -ObjectId <group_id> -RefObjectId <user_id> -Verbose
### Principais Serviços
Para mais informações sobre os principais serviços do Entra ID, confira:
Para mais informações sobre principais serviços do Entra ID, confira:
{{#ref}}
../az-basic-information/
@@ -735,6 +735,13 @@ az ad app owner list --id <id> --query "[].[displayName]" -o table
az ad app list --show-mine
# Get apps with generated secret or certificate
az ad app list --query '[?length(keyCredentials) > `0` || length(passwordCredentials) > `0`].[displayName, appId, keyCredentials, passwordCredentials]' -o json
# Get Global Administrators (full access over apps)
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1b2256f9-46c1-4fc2-a125-5b2f51bb43b7/members"
# Get Application Administrators (full access over apps)
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1e92c3b7-2363-4826-93a6-7f7a5b53e7f9/members"
# Get Cloud Applications Administrators (full access over apps)
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/0d601d27-7b9c-476f-8134-8e7cd6744f02/members"
```
{{#endtab }}
@@ -792,7 +799,7 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
> Uma string secreta que o aplicativo usa para provar sua identidade ao solicitar um token é a senha do aplicativo.\
> Portanto, se encontrar esta **senha**, você pode acessar como o **service principal** **dentro** do **tenant**.\
> Note que esta senha só é visível quando gerada (você pode alterá-la, mas não pode obtê-la novamente).\
> O **proprietário** do **aplicativo** pode **adicionar uma senha** a ele (para que possa se passar por ele).\
> O **proprietário** do **aplicativo** pode **adicionar uma senha** a ele (para que ele possa se passar por ele).\
> Logins como esses service principals **não são marcados como arriscados** e **não terão MFA.**
É possível encontrar uma lista de IDs de aplicativos comumente usados que pertencem à Microsoft em [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)