Segurança de  aplicativos com Flatpak – Parte 1

O Flatpak oferece uma série de recursos que contribuem para a segurança do sistema e dos aplicativos instalados. Esses recursos são projetados para isolar os aplicativos do sistema operacional e de outros aplicativos, reduzindo o risco de vulnerabilidades e ataques. Vamos explorar em detalhes como o Flatpak proporciona segurança:

 

1. Sandboxing (isolamento de aplicativos)

sandboxing é o principal mecanismo de segurança do Flatpak. Ele isola os aplicativos em um ambiente restrito, limitando o acesso ao sistema operacional e a outros aplicativos. Isso significa que, mesmo que um aplicativo seja malicioso ou tenha uma vulnerabilidade, ele não poderá afetar o sistema ou outros aplicativos fora do sandbox.

 

Como funciona o sandboxing no Flatpak?

  • Cada aplicativo Flatpak é executado em um ambiente isolado.

  • O aplicativo só tem acesso aos recursos do sistema que foram explicitamente permitidos (por exemplo, acesso à pasta de documentos, rede, dispositivos USB, etc.).

  • O acesso a áreas sensíveis do sistema, como o sistema de arquivos raiz, é bloqueado por padrão.

 

2. Controle de permissões

O Flatpak permite que os usuários controlem as permissões de cada aplicativo. Isso significa que você pode decidir quais recursos do sistema um aplicativo pode acessar.

 

Exemplos de permissões:

  • Acesso à rede: Permite ou bloqueia o acesso à internet.

  • Acesso a dispositivos: Controla o acesso a dispositivos como câmeras, microfones e impressoras.

  • Acesso a pastas do usuário: Define quais pastas do usuário o aplicativo pode acessar (por exemplo, Documentos, Downloads, etc.).

  • Acesso a hardware gráfico: Permite ou bloqueia o acesso à aceleração gráfica.

 

Como gerenciar permissões?

  • Use o comando flatpak override para personalizar as permissões de um aplicativo.

  • Por exemplo, para bloquear o acesso à rede de um aplicativo:

     
    flatpak override --nofilesystem=home --nosocket=network org.example.App


3. Verificação de aplicativos

O Flatpak usa assinaturas digitais para garantir a autenticidade e a integridade dos aplicativos. Isso significa que os aplicativos são assinados pelos desenvolvedores ou mantenedores, e o Flatpak verifica essas assinaturas antes de instalar ou executar o aplicativo.

 

Benefícios:

  • Previne a instalação de aplicativos modificados ou maliciosos.

  • Garante que o aplicativo vem de uma fonte confiável.

 

4. Atualizações automáticas e centralizadas

O Flatpak gerencia atualizações de aplicativos de forma centralizada, garantindo que você sempre tenha as versões mais recentes e seguras dos aplicativos.

 

Benefícios:

  • Correções de segurança são aplicadas rapidamente.

  • Reduz o risco de exploração de vulnerabilidades conhecidas.

 

5. Runtimes isolados

O Flatpak usa runtimes (ambientes de execução) para fornecer bibliotecas e dependências necessárias para os aplicativos. Esses runtimes são compartilhados entre aplicativos, mas também são isolados do sistema operacional.

 

Benefícios:

  • Evita conflitos de dependências com o sistema.

  • Reduz o risco de exploração de vulnerabilidades em bibliotecas compartilhadas.

 

6. Portals (integração controlada com o sistema)

Os portals são interfaces que permitem que aplicativos Flatpak interajam com o sistema de forma segura e controlada. Por exemplo, um aplicativo pode solicitar acesso a um arquivo específico sem ter acesso completo ao sistema de arquivos.

 

Exemplos de uso de portals:

  • Um aplicativo pode pedir permissão para abrir um arquivo específico.

  • Um aplicativo pode solicitar acesso à câmera ou ao microfone apenas quando necessário.

 

7. Segurança em diferentes níveis

O Flatpak implementa segurança em múltiplos níveis:

  • Nível de Aplicativo: Isolamento e controle de permissões.

  • Nível de Runtime: Isolamento de dependências e bibliotecas.

  • Nível de Sistema: Verificação de assinaturas e atualizações centralizadas.

 

