Uno de los pasos más im­po­r­ta­n­tes en el de­sa­rro­llo de software es comprobar la fu­n­cio­na­li­dad de un programa: incluso si el código fuente parece libre de fallos, en la práctica pueden surgir co­m­pli­ca­cio­nes ine­s­pe­ra­das. No obstante, poner a prueba un software de origen de­s­co­no­ci­do o que aún no esté pe­r­fe­c­cio­na­do conlleva ciertos riesgos. Por ejemplo, es posible que la in­s­ta­la­ción de un programa con código erróneo altere o incluso dañe el sistema operativo. Para hacer más seguras estas pruebas, existe el ai­s­la­mie­n­to de procesos o, como se llama me­ta­fó­ri­ca­me­n­te en inglés, el sa­n­d­bo­xi­ng, o caja de arena. Estos son métodos que permiten probar software propio o código sacado de Internet en un entorno aislado, de manera que no afecten al sistema en su conjunto.

¿Qué es una sandbox?

En el mundo de la in­fo­r­má­ti­ca, cada vez se oye más el término sandbox, sa­n­d­bo­xi­ng o, en español, ai­s­la­mie­n­to de procesos, pero ¿en qué consiste exac­ta­me­n­te esta técnica y cómo se utiliza? Se trata de un entorno de pruebas aislado dentro de un sistema que permite ejecutar ciertas acciones de un programa escudando el hardware para que no pueda ser dañado. En términos generales, por lo tanto, el sa­n­d­bo­xi­ng consiste en proteger el sistema operativo frente a código erróneo y malware. En el ámbito del de­sa­rro­llo de software y la ci­be­r­se­gu­ri­dad, el ai­s­la­mie­n­to de procesos ya se ha co­n­ve­r­ti­do en una medida estándar gracias a la cual muchas grandes empresas pueden pro­te­ge­r­se frente a daños del sistema y ci­ber­ata­ques.

El sa­n­d­bo­xi­ng o ai­s­la­mie­n­to de procesos no es un concepto nuevo, empezó a usarse cuando se crearon los primeros or­de­na­do­res pe­r­so­na­les. En los años 70, los pro­gra­ma­do­res usaban estas cajas de arena para poner a prueba los programas y hacer si­mu­la­cio­nes. Con ellos querían averiguar si un código concreto podía funcionar en un entorno cerrado. Los primeros me­ca­ni­s­mos de seguridad, como Hydra, no solo protegían el costoso hardware, sino que gracias a la técnica del sa­n­d­bo­xi­ng permitían ide­n­ti­fi­car qué problemas habrían surgido sin el ai­s­la­mie­n­to.

Hoy en día existen programas que no solo permiten captar y re­di­re­c­cio­nar posibles accesos al registro de datos del sistema, sino que, gracias a las máquinas virtuales (VM), se puede simular incluso un ordenador completo.

¿Cómo funciona una sandbox?

Existen di­fe­re­n­tes maneras de aislar procesos. Antes, los pro­gra­ma­do­res de­sa­rro­lla­ban para ello sus propios entornos de prueba cerrados. Hoy, en cambio, existen programas listos para usar. Según el propósito y el sistema operativo, existen distintas versiones, cada una con un alcance y un fu­n­cio­na­mie­n­to distinto. Estas di­fe­re­n­cias están bien fu­n­da­me­n­ta­das, puesto que el de­sa­rro­lla­dor que elabora un programa nuevo tiene ne­ce­si­da­des distintas a las de una empresa que quiere proteger su sistema operativo frente a código de origen de­s­co­no­ci­do y posibles ci­ber­ata­ques. Por regla general, cuanto más deba parecerse el entorno simulado al entorno real, más recursos requerirá.

