שֹׁפְטִים וְשֹׁטְרִים תִּתֶּן לְךָ בְּכָל שְׁעָרֶיךָ shoftim veshotrim titen lecha bechol shearecha · juízes e oficiais porás em todas as tuas portas · Devarim 16:18

Blog/Artigos · Segurança

ABAC: juízes e oficiais em todas as tuas portas

Decisão por atributo, o modelo PEP-PDP-PIP, política declarativa e a combinação com RBAC.

Por Juliano Vince de Campos · · 5 min de leitura · 4 seções · 4 figuras

שְׁעָרֶיךָ SHOFTIM · DEVARIM 16:18

Devarim manda pôr juízes e oficiais em todas as portas, para que cada caso seja julgado onde acontece, pelo que ele traz, não por uma regra fixa decidida longe dali. ABAC é esse juízo à porta aplicado ao acesso: a decisão não olha só quem pede, olha os atributos da requisição, o recurso, a ação e o contexto, e decide caso a caso. Onde o RBAC pergunta que papel você tem, o ABAC pergunta, aqui e agora, você pode isto.

A decisão olha o contexto, não só o papel

RBAC decide pela função: você é analista, então pode o que analista pode. ABAC decide por atributos combinados: atributos de quem pede (departamento, nível, projeto), do recurso (classificação, dono, região), da ação (ler, aprovar) e do ambiente (horário, dispositivo, risco). A política é uma regra sobre esses atributos, avaliada a cada requisição.

Isso permite decisões que o papel não expressa: aprovar pagamento apenas do próprio centro de custo, ler o prontuário apenas do próprio hospital, acessar o console apenas em horário comercial e de dispositivo gerenciado. O acesso deixa de ser um crachá que abre tudo da função e passa a ser um juízo sobre a circunstância exata do pedido.

Figura 1As quatro categorias de atributo que compõem uma decisão ABAC
CategoriaExemplosPergunta que responde
Sujeitodepartamento, nível, projeto, certificaçãoquem está pedindo
Recursoclassificação, dono, região, centro de custosobre o que é o pedido
Açãoler, escrever, aprovar, exportaro que se quer fazer
Ambientehorário, dispositivo gerenciado, risco da sessão, redeem que circunstância
A política combina atributos das quatro categorias. É a combinação que dá ao ABAC a expressividade que o papel isolado não tem.

Quem julga e quem executa: PEP, PDP e PIP

ABAC separa quem decide de quem aplica. O ponto de aplicação (PEP) fica na frente do recurso, intercepta a requisição e pergunta se pode. O ponto de decisão (PDP) avalia a política contra os atributos e responde permite ou nega. O ponto de informação (PIP) fornece os atributos que faltam, buscando na fonte de identidade ou no catálogo do recurso.

Essa separação é o que torna o modelo sustentável. A política vive em um lugar só, o PDP, e não espalhada em cada aplicação. Trocar uma regra é mudar a política central, não reescrever dez sistemas. E o mesmo juízo vale para toda porta, porque toda porta consulta o mesmo juiz, em vez de cada uma inventar seu próprio critério.

Figura 2O caminho de uma requisição no modelo ABAC
  1. 01Requisição no recursoa identidade pede uma ação; o PEP intercepta
  2. 02PEP pergunta ao PDPenvia sujeito, recurso, ação e o contexto que tem
  3. 03IAPDP busca atributoso PIP completa o que falta na fonte de identidade
  4. 04PDP avalia a políticaa regra sobre atributos resolve em permite ou nega
  5. 05PEP aplica a decisãolibera ou bloqueia, e registra o motivo na trilha

A política vive só no PDP. Trocar a regra é mudar um lugar, e toda porta passa a julgar diferente sem tocar em nenhuma aplicação.

Separar decisão (PDP) de aplicação (PEP) centraliza a política e faz cada porta consultar o mesmo juiz.

Política declarativa e testável

A política ABAC é declarativa: descreve a condição, não o passo a passo. Isso a torna legível e, principalmente, testável. Uma regra sobre atributos pode ser exercida com casos, cada caso um conjunto de atributos com o veredito esperado, e o conjunto de testes vira a especificação viva do que a política realmente decide.

