Portal de Eventos Científicos da UTFPR (EVIN), XXVI Seminário de Iniciação Científica e Tecnológica da UTFPR

Tamanho da fonte: 
Levantamento de desempenho de um kernel a nível de aplicação na execução de códigos não confiáveis em containers
Heloisa Gabriely Faria Preuss, Daniel Cavalcante Jeronymo

Última alteração: 2021-10-18

Resumo


A gamificação tem sido empregada como forma de motivar iniciantes e promover a prática de programação. Para tal, é necessário dispor de ambientes capazes de compilar e executar códigos enviados por usuários, entretanto, a execução de código desconhecido e potencialmente malicioso forma um possível vetor de ataque ao servidor no qual os ambientes estão hospedados. Neste trabalho é explorado o uso de containers Docker para virtualização e isolamento de códigos não confiáveis. Uma camada adicional de segurança é explorada ao utilizar-se o gVisor como uma interface anterior ao kernel, conhecida como kernel a nível de aplicação. Um servidor web Eclipse Jetty foi utilizado para hospedar uma aplicação desenvolvida utilizando a framework Wt Witty, permitindo ao usuário enviar códigos e visualizar o resultado de seu programa. O mecanismo de segurança para execução de código não confiável, conhecido como sandboxing, foi construído em Python e utiliza de comunicação entre processos com o servidor. Foram realizadas 30 execuções de códigos não confiáveis diretamente no kernel do container e também com o gVisor como kernel intermediário. O tempo médio de execução foi próximo de seis segundos e sem diferença estatística de acordo com o teste de Wilcoxon, indicando que o gVisor não impacta significativamente o tempo de execução ao oferecer uma camada adicional de segurança no ambiente de sandboxing.

Palavras-chave


Aprendizado de Programação, Código Não Confiável, Sandboxing, gVisor.

Texto completo: PDF