preâmbulo
eu continuo ouvindo as pessoas reiterar conceitos errôneos de toda a internet .. assim, tentarei dar alguns esclarecimentos
primeiramente; Quantas descobertas acidentais ocorreram, as quais simplesmente ... devido a causa e efeito , acabaram sendo usadas para algo diferente do objetivo a que se destina?
o que era e o que é uma prisão de Chroot
O Chroot foi projetado inicialmente para alterar o diretório raiz do processo ou usuário (ótimo para compilar software de fontes desconhecidas). isso forneceu segurança ao sistema básico, além de um aparelho de teste rápido, incluindo limpeza fácil. anos se passaram desde então, e seu conceito e usos implícitos certamente mudaram, da mesma forma.
O chroot foi usado de maneira eficaz e está diretamente na base de código de vários programas e bibliotecas (por exemplo, openSSHd, apache2 + mod_security2 / mod_chroot, dovecot, sendmail, openVPN, pam_chroot e muito mais ). supor que todos esses aplicativos convencionais implementaram soluções de segurança com defeito simplesmente não é verdade
O chroot é uma solução para a virtualização de sistemas de arquivos: nada menos, nada mais. a suposição de que você pode facilmente sair de um chroot também não é verdadeira ... desde que você siga as diretrizes de execução de processos dentro da prisão de chroot.
algumas etapas para proteger sua prisão chroot
isto é, NÃO execute processos como ROOT. isso pode abrir um vetor de escalação raiz (que também é verdade dentro ou fora do chroot). não execute um processo dentro do chroot, usando o mesmo usuário que outro processo fora do chroot. separe cada processo e usuário em seu próprio Chroot para limitar as superfícies de ataque e fornecer privacidade. monte apenas arquivos, bibliotecas e dispositivos necessários. Por fim, o chroot NÃO substitui a segurança do sistema básico. proteger o sistema em sua totalidade.
Outra observação importante: muitas pessoas pensam que o OpenVZ está quebrado ou que não é igual em comparação com a virtualização completa do sistema. eles fazem essa suposição porque é essencialmente um Chroot, com uma tabela de processo que foi esterilizada. com medidas de segurança em vigor em hardware e dispositivos. a maioria dos quais você pode implementar em um chroot.
nem todo administrador tem o nível de conhecimento necessário para proteger todos os parâmetros necessários do kernel em um servidor dedicado ou sob virtualização completa do sistema. isso significa que implantar o OpenVZ significa que seus clientes terão muito menos superfície de ataque para tentar cobrir e proteger antes de implantar seus aplicativos. um bom host fará um bom trabalho protegendo esses parâmetros e, por sua vez, isso é melhor para não apenas todos no Node ou no data center, mas também para a Internet como um todo ...
como afirmado, o chroot fornece virtualização do sistema de arquivos. você deve garantir que não haja executáveis setuid, aplicativos inseguros, bibliotecas, links simbólicos sem proprietário pendentes, etc. de alguma outra maneira, comprometa algo que reside dentro da prisão - escapando da prisão normalmente através de escalonamento de privilégios ou injetando sua carga no sistema básico.
se isso acontecer, geralmente é o resultado de uma atualização incorreta, exploração de dia zero ou erro humano idiomático .
por que o chroot ainda é usado, em oposição à virtualização completa do sistema
considere este cenário: você está executando um servidor privado virtual, com o nó host executando o OpenVZ. você simplesmente não pode executar nada que funcione no nível do kernel. isso também significa que você não pode usar a virtualização do sistema operacional para separar processos e fornecer segurança adicional. portanto, você DEVE usar o chroot para esse fim.
além disso, o chroot é sustentável em qualquer sistema, independentemente dos recursos disponíveis. Simplificando, ele tem o mínimo de sobrecarga de qualquer tipo de virtualização. isso significa que ainda é importante em muitas caixas low-end.
considere outro cenário: você tem o apache em execução em um ambiente virtualizado. você deseja separar cada usuário. fornecer um sistema de arquivos virtualizado por meio de um chroot add-on para o apache (mod_chroot, mod_security, etc) seria a melhor opção para garantir a máxima privacidade entre os usuários finais. isso também ajuda a impedir a coleta de informações e oferece mais uma camada de segurança.
Simplificando, é importante implementar a segurança em camadas . Chroot potencialmente sendo um deles. nem todo mundo e todo sistema tem o luxo de ter acesso ao Kernel; portanto, o chroot STILL serve a um propósito. há uma variedade de aplicativos em que a virtualização do sistema completo é essencialmente um exagero.
Em resposta à sua pergunta
Não uso particularmente o CentOS, mas sei que o Bind agora remove seus privilégios antes das operações. Eu assumiria, no entanto, que o vínculo é chroot devido ao seu histórico de vetores de ataque e possíveis vulnerabilidades.
também ... faz mais sentido executar o chroot automaticamente neste aplicativo, do que não, porque TODOS não têm acesso à virtualização completa do sistema / sistema operacional. isso, por sua vez e em teoria, ajuda a fornecer segurança à base de usuários do CentOS:
os provedores de sistemas operacionais simplesmente não andam por aí assumindo que todos estão executando o mesmo sistema. Dessa forma, eles podem ajudar a fornecer uma camada adicional de segurança em geral ...
há uma razão pela qual tantos aplicativos usam isso e, obviamente, o sistema operacional o faz por padrão: porque é usado como um recurso de segurança e funciona. com uma preparação cuidadosa, como afirmado anteriormente, é mais um obstáculo que o invasor em potencial deve superar - na maioria das vezes, restringindo os danos causados apenas à prisão chroot.