Internet Firewalls
Least Privilege
"Basicamente, o princípio do mínimo privilégio significa que qualquer objeto
(usuário, administrador, programa, sistema, etc) deveria ter somente os privilégios que o
objeto precisa para realizar as suas tarefas - e nada mais". [CHA 95]
Mínimo privilégio é um princípio importante para limitar a exposição aos
ataques e para limitar os danos causados por ataques. Deve-se explorar meios para reduzir os
privilégios requeridos para as operações. Na Internet há uma infinidade de exemplos, eis
alguns:
- Não se deve dar a um usuário a senha do root se tudo que ele precisa fazer é
resetar o sistema de impressão. Ao invés disso, escreve-se um programa que
execute em modo privilegiado (no ambiente Unix, utilizar o setuid) e que realiza a
tal tarefa podendo ser executado pelo usuário;
- Não executar um programa com privilégios de root se a única coisa que ele
precisa com tais privilégios é escrever em um arquivo protegido. Ao invés disso,
permita que o arquivo seja escrito por algum grupo e sete o grupo (setuid no
ambiente Unix) do processo para este grupo;
- Não permita que alguma (s) máquina (s) da rede interna confie (m) no firewall de
forma que este não possa fazer “backups” nesta (s) máquina (s). Ao invés disso
instale um "drive" de fita magnética na máquina do firewall de modo que ele
possa fazer o seus próprios "backups".
Programas grandes e complexos são também um grande problema.
Programas deste tipo e que, além disso, executam em modo privilegiado como por exemplo o
sendmail (no Unix) que já foi alvo de vários ataques bem sucedidos, e que continua a ser
alvo em potencial por sua "insistente" complexidade, são um problema ainda maior a nível de
segurança. Uma boa estratégia é diminuir o máximo possível o tamanho dos programas que
sejam críticos à segurança do sistema, ou então isolar os pedaços dos programas complexos
que realmente requerem acesso privilegiado, possibilitando assim concentrar a análise e
depuração em partes menores do código. Seguindo este exemplo, a versão proxy do
sendmail da empresa "Trusted Information Systems (TIS)" contém aproximadamente 700
linhas de código contra mais de 20000 linhas do código padrão do sendmail[BRY 95b].
Há alguns problemas com a estratégia do privilégio mínimo, eis alguns:
- Pode ser complexo implementar caso os programas e ou protocolos não
permitam estabelecer privilégios;
- Pode-se acabar implementando algo que tenha menos privilégios do que o mínimo
estabelecido, acarretando em uma série de aborrecimentos por parte dos
usuários.