O Sandboxing é uma nova ferramenta leve no Windows que permite executar aplicativos em um ambiente isolado e seguro.
Você já se viu em uma situação em que precisa executar algum tipo de programa, mas não tem muita certeza sobre a origem de sua origem? Ou outro exemplo - a necessidade de verificar algo em uma versão "limpa" do Windows. Em todos esses casos, antes havia apenas uma saída - instalar o sistema operacional em uma máquina física ou virtual separada e realizar o experimento necessário. Mas esse não é mais o caso.
A Microsoft desenvolveu um novo mecanismo chamado
Sandbox (eng. Windows Sandbox). Este é um ambiente temporário isolado no qual você pode executar software suspeito sem arriscar danos ao seu PC. Qualquer software instalado no Sandbox permanece apenas no Sandbox e não pode interagir com o sistema operacional principal. Assim que você fecha o Sandbox, todo o seu conteúdo é irremediavelmente destruído.
Aqui estão os principais recursos do Sandbox:
- Isso faz parte do sistema operacional Windows. Se você possui o Windows 10 Pro ou Enterprise, já pode começar a usá-lo.
- De uma lousa limpa. Cada vez que você inicia o Sandbox, obtém o mesmo ambiente, limpo e imutável. Exatamente o que seu sistema operacional estava logo após a instalação.
- Nenhum rastro. Quando você fecha o Sandbox, todos os aplicativos instalados nele, todos os arquivos criados lá são destruídos. Eles fecharam a Sandbox - não havia vestígios de sua existência.
- Segurança Ele usa virtualização de hardware, que usa um hipervisor para executar um kernel do sistema operacional separado e o isola do sistema operacional principal
- Eficiência Ele usa um agendador de tarefas integrado, gerenciamento inteligente de memória, GPU virtual.
Requisitos de sistema
- Windows 10 Pro ou Enterprise, compilação 18305 ou superior
- Arquitetura AMD64
- Virtualização ativada por BIOS
- RAM mínima de 4 GB (8 GB recomendado)
- Mínimo de 1 GB de espaço livre em disco (SSD recomendado)
- Processador de núcleo duplo (4 recomendados com suporte a hyperthreading)
Início rápido
1. Instale o Windows 10 Pro ou Enterprise build 18305 ou superior
2. Ligue a virtualização:
3. Abra (através do Painel de Controle) uma lista de componentes instalados do Windows e ative a Sandbox. Clique em OK Se você vir uma solicitação para reiniciar o computador - confirme.
4. Inicie a Sandbox no menu Iniciar. Permitir elevação de direitos para o processo dela.
5. Copie (via área de transferência) para o Sandbox o binário que você deseja executar.
6. Inicie o binário na Sandbox. Se este for um instalador, siga o procedimento de instalação e execute o aplicativo instalado.
7. Use o aplicativo como pretendido.
8. Quando terminar - basta fechar a Sandbox. Todo o seu conteúdo será excluído.
9. Opcional - você pode garantir que nada mudou no seu sistema operacional principal.

O que há sob o capô da Sandbox
O Windows Sandbox foi desenvolvido com base em uma tecnologia chamada Windows Containers. Os contêineres foram desenvolvidos (e há muito utilizados) para trabalhar na nuvem. A Microsoft já adotou uma tecnologia bastante madura e testada e a finalizou para usuários de computadores Windows.
Entre as principais adaptações, podemos destacar:
Imagem gerada dinamicamente
A sandbox é, embora leve, mas ainda uma máquina virtual. E, como qualquer máquina virtual, precisa de uma imagem a partir da qual possa inicializar. O recurso mais importante do Sandbox é que você não precisa baixar ou criar esta imagem de algum lugar. Ele será criado rapidamente, a partir dos arquivos do seu sistema operacional Windows atual.
Sempre queremos obter o mesmo ambiente "limpo" para o Sandbox. Mas há um problema: alguns arquivos do sistema podem mudar. A solução foi criar uma "imagem gerada dinamicamente": para os arquivos modificados, suas versões originais serão incluídas, mas os arquivos imutáveis não serão fisicamente incluídos nesta imagem. Em vez disso, eles usarão links para arquivos reais no disco. Como a prática demonstrou, a maioria dos arquivos da imagem serão esses links. Apenas uma pequena parte deles (cerca de 100 MB) será incluída na imagem completamente - esse será o seu tamanho. Além disso, quando você não usa o Sandbox, esses arquivos são armazenados em formato compactado e ocupam cerca de 25 MB. Quando você inicia o Sandbox, eles são implantados na própria "imagem dinâmica" de aproximadamente 100 MB de tamanho.

