sandbox-rs: executando código não confiável em produção
Recentemente no trabalho, estávamos precisando executar código inseguro/desconhecido no nosso ambiente (plataforma de análise de dados). Sei que já existem serviços que fazem isso de forma simples e rápida, mas queríamos algo nosso e que tivéssemos controle, sem ficar presos a linguagens ou ferramentas externas.
Inicialmente criei um wrapper em cima do isolate, mas como esperado, não supria nossas necessidades. Principalmente por ser um binário (nosso serviço foi escrito em rust), não tínhamos uma forma simples de testar e validar o que precisávamos.
Outra alternativa seria usar o Firecracker da aws, mas sinceramente eu não estava disposto a lidar com VMs. Daí surgiu a ideia: por que não criar algo entre o isolate e o Firecracker, que dê flexibilidade e segurança, e tenha uma boa ergonomia?
Bom, o resultado está aqui: https://github.com/ErickJ3/sandbox-rs
Já usamos em produção e serviu muito bem para o propósito. Ainda é um trabalho em desenvolvimento, então podem haver bugs ocasionais.