O sandbox funciona como um proxy. Em vez de o aplicativo ou SO ser executado diretamente na CPU, o sandbox pode ver o que o aplicativo deseja fazer e interceptar as instruções para fazê-las fazer outra coisa. Isso pode ser usado para impedir que ele faça coisas que não deveriam ou que interferem em outros aplicativos.
Por exemplo, digamos que o programa A queira criar um arquivo chamado document.txt
Normalmente, esse arquivo seria criado diretamente no disco rígido. Mas e se o programa B também quiser usar document.txt
para outra coisa?
Dentro de um sandbox, o disco rígido não existe realmente. Tudo o que existe é uma interface que finge ser um disco rígido. O aplicativo pode ler a partir dele, e o aplicativo pode gravar nele e, do ponto de vista do aplicativo, parece que é o único programa que usa document.txt
.
Mas como o sandbox pode ver e interceptar tudo que um aplicativo faz, os dados que o programa A grava em document.txt
são armazenados com segurança pelo sandbox em um arquivo especial reservado apenas para o programa A. Quando o programa A lê de document.txt
, o sandbox alimenta os dados do arquivo especial do programa A.
Uma VM é semelhante, mas em um nível inferior e em uma escala maior. Quando uma caixa de proteção de aplicativo altera as interfaces usadas por um aplicativo para interagir com o host, uma VM é capaz de criar um ambiente de segurança inteiro, que espera ter todo o seu próprio hardware. Isso requer virtualização de uma placa gráfica, memória, CPU, discos rígidos, dispositivos USB, redes, tudo. No entanto, como a VM monitora e intercepta tudo o que o sistema operacional tenta fazer, ela pode impor e impor limites artificiais que evitam conflitos.
Uma maneira mais fácil de pensar sobre isso é assim:
Normalmente, o Windows informa ao computador o que fazer. Com o Windows dentro de uma VM como um "sistema operacional convidado", o Guest-Windows informa à VM o que fazer e, se a VM achar que está tudo bem, a VM irá se virar e instruir o computador a fazer a mesma coisa. Se a VM não gostar do que o Guest-Windows tentou fazer, ela irá bloqueá-lo. Devido à maneira como isso é implementado, o Guest-Windows não sabe ao certo se está sendo executado em uma VM ou não, e como a VM sempre tem o controle completo , o Guest-Windows deve vive dentro das regras impostas pela VM.