Privilégio (computação) - Privilege (computing)

Na computação, o privilégio é definido como a delegação de autoridade para executar funções relevantes à segurança em um sistema de computador. Um privilégio permite que um usuário execute uma ação com consequências de segurança. Exemplos de vários privilégios incluem a capacidade de criar um novo usuário, instalar software ou alterar funções do kernel.

Os usuários aos quais foram delegados níveis extras de controle são chamados de privilegiados. Os usuários que carecem da maioria dos privilégios são definidos como usuários sem privilégios, regulares ou normais.

Teoria

Os privilégios podem ser automáticos, concedidos ou solicitados.

Um privilégio automático existe quando não há requisito de permissão para executar uma ação. Por exemplo, em sistemas em que as pessoas precisam se conectar a um sistema para usá-lo, o logout não exigirá um privilégio. Os sistemas que não implementam proteção de arquivo - como o MS-DOS - basicamente fornecem privilégios ilimitados para executar qualquer ação em um arquivo.

Um privilégio concedido existe como resultado da apresentação de alguma credencial à autoridade que concede o privilégio. Isso geralmente é feito fazendo logon em um sistema com um nome de usuário e senha e, se o nome de usuário e a senha fornecidos estiverem corretos, o usuário recebe privilégios adicionais.

Um privilégio é solicitado por um programa executado, emitindo uma solicitação de privilégios avançados, ou executando algum programa para solicitar os privilégios adicionais. Um exemplo de usuário que solicita privilégios adicionais é fornecido pelo comando sudo para executar um comando como usuário root ou pelo sistema de autenticação Kerberos .