Gerenciamento inteligente de memória
O gerenciamento de memória Sandbox é outra grande melhoria. O hypervisor permite executar várias máquinas virtuais na mesma máquina física e isso, em geral, funciona bem em servidores. Mas, diferentemente dos servidores, os recursos das máquinas de usuários comuns são muito mais limitados. Para alcançar um nível aceitável de desempenho, a Microsoft desenvolveu um modo de memória especial no qual o SO principal e o Sandbox podem usar as mesmas páginas de memória em alguns casos.
De fato: como o sistema operacional principal e o Sandbox executam a mesma imagem do sistema operacional, a maioria dos arquivos de sistema neles será a mesma, o que significa que não faz sentido carregar as mesmas bibliotecas na memória duas vezes. Você pode fazer isso uma vez no sistema operacional principal e, quando o mesmo arquivo for necessário na memória Sandbox, poderá atribuir um link para a mesma página. Obviamente, são necessárias algumas medidas adicionais para garantir a segurança dessa abordagem, mas a Microsoft cuidou disso.

Planejador integrado
No caso de usar máquinas virtuais convencionais, o hypervisor controla a operação dos processadores virtuais em execução nelas. Uma nova tecnologia foi desenvolvida para o Sandbox, denominada "agendador integrado", que permite ao sistema operacional principal decidir quando e quantos recursos alocar no Sandbox. Funciona assim: os processadores virtuais Sandbox funcionam como threads dentro do processo Sandbox. Como resultado, eles têm os mesmos "direitos" que os outros threads no seu sistema operacional principal. Se, por exemplo, alguns threads de alta prioridade estiverem funcionando para você, o Sandbox não levará muito tempo para concluir suas tarefas, que têm uma prioridade normal. Isso permitirá que você use o Sandbox sem reduzir a velocidade da operação de aplicativos críticos e manter a capacidade de resposta suficiente da interface do usuário do sistema operacional principal, semelhante à maneira como o
Linux KVM funciona.
A principal tarefa era tornar o Sandbox, por um lado, apenas um aplicativo comum e, por outro, garantir seu isolamento no nível das máquinas virtuais clássicas.
Usando instantâneos
Como mencionado acima, o Sandbox usa um hypervisor. Basicamente, executamos uma cópia do Windows dentro de outra. E isso significa que levará algum tempo para carregá-lo. Podemos gastá-lo toda vez que você inicia o Sandbox, ou faz isso apenas uma vez, após salvar após carregar todo o estado do SO virtual (arquivos alterados, memória, registros do processador) no disco. Depois disso, poderemos iniciar o Sandbox a partir desta imagem, salvando ao mesmo tempo o horário de início.
Virtualização de gráficos
A virtualização de gráficos baseada em hardware é a chave para uma interface de usuário rápida e suave, especialmente para "pesado" em termos de aplicativos gráficos. No entanto, as máquinas virtuais clássicas são inicialmente limitadas em sua capacidade de usar diretamente todos os recursos da GPU. E aqui um importante papel é desempenhado pelas ferramentas de virtualização gráfica, que permitem superar esse problema e, de alguma forma, usar a aceleração de hardware em um ambiente virtual. Um exemplo dessa tecnologia pode ser, por exemplo, o Microsoft
RemoteFX .
Além disso, a Microsoft trabalhou ativamente com os fabricantes de sistemas e drivers gráficos, a fim de integrar os recursos de virtualização gráfica diretamente no DirectX e WDDM (um modelo de driver no Windows).
Como resultado, os gráficos na Sandbox funcionam da seguinte maneira:
- Um aplicativo no Sandbox usa funções gráficas da maneira usual, sem saber quem e como as executará
- O subsistema de gráficos Sandbox, após receber comandos de renderização gráfica, os transfere para o sistema operacional principal
- O sistema operacional principal, tendo recebido comandos de renderização gráfica, os percebe como se fossem de um aplicativo iniciado localmente e os executa, alocando e gerenciando os recursos necessários.
Este processo pode ser representado da seguinte maneira:

Isso permite que o ambiente virtual obtenha acesso total aos gráficos acelerados por hardware, o que aumenta o desempenho e alguns recursos (por exemplo, energia da bateria para laptops), devido ao fato de que cálculos pesados na CPU não são mais usados para renderizar gráficos.
Uso da bateria
A sandbox tem acesso a informações sobre a carga da bateria e pode otimizar seu trabalho para salvá-la.
Revisões e relatórios de erros
Pode haver erros em qualquer nova tecnologia. A Microsoft pede para enviar mensagens sobre eles e sugestões de novos recursos através do
Hub de Feedback .