Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Melhorando o nível de segurança com chflags

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Artigo Melhorando o nível de segurança com chflags

    FreeBSD é um sistema bastante seguro na sua concepção. Foi escrito e auditado com base em parâmetros de segurança mundiais. O administrador de rede pode implementar perspectivas de segurança desde de sua instalação. Para teste foi utilizado o FreeBSD 7.2-RELEASE.
    Por: cristofe coelho lopes da rocha

    CHFLAGS(1)
    FreeBSD é um sistema bastante seguro na sua concepção. Foi escrito e auditado com base em parâmetros de segurança mundiais. O administrador de rede pode implementar perspectivas de segurança desde de sua instalação. Contudo, algumas aplicações portadas não seguem os mesmos padrões ficando a responsabilidade para o administrador.

    A segurança em arquivos do sistema é comumente implementado ajustando o modo ou permissões as quais são aplicadas em nível de usuário, grupo e other (outros). Como a maioria dos administradores de sistemas conhecem.

    Desta forma por padrão o usuário root e/ou dono do arquivo poderão alterar estas permissões e manipular os arquivos, o que torna vulnerável o sistema mediante a uma possível intrusão no sistema com ganho de privilégios.

    Baseadas nestas vulnerabilidades foram escritas algumas UserLands para facilitar a vida do administrador.

    Utilizando CHFLAGS(1)
    CHFLAGS - Change file Flags.

    É um utilitário nativo do FreeBSD desde a versão 4.4. A finalidade é marcar o arquivo para diversas finalidades. Abordaremos aqui as marcações com foco em segurança de sistemas.

    Sintaxe:

    chflags <flags> <arquivo_alvo>

    Flags utilizadas:

    1) nodump - Marca o arquivo como nodump. Não permite backup com o utilitário dump. Todavia o dump 0 executa backup de arquivos com flags nodump. Esta marca só tem efeito para dump incremental - dump(8).

    As marcas abaixo são ajustadas somente pelo usuário root, não podendo ser reajustada caso o nível de execução do sistema seja =1 ou superior.

    2) schg, schange - System-level imutable. O arquivo se torna imutável e seu conteúdo não pode ser alterado, incrementado e não ele pode ser apagado.

    3) sappnd, sappend - System-level append only. O arquivo com esta marca pode ter conteúdo adicionado, mas não pode ser removido e nem editado. Caso seja feito, a permissão será negada.

    4) sunlink - Undeletable. Arquivo não pode ser apagado pelo proprietário.

    As marcas abaixo são ajustadas pelo usuário proprietário ou root, podendo ser ajustada em qualquer nível de execução do sistema.

    5) uchg, uchange - System-level imutable. Previne erros, mas não é muito interessante para segurança, pois é ajustada pelo usuário proprietário ou root podendo ser modificada em qualquer nível do sistema. Ou seja, em uma possível intrusão com ganho de privilégios o invasor poderá alterar a marcação.

    6) uappnd, uappend - System-level append only. Arquivos com esta marca podem ter conteúdo adicionado, mas não pode ser removido e nem editado. Caso seja feito, a permissão será negada.

    6) uunlink - Undeletable. Arquivo não pode ser apagado pelo proprietário. Contudo pode ser ajustado pelo usuário proprietário ou root em qualquer nível de execução do sistema.

    Para remover as flags ajustadas adicionar "no" + flag.

    Ex.: Flag -> uchange, comando: chflags nouchange <arquivo>

    Para inserir marcas em diretórios utilizar parâmetro <-R> (recursivo):

    Ex.: Flag -> uchange, comando: chflags -R uchange /diretório

    Para listar arquivos com suas respectivas marcas:

    # ls -lo


    Níveis de segurança
    São configurações no kernel que alteram o comportamento do sistema. São cinco: -1, 0, 1, 2 e 3. O nível default do sistema pós-instalação é <-1> e caso o nível de execução seja baixo o usuário root poderá alterar as marcações e remover os arquivos ou alterar seu conteúdo.

    O nível de segurança pode ser habilitado no arquivo rc.conf do /etc, inserindo a linha kern_securelevel_enable="YES", desta forma podemos ajustar o nível de segurança através da linha kern_securelevel=X dentro do rc.conf no /etc.

    Uma vez alterado o nível de execução, o sistema só aceitará alteração em tempo de execução caso o nível seja superior e não inferior, o que aumenta mais ainda o grau crítico da segurança.

    Bom, temos aí um ótimo nível de segurança a partir dos arquivos mais importantes, cabe ao administrador reconhecer os arquivos do seu servidor. Todavia, caso o rc.conf citado acima não possua sua devida marcação nada impede que, em uma possível invasão no sistema, o kernel_securelevel seja alterado. Portanto:

    # chflags schange /etc/rc.conf
    # chflags schange /etc/sysctl.conf


    Desta forma a única possibilidade para acessar em modo single-user a qual não habilita o securitylevel é estando em frente a máquina. Portanto:

    Mantenha: console modo "insecure" no arquivo /etc/ttys.
    Código:
    # If console is marked "insecure", then init will ask for the root password
    console   none            unknown   off insecure
    Agora, ao acessar via single-user mode, será solicitado a senha do usuário root. Entretanto devemos ter cuidado, pois caso a senha do usuário root seja perdida, a única possibilidade de alterar as marcações ou a senha será montando o disco como slave em outro sistema. E pode ainda ser impedida, mesmo que montado por outro sistema. Mas deixa para lá, é estressar demais...

    É claro que ao ajustar as marcações nos arquivos o administrador estará aumentando a dificuldade para administrar seu servidor, mas isso se torna necessário. Aumentar o securitylevel para 3 poderá tornar muito trabalhoso a tarefa de administração do servidor. Administradores mais experientes sugerem securelevel=2 e atribuir as políticas de marcação nos arquivos. Caso contrário, terá que reiniciar o sistema para alterar uma simples regra de firewall.

    Fonte: vivaoLinux
    Postado Por: RedDeviL
X
Working...
X