A co­n­ti­nua­ción, te pre­se­n­ta­mos un resumen de las di­fe­re­n­tes maneras de crear un entorno aislado y cómo funcionan:

  • Programas sandbox: uno de los programas más populares de ai­s­la­mie­n­to es Sandboxie, que permite crear una sandbox di­re­c­ta­me­n­te en Windows. Al activarlo, se desvían a una carpeta pre­via­me­n­te escogida todos los derechos de escritura que el software po­te­n­cia­l­me­n­te malicioso pudiera tener sobre el hardware. Los archivos guardados en la sandbox pueden luego tra­s­pa­sar­se, si así se desea, al sistema real. Este tipo de apli­ca­cio­nes ofrecen la po­si­bi­li­dad de ad­mi­ni­s­trar varios entornos de pruebas al mismo tiempo.
  • Sandbox en el sistema operativo: con algunas apli­ca­cio­nes, puede usarse la sandbox, di­re­c­ta­me­n­te en el código del software a través de capas y niveles distintos. Dicha sandbox se convierte así en parte del sistema operativo, pero no deja de ser un co­m­po­ne­n­te cerrado en sí mismo. Al igual que en otros programas sandbox, se es­ta­ble­cen pa­rá­me­tros concretos para el tiempo de ejecución del software en cuestión, lo cual permite realizar un análisis es­pe­cí­fi­co. En Windows 10 (a partir de la versión 1903, build 18305), la Windows Sandbox viene integrada de serie y puede ser activada o des­ac­ti­va­da por el usuario.
  • Máquinas virtuales: Este tipo de software, también llamado VM por sus siglas en inglés, puede abarcar mucho más que sencillos programas. Una VM puede manejarse como un ordenador normal y suele estar ubicada, por su tamaño, en un servidor aparte. La vi­r­tua­li­za­ción a través de una VM puede re­pa­r­ti­r­se entre varios sistemas huéspedes. De esta manera, los pseu­do­si­s­te­mas acaban siendo to­ta­l­me­n­te in­de­pe­n­die­n­tes y estando co­m­ple­ta­me­n­te aislados del hardware. Algunas de las máquinas virtuales más populares con interfaz completa son VMware y Java Virtual Machine, así como FAU­ma­chi­ne para Linux y macOS.
  • Sandbox como plugin: existe un ejemplo de sandbox en forma de plugin en el lenguaje de pro­gra­ma­ción Java, que utiliza la sandbox mediante los llamados java applets. Los applets son programas que se ejecutan en un navegador cliente. Con la sandbox integrada, el código del software cargado en Internet se ejecuta en un entorno en­ca­p­su­la­do, y así se consigue mantener a salvo las unidades de disco, la memoria principal y las funciones del sistema operativo.
Nota

Además de los programas sandbox basados en software, también existen las llamadas mi­cro­vi­r­tua­li­za­cio­nes, que se ejecutan di­re­c­ta­me­n­te en el hardware. A di­fe­re­n­cia de las sandboxes, las mi­cro­vi­r­tua­li­za­cio­nes no están pensadas en principio para ide­n­ti­fi­car código malicioso, sino para proteger el sistema de los efectos nocivos del malware.

¿Dónde se utiliza el ai­s­la­mie­n­to de procesos?

Existen muchos ejemplos de apli­ca­ción del ai­s­la­mie­n­to de procesos. Los pro­pó­si­tos con los que se aplican estos sistemas pueden dividirse en dos ámbitos: el software testing (es decir, las pruebas de software) y la ci­be­r­se­gu­ri­dad. A co­n­ti­nua­ción, hemos resumido las funciones que cumple el ai­s­la­mie­n­to de procesos en cada una de estas ramas:

Software testing. Las sandboxes tienen un papel muy im­po­r­ta­n­te a la hora de poner a prueba el software que se acaba de de­sa­rro­llar. La vi­r­tua­li­za­ción de sistemas co­mpu­tacio­na­les ayuda a los pro­gra­ma­do­res a de­sa­rro­llar apli­ca­cio­nes fu­n­cio­na­les y seguras y a probarlas luego en di­fe­re­n­tes entornos. El sandbox testing es, por lo tanto, una he­rra­mie­n­ta que indica a los de­sa­rro­lla­do­res cuándo han de modificar el código. El ai­s­la­mie­n­to de archivos también es usado a veces para aislar programas que se ejecutan pa­ra­le­la­me­n­te y que serían in­co­m­pa­ti­bles. Asimismo, puesto que el código puede eje­cu­tar­se de manera segura en la sandbox, los in­fo­r­má­ti­cos utilizan esta te­c­no­lo­gía para analizar malware e ide­n­ti­fi­car los efectos del mismo en los sistemas ope­ra­ti­vos.

