FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Introduo aos Nveis de Segurana do Kernel do FreeBSD
 
08.07  
Inicio arrow Artigos arrow Introduo aos Nveis de Segurana do Kernel do FreeBSD
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Forum
Keyserver
PC-BSD: Artigos
PC-BSD: Notcias
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS / Twitter
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Introduo aos Nveis de Segurana do Kernel do FreeBSD PDF Imprimir E-mail
Por Giancarlo Rubio   
06/07/2006
ImageHá alguns dias na lista de discussão sobre FreeBSD da FUG-BR houve uma conversa sobre algumas questões de segurança, e comparações de modo de trabalho entre FreeBSD e OpenBSD. Uma das considerações era que no OpenBSD, suporte ao kernel tinha que ser estático, e que o sistema por segurança não permitia que módulos de kernel fossem carregados. Contudo, no FreeBSD esse comportamento também pode ser adicionado, apenas não é padrão. Trata-se de uma prerogativa do administrador de sistemas. A diferença é que o OpenBSD trabalha com nível de segurança positivo por padrão. Algo que no FreeBSD e no NetBSD apenas depende da vontade explícita do sysadmin. Giancarlo Rubio aproveitou o encejo para escrever uma introdução sobre Níveis de Segurança do Kernel do FreeBSD, os chamados Kernel Securelevel  e postou esta contribuição, que você acompanha agora.


Surgiu a alguns dias um questionamento entre FreeBSD e OpenBSD, e um deles era relativo a não poder levantar módulos estáticos no kernel, entre outros.

O kernel do FreeBSD pode rodar em até 5 níves de seguran'ca, onde o -1 é o mais baixo até o 3 que é o mais alto.

Por default esse valor é -1, conforme você pode ver com o comando abaixo:

sysctl kern.securelevel
kern.securelevel: -1


Vejamos cada um destes níveis

  1. -1 Modo default, sem segurança de kernel. A única segurança aqui é em relação à permissões tradicionais do de sistemas Unix.
  1. 0 Este nível é apenas usado quando o sistema está sendo inicializado pela primeira vez, e não possui alguma característica especial. Não há motivos especiais para utilizar este nível.
  1. 1 Aqui sim você realmente começa a ter segurança
  1. Não é possivel carregar módulos ao kernel, a não ser que o mesmo seja recompilado. Veja:
# sysctl kern.securelevel=1
kern.securelevel: -1 -> 1
# kldload if_tap
kldload: can't load if_tap: Operation not permitted
  1. Nenhum programa pode escerver diretamente a memória do sistema via /dev/mem ou /dev/kmem

  2. Discos que foram montados não podem ser escritos diretamente, não sendo possível formatar partições ou usar o dd(1) nesses discos.

  3. O Gerenciador de Janelas X não pode ser iniciado (pois ele faz acesso direto aos dispositivos de memória, e isso não é mais permitido nesse nível de segurança)
  1. 2 As mesmas característacas do modo 1 alêm de:
  1. Impossibilidade de escrever direto a sistema de arquivos montados ou desmontados (exceto pelo mount(2),). Impossibilita alterar a estrutura do sistema de arquivos, redefinir ou modificar opções de montagem e também formatar newfs(8) quando o sistema estiver em multi-user.

  2. A hora somente poderá ser alterada de 1 em 1 segundo.
  1. 3 As mesmas caracteristicas do modo 2 além proibir aletrações das definições de regras de firewall, seja o firewall ipfw(8), pfctl(8) ou ipf(8), e também proibe modificações nas disciplinas alternativas de enfileiramento, com altq(4) ou dummynet(4).


Vamos colocar a mão na massa.

Para alterar o nível basta digitar no seu shell

sysctl kern.securelevel=<nivel escolhido>
Exemplo: sysctl kern.securelevel=1


Para fazer o mesmo rodar a partir da inicialização coloque no seu /etc/rc.conf


kern_securelevel_enable="YES"
kern_securelevel=<nivel escolhido>

Giancarlo Rubio,
PUC-PR, FUG-BR


