A Mozilla adicionará um novo sistema de sandbox de segurança ao Firefox no Linux e Firefox no Mac. A nova tecnologia, chamada RLBox, funciona separando bibliotecas de terceiros do código nativo de um aplicativo. Esse processo é chamado de “sandboxing” e é uma técnica amplamente usada que pode impedir que códigos maliciosos escapem de dentro de um aplicativo e sejam executados no SO.
O RLBox é um projeto inovador porque leva o sandbox para um nível mais elevado. Em vez de isolar o aplicativo do sistema operacional, o RLBox separa os componentes internos de um aplicativo – ou seja, suas bibliotecas de terceiros – do mecanismo principal do aplicativo.
Essa técnica evita que bugs e explorações encontrados em uma biblioteca de terceiros afetem outro projeto que usa a mesma biblioteca.
RLBox será lançado nos navegadores Firefox no próximo mês
O trabalho no RLBox começou no ano passado, em 2019. Este novo modelo de sandbox de segurança foi desenvolvido como parte de um esforço conjunto entre a Mozilla e acadêmicos da Universidade da Califórnia em San Diego, da Universidade do Texas em Austin e da Universidade de Stanford.
A RLBox terá a primeira implantação no Firefox 74 para Linux, que será lançada no próximo mês, no início de março. Em abril, o RLBox também será lançado para o Firefox 75 para Mac.
Para sua implantação inicial, os desenvolvedores da Mozilla colocaram a biblioteca de fontes Graphite do Firefox dentro de uma caixa de proteção RLBox.
Os planos futuros incluem colocar outros componentes do Firefox em seu próprio ambiente de sandbox RLBox, mas também expandir o projeto para outras plataformas, como o Windows.
PODE SER USADO COM OUTROS APLICATIVOS
No entanto, embora a Mozilla esteja fortemente envolvida no projeto e o Firefox seja o primeiro aplicativo a usá-lo, o RLBox é na verdade uma estrutura genérica que pode ser usada com qualquer aplicativo.
De acordo com a página de documentação do projeto, o RLBox consiste em duas partes:
- um ambiente sandbox baseado no WebAssembly;
- e uma API programática que os desenvolvedores podem usar para adaptar o RLBox a outros aplicativos e suas versões mais antigas.
Os pesquisadores dizem que o ambiente sandbox WebAssembly da RLBox foi baseado principalmente no Lucet, que é um compilador WebAssembly de código aberto e tempo de execução desenvolvido pela Fastly.
No entanto, uma parte importante de seu trabalho também foi adaptar essa sandbox e adicionar uma API universal para que o RLBox pudesse ser adaptado a projetos existentes, a maioria dos quais apresenta milhões de linhas de código e dezenas de bibliotecas de terceiros, todas diferentes umas das outras.
MOZILLA: “ESTE É UM GRANDE NEGÓCIO”
Isso é muito importante, disse Bobby Holley, engenheiro principal da Mozilla, referindo-se ao Firefox adicionando suporte à RLBox.
A segurança é uma prioridade para nós, e é muito fácil cometer erros perigosos no C/C++, acrescentou Holley, referindo-se aos conhecidos bugs de segurança que a codificação em C e C ++ geralmente gera, mesmo por acidente.
Esforços para se afastar do C e C ++ vêm acontecendo na Mozilla há um bom tempo. A Mozilla foi o fundador e é o principal apoiador do Rust, uma linguagem de programação desenvolvida como um substituto mais seguro para C e C ++, que também viu seu primeiro uso no Firefox.
Estamos escrevendo muitos códigos novos no Rust, mas o Firefox é uma enorme base de código com milhões de linhas de C/C ++ que não desaparecerão tão cedo, acrescentou Holley.
O RLBox torna fácil e rápido isolar os trechos de código existentes em uma granularidade que não foi possível com o sandboxing em nível de processo usado nos navegadores atualmente.
Firefox 74 com RLBox
Os desenvolvedores da Mozilla planejam publicar um post no blog Mozilla Hacks contendo uma descrição técnica detalhada dos recursos e modo de operação do RLBox.
Além disso, a equipe acadêmica por trás da RLBox também planeja publicar um estudo sobre o impacto no desempenho da RLBox e outros benefícios. O estudo, intitulado “Modernizando o isolamento de grãos finos no Firefox Renderer“, também será apresentado nos procedimentos do Simpósio de Segurança da USENIX em março.
Vale ressaltar que o Firefox já estava rodando dentro de uma sandbox, separando o navegador do SO subjacente. Além disso, o sistema de sandbox do Firefox também estava isolando diferentes processos internos do Firefox. O RLBox funcionará sobre essas proteções de sandbox, como uma camada adicional de proteção, isolando as bibliotecas do núcleo do Firefox.