8. Comparação com outros sistemas de empacotamento

  • Pacotes Nativos (.rpm, .deb): Os pacotes nativos têm acesso total ao sistema, o que pode aumentar o risco de segurança.

  • Snap: O Snap também usa sandboxing, mas o Flatpak é mais flexível em termos de permissões e integração com o ambiente gráfico.

  • Containers (Docker, Podman): Containers são mais voltados para servidores e não são tão adequados para aplicativos desktop.

 

9. Exemplo prático de segurança no Flatpak

Imagine que você instalou um aplicativo de edição de texto via Flatpak. Esse aplicativo:

  • Está isolado do sistema operacional (sandboxing).

  • Só tem acesso à pasta ~/Documentos (permissões controladas).

  • Não pode acessar a internet (permissão de rede bloqueada).

  • Usa um runtime isolado para suas dependências.

  • Foi verificado por assinatura digital antes da instalação.

 

Se o aplicativo tentar acessar uma área restrita do sistema ou se comportar de forma suspeita, o Flatpak bloqueará essas ações.

O Flatpak proporciona segurança através de sandboxingcontrole de permissõesverificação de assinaturasatualizações centralizadas e runtimes isolados. Esses recursos tornam o Flatpak uma opção segura para instalar e gerenciar aplicativos no Linux, reduzindo significativamente o risco de vulnerabilidades e ataques.

 

Instalação do Flatpak no Rocky Linux 9

A instalação do Flatpak no Rocky Linux 9 é simples e pode ser feita em poucos passos.

1. Atualize o sistema

Antes de começar, certifique-se de que seu sistema está atualizado:

sudo dnf update -y

2. Instale o Flatpak

O Flatpak está disponível nos repositórios padrão do Rocky Linux 9. Instale-o com o seguinte comando:

sudo dnf install flatpak -y

3. Adicione o repositório Flathub

Flathub é o repositório mais popular para aplicativos Flatpak. Adicione-o ao seu sistema:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

4. Reinicie o sistema

Para garantir que todas as configurações sejam aplicadas corretamente, reinicie o sistema:

sudo reboot


Configuração do Flatpak

Após a instalação, você pode configurar o Flatpak para atender às suas necessidades.

1. Verifique os repositórios remotos

Para listar os repositórios remotos configurados, use:

flatpak remotes

Você verá o repositório Flathub listado.

2. Instale aplicativos

Para instalar um aplicativo, use o comando:

flatpak install flathub nome.do.aplicativo

Por exemplo, para instalar o LibreOffice:

flatpak install flathub org.libreoffice.LibreOffice

3. Execute aplicativos

Para executar um aplicativo instalado, use:

flatpak run nome.do.aplicativo

Por exemplo, para executar o LibreOffice:

flatpak run org.libreoffice.LibreOffice

4. Atualize aplicativos

Para atualizar todos os aplicativos Flatpak instalados, use:

flatpak update

5. Remova aplicativos

Para remover um aplicativo, use:

flatpak uninstall nome.do.aplicativo



Exemplos de uso do Flatpak

Aqui estão alguns exemplos de aplicativos populares que podem ser instalados via Flatpak:

1. Microsoft Teams

flatpak install flathub com.microsoft.Teams

2. Spotify

flatpak install flathub com.spotify.Client

3. GIMP

flatpak install flathub org.gimp.GIMP

4. Visual Studio Code

flatpak install flathub com.visualstudio.code


Dicas e truques

1. Listar aplicativos instalados

Para ver todos os aplicativos Flatpak instalados, use:

flatpak list

2. Verificar permissões de sandbox

Para ver as permissões de sandbox de um aplicativo, use:

flatpak info nome.do.aplicativo

3. Executar aplicativos em modo sandbox

Você pode executar aplicativos em um ambiente sandbox com permissões específicas. Por exemplo, para executar o Firefox sem acesso à rede:

flatpak run --unshare=network org.mozilla.firefox


Conclusão

O Flatpak é uma ferramenta poderosa e versátil para instalar e gerenciar aplicativos no Rocky Linux 9 e demais distros Linux. Ele oferece uma experiência de usuário simplificada, maior segurança e compatibilidade entre distribuições. Seja você um usuário doméstico ou um administrador de sistemas, o Flatpak pode ser uma excelente adição ao seu fluxo de trabalho.

Com este guia, você está pronto para começar a usar o Flatpak no Rocky Linux 9. Experimente instalar alguns aplicativos e explore as possibilidades que essa tecnologia oferece!

 

Referências bibliográficas

Introdução ao Flatpak (YouTube):