Notas da Redação:
  • A partir do nível de segurança positivo 1 (nível 1)  as flags de arquivos imutáveis e apenas concatenação no nível do sistema (schg e sunlnk) não podem mais ser removidas, nem mesmo pelo root. As flags de arquivos imutáveis e apenas concatenação do nível do usuário (uchg e uunlnk) continuam sob total controle do proprietário do arquivo bem como do root, ao manipular estas flags com chflags(1). Isso complementa a segurança que pode ser imposta ao sistema com o uso de chflags(1), e também complementa o artigo escrito por Daniel Bristot sobre chflags.

  • No FreeBSD a partir do nível de segurança 1  atributos extendidos do sistema de arquivo (apenas UFS2, portanto apenas disponível a partir do FreeBSD 5) de nível de sistema não podem mais ser modificados, nem pelo root. Já, de níveis de usuário continuam à mercê do proprietário do arquivo e do administrador (root). Máscaras máximas de privilégios para ACL (Access Control Lists - Listas de Controles de Acesso)  não podem mais ser modificadas, nem pelo root. À critério do administrador de sistemas, ACLs podem ser armazenadas como atributos extendidos no nível do usuário ou no nível do sistema, exceto pela máscara que só é armazenada no nível de sistema. Se o administrador forçar que definições ACL sejam armazenadas como atributos extendidos do sistema de arquivos no nível do sistema, ACLs podem apenas ser adicionadas, mas não podem ser removidas nem editadas, à partir do nível de segurança 1.

  • MAC, Mandatory Access Control, ou Controlde de Acesso imperativo, assim como ACLs, parte das implementações POSIX.1e no FreeBSD, à partir do nível de segurança 1 não podem mais ser alteradas. Apenas novas definições MAC podem ser adicionadas para cada módulo MAC (cada subsistema MAC tem função diferente), mas as já existentes não podem ser modificadas nem removidas, mesmo pelo super usuário. A partir do nível de segurança 2 qualquer label em arquivos, sistema de arquivos, interfaces de rede, trecho de memória ou porta de rede, bem como label associada à usuários, não podem mais ser editados, removidos, nem adicionados, nem mesmo pelo super usuário (root).

  • As definições de atribuição de labels via login.conf(5) não podem mais ser modificadas. Labels (ou marcações) são identificadores disponíveis em todos os níveis do sistema operacional para fazer distinção entre exceções e aplicações de quaisquer recursos de segurança documentados na especificação POSIX.1e implementada FreeBSD, e MAC usa intensamente labels.

  • A partir do nível de segurança 1 classes geom(4) só podem ser manipuladas através de rotinas credenciadas pelo kernel (usadas pelas chamadas de sistemas das aplicações de userland que controlam cada classe), e nunca através de outros programas ainda que usem as mesmas chamadas de sistema. A partir do nível de segurança 2 providers do geom(4) só poderão ter suas estruturas modificadas pelo kernel, e apenas consumers geom(4) só poderão se associar à providers se ambos já existirem, ou à critério do kernel quando um provider previamente existente informa o kernel que algumas classes de consumers são esperadas.

  • A partir do FreeBSD 7.0, nível de segurança maior que 0 evitará que regras auditorias de chamadas de sistemas, requisições de transofações ou I/O e alocação de recursos, com o suporte à audit(4) do POSIX.1e não poderão ser mais removidas ou modificadas, e à partir do nível de segurança 2 não poderão sequer ter novas regras de auditoria criada.

Para saber mais, comece pelas seguintes referências:

Em um FreeBSD instalado, leia: 

  • man securelevel
  • man 8 init
  • man 7 security
  • man 1 chflags
  • man 3 acl
  • man 4 mac
  • man 9 mac
  • man 9 extattr
  • man 2 extattr

Comentrios
Securelevel
Por Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo em 07/07/2006 14:18:18
Realmente o kern.securelevem algo indispensvel, e muita gente as vezes no sabe de tudo o que ele capaz. 
 
boa contribuio :)
As notas da redacao...
Por Joao Paulo - 0v3rm1nd em 07/07/2006 16:44:49
sao muito interessantes, acabei de testar essas informacoes aqui, as que era mais simples como extattr no nivel system e user, e realmente funciona! os atributos do system nem o root modifica rsrsrsrs... ja as outras, geom, mac, acl, precisa mais tempo pra testar pois os recursos em si sao mais elaborados 
 
mas esse e o FreeBSD... incrivel o tanto de camadas e dispositivos de seguranca que esse sistema oferece... se comparar com qualquer outro sistema.
Mais uma referncia se alguem quiser sabe
Por Patrick Tracanelli em 07/07/2006 19:12:17
Mais uma referencia se alguem quiser saber mais. Nivel introdutorio: 
 
http://www.chuug.org/talks/20051213/FreeBSD_Security_CHUUG.pdf
www.cliki jogos.com
Por raquel em 24/01/2007 12:20:49
os jogos sao divertidicimos vcs vao adorar vao ver so vcs vao amar vao la o site e www.cliki jogos.com 
 
;**
Por presunto em 09/08/2007 20:30:01
jogos de bike
jogos de bike
Por Milena Roza da Silva em 06/09/2008 19:50:49
Eu quero jogar


Comente!*
Nome:
E-mail
Homepage
Ttulo:
Comentrio:

Cdigo:* Code

ltima Atualizao ( 07/07/2006 )
 
< Anterior   Prximo >
FUG-BR - Espalhando BSD
Dicas Rpidas:
 






Wallpapers
Sua Opiniao
Online:
Ns temos 20 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.