¿Qué es el sandboxing y cómo hacer un sandboxing en un programa?
Sandboxing es el acto de separar un programa en su disco duro para minimizar o eliminar su exposición al resto de sus aplicaciones y sistemas críticos.Esto se logra con herramientas de sandboxing, que en concepto funcionan de manera similar a un sandbox real. Como sabrá cualquiera que haya estado alguna vez en la playa, la arena se vuelveen todos lados.Y en Microsoft Windows, esto es válido para muchos programas y aplicaciones, que escribirán e interactuarán con múltiples partes de su sistema operativo, incluido el almacenamiento estático, la memoria del sistema y la CPU. Toda esa interacción puede 'ensuciar' su sistema y provocar conflictos. Y cuando se trata de malware, podría resultar desastroso.
El diseño informático básico facilita este intercambio de recursos. Al permitir que los programas compartan recursos, la computadora aparentemente puede realizar múltiples tareas y parecer que está haciendo muchas cosas a la vez. Este es exactamente el tipo de comportamiento que hemos llegado a exigir de nuestras computadoras, teléfonos, tabletas y relojes a lo largo de los años, pero estas capacidades pueden causar efectos secundarios indeseables.
Los programas pueden comportarse mal y fallar, o provocar que otros programas fallen; pueden depender de alguna otra aplicación en la computadora que entre en conflicto con las necesidades de otros programas; y, cada vez más, los programas son maliciosos e intentan acceder a áreas prohibidas para hacer cosas malas.
El sandboxing ayuda a reducir el impacto que cualquier programa o aplicación individual tendrá en su sistema. De hecho, mantiene la arena en el sandbox, evitando que esa arena se extienda por toda su casa (digital).
Zona de pruebas del navegador
Debido a que los navegadores son tan prolíficos y siempre están activos, merecen una atención especial. Muchos de los navegadores actuales están diseñados para ejecutarse en sus propios entornos de pruebas automáticamente sin ninguna configuración por parte del usuario.
- Google Chrome ha estado protegido desde el principio
- Opera está protegida porque está basada en el código Chromium de Google
- Mozilla Firefox ha implementado un sandboxing selectivo
- Internet Explorer introdujo cierto nivel de espacio aislado en 2006 con IE 7
- Microsoft Edge protege todos los procesos ahora
- El navegador Safari de Apple ejecuta sitios web en procesos separados
Si está ejecutando un navegador exótico o desea una separación aún mayor entre su sistema operativo y su navegador, es posible que desee echar un vistazo a las opciones de espacio aislado manual que se enumeran en la siguiente sección. Algunos navegadores que se podría esperar que incluyan sandboxing (como el Brave Browser centrado en la privacidad) pueden carecer de él por completo.
Zona de pruebas manual
Si bien los navegadores son una debilidad muy importante en cualquier sistema operativo, de ninguna manera son la única debilidad. Cualquier aplicación tiene el potencial de ser maliciosa y, por lo tanto, la postura de seguridad de cualquier computadora puede reforzarse mediante el uso de sandboxing. La zona de pruebas manual es el proceso de configurar intencionalmente su sistema para proteger una aplicación que de otro modo podría tener acceso completo a su sistema.
Maquinas virtuales
La virtualización de escritorios ha avanzado mucho en los últimos años y ahora es bastante fácil instalar y utilizar máquinas virtuales. Una máquina virtual es lo que parece: una “máquina” que no es real. En realidad es sólo una pieza de software.
El uso más común de una máquina virtual es instalar una copia de su sistema operativo en ella y ejecutar esa máquina virtual en su escritorio como si fuera otra máquina física. Este tipo de separación proporciona una gran seguridad porque los programas sólo pueden acceder a los recursos dentro de la máquina virtual.
Si un malware se apoderara e infectara su sistema, solo podría infectar la máquina virtual, lo que limita la cantidad de daño que puede causar. Incluso es posible ejecutar sistemas operativos alternativos dentro de una máquina virtual, como ejecutar una distribución de Linux en una máquina virtual en una PC con Windows.
Existen muchas aplicaciones de virtualización, cada una dirigida a un tipo específico de caso de uso. Las aplicaciones de virtualización de escritorio más populares y maduras que los usuarios normales normalmente pueden manejar son VirtualBox y Parallels.
Antecedentes: una virtualización consta de dos partes principales. El términoanfitriónse refiere a la computadora física real que ejecuta el software de virtualización. El términoinvitadose refiere al sistema operativo que se ejecuta dentro de la aplicación de virtualización.
VirtualBox
VirtualBox es propiedad de Oracle y tiene Clientes para todos los principales sistemas operativos. . Después de instalar VirtualBox, puede crear una máquina virtual usando el botón Nuevo. Deberá proporcionar los medios de instalación del sistema operativo porque VirtualBox no viene con eso. Las distribuciones de Linux se encuentran fácilmente en Internet. Una buena lista es el sitio web. distribución y para sistemas operativos propietarios como Windows necesitarás tener a mano tu CD de instalación.
Paralelas
Paralelas es muy similar a VirtualBox con la notable excepción de que solo se ejecuta en macOS y está diseñado específicamente para ejecutar Windows en la máquina virtual. Si está buscando esa combinación (ejecutar Windows en su escritorio macOS), entonces Parallels puede ser la mejor solución para usted. Paralelos no es gratis. Sin embargo, existe una prueba gratuita de 30 días.
Congelación del tiempo de ToolWiz
Desde el punto de vista de la simplicidad, Congelación del tiempo de ToolWiz es una opción para aquellos que no quieren jugar con la configuración.
Esta aplicación gratuita de sandboxing funciona creando un entorno virtual de todo su sistema operativo. En lugar de proteger programas individuales, protege eficazmente todo su sistema operativo Windows “congelándolo” en su lugar y luego ejecutando todo en el sistema virtual. Time Freeze hace todo esto sin problemas.
Una vez que reinicie el sistema, cualquier cambio realizado mientras Time Freeze estaba activo se borrará automáticamente. Debido a que su sistema operativo, si se congela ante cualquier cambio, permanece intacto. La desventaja de esto es que deberá recordar cuándo tiene activo Time Freeze si realiza algún cambio en su sistema que desee conservar. Time Freeze le permite mantener archivos y carpetas seleccionados 'descongelados', por así decirlo, para garantizar que todo lo que desee conservar permanezca allí después de restablecer su sistema.
Sistema operativo Qubes
QubesOS (se pronuncia “Cubes”) merece una mención especial por la virtualización. Qubes usa el hipervisor Xen en lugar de VirtualBox. Lanza varios sistemas operativos invitados y cada uno está separado del otro. Esto permite el aislamiento de aplicaciones individuales, cada una dentro de su propia máquina virtual, en lugar de simplemente aislar todo el sistema operativo invitado.
La diferencia distintiva de QubesOS es que Xen es su propio sistema operativo; ningún sistema operativo 'host' se ejecuta debajo de él. He escrito más sobre Qubes y otras distribuciones de Linux centradas en el anonimato aquí.
A partir de junio de 2020, Sandboxie ya no cuenta con el soporte de su creador. Aún puedes descargar/instalar versiones del programa, pero te recomendamos que lo hagas con precaución. Las aplicaciones no compatibles son particularmente vulnerables a los ataques. Debido a la popularidad del programa, Sophos lanzó el código fuente para la aplicación en Github.
Sandboxie el lema esNo confíes en ningún programa. Se ejecuta únicamente en Windows y pretende separar los programas en ejecución del sistema operativo subyacente. El panel de control de Sandboxie se utiliza para nominar programas específicos para ejecutar en un sandbox. Los programas más comunes que presentan las mayores amenazas, como navegadores y programas de correo electrónico, se enumeran como opciones de configuración de forma predeterminada y se pueden agregar otras aplicaciones según sea necesario.
Los datos dentro de Sandboxie se destruyen cuando se cierra un sandbox, pero es posible configurar Sandboxie para que deje inalterados los datos importantes. Las carpetas que contienen correos electrónicos y favoritos del navegador web son ejemplos de datos que pueden sobrevivir a la eliminación de la zona de pruebas.
Sandboxie está diseñado para usuarios domésticos y eso se refleja en su precio económico.
Tomarse el tiempo para proteger su sistema puede proporcionar una defensa sólida contra muchos tipos de malware y ayudar con el desarrollo de software. No existe sustituto para una buena dosis de paranoia al utilizar Internet, pero aislar las aplicaciones más vulnerables puede ayudar.
Tipos de problemas que pueden causar los programas que no están en la zona de pruebas
Los programas que no se ejecutan en un entorno limitado pueden causar estragos en su sistema. Aquí hay algunos problemas que pueden causar.
Programas chocando entre sí
En los primeros días de la informática, la CPU distribuía los recursos por orden de llegada. Esto funcionó bien cuando nuestras computadoras no hacían mucho, pero hoy en día se utilizan métodos mucho más complejos de asignación de recursos. Las CPU defienden ferozmente los límites de los recursos que han asignado y, si un programa intenta acceder a un recurso que no ha sido designado específicamente para él, el programa u otros programas pueden fallar.
Ejecutar un programa en un sandbox permite al sistema preasignar recursos como memoria y espacio en disco antes de que el programa solicite algo. Esto garantiza que esos recursos estén listos para el programa siempre que los necesite y también garantiza que ningún otro programa pueda utilizar esos recursos.
Programas con diferentes dependencias.
Cada programa tiene numerosas versiones de sí mismo. Muy pocos programas son perfectos en todos los sentidos desde su lanzamiento inicial, razón por la cual estamos constantemente sujetos a un ciclo interminable de actualizaciones. Nuestros dispositivos siempre nos dicen que es necesario aplicar actualizaciones o que hay nuevas versiones de nuestros programas disponibles. Es importante permitir que estas actualizaciones se realicen lo antes posible porque muchas de ellas están relacionadas con problemas de seguridad o rendimiento. Posponer las actualizaciones generalmente hace que su dispositivo sea menos seguro y funcione en un estado que no es ideal.
Debajo de las principales aplicaciones que usamos y con las que interactuamos todos los días hay un conjunto de programas de ayuda. Estos programas existen para ayudar a que la aplicación principal se ejecute correctamente. Los humanos rara vez somos conscientes de estos programas, pero el programa principal no podría funcionar sin ellos. Estos programas de ayuda se llamandependenciasen el lenguaje de los desarrolladores. Al igual que cualquier otro programa, estas dependencias se actualizan y cambian constantemente, ahí es donde las cosas pueden complicarse.
Si un programa principal hace uso de una función particular que proporciona la dependencia, pero la dependencia se actualiza y de repente ya no tiene esa función, entonces la aplicación principal colapsará. La aplicación principal no obtiene el resultado esperado de esa dependencia. En muchos casos, el error de dependencia es tan inesperado que la aplicación principal simplemente fallará sin contemplaciones. Es probable que el desarrollador principal de la aplicación no haya sido advertido con antelación sobre los cambios en la dependencia, por lo que puede resultar difícil tener en cuenta dicha situación y manejarla con elegancia.
La mayoría de los programadores hacen todo lo posible para garantizarcompatibilidad con versiones anteriores, lo que significa que incluso si una versión más nueva de su aplicación no tiene una función que tenía en el pasado, seguirá manejando las solicitudes de esa función correctamente para que otras aplicaciones que dependen de ella no fallen.
Sin embargo, se sabe que es muy difícil trabajar con algunas excepciones muy notables, como Java y Python, durante una actualización. En el mundo Linux, la conocida frase “infierno de dependencia” se refiere a los problemas inherentes a las grandes actualizaciones del sistema. En algunos casos, los programas de dependencia tienen sus propias dependencias y no es raro terminar en una situación de actualización en la que no es posible satisfacer todas las dependencias.
Por ejemplo, si mi programa Puppy Vet Tracker necesita la versión 2.0 de algún programa dependiente, pero mi programa Daily Star Wars Quote necesita la versión 1.0 del mismo programa dependiente, entonces no es posible satisfacer ese requisito para ambos programas.
Los desarrolladores se encuentran con frecuencia con este tipo de problemas y el sandboxing es una forma de solucionarlo. Crear una zona de pruebas e instalar mi Puppy Vet Tracker en ella permitiría actualizar el programa dependiente a la versión 2.0. El sistema informático principal permanecería con la versión 1 del programa dependiente y, por lo tanto, todavía puedo obtener mi cotización diaria de Star Wars. Todos ganan.
Programas maliciosos
Considere una situación en la que una aplicación comparte su computadora con todos los demás programas en ejecución. Algunos de los programas que se ejecutan en su computadora pueden contener información confidencial. Quizás tenga abiertos documentos legales, hojas de cálculo de presupuesto o un administrador de contraseñas, y esas aplicaciones estén almacenando algunos datos en la memoria.
Existen programas maliciosos que exploran las áreas del ordenador asignadas a otros programas para ver qué encuentran. En los últimos años, la asignación de recursos ha mejorado, por lo que es más difícil para un programa acceder a datos que no se encuentran en áreas específicamente asignadas, pero las técnicas de piratería, como intentar leer más allá de la memoria asignada al programa, pueden funcionar.
El truco para lograr una exfiltración exitosa de datos (la eliminación de datos de su sistema) siempre ha consistido en engañar al usuario de la computadora para que instale malware. Esto generalmente se hace con Ingeniería social o tácticas de phishing y puede resultar en un compromiso total de un sistema donde cada archivo puede ser robado.
Los programas de sandboxing pueden proporcionar una defensa muy sólida contra programas maliciosos. Cuando un programa está correctamente aislado, solo puede acceder a la memoria y al espacio en disco que se le han asignado. Por lo tanto, abrir documentos confidenciales en un entorno limitado generalmente impedirá que el programa malicioso pueda acceder a ellos porque el documento no está en el mismo espacio de memoria que el programa malicioso.
Dicho esto, los piratas informáticos realizan un esfuerzo muy concertado para entrar y salir de los entornos sandbox. Se llamaescapar del entorno virtualy se considera un tipo de ataque tan grave que Microsoft pagó recientemente una recompensa de 105.000 dólares a un equipo de hackers de sombrero blanco que demostró que era posible utilizar el navegador Edge.