As arquiteturas de processador modernas têm vários modos de CPU que permitem que o sistema operacional seja executado em diferentes níveis de privilégio . Alguns processadores têm dois níveis (como usuário e supervisor ); Os processadores i386 + têm quatro níveis (# 0 com o máximo, # 3 com o mínimo de privilégios). As tarefas são marcadas com um nível de privilégio. Recursos (segmentos, páginas, portas, etc.) e as instruções privilegiadas são marcadas com um nível de privilégio exigido. Quando uma tarefa tenta usar um recurso ou executar uma instrução privilegiada, o processador determina se ele tem a permissão (caso contrário, uma interrupção de "falha de proteção" é gerada). Isso evita que as tarefas do usuário danifiquem o sistema operacional ou umas às outras.

Na programação de computadores, exceções relacionadas a violações de instrução privilegiada podem ser causadas quando uma matriz foi acessada fora dos limites ou um ponteiro inválido foi desreferenciado quando o local de memória inválido referenciado é um local privilegiado, como um dispositivo de controle de entrada / saída. Isso é mais provável de ocorrer em linguagens de programação como C, que usam aritmética de ponteiro ou não verificam os limites da matriz automaticamente.

Unix

Em sistemas do tipo Unix, o superusuário (comumente conhecido como 'root') possui todos os privilégios. Os usuários comuns recebem apenas permissões suficientes para realizar suas tarefas mais comuns. Os sistemas UNIX possuem recursos de segurança integrados. A maioria dos usuários não pode configurar uma nova conta de usuário nem fazer outros procedimentos administrativos. O usuário “root” é um usuário especial, algo chamado superusuário, que pode fazer qualquer coisa no sistema. Este alto grau de poder é necessário para administrar totalmente um sistema UNIX, mas também permite que seu usuário cometa um erro e cause problemas no sistema.

Usuários sem privilégios geralmente não podem:

  • Ajuste as opções do kernel .
  • Modifique arquivos de sistema ou arquivos de outros usuários.
  • Altere a propriedade de todos os arquivos.
  • Altere o nível de execução (em sistemas com inicialização no estilo System V ).
  • Altere o modo de arquivo de qualquer arquivo.
  • Ajuste ulimits ou cotas de disco .
  • Inicie, pare e remova daemons .
  • Processos de sinalização de outros usuários.
  • Crie nós de dispositivo .
  • Crie ou remova usuários ou grupos.
  • Monte ou desmonte volumes, embora esteja se tornando comum permitir que usuários regulares montem e desmontem mídias removíveis, como discos compactos . Normalmente, isso é feito por meio do FUSE .
  • Execute o conteúdo de qualquer sbin/diretório, embora esteja se tornando comum simplesmente restringir o comportamento de tais programas quando executados por usuários regulares.
  • Vincule portas abaixo de 1024.

Windows NT

Em sistemas baseados no Windows NT , os privilégios são delegados em vários graus. Essas delegações podem ser definidas usando o Gerenciador de Política de Segurança Local (SECPOL.MSC). A seguir está uma lista abreviada das atribuições padrão:

  • 'NT AUTHORITY \ System' é o equivalente mais próximo ao Superusuário em sistemas do tipo Unix. Ele tem muitos dos privilégios de um superusuário clássico do Unix, como ser um trustee em cada arquivo criado
  • 'Administrador' é um dos equivalentes mais próximos do Superusuário em sistemas do tipo Unix. No entanto, esse usuário não pode substituir tantas proteções do sistema operacional quanto o Superusuário pode.
  • Os membros do grupo 'Administradores' têm privilégios quase iguais aos de 'Administrador'.
  • Os membros do grupo 'Usuários avançados' podem instalar programas e fazer backup do sistema.
  • Os membros do grupo 'Usuários' são equivalentes a usuários sem privilégios em sistemas do tipo Unix.

O Windows define vários privilégios administrativos que podem ser atribuídos individualmente a usuários e / ou grupos. Uma conta (usuário) detém apenas os privilégios concedidos a ela, direta ou indiretamente por meio de associações de grupo. Após a instalação, vários grupos e contas são criados e os privilégios são concedidos a eles. No entanto, essas concessões podem ser alteradas posteriormente ou por meio de uma política de grupo . Ao contrário do Linux, nenhum privilégio é concedido implícita ou permanentemente a uma conta específica.

Alguns privilégios administrativos (por exemplo, assumir a propriedade ou restaurar arquivos arbitrários) são tão poderosos que, se usados ​​com intenções maliciosas, podem permitir que todo o sistema seja comprometido. Com o controle de conta de usuário (ativado por padrão desde o Windows Vista), o Windows retirará o token do usuário desses privilégios no login. Portanto, se um usuário fizer login com uma conta com amplos privilégios de sistema, ele / ela ainda não estará executando com esses privilégios de sistema. Sempre que o usuário quiser realizar ações administrativas que requeiram qualquer um dos privilégios do sistema, ele terá que fazer isso a partir de um processo elevado . Ao iniciar um processo elevado , o usuário é informado de que seus privilégios administrativos estão sendo reivindicados por meio de um prompt que exige seu consentimento. Não deter privilégios até que seja realmente necessário está de acordo com o Princípio do menor privilégio .

Os processos elevados serão executados com todos os privilégios do usuário , não com todos os privilégios do sistema . Mesmo assim, os privilégios do usuário ainda podem ser mais do que o necessário para aquele processo específico, portanto, privilégio não totalmente mínimo .

O Windows ME baseado em DOS, Windows 98, Windows 95 e versões anteriores do Windows não-NT operavam apenas no sistema de arquivos FAT e não suportavam permissões do sistema de arquivos. Portanto, os privilégios são efetivamente derrotados em sistemas baseados no Windows NT que não usar o sistema de arquivos NTFS .

Nomenclatura

Os nomes usados ​​no código-fonte do Windows terminam em "Privilege" ou "LogonRight". Isso levou a alguma confusão sobre como o conjunto completo de todos esses "Direitos" e "Privilégios" deveria ser chamado.

A Microsoft atualmente usa o termo "Direitos do usuário". No passado, alguns outros termos também foram usados ​​pela Microsoft, como "Direitos de privilégio", "direitos de usuário de logon" e "Direitos do NT".

Veja também

Referências