Sei sulla pagina 1di 12

Una mirada hacia el Sandbox

Resumen

La seguridad en los sistemas operativos y en las aplicaciones computacionales es


de vital importancia. En los últimos años para la implementación de la seguridad y
la protección en los diversos entornos, se ha usado el término de Sanbox.

El Sandbox es una técnica que permite que los procesos se ejecuten


aisladamente, del sistema, sin interferir unos con otros y se ha usado como parte
de la seguridad de los sistemas operativos.

El Sandbox restringe el acceso al sistema operativo principal, es un mecanismo


que permite crear ambientes controlados y monitorizados, de los diferentes
procesos, de igual manera sirve para ejecutar procesos no confiables.

El presente documento se realizó mediante una revisión sistemática, con el


objetivo de actualizar los conocimientos existentes sobre el tema; se decidió
realizar una revisión bibliográfica acerca de las conceptualizaciones más
importantes relacionados con este tópico, para responder a las preguntas de
investigación, ¿Qué es un Sandbox y cuáles son sus aplicaciones?

Como resultado de la presente, se ha referenciado gran cantidad de bibliografía


existente donde diferentes autores tienen su conceptualización del término de
Sandbox y se encuentra relacionada con el término de virtualización. Se ha
concluido que el término puede tener diversas aceptaciones e incluso, diversos
autores, lo usan como sinónimos de máquina virtual y máquina extendida, en
algunos casos. De igual manera se encontró que el Sandbox se aplica en diversos
sectores empresariales, para la simulación y la seguridad informática.

Palabras clave.

SandBox, Máquinas Virtuales, Sistemas Operativos


Introducción

El hombre ha interactuado con sistemas operativos y con todos los conceptos que
ello conlleva, desde hace más cincuenta años.

El entendimiento de un sistema operativo es una tarea compleja y ardua, ya que


presupone un conocimiento profundo e íntimo del hardware de la máquina. Los
sistemas operativos varían dependiendo de muchos factores a considerar.

El sistema operativo entendido como gestor es, un conjunto de programas que se


encargan de gestionar o administrar los recursos de un sistema de cómputo,
haciendo que estos funcionen de una manera correcta, eficiente y eficaz; y así,
proveer servicios al usuario a través de una interfaz amigable.

Se puede conceptualizar el sistema operativo como una máquina extendida, es la


que funciona sobre el hardware de la computadora presentando al programador
una abstracción más fácil de programar que accionar, en forma directa sobre el
hardware subyacente, ocultando las peculiaridades del hardware; provee un
ambiente operacional para los usuarios y los programas de aplicación.

Una parte fundamental del sistema operativo es el Kernel o núcleo y es definida


como la parte que se ejecuta en modo privilegiado, por lo tanto, es el principal
responsable de gestionar y facilitar a los distintos programas los recursos de la
computadora, a través de servicios de llamada al sistema; permanece en la
memoria principal, permite la planificación y el control de la ejecución de los
procesos.

Por lo tanto, una de las actividades más importantes del sistema operativo es la
implementación de los procesos; es decir, son todos los programas o aplicaciones,
cuya ejecución es solicitada por los usuarios; en otras palabras se ejecutan en
memoria en forma de procesos; por lo tanto, un proceso se define como un
programa en ejecución y de una forma más precisa, como la unidad de
procesamiento gestionada por el sistema operativo.

El sistema operativo mantiene por cada proceso una serie de estructuras de


información que permiten identificar las características de éste.
Una de las funciones principales de un sistema operativo, es la de tomar todos los
recursos físicos de un sistema de y gestionarlos; proporcionándolos de manera
virtual y es logrado por medio de una abstracción del hardware.

En la actualidad las empresas están orientadas al uso extensivo de la Tecnologías


de la Información y Comunicación, aumentando el uso de medios informáticos por
parte de los usuarios y las probabilidades de ser vulnerables por procesos no
deseados; por ende los sistemas operativos deben permitir el manejo y el uso de
nuevas estrategias de seguridad y de protección.

Existen diversas técnicas y estrategias usadas para la protección de procesos no


deseados dentro de un sistema; en éste artículo se propone la búsqueda y
entendimiento del Sandbox y sus diferencias o similitudes con máquina virtual o
máquina extendida, para el uso de estrategias de seguridad y protección.

Antecedentes

En Octubre del 2016 fue presentado en la facultad de ingeniería de la Universidad


Nacional Autónoma de México, el trabajo análisis de malware con cuckoo
Sandbox, (Godinez, 2016).
El trabajo de (Mimoso, 2013) explica como el malware detecta si está siendo
ejecutado en una máquina virtual o en una Sanboxing.
Las aplicaciones que maneja el Sandboxing, presentado en la universidad de
Pennsylvania por Vassilis Prevelakisel (Prevelakisel, 1996)
Brian (Brian B. , 1996) Extensibilidad, seguridad y rendimiento en el establece la
definición de Sandboxing.
Implementando la máquina virtual de java (Brian C. , 1996).
Por su parte 1996 (Ian, 1996), la virtualización detecta el malware y no daña a las
aplicaciones ya instaladas.
El trabajo de Lucco, Robert Wahbe Steven de 1993, aislamiento de fallas basado
en software, (Lucco, Eficiente aislamiento de faltas basado en software, 1993).

Metodología
La revisión bibliográfica partió de la definición de los criterios para la inclusión de
la investigación, continuó con la ubicación de las fuentes de datos, la organización
selección de documentos y finalizó con la sistematización el análisis e integración
de resultados.

La metodología sigue los pasos que propone (Gómez-Luna, Fernando-Navas,


Aponte-Mayor, & Betancourt-Buitrago, 2014).

Desarrollo

Virtualización y máquinas virtuales:

Para (Garcia, 2006) las máquinas virtuales (VM) son una técnica que recrean
entornos y dispositivos virtuales donde (Alcober, 2015) mencionan que existe una
capa de software encargada de esta virtualización llamada hypervisor. Esta capa
divide todos los recursos de hardware disponibles de la máquina.

Una VM funciona mediante simulación de un equipo completamente virtualizado


dentro de uno físico; se les denomina invitado o huésped a la VM y host o
anfitrión, a la máquina física”, (Muñoz, 2008). Lo que Muñoz comenta es que una
VM es un sistema operativo, dentro de otro sistema operativo físico; y la M.V
cuenta con algunos privilegios que provienen del sistema operativo original para
que su funcionamiento sea el correcto.

Sin embargo, no es el único uso que tiene una VM, ( Calvache Cunalata & Flores
Navarrete, 2016) explican que también se puede implementar como VM de
aplicación. En lugar de igualar un sistema completo, soporta un proceso al que se
la va a proporcionar un entorno de ejecución específico pudiendo ser usado en
cualquier equipo y comportándose con las mismas características. Uno de los
ejemplos más conocido de esto es la Máquina Virtual de Java, JVM.

Existen dos posibilidades de interpretar las máquinas virtuales, (Ezeta, 2017) da a


conocer que la primera forma es ejecutando la VM directamente en el hardware,
mientras que (Andrade Sarmientos & Suarez Vanenzuela, 2012) establecen que la
segunda forma de implementar, es mediante un software de emulación en el
hardware sobre el que se ejecuta la VM y se encuentra basado completamente en
software.

Se ha definido el término de máquina virtual, ahora se establece el término


Sandbox.

“Una Sandbox es una técnica de seguridad usada para probar o analizar el


comportamiento de un archivo, de manera aislada mediante un ambiente
virtualizado con privilegios necesarios para correrlo, pero también restringidos
para no afectar el sistema principal”, (Messmer, 2015); quiere decir que, la
Sandbox es un mecanismo de seguridad.

(Keragala, 2016), menciona que una Sandbox provee un conjunto de recursos


controlados para que las pruebas se ejecuten en los sistemas invitados, como
espacio reservado en disco y memoria, acceso, donde suele girar en torno a la
llamada chroot.

Un chroot en un sistema operativo Unix es una operación que cambia el directorio


raíz, afectando solamente al proceso actual y a sus procesos hijos, (Khatib, 2015)

Así se observa que una Sandbox se piensa como un ejemplo de uso de


virtualización. El propósito es el análisis y la monitorización, han de ser ejecutados
en un nivel de privilegios que esté por encima, y fuera, del entorno a analizar. Es
decir, al nivel del hypervisor.

Pero la Sandbox no solo se limita a aislar ciertos procesos y recursos del sistema,
también se puede encerrar una máquina virtual entera dentro del sistema de
Sandboxing.

(Chaos, 2015), comenta que la actividad de la Sandbox, queda monitorizada y se


obtiene información muy valiosa a la hora de caracterizar el comportamiento de
muestras potencialmente maliciosas.

Cuando sucede esto, la capacidad de las VM se convierte en una imagen previa


del sistema que es de gran utilidad ya que aclara el poder de experimentar, una y
otra vez el código potencialmente dañino o desconocido en su entorno, sin que se
tenga que reinstalar o formatear el equipo VM.
La Sandbox es un mecanismo de seguridad usado para probar o verificar el
comportamiento de un archivo de manera aislada del resto del sistema y desde la
que se puede monitorizar la actividad de la muestra en cuestión. (Bershad, 1996).

La Sandbox normalmente proporciona una parte limitada de espacio de disco,


acceso a red u otros recursos del sistema y cualquier cosa creada o modificada
por la muestra, no será visible fuera de la Sandbox, ni será guardada tras finalizar
la ejecución del análisis. El análisis y la monitorización, han de ser ejecutados en
un nivel de privilegios que esté por encima, y fuera, del entorno a analiza, es decir,
al nivel de la máquina virtual.

Los Sandbox no solo se limitan a aislar ciertos procesos y recursos del sistema,
sino que puede aislar una máquina virtual entera dentro del sistema de Sandbox,
con lo que toda su actividad quedará monitorizada y se obtendrá información muy
valiosa a la hora de caracterizar el comportamiento de programas maliciosos
(Case., 1996), ya que está en un entorno elegido y no hay necesidad de reinstalar
o formatear el equipo, con lo anterior se tiene la ventaja sobre el malware, debido
a que se puede detectar de manera temprana.

La Sandbox es útil para muchos propósitos, como ejecutar páginas web o


archivos no confiables dentro de un navegador, el Sandbox entiende la seguridad
de los núcleos del sistema operativo (Bershad, 1996) y limita el daño causado por
las aplicaciones comprometidas (Golbderg, 1996). El código de invitado no tiene
restricciones en el acceso de lectura ni implica un costo de rendimiento básico
(Lucco, Eficiente aislamiento de falas basado en software, 1993).

Es por lo que ahora podemos implementar el concepto de máquina virtual al


concepto de Sandboxing, es decir, “una aplicación del término Sandbox donde es
asignado privilegios y espacios limitados de memoria bajo una virtualización en el
sistema operativo (Wagner, 1996). Para Wagner el Sandboxing emula un entorno
virtual con capacidades restringidas y suficientes para ejecutar procesos, con esto,
hace ver que una máquina virtual y el sandboxing son cosas distintas a pesar de
que ambos manejan la virtualización.
Es decir, la teoría del Sandboxing dice que es una técnica que usa la virtualización
de la forma como su nombre lo indica; la Sandbox es la principal herramienta de
seguridad de programas que generalmente están infectados, son de origen
desconocido o contienen código malicioso, ejecución de código no probado, de
usuarios, sitios web que no son confiables. (Fernández, madrid, & Salvador,
2009).

Aplicaciones

Los campos de aplicación de la Sandbox son diversos, entre los que se


encuentran:

En los sistemas operativos Sandbox permite crear un espacio aislado en la


memoria que permite instalar y ejecutar aplicaciones de forma segura y totalmente
aisladas del resto del sistema operativo y de todos los datos guardados en él.
Vokoroko, Baláž, Madoš (2015).

El Sandbox es simple, auditable, y está basado en la separación de usuarios de


los permisos de archivo. Bohorquez, Pinzon (2007).

En el caso del sistema operativo Android el asunto es distinto. En Android no hay


restricciones sobre como una aplicación puede escribirse para reforzar la
seguridad, en este sentido, código nativo es tan seguro como código interpretado
Bohorquez, Pinzon (2007). Esto es porque todas las aplicaciones y sus recursos
están en el nivel de seguridad del sistema operativo y cada proceso se ejecuta en
su propio Sandbox.

Un sistema operativo puede dar soporte de ejecución a múltiples usuarios, que


ejecutan de manera concurrente. Por ello, una de las funciones principales del
sistema operativo es proteger los recursos de cada usuario para que pueda
ejecutar en un entorno seguro mejor dicho Sandbox. Donde los mecanismos
permiten controlar el acceso a los objetos del sistema permitiendo o denegándole
sobre la base de información tal como la identificación del usuario, el tipo de
recurso, la pertenecía del usuario a cierto grupo de personas, las operaciones que
puede, hacer el usuario o el grupo con cada recuso, sin mencionar algunos.
La existencia de los mecanismos de seguridad obliga a mantener un compromiso
constante entre separación y comparación, Martinez (2007).

Un programa antivirus trata de detectar, identificar y contener el malware antes de


que este pueda llegar a infectar un sistema o red según Christodorescu, Kinde,
Jha, Katzenbeisser y Veith (2005).

El software que cumple deliberadamente los objetivos maliciosos de una atacante


se conocen como software malicioso o malware Bayer, Moser, Kruegel, (2006).

Como mencionan (Christodorescu, Kinde, Jha, Katzenbeisser y Veith (2005)), para


poder evitar que un malware pueda causar daño es importante poder contenerlo y
bien dicho de otra manera aislarlo de manera que no afecte el sistema.

Es por esto que la seguridad informática a menudo se ve en la necesidad de


realizar un análisis de malware, esta tarea requiere que se realice un análisis en
un entorno controlado de modo que el comportamiento del malware no afecte a los
dispositivos de cómputo utilizado en dicho análisis.

Básicamente, este entorno controlado es, Sandbox, este utiliza entornos


virtualizados que simulan un ambiente físico para asegurar que los procesos
analizados se comporten lo más cercano posible a como lo harían en el ambiente
real, con la finalidad de proporcionar información.

Por ultimo para los navegadores se tienen lo siguiente:

Como se sabe los navegadores son un programa o software, por lo general


gratuito, que nos permite visualizar páginas web a través de internet además de
acceder a otros recursos de información alojados también en servidores web.

Los navegadores se comunican con los servidores web por medio del protocolo de
transferencia de hipertexto (HTTP) para acceder a las direcciones de internet
(URLs) a través de los motores de búsqueda.

Como se sabe hay muchos navegadores en la actualidad, Mozilla Firefox, que es


elogiado sobre todo por su seguridad a través de los sistemas Sandbox.
Romero (2018) define este proceso de la siguiente manera, este proceso consiste
en aislar proceso del resto del sistema operativo y que se ejecutan de manera
controlada evitando que accedan a otra información que no es necesaria para su
funcionamiento.

Firefox tiene un proceso padre y una serie de procesos hijo que descienden de él,
el proceso padre tiene acceso a los recursos del propio sistema operativo, pero los
hijos se encuentran aislados en estos pequeños entornos llamados Sandbox.
Cada uno de estos entornos tiene su propio conjunto de permisos que limitan su
acceso a componentes del navegador, a otras APIs o a otros procesos.

Dejando en claro los hijos son separados y ejecutados de manera aislada,


evitando así corrupción del sistema.

El uso del Sandbox en el cómputo en la nube, como lo establece (Vera-Rivera,


2016) con su Modelo de nube híbrida (hybrid cloud) de Infraestructura como
servicio para mejorar el rendimiento de la plataforma.

Conclusiones
Existen diversas técnicas y estrategias usadas para la protección de procesos no
deseados dentro de un sistema; en el artículo expuesto anteriormente se planteó
el entendimiento de una de las técnicas más usadas actualmente, llamada
Sanbox.
Es necesario entender el concepto de máquina virtual, con base a este se define
una Sandbox y posteriormente se implementa la Sandbox.
Se concluye que una máquina virtual es una simulación de la parte esencial del
sistema operativo donde es necesario utilizar una parte dividida de los recursos sin
comprometerlos, ya que esta virtualización engaña haciéndole creer que si tenga
estos recursos propios con un coste de tiempo de procesador mayor.
La Sandbox hace esta simulación pero solamente con la parte necesaria para
crear un área donde se aislé o pruebe un proceso en tiempo de ejecución donde
este puede analizarse, estudiarse y controlarse sin comprometer al resto del
sistema.
El Sandboxing tiene como objetivo detectar el código de malware al someterlo a
un sistema basado en computadora de un tipo de otro para analizarlo en busca de
comportamientos y características que indiquen malware. Esta técnica asigna a
los procesos un espacio virtual que se puede controlar, monitorear y automatizar.
El Sandbox es muy utilizado en el software de hoy en día, como en sistemas
operativos, páginas web, en servicios financieros, entre otros. Con el fin de
protegerlos de archivos o programas de fuentes desconocidas y así no dañar a los
sistemas principales donde al ser detectados se aíslan del sistema encerrándolo
en el espacio virtual que se crea.

Trabajos citados
Calvache Cunalata, E. J., & Flores Navarrete, S. M. (5 de Abril de 2016). bibdigital. Obtenido de
bibdigital: bibdigital.epn.edu.ec

Alcober, A. S. (15 de Noviembre de 2015). Zaguan. Obtenido de Zaguan Unizar:


http://zaguan.unizar.es

Andrade Sarmientos, J. X., & Suarez Vanenzuela, F. R. (6 de Abril de 2012). Tesis Virtuales.
Obtenido de Tesis Virtuales: www.tesisvirtuales.com

