Mateus Müller

O carinha do Linux

29 mar. 2018

Se proteja de programas maliciosos com o Firejail

Já que estamos nessa onda de especialização em Segurança da Informação, estou mais ativo em pesquisas e testes envolvendo esta área, mas sempre em conjunto com a área de softwares open-source.

Veja aqui dois artigos que fiz sobre boas práticas na Segurança da Informação utilizando Linux:

Boas práticas para a segurança de informação no Linux | Parte 01

Boas práticas para a segurança de informação no Linux | Parte 02

O método de proteção que veremos hoje é contra os aplicativos maliciosos que podem afetar o seu sistema operacional.

Imagine o seguinte: Você está em busca de uma ferramenta/script que execute uma determinada função. Você encontra, mas não sabe a procedência do programa.

Você acha que realmente pode confiar no que está instalando? E se este programa instalar um backdoor que permita alguém invadir seu sistema? Ou um keylogger que possa roubar seus dados?

Entretanto, existe uma forma de se proteger chamada de Sandbox. Executar um aplicativo em Sandbox é a mesma coisa que executá-lo em um ambiente virtual separado, onde ele não terá acesso ao seu sistema e seus arquivos. Deste modo, não pode acessá-los, e muito menos modificá-los.

Então, no artigo de hoje, vou lhe ajudar para que você se proteja de programas maliciosos com o Firejail, que permite a execução de programas utilizando o recurso de _Sandbox.

O Firejail foi desenvolvido utilizando dois recursos nativos do Linux: seccomp-bpf e namespaces. Por este motivo, somente sistemas com Kernel acima da versão 3.5 podem utilizá-lo. O seccomp-bpf é o recurso que permite a criação dos Sandbox. Já o namespaces permite a criação de ambientes virtuais para diferentes tipos de execução (partições, processos, etc.).

Como instalar o Firejail?

Primeiramente, saiba que o Firejail já vem incluído no repositório das distribuições: _Alpine, ALT Linux, Arch, Chakra, Debian, Deepin, Devuan, Gentoo, Manjaro, Mint, NixOS, Parabola, Parrot, PCLinuxOS, ROSA, Solus, Slackware/SlackBuilds, Trisquel, Ubuntu, Void.

Obs.: A informação acima está no próprio site, mas nada impede de você verificar no repositório da sua distribuição se ele consta.

Para Ubuntu:

$ sudo apt install firejail -y

Para CentOS (e derivados):

Realize o download da versão .rpm aqui:

$ rpm -i firejail-0.9.52-1.x86_64.rpm

Para outros:

Você terá que compilar manualmente à partir do source code. Lembrando que você deve ter o git e o gcc (ou outro compilar em C) instalados.

Abaixo um exemplo de compilação no CentOS:

$ git clone https://github.com/netblue30/firejail
$ cd firejail
$ ./configure
$ make
$ make install-strip
$ export PATH=$PATH:/usr/local/bin

Obs.: Se você não entendeu o que está sendo feito aqui, clique aqui e leia meu artigo de como compilar um programa a partir de um source code.

Como utilizar o Firejail?

Basta você executar (como usuário não-root) o seguinte:

$ firejail firefox

Obs.: É só trocar o firefox por qualquer outra aplicação que deseje.

Veja aqui como fica a “escadinha” de processos:

$ ps ux --forest
Se proteja de programas maliciosos com o Firejail
Se proteja de programas maliciosos com o Firejail

O firefox está encapsulado no processo firejail acima.

$ firejail --tree
Se proteja de programas maliciosos com o Firejail
Se proteja de programas maliciosos com o Firejail
$ firejail --list
Se proteja de programas maliciosos com o Firejail
Se proteja de programas maliciosos com o Firejail
$ firejail --top
Se proteja de programas maliciosos com o Firejail
Se proteja de programas maliciosos com o Firejail

Para estatísticas de rede:

$ firejail --netstats

Caso você queria executar um AppImage:

$ firejail --appimage programa.appimage

Obs.: Se você não sabe o que é AppImage, veja este artigo que escrevi.

Você pode desabilitar o uso da rede:

$ firejail --net firefox

Existem diversas outras opções que você ver com o comando:

$ man firejail

Espero que tenha gostado deste artigo e que ele tenha lhe ajudado a entender como um sandbox pode te ajudar a proteger seu equipamento!

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus