farribeiro / wscef-docker

Warsaw in docker container
MIT License
64 stars 23 forks source link

Execução de processo como root no container #84

Closed awerlang closed 4 years ago

awerlang commented 4 years ago

A execução de um processo warsaw se passa como root no container. Sabendo que o kernel do host é compartilhado com o hospedeiro (ao menos no Linux), e não tendo ciência de qualquer relato positivo sobre uso de root em container, principalmente um processo untrusted, eu avalio que isto coloca em xeque a viabilidade da solução. São duas possibilidades (a confirmar): o processo escapa do container e será root no host, ou pode manipular o host pelo próprio container via kernel compartilhado. Eu só terei confiança na solução se qualquer warsaw executasse como usuário não-privilegiado, ou com privilégios mínimos. @farribeiro é possível proceder com o warsaw executando como não-root ou ao menos tais possibilidades não se aplicam à solução tal como está?

https://github.com/farribeiro/wscef-docker/blob/ace0251336cfd9ee5ae8125a0e54adfc3893ba88/startup.sh#L25

farribeiro commented 4 years ago

Eu tinha adicionado este trecho devido o warsaw estava falhando e por o minha solução não ter um init adequado para a época, veja que o warsaw instala um serviço.

É esse motivo deste comando, mas vou reavaliar, se conseguir usar com eficácia ao menos o systemd

farribeiro commented 4 years ago

Quero levar em consideração o que vc escreveu, principalmente a respeito do docker de forma que ele é utilizado pela maioria das imagens/container, para vc ter acesso necessita da option durante o comando run, um adendo que a maioria não é privilegiadas e quase a totalidade utilizam o user root, o processo é isolado mesmo sendo considerada má pratica acredito que não há prejuízo ao hospedeiro. Se for comparar com outras soluções pelo github afora talvez não notará diferença neste aspecto, "segurança", ou que atenda esse nicho com eficiência.

Pensando nisso pode matar a facilidade de uso, já que a minha solução tem um ideal de facilitar a vida do usuário em usar o warsaw, Laércio sugeriu o xauth logo de começo como segurança. Lendo os manpages do docker-compose ele ativa um tty mas pode desabilitá-lo.

Enfim, a questão não é a inviabilidade... A conternização/Virtual Machines não é o problema, pode ser a solução, tente entender o que o warsaw faz diretamente na maquina se fosse instalada localmente

Recomendo fortemente que procure a melhor solução que encontrar, se não atender a sua necessidade, sugiro um fork. Poderá ter certeza que farei algum tipo de adaptação.

awerlang commented 4 years ago

Opa!

Pretendo retomar os estudos esta semana. Explorar podman, podman rootless, kata containers. A solução atual em container já deve dar conta de sanar os problemas mais práticos, meu interesse é fechar mais algumas portas, mesmo que seja para fins educacionais apenas. Eu confesso que nem sei o que o warsaw faz /exatamente/ na máquina. Ainda que soubesse, acho interessante não depender deste conhecimento. Estou de acordo que a facilidade de uso é um objetivo adequado para este projeto. Retorno quando tiver mais resultados.