0Pricing
Security+ Academy · Aula

Modelos de autorização: RBAC, MAC e DAC

Compare os modelos de controle de acesso baseado em funções, obrigatório e discricionário, e aprenda quando cada um é adequado em contextos empresariais e governamentais.

Modelos de autorização: RBAC, MAC e DAC é uma aula grátis de Security+ Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Security+ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Security+ Academy inclui 4 aulas no total.

Visão geral dos modelos de controle de acesso

Os modelos de controle de acesso definem as regras e políticas que determinam quais sujeitos (usuários, processos) podem acessar quais objetos (arquivos, sistemas, dados). O modelo escolhido determina quem pode conceder acesso, como as permissões são atribuídas e como a aplicação das regras funciona. O exame Security+ aborda quatro modelos principais: Discretionary Access Control (DAC), Mandatory Access Control (MAC), Role-Based Access Control (RBAC) e Rule-Based Access Control. Compreender os pontos fortes e os casos de uso apropriados de cada modelo é essencial para projetar sistemas de autorização eficazes.

Discretionary Access Control (DAC)

No Discretionary Access Control (DAC), o proprietário do recurso decide quem pode acessar seus recursos e pode conceder ou revogar o acesso de outros usuários. O aspecto “discricionário” é que os proprietários decidem — o sistema aplica suas decisões, mas não as determina. Esse é o modelo usado na maioria dos ambientes de computação pessoal (permissões de arquivo do Windows NTFS e permissões de arquivo do Linux/Unix). A limitação de segurança do DAC é exigir que cada proprietário de recurso tome decisões corretas de acesso — um usuário que recebe acesso a um arquivo pode conceder esse acesso a outras pessoas sem o envolvimento de um administrador, potencialmente disseminando dados sensíveis para além do público pretendido.

# DAC example: Linux file permissions (owner controls access)
# Create a file and check default permissions
touch confidential_data.txt
ls -la confidential_data.txt
# -rw-rw-r-- 1 alice users  (owner=alice, can read/write; group can read/write; others read)

# Owner (Alice) discretionarily removes all access for others
chmod 600 confidential_data.txt
# -rw------- 1 alice users  (only Alice can read/write)

# Alice grants read to a specific user via ACL
setfacl -m u:bob:r confidential_data.txt

Riscos do DAC: o problema do agente confuso

O DAC apresenta dois riscos de segurança inerentes. Acesso transitivo: o usuário A concede acesso ao usuário B, e o usuário B concede acesso ao usuário C — o proprietário original pode nem saber que C tem acesso ao seu recurso. O problema do agente confuso: um programa privilegiado que atua em nome de um usuário com menos privilégios pode usar inadvertidamente seus privilégios de uma maneira que o usuário não poderia usar diretamente. Em ambientes DAC, uma única conta comprometida pode potencialmente acessar todos os recursos aos quais esse usuário recebeu acesso e pode conceder acesso a outras pessoas antes que o comprometimento seja detectado. O DAC é conveniente, mas cria desafios para a contenção rigorosa de informações.

Mandatory Access Control (MAC)

No Mandatory Access Control (MAC), o sistema operacional aplica políticas de acesso com base em rótulos de segurança atribuídos tanto aos sujeitos (usuários) quanto aos objetos (dados). Os usuários não podem substituir nem alterar essas políticas — somente o administrador do sistema ou a política de segurança pode modificá-las. O MAC é usado em ambientes governamentais e militares com informações classificadas, nos quais os dados precisam ser rigorosamente compartimentados. Um usuário com autorização “Secreta” não pode acessar dados rotulados como “Altamente secretos”, mesmo que o proprietário dos dados queira conceder-lhe acesso. O modelo Bell-LaPadula (sem leitura acima, sem escrita abaixo) e o modelo Biba (sem escrita acima, sem leitura abaixo) são implementações formais de MAC.

# SELinux is a MAC implementation for Linux
# Check SELinux mode and policy
getenforce  # Enforcing / Permissive / Disabled
sestatus    # Detailed SELinux status

# View SELinux security context labels on files
ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0 /etc/passwd

# Security context: user:role:type:level
# A process can only access files where its type has explicit permission
sudo ausearch -m avc -ts recent  # View MAC policy denials

