Queda de aplicativo na cadeia chroot

0

Eu tenho uma instalação do Debian 9 com uma jaula 6 do chroot do Debian. Eu estou usando uma aplicação proprietária que até recentemente funcionou bem na cadeia. Mas quando eu executo suas versões mais novas, ele cai na libc. Eu me cansei de criar uma nova cadeia Debian (Debian 8), mas ela ainda falha. Se eu rodar no Debian 8 nativo, isso funciona. Se eu importar meu Debian 6/8 jail no Docker, ele ainda funciona.

Alguém tem alguma idéia de por que o aplicativo falharia no chroot, mas não quando executado ingenuamente ou quando o diretório chroot é importado e executado no Docker?

    
por RegedUser00x 09.04.2018 / 14:10

1 resposta

0

Enquanto o pessoal do kernel tenta evitar fazer alterações incompatíveis nas ABIs do espaço do usuário, às vezes elas precisam fazê-lo de qualquer maneira (geralmente por razões de segurança), e então tais problemas podem ocorrer. Para evitar quebras repentinas dos binários do espaço do usuário, inicialmente a ABI antiga ainda estará ativada, mas depois de algum tempo ela será desabilitada por padrão. Neste ponto, tais problemas podem ocorrer.

Para que as coisas não falhem, você tem duas opções:

  • Instale o software antigo em uma VM (não um chroot) usando o kernel antigo. Isso deve sempre funcionar
  • Se o seu kernel atual ainda tiver o recurso necessário, mas não estiver ativado por padrão, talvez seja possível ativá-lo por um tempo. Observe que isso pode reduzir a segurança do seu ambiente, portanto, não o faça em ambientes críticos para a segurança.

Para o seu problema específico, a causa mais provável é a emulação vsyscall, que é desativada por padrão nas distribuições mais recentes, mas que pode ser ativada especificando o parâmetro de tempo de inicialização do kernel vsyscall=emulate .

    
por 09.04.2018 / 15:14