Níveis de Privilégio
100%

Kernel · Lição 2

Níveis de Privilégio

Aprenda como o privilégio do processador separa a execução de usuário da execução confiável do kernel.

Os processadores oferecem modos de privilégio que restringem instruções sensíveis e acesso à memória. O Linux usa esse limite do hardware para que falhas comuns em aplicativos não sobrescrevam diretamente a memória do kernel nem reconfigurem dispositivos. O kernel controla as transições para a execução privilegiada.

Modo usuário

Um processo comum é executado em modo usuário dentro de seu espaço de endereços virtual. Ele pode realizar cálculos e acessar os mapeamentos concedidos pelo kernel, que podem ser grandes; modo usuário não significa “apenas pouca memória”. Ele não acessa diretamente qualquer endereço físico, mapeamentos privados de outro processo nem controles privilegiados do processador.

Tabelas de páginas e bits de proteção impõem o acesso. Se uma thread referencia um endereço inválido ou proibido, o processador entra no kernel, que pode resolver um page fault válido ou entregar um sinal como SIGSEGV.

Que memória um processo em modo usuário normalmente acessa diretamente?

Modo kernel

O modo kernel permite instruções privilegiadas e acesso aos mapeamentos protegidos necessários para memória, escalonamento, interrupções e drivers. Em x86, a divisão do Linux costuma ser descrita como ring 0 para o kernel e ring 3 para processos de usuário. O Linux normalmente não usa rings 1 e 2 para isolamento comum.

Outras arquiteturas têm nomes e mecanismos diferentes, como exception levels. A virtualização acrescenta relações entre hypervisor e guests que não cabem num desenho simples de dois anéis. A ideia essencial é o privilégio controlado, não os números do x86.

Qual anel de proteção x86 normalmente executa o kernel Linux?

Transições controladas

Vários eventos transferem o controle a um ponto de entrada do kernel:

  • uma instrução de chamada de sistema solicita um serviço
  • uma exceção informa um page fault ou instrução inválida
  • uma interrupção de hardware informa um evento externo

O processador salva o contexto, muda o privilégio pelo mecanismo configurado e começa a executar código confiável do kernel. O kernel valida o pedido, realiza ou rejeita o trabalho e retorna ao modo usuário quando apropriado.

O aplicativo não se transforma temporariamente em código do kernel. A CPU executa um handler do kernel em nome da thread, com pilhas e mapeamentos controlados pelo kernel.

O que acontece durante uma transição de chamada de sistema?

Privilégio da CPU não é identidade do usuário

Um aplicativo executado como usuário root continua normalmente em modo usuário. O UID 0 influencia verificações de autorização, mas não permite que suas instruções acessem diretamente a memória do kernel. Inversamente, o código do kernel executa em modo privilegiado qualquer que seja o usuário que causou a chamada.

Capabilities, namespaces, seccomp, módulos de segurança e cgroups restringem ainda mais o que um processo solicita. Essa política em camadas é separada do limite de hardware.

Qual afirmação compara corretamente a identidade root e o modo kernel?

Por que o limite importa

O limite reduz o dano de falhas comuns e cria um ponto para verificações de acesso, mas vulnerabilidades no kernel e módulos maliciosos podem derrotá-lo. Atualize kernel e firmware por canais confiáveis, reduza o código privilegiado e não carregue módulos desconhecidos.

Execução especulativa e canais laterais também mostram que o isolamento exige mitigação contínua; “outro anel” é uma base, não uma prova completa de segurança.

A separação entre modo usuário e kernel garante segurança completa?

Lição concluída

Você concluiu Níveis de Privilégio

Agora você consegue distinguir privilégio de execução do hardware de autoridade da conta Linux.

  • Relacionar modo usuário a espaços virtuais protegidos.

  • Relacionar modo kernel a instruções e mapeamentos privilegiados.

  • Tratar chamadas, exceções e interrupções como entradas controladas.

  • Separar autorização do UID 0 de execução em ring 0.

  • Ver modos de privilégio como uma camada da segurança.

Salve seu progresso

Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.

Criar uma conta gratuita
Próxima Lição
Voltar para Kernel