Ci­be­r­se­gu­ri­dad. En lo que a la seguridad en los na­ve­ga­do­res se refiere, las he­rra­mie­n­tas de sandbox son también, junto con los eficaces sistemas co­r­ta­fue­gos, una solución muy popular. Estas he­rra­mie­n­tas protegen el sistema operativo de las al­te­ra­cio­nes al iniciar apli­ca­cio­nes po­te­n­cia­l­me­n­te pe­li­gro­sas. Es­pe­cia­l­me­n­te en el caso de or­ga­ni­s­mos públicos y empresas, puesto que trabajan con datos sensibles, es im­po­r­ta­n­te la pro­te­c­ción frente a las llamadas amenazas pe­r­si­s­te­n­tes avanzadas o Advanced Pe­r­si­s­te­nt Threats (APT). Estas son ci­ber­ata­ques en­cu­bie­r­tos y re­cu­rre­n­tes que persisten durante largos periodos de tiempo. Sin embargo, también los usuarios pa­r­ti­cu­la­res pueden be­ne­fi­ciar­se de una na­ve­ga­ción más segura usando he­rra­mie­n­tas de ai­s­la­mie­n­to de procesos. De hecho, los na­ve­ga­do­res web actuales basados en Chromium utilizan procesos de sandbox en cada página web visitada o plugin in­co­r­po­ra­do para evitar los ataques de tipo browser exploit.

¿Es seguro el ai­s­la­mie­n­to de procesos?

Son muchos los ar­gu­me­n­tos que respaldan el uso de métodos de ai­s­la­mie­n­to de procesos o sa­n­d­bo­xi­ng. No obstante, cabe pre­gu­n­tar­se hasta qué punto son seguras las sandboxes en lo que respecta a la ci­be­r­cri­mi­na­li­dad. En general, usar una sandbox no es razón para dormirse en los laureles, ya que, a medida que evo­lu­cio­nan los me­ca­ni­s­mos de seguridad modernos, también lo hacen las argucias de los ci­be­r­cri­mi­na­les. Los ci­ber­ata­ques in­te­li­ge­n­tes, por ejemplo, reconocen los típicos entornos de ai­s­la­mie­n­to de procesos y logran evitarlos fá­ci­l­me­n­te haciendo que el código malicioso parezca ino­fe­n­si­vo antes de in­s­ta­lar­lo. Por este motivo, los expertos re­co­mie­n­dan no usar un único sistema de ai­s­la­mie­n­to de procesos, sino varios al mismo tiempo y a distintos niveles. Así, por ejemplo, la llamada te­c­no­lo­gía multi-sandbox array aplica diversas sandboxes en la misma nube.

En la siguiente tabla pre­se­n­ta­mos de nuevo un resumen de las ventajas y de­s­ve­n­ta­jas de una sandbox:

Ventajas In­co­n­ve­nie­n­tes
Es un entorno de prueba co­n­tro­la­do para software nuevo. Los usuarios creen estar seguros y cometen ne­gli­ge­n­cias.
Protege el hardware, el sistema operativo o el registro del sistema. Las sandboxes más antiguas tienen lagunas de seguridad.
No permite accesos no au­to­ri­za­dos a los datos del sistema anfitrión. Las he­rra­mie­n­tas de sandbox completas son caras y consumen muchos recursos.
No hay co­n­fli­c­tos entre programas y sistemas ope­ra­ti­vos ni entre los propios programas.
La na­ve­ga­ción por Internet es segura gracias a la pro­te­c­ción contra el malware.
En resumen

El ai­s­la­mie­n­to de procesos ofrece a los de­sa­rro­lla­do­res un entorno seguro en el que poder probar con tra­n­qui­li­dad software en proceso de pe­r­fe­c­cio­na­mie­n­to. En lo que a la seguridad in­fo­r­má­ti­ca se refiere, las sandboxes son es­pe­cia­l­me­n­te eficaces si se aplican en diversas capas y se combinan con otras medidas.

Ir al menú principal