terça-feira, 23 de janeiro de 2018

Hardcore Devel #72 - Autorização

Fala meu povo e minha pova de computação e TI. Vocês realmente podem acessar esse site?


Claro que pode, qualquer um pode ler o conteúdo dessa coisa. hu3
Mas aí vem a coisa, existem dois pilares no mundo da segurança da informação: Autenticação e Autorização. Hoje eu vou falar de autorização como vocês já puderam ler no título.

Autorização é a parte fácil da coisa. Você olha os atributos do cara, vê se o cara pode fazer determinada coisa, se ele puder você deixa, senão você segura e fim de papo, não tem muito o que fazer com a autorização. É booleano! Sabe o que isso significa? Que a autorização depende da autenticação!

Ora, mas se a autorização depende completamente da autorização, por que diabos falar sobre autorização? Porque nem tudo pode ser autorizado. Na verdade toda autorização dada tem um risco para a aplicação, então geralmente a própria aplicação fornece alguma ferramenta para a requisição de acesso, ou conta com a informação de uma outra fonte de autorização.

E aí se você vê que nem todo mundo tem que ser autorizado a tudo, especialmente quando os sistemas da informação tentam modelar o mundo real. Comprar uma cois parece ser particularmente fácil. Você concede o dinheiro e o outro lado te concede o produto/serviço, mas isso não é a mesma coisa para as empresas grandes. Quando você é grande e você precis fazer uma compra, você precisa de dois caras. Um que define o que vai ser comprado e outro que aprova a compra.

O que acontece se o mesmo cara faz as duas coisas? Da forma bonita a gente chama de conflito de separação de deveres. Da forma feia nós chamamos de possível mutreta. Esse exemplo clássico demostra particularmente bem o risco de você autorizar qualquer coisa ás cegas, porque esse cara vai poder comprar qualquer coisa que quiser com o dinheiro da empresa.

E não paramos por aí. Vai existir tipos de acesso que você não vai querer ninguém tendo. Como um acesso de administrador geral. Alguém com esse acesso pode quizumbar o seu sistema todo ou fazer ainda pior: Abrir uma pequena brecha e fechá-la quando ninguém a estiver usando. Então você começa a ter que monitorar a ação dos usuários no sistema. Monitoramento é uma forma básica de exercer autorização.

E quando você quer abrir exceção!? Aí que a coisa aperta mesmo porque os sistemas não são desenhados para permitir esse coisa. Computação é coisa binária e violar o sistema é tratado como brecha de segurança, tornando esse tipo de coisa muito difícil. Tecnicamente falando se torna impossível mas na hora que o bicho ta pegando sempre dá-se um jeito. Espero que agora que você está um pouco ligado em autorização fique mais fácil pensar nesse tipo de coisa.


Imagens:

Nenhum comentário:

Postar um comentário