2010-01-03 10 views
12

Quiero aprender más sobre sandboxing. No solo sobre eso. Quiero aprender que voy a poder escribir un simple sandbox.¿Quieres aprender sobre Sandboxing?

Sorprendentemente, no hay ninguna información disponible en ninguna parte. Incluso el artículo de Wikipedia no es bueno.

¿Puede alguien sugerirme buen material. Sé que es un concepto de nivel muy avanzado. Entonces, ¿cuáles son los requisitos previos para aprender & dominarlo.

+1

http://stackoverflow.com/questions/1590337/using-the-google-chrome-sandbox – claws

+0

Los miembros de http://sandboxing.org pueden tener algunos buenos consejos para usted. –

+0

Lea http://syprog.blogspot.in/2012/03/faking-kernel32dll-amateur-sandbox.html y http://www.fr33project.org/papers/p65_0x0a_phook%20-%20The%20PEB%20Hooker_by_Shearer%20and % 20Dreg.txt – claws

Respuesta

1

La respuesta probablemente será específica del idioma. Desafortunadamente, la mayoría de los idiomas no tienen capacidades de sandboxing incorporadas. Pero los lenguajes funcionales tienden a ser lo suficientemente poderosos como para poder construirlos desde cero sin extender el lenguaje.

En Tcl el mecanismo básico es la creación de intérpretes de esclavos:

interp create -safe sandbox 
interp eval sandbox $set_up_code 
set result [interp eval sandbox $unsafe_code] 
7

lectura sobre vínculos de API, por ejemplo SandBoxie ganchos núcleo de Windows para filtrar todas las llamadas a API del sistema de ficheros y redirige el resultado es de cajón de arena, se podría enganchar API y filtrarla, pasar únicamente los parámetros válidos, errores de regresar para las llamadas no válidas

para la API de enganche se encuentra un montón de materiales en la red, probar codeproject.com

+1

+1 para sandboxie, me encanta ese programa ... Al menos, lo hice, antes de obtener Win64 :( –

3

Una simple caja de arena sería simplemente un entorno en el que dejes que 'algo ing 'ejecutar, pero restringir lo que puede hacer.

Normalmente, este "algo" es un lenguaje ya existente, como Java, o JavaScript, o C#, o código nativo. Java tiene apis de "sandboxing" para applets y demás, y .NET tiene varios niveles de "confianza", JavaScript tiene los límites impuestos por los intérpretes (navegadores).

Así que es un poco raro "escribir" su propia zona de pruebas a menos que también tenga un idioma que desee para la zona de pruebas.

¿Tiene ese lenguaje? ¿De qué quieres aprender, específicamente?

+0

ooooh .. Entonces no estoy en todos refiriéndonos al entorno limitado del idioma que establece restricciones sobre lo que los usuarios pueden escribir. Me refiero al entorno limitado que está en chrome, que restringe el acceso a los recursos del sistema, como un entorno limitado de antivirus que permite que la aplicación se ejecute pero intercepta cada intento malicioso e informa el usuario. – claws

+2

garras: Es lo mismo, el antivirus solo trata de ver qué función llama la aplicación nativa y trata de decidir si es o no "legítima". Usted sabe lo que puede encontrar divertido; Programación. C# como 'PostSharp', Java también tiene un marco. Te permite conectar todo tipo de llamadas a funciones y luego hacer varias cosas en esos puntos. Puede permitirle explorar la idea (pero no es una "caja de arena" real). Si desea aprender sobre el concepto de seguridad (es decir, cómo se hace exactamente), busque en los niveles de confianza de .NET (pero prepárese para aburrirse mucho: P). Espero que esto ayude. –

2

Esto es muy Depende de qué quieres sandbox. Si se trata de un sistema en toda regla con múltiples interfaces/idiomas disponibles, que realmente no desea volver a inventar la rueda, pero ejecutar una máquina virtual en VirtualBox, QEmu o some other alternative

En cualquier caso, una caja de arena ES, al menos en algún nivel una virtualización del sistema que se supone que se está ejecutando ...

Si necesita aplicaciones de recinto de seguridad para un único idioma (interpretado), la modificación del intérprete suena como un enfoque sensato.

+0

'sandboxie' es el software que describe exactamente lo que tenía en mente. – claws

1

Escribí overview of the ways of sandboxing within Linux el otro día, que enlaza con muchas referencias para las diferentes técnicas. Métodos similares son aplicables en otros sistemas operativos. Espero que sea útil; tampoco pude encontrar documentos exhaustivamente documentados.

+0

Gracias por ese enlace. – claws

Cuestiones relacionadas