Bershad, B. (1996). EXtensibilidad, seguridqa y redimiento en el sistema operativo. En B. Bershad,


EXtensibilidad, seguridqa y redimiento en el sistema operativo (pág. 243).

Brian, B. (1996). Extensibilidad, seguridad y rendimiento del sistema operativo. En B. Brian,


Extensibilidad, seguridad y rendimiento del sistema operativo (pág. 243).

Brian, C. (1996). implementado la maquina virtual de java. En C. Brian, implementado la maquina


virtual de java (pág. 70).

Case., B. (1996). Implementado la maquina virtual de Java. En B. case, Implementando la maquina


virtual de java (pág. 70).

Chaos, D. (17 de Agosto de 2015). Dr.Chaos. Obtenido de Dr.Chaos:


http://www.drchaos.com/malware-sandbox-and-breach-detection-evasion-techniques.

Ezeta, J. W. (2017). Propuesta para implementacion de maquina virtuales. En J. W. Ezeta,


Propuesta para implementacion de maquina virtuales (pág. 89). Guayaquil.

Garcia, F. J. (4 de Diciembre de 2006). Virtualizacion : Maquina Virtual. Obtenido de Astic:


www.astic.es

Godinez, A. B. (2016). analisis del malware con cuckoo sanbox. En A. B. Godinez, analisis del
malware con cuckoo sanbox.

Golbderg, I. (1996). Un entorno seguro para aplicaciones de ayuda no confiables. En I. Golbderg,


Un entorno seguro para aplicaciones de ayuda no confiables. San jose .
Gómez-Luna, E., Fernando-Navas, D., Aponte-Mayor, G., & Betancourt-Buitrago, L. A. (2014).
Metodología para la revisión bibliográfica y la gestión de información de temas científicos,
a través de su estructuración y sistematización. Dyna.

Ian, G. (1996). un entorno seguro para aplicaciones de ayuda no confiables. En G. Ian, un entorno
seguro para aplicaciones de ayuda no confiables. san jose.

Keragala, D. (16 de Enero de 2016). SANS Institute. Obtenido de Detecting Malware and Sandbox
Evasion Techniques: dkeragala@att.net

Khatib, M. (24 de Agosto de 2015). Github. Obtenido de Github:


https://github.com/muammar/muammar.github.io/blob/master/_posts/2009-06-16-
como-hacer-jaulas-chroot-y-montarlas-al-momento-de-iniciar-el-sistema-
automaticamente-en-debian.md

Lucco, R. W. (1993). Eficiente aislamiento de falas basado en software. En R. W. Lucco, Eficiente


aislamiento de falas basado en software (pág. 216).

Lucco, R. W. (1993). Eficiente aislamiento de faltas basado en software. En R. W. Lucco, Eficiente


aislamiento de faltas basado en software (pág. 216).

Messmer, E. (13 de Agosto de 2015). Networkworld. Obtenido de Networkworld:


http://www.networkworld.com/article/2164758/networksecurity/malware-detecting--
sandboxing--technology-no-silver-bullet.html

Muñoz, C. (2008). El hombre y la maquina. Red de revistas cientificas de America Latina y el Caribe,
141-143.

Prevelakisel, V. (1996). Aplicaciones del sanboxing. En V. Prevelakisel, Aplicaciones del sanboxing.

Vera-Rivera, F. (2016). MODELO DE NUBE HÍBRIDA (HYBRID CLOUD) DE INFRAESTRUCTURA COMO


SERVICIO PARA MEJORAR EL RENDIMIENTO DE LA PLATAFORMA SANDBOX.

Wagner, D. (1996). A Secure Environment for Uncrusted Helper Applications. Lima: Lambor.

El concepto de “Sandbox” es utilizado en informática cuando se trata de temas


relacionados con la seguridad y casi siempre se refiere a una zona restringida, en
la que los elementos que se ejecutan en el entorno, se encuentran aislados de los
recursos sensibles del sistema y con acceso restringido a funciones críticas.
(Informática, 2014)

A más de ser un sistema centralizado, donde una máquina se encarga de ejecutar


los componentes “core” del sistema y por otro lado, hay máquinas virtuales
aisladas que permiten la ejecución de los programas que deben ser analizados. La
máquina donde corre Cuckoo se encarga de gestionar el estado de cada una de
las máquinas virtuales definidas en el fichero de configuración de la herramienta y
se encarga, entre otras cosas, de iniciar, detener y enviar muestras de Malware a
las máquinas virtuales especificadas. (Informática, 2014)

Potrebbero piacerti anche