Instalando Programas Errado

A Instalação Correta de Programas: Decisões que Afetam sua Segurança e Conveniência

Instalar programas no seu sistema operacional pode parecer uma tarefa simples: basta baixar e clicar em “Avançar” rapidamente. No entanto, existem decisões cruciais durante esse processo que podem ter implicações significativas para a segurança e a conveniência do seu uso diário. Ignorar esses detalhes pode, potencialmente, abrir portas indesejadas no seu sistema.

Vamos explorar as escolhas importantes que você deve considerar, como a diferença entre instalar para “todos os usuários” ou “somente você”, e até mesmo a opção de utilizar a Microsoft Store como fonte de instalação.

Instalar para Todos os Usuários vs. Apenas Você

A escolha entre instalar um programa para todos os usuários ou apenas para o seu perfil de usuário geralmente se resume a onde o programa será instalado no sistema:

  • Program Files: É o local padrão para instalações de “Todos os Usuários”. Para gravar arquivos ou realizar alterações neste diretório, você precisa de permissões elevadas, o que geralmente aciona o prompt de Controle de Conta de Usuário (UAC) para conceder acesso administrativo temporário durante a instalação ou atualizações.
  • AppData: Quando você instala apenas para você, o programa pode ser instalado no diretório AppData. A grande diferença é que aplicativos podem ler e gravar no AppData sem a necessidade de elevação de privilégios.

A recomendação geral é instalar para todos os usuários, mesmo que você seja o único usuário da máquina. Isso se deve à natureza do AppData:

O AppData é um local compartilhado onde diversos aplicativos podem acessar e escrever dados. O problema surge quando programas inteiros são instalados ali, pois outros aplicativos podem modificar os arquivos desses programas sem precisar de permissão administrativa. Isso cria riscos de segurança, como:

  • Modificação de Programas por Malware: Malware pode acessar esses diretórios e alterar os executáveis de programas confiáveis.
  • DLL Hijacking: Um ataque onde o malware substitui uma DLL (Dynamic Link Library) legítima que um aplicativo deveria carregar, executando assim código malicioso.
  • Substituição do Executável: O malware pode substituir completamente o arquivo .exe do programa.

Ao instalar em Program Files, qualquer tentativa de modificação do programa exigirá escalonamento para administrador (o prompt do UAC), o que impede que malware faça essas alterações silenciosamente.

Importante: Instalar para todos os usuários não significa que o programa rodará sempre como administrador. Ele ainda rodará como o usuário padrão. A elevação só será necessária ao tentar modificar ou atualizar o programa.

Alguns aplicativos, como navegadores como o Google Chrome, mesmo instalados em Program Files, conseguem se atualizar sem prompts de UAC porque instalam um serviço que roda em segundo plano com privilégios de administrador para gerenciar as atualizações. Nem todo aplicativo é configurado dessa forma, e nem sempre você desejaria que fosse.

Alguns softwares, como o VS Code, por padrão, instalam apenas no AppData. Para forçar a instalação no Program Files, é necessário buscar um instalador separado, muitas vezes chamado de “system installer”, na página de downloads.

A Opção da Microsoft Store: Segurança por Sandboxing

Instalar aplicativos pela Microsoft Store pode ser uma opção superior em termos de segurança, dependendo do contexto. Muitos aplicativos da loja são do tipo UWP (Universal Windows Platform).

Aplicativos UWP rodam em um ambiente chamado App Container, que essencialmente os “isola” (sandboxes) do resto do sistema. Eles são muito mais restritos do que aplicativos comuns, de forma semelhante aos aplicativos de celular, que só podem acessar o que declaram explicitamente.

Ao registrar um app na Microsoft Store, o desenvolvedor declara as permissões que ele necessita. Isso limita drasticamente o que o aplicativo pode fazer no sistema sem solicitar permissões explícitas.

Permissões na Microsoft Store

Ao verificar as permissões de um app na loja, fique atento à opção “Este app pode usar todos os recursos do sistema”. Se esta opção estiver marcada, significa que o aplicativo não estará em sandbox e terá as mesmas permissões de um aplicativo tradicional baixado da internet. Se você confia no aplicativo, isso não é um problema, mas se o objetivo de usar a Store é a contenção, este aplicativo não oferecerá esse benefício.

Para aplicativos que estão verdadeiramente sandboxed (ou seja, que não usam todos os recursos do sistema):

  • Configurações Isoladas: Em vez de escrever diretamente no AppData, eles recebem uma pasta de configuração especial dentro de AppData Local, isolada.
  • Isolamento entre Apps: Eles não podem acessar as pastas de configuração de outros apps UWP, nem outros apps UWP podem acessar a deles.
  • Registro: Eles não alteram o registro do Windows diretamente. Em vez disso, criam um arquivo “registry.dat” que o Windows mescla com o registro real de forma transparente e sob demanda. Para desfazer as alterações de um app, basta deletar o arquivo de registro específico dele. Isso facilita a remoção completa do programa sem deixar lixo no sistema.

Em resumo, aplicativos UWP (sandboxed) facilitam muito a desinstalação completa, pois a maior parte dos dados de configuração ficam contidos em um local isolado e gerenciável.

Atualização Automática

Uma grande vantagem de instalar um aplicativo UWP pela Microsoft Store é a atualização automática. Se a versão for UWP, ela será atualizada automaticamente junto com a loja. Se for a versão clássica (“Win32”), você precisará gerenciar as atualizações manualmente, recebendo notificações ou baixando-as separadamente.

É importante notar que versões UWP podem, ocasionalmente, ter menos funcionalidades que suas contrapartes Win32, pois a restrição de interação com o sistema pode limitar algumas capacidades.

Proteção de Arquivos Binários

Aplicativos instalados via Microsoft Store são colocados em um diretório extremamente restrito: C:\Program Files\WindowsApps. Os usuários não conseguem sequer visualizar este diretório. Os arquivos binários dos aplicativos instalados aqui são ainda mais protegidos do que aqueles localizados no Program Files tradicional, com acesso restrito praticamente apenas à própria Microsoft Store.

Entretanto, os dados de configuração e do usuário não possuem essa mesma proteção e ainda podem ser acessados por malware.

O Futuro: Win32 App Isolation

Há menções de que a Microsoft está trabalhando no recurso “Win32 App Isolation”, que permitiria que aplicativos Win32 tradicionais também rodem em containers isolados. Contudo, a expectativa atual é que este seja um recurso opt-in, que o desenvolvedor precisa implementar. Se for este o caso, o malware provavelmente não o utilizará, o que diminuiria a eficácia da medida. Espera-se que, idealmente, haja uma forma de forçar o isolamento para que o recurso seja verdadeiramente valioso em termos de segurança.

A capacidade de forçar o isolamento de todos os aplicativos seria um grande avanço em segurança, eliminando efeitos colaterais indesejados, embora esse seja um desafio técnico significativo.