Sem esses testes, política declarativa é armadilha: uma condição sutil abre acesso que ninguém pretendia, e o erro só aparece em produção. Com eles, cada mudança de regra passa por um caso que confirma o permite e um caso que confirma o nega. A política entra no mesmo rito de código de qualquer mudança sensível: revisão, teste e histórico.

Figura 3Política ABAC declarativa com casos de teste
politica: aprovar_pagamento_da_propria_regiao
permite: pagamento:aprovar
quando:
  - sujeito.papel == "gestor"
  - sujeito.regiao == recurso.regiao
  - recurso.valor <= sujeito.alcada
  - ambiente.mfa == true

casos:
  - nome: gestor aprova na propria regiao dentro da alcada
    sujeito: {papel: gestor, regiao: sul, alcada: 50000}
    recurso: {regiao: sul, valor: 12000}
    ambiente: {mfa: true}
    espera: permite
  - nome: gestor tenta aprovar de outra regiao
    sujeito: {papel: gestor, regiao: sul, alcada: 50000}
    recurso: {regiao: norte, valor: 12000}
    ambiente: {mfa: true}
    espera: nega
A política diz a condição; os casos provam o que ela decide. Regra declarativa sem caso de teste é intenção, não controle.

ABAC e RBAC andam juntos

A escolha não é ABAC contra RBAC, é a combinação. RBAC dá a base grossa e legível: o papel define o grande conjunto do que a função pode. ABAC afina com o contexto: dentro do que o papel permite, os atributos restringem ao caso concreto. O papel diz que gestor aprova pagamento; o atributo diz que este gestor aprova este pagamento, da sua região, dentro da sua alçada, com MFA.

Começar tudo em ABAC puro costuma dar uma teia de políticas que ninguém audita. Começar em RBAC e adicionar ABAC onde a decisão depende de contexto costuma envelhecer melhor: poucos papéis para a legibilidade, atributos para as condições que o papel não expressa. O juiz à porta não substitui a ordem do acampamento; ele julga o caso dentro dela.

Figura 4RBAC como base, ABAC como afinação, da decisão grossa à fina
  1. Papel (RBAC) basedefine o grande conjunto do que a função pode fazer
  2. Atributo do sujeito quemregião, alçada e projeto restringem dentro do papel
  3. Atributo do recurso o quêdono, classificação e região do alvo entram na decisão
  4. Contexto (ABAC) quandohorário, dispositivo e MFA fecham o caso concreto
O papel dá a legibilidade; os atributos dão a precisão. A decisão final é a interseção: o que o papel permite e o que o contexto confirma.

Para levar

ABAC põe um juiz em cada porta: a decisão de acesso olha os atributos do sujeito, do recurso, da ação e do ambiente, e julga o caso concreto, não só a função. Ele se sustenta com o PDP separado da aplicação, política declarativa com testes e a base legível do RBAC por baixo. A IA traduz regra de negócio em política, gera os casos de fronteira e explica a negação; pôr o juiz certo em cada porta continua sendo decisão de quem responde pelo acesso.

Tags

  • #julianovincedecampos
  • #ABAC
  • #Autorização
  • #IAM
  • #ZeroTrust
  • #Política
  • #PDP

Onde eu estudei, me certifiquei e trabalhei

  • University of Cambridge
  • PUC Minas
  • PUC-RS
  • PUC Goiás
  • Pontificia Universidad Católica del Perú
  • Amazon Web Services
  • Google
  • IBM
  • Oracle
  • COBIT 5 Foundation
  • ITIL v3 Foundation
  • Exemplar Global
  • Red Team Leaders
  • Infosec
  • Salesforce
  • Flowgrammers
  • ISO/IEC 27001
  • NIST Cybersecurity Framework
  • Compass UOL
  • Luby
  • Creditas
  • PicPay
  • PagoNxt, Santander
  • Mercado Pago
  • Itaú Unibanco
  • Foursys
  • Soluti Certificação Digital