Modelos MAC Bell-LaPadula e Biba

Dois modelos formais de MAC codificam objetivos de segurança como regras matemáticas. Bell-LaPadula concentra-se na confidencialidade: os sujeitos não podem ler dados acima de seu nível de classificação (sem leitura acima) nem gravar dados em um nível de classificação inferior (sem escrita abaixo). Isso impede que informações sensíveis cheguem a usuários não autorizados. Biba concentra-se na integridade: os sujeitos não podem gravar em um nível de integridade superior (sem escrita acima) nem ler de um nível de integridade inferior (sem leitura abaixo). O Biba impede a contaminação de dados com alta integridade por entradas com baixa integridade. Sistemas MAC reais (como o SELinux) combinam aspectos dos dois modelos.

Role-Based Access Control (RBAC)

O Role-Based Access Control (RBAC) atribui permissões a funções, em vez de atribuí-las diretamente a usuários individuais, e depois atribui usuários às funções. Isso resolve o desafio de gerenciar a atribuição de permissões individuais em grande escala. Funções comuns em ambientes corporativos: admin, auditor, developer, HR_manager, finance_analyst. Quando um novo funcionário ingressa na organização, ele é adicionado à função apropriada e herda imediatamente todas as permissões exigidas por essa função. Quando um funcionário muda de cargo, sua função muda e as permissões são ajustadas automaticamente. O RBAC é o modelo predominante nos sistemas corporativos de IAM.

# RBAC example (database permissions)
# Create roles and assign permissions
CREATE ROLE readonly_analyst;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_analyst;

CREATE ROLE data_engineer;
GRANT SELECT, INSERT, UPDATE ON customer_data TO data_engineer;

# Assign users to roles
GRANT readonly_analyst TO alice;
GRANT data_engineer TO bob;

# When Alice is promoted: revoke old role, grant new one
REVOKE readonly_analyst FROM alice;
GRANT data_engineer TO alice;

Benefícios do RBAC: escalabilidade e separação de funções

A principal vantagem do RBAC é a escalabilidade administrativa. Modificar as permissões de uma função afeta instantaneamente todos os usuários nessa função — não é necessário atualizar registros de usuários individuais em centenas de sistemas. O RBAC oferece suporte natural à separação de funções, garantindo que nenhuma função tenha permissões conflitantes (por exemplo, uma função que possa tanto criar quanto aprovar transações financeiras). O RBAC também simplifica a conformidade: os auditores podem revisar as funções e suas permissões, em vez de auditar milhares de atribuições individuais de usuários. A limitação é a proliferação de funções — às vezes as organizações criam funções granulares demais, gerando uma complexidade de gerenciamento que reduz o benefício da escalabilidade.

Rule-Based Access Control

O Rule-Based Access Control (que não deve ser confundido com RBAC) concede ou nega acesso com base em um conjunto de regras condicionais, em vez de se basear apenas na identidade ou na função. As regras de firewall são o exemplo clássico: “Permitir TCP de 192.168.1.0/24 para qualquer destino na porta 443. Negar todo o tráfego restante.” O acesso é avaliado em relação às regras na ordem em que aparecem, até que uma correspondência seja encontrada. O controle baseado em regras costuma ser combinado com outros modelos: o MAC usa rótulos de segurança como regras, e o Attribute-Based Access Control (ABAC) amplia a lógica baseada em regras para avaliar simultaneamente vários atributos (departamento do usuário, tipo de dispositivo, hora do dia, classificação do recurso) e tomar decisões detalhadas.

# Rule-based access control: iptables firewall rules
# Rules are evaluated in order; first match wins

# Allow established/related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow specific source IP to SSH
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 22 -j ACCEPT

# Allow HTTPS from anywhere
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Default deny all other inbound
iptables -A INPUT -j DROP

Attribute-Based Access Control (ABAC)

O ABAC (Attribute-Based Access Control) é o modelo de controle de acesso mais flexível e detalhado. As decisões de acesso avaliam simultaneamente vários atributos: atributos do sujeito (departamento do usuário, nível de autorização, localização), atributos do objeto (classificação dos dados, departamento do proprietário, rótulo de retenção), atributos ambientais (hora do dia, tipo de dispositivo, localização da rede) e atributos da ação (ler, gravar, excluir). Uma política pode dizer: “Permitir acesso se user.department = Finance AND resource.classification = Internal AND device.type = corporate AND time.hour BETWEEN 8 AND 18.” O ABAC permite decisões de política de confiança zero e é implementado por produtos como XACML e mecanismos de políticas de IAM na nuvem.

Escolhendo o modelo correto

O modelo de controle de acesso apropriado depende dos requisitos de segurança e do contexto organizacional. DAC: adequado para computação pessoal e equipes pequenas nas quais a conveniência é priorizada em relação ao controle rigoroso. MAC: necessário em ambientes governamentais e militares com informações classificadas e compartimentação rigorosa. RBAC: ideal para empresas nas quais a escalabilidade administrativa é fundamental e as funções correspondem claramente às atribuições profissionais. ABAC: apropriado para ambientes de nuvem e arquiteturas de confiança zero nas quais são necessárias políticas detalhadas e sensíveis ao contexto. Na prática, a maioria das organizações usa uma combinação: RBAC como base, com ABAC para decisões de acesso sensíveis ao contexto.

Access Listas de Controle (ACLs)

Independentemente do modelo de controle de acesso, as Access Control Lists (ACLs) são o mecanismo de implementação técnica mais comum. Uma ACL associada a um recurso especifica quais sujeitos podem realizar quais ações. As ACLs do sistema de arquivos (Windows NTFS, Linux POSIX ACLs) controlam o acesso a arquivos e diretórios. As ACLs de Network controlam o fluxo de tráfego no roteador ou no nível da rede em nuvem. As ACLs de banco de dados controlam o acesso a tabelas e a linhas. As ACLs podem implementar qualquer um dos modelos discutidos: a ACL de um arquivo implementa DAC quando o proprietário a controla; a ACL de um sistema de segurança implementa MAC quando os rótulos determinam as entradas; a ACL de uma Application implementa RBAC quando as entradas fazem referência a funções.

# Windows NTFS ACL example using icacls
# View current ACL on a folder
icacls 'C:\Sensitive\HR_Data'
# BUILTIN\Administrators:(OI)(CI)(F)  <- Full control
# CONTOSO\HR_Team:(OI)(CI)(RX)        <- Read and Execute

# Grant specific permissions to HR Managers group
icacls 'C:\Sensitive\HR_Data' /grant 'CONTOSO\HR_Managers:(OI)(CI)(M)'
# (OI)=Object Inherit, (CI)=Container Inherit, (M)=Modify

# Remove access for a former contractor
icacls 'C:\Sensitive\HR_Data' /remove 'CONTOSO\contractors'

Verificação rápida

Teste sua compreensão dos conceitos do CompTIA Security+ (SY0-701) abordados nesta lição.

Recapitulação da lição

Nesta lição, você aprendeu: o DAC permite que os proprietários dos recursos controlem o acesso (é flexível, mas arriscado); o MAC usa rótulos de segurança impostos pelo sistema (é rigoroso e usado em ambientes classificados); o RBAC atribui permissões a funções para oferecer escalabilidade empresarial; e o ABAC avalia vários atributos para tomar decisões detalhadas de confiança zero. A seguir, exploraremos a identidade federada: SAML, OAuth e OpenID Connect.

Perguntas Frequentes

A aula “Modelos de autorização: RBAC, MAC e DAC” é grátis?

Sim — o texto completo de “Modelos de autorização: RBAC, MAC e DAC” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Security+ Academy, atualize para CoddyKit PRO. O curso de Security+ Academy inclui 4 aulas no total.

O que vou aprender em “Modelos de autorização: RBAC, MAC e DAC”?

Compare os modelos de controle de acesso baseado em funções, obrigatório e discricionário, e aprenda quando cada um é adequado em contextos empresariais e governamentais. Você pratica Security+ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Security+ Academy?

Nenhuma experiência prévia é necessária. Security+ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Modelos de autorização: RBAC, MAC e DAC”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Security+ Academy?

Sim. Cada aula de Security+ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Políticas de senhas e autenticação multifator
  2. Biometria e autenticação baseada em tokens
  3. Modelos de autorização: RBAC, MAC e DAC
  4. Identidade federada: SAML, OAuth e OpenID Connect
← Voltar para Security+ Academy