O uso do chroot para um serviço exposto publicamente oferece algum benefício real de segurança?

4

Gostaria de uma resposta definitiva sobre o motivo pelo qual essa prática deve ser executada com serviços expostos a redes potencialmente hostis (ou seja, a Internet). Pelo que entendi, há um método para sair de uma prisão chroot, então, se não há um valor real para esta medida de segurança, então por que algumas instalações ainda a buscam?

    
por Avery Payne 04.06.2009 / 08:46

7 respostas

8

Você nunca deve considerar um chroot como um recurso de segurança completo. Enquanto isso torna o ataque mais difícil, se você conseguir obter algum controle dentro do chroot, é bastante fácil sair dele. Existe um método que envolve chrooting para um diretório pai (..) Mais informações aqui . A razão pela qual o chroot oferece algum benefício à segurança é que muitos dos aplicativos que um hacker espera ter por perto simplesmente não estarão lá. Se fosse dada a escolha entre algo sendo chrooted ou não chrooted, eu escolheria a opção chrooted.

Uma abordagem melhor seria algo como a cadeia do BSD, as zonas do Solaris ou alguma tecnologia de virtualização como o KVM ou o Xen. Essas abordagens adotam a mesma ideia de compartimentalização que o chroot faz e as torna mais strongs. Você também pode ver algo como o SELinux, mas isso é um pouco mais complicado e, portanto, propenso a erros.

    
por 04.06.2009 / 08:57
3

As I understand it, there is a method for breaking out of a chroot jail (...) then why are some installations still pursuing it?

Você pode dizer o mesmo sobre senhas. O ponto é que, muitas vezes, garantir alguns recursos significa colocar tantos obstáculos no caminho do intruso para forçá-lo a desistir antes de atingir o alvo. Você não pode confiar em um único método para proteger determinado recurso. Além disso, o chrooting oferece mais controle sobre um aplicativo que você está executando. Você pode restringir os recursos do sistema de arquivos aos quais este aplicativo tem acesso.

    
por 04.06.2009 / 09:15
3

Sim, sim.

  • Se o daemon ou o que estiver fornecendo o serviço não for executado como raiz, até mesmo um furo nesse daemon será isolado do restante do sistema.
  • Se o seu SO puder restringir as operações que podem ser feitas enquanto o chroot () é editado, é ainda melhor. grsec-patches para o Linux, por exemplo, pode remover a capacidade do usuário root dentro de um chroot de sair, ou criar / dev-nodes dentro do chroot

Se, no entanto, você obtiver um bug de kernel explorável (ou apenas um buraco de raiz se não houver grsec ou BSD jails) dentro do chroot, então todo o sistema pertence a ele. Não é assim se você executar um virtualizador real (como as cadeias VMWare, mas NÃO BSD. Eles não ajudam, pois usam o mesmo kernel para todos os "sistemas").

Então, sim, ele adiciona uma camada de segurança, se usada corretamente.

    
por 04.06.2009 / 12:37
1

So if there is no real value to this security measure, then why are some installations still pursuing it?

Pode não haver muita segurança, mas em alguns casos você torna o sistema mais fácil para o usuário. Se eles não estiverem distraídos com todas as outras coisas que eles não precisam ver, eles podem achar o sistema mais fácil de usar.

    
por 04.06.2009 / 08:52
0

Acho que chroots é complicado e nunca consegui instalar um. Poder-se-ia argumentar que, se tivesse sido capaz de fazê-lo, encontraria grande interesse, mas ainda não o fiz.

Acho que isolar seus serviços em máquinas virtuais (no Xen, é claro, mas o VMWare também funcionará se você insistir em :-P) é uma ideia muito melhor considerando o poder de computação disponível atualmente. As máquinas virtuais também têm a enorme vantagem de serem realmente fáceis de fazer backup / migrar, o que os chroots não possuem. Você também tem uma interface abrangente para gerenciar VMs, que você definitivamente não tem para chroots.

    
por 04.06.2009 / 08:57
0

Não execute chroots quando puder executar jails / zones / openvz para praticamente o mesmo esforço e sobrecarga, e tenha um ambiente muito mais padronizado e com aparência padrão.

Chroots costumava ser uma boa ideia para serviços de usuários não-root, quando nada melhor estava disponível, mas está ultrapassado agora.

    
por 04.06.2009 / 11:20
0

O Chroot adiciona muitos benefícios de segurança e você só pode quebrá-lo se for root. Então você está elevando o nível do que um atacante precisa fazer.

Além disso, o chroot oferece isolamento de aplicativos, enquanto a virtualização fornece separação do sistema operacional. Então você pode executar, por exemplo, o apache dentro do chroot em uma máquina virtual.

    
por 04.06.2009 / 14:11