Cómo el Sandboxing de Aplicaciones en macOS Protege a los Usuarios

Introducido en 2007 y requerido por 2012, el sandboxing es una herramienta utilizada por macOS para limitar el daño que una aplicación secuestrada puede causar. Apple dice: “Si bien el App Sandbox no previene ataques contra tu aplicación, minimiza el daño que uno exitoso puede causar. El sandboxing de aplicaciones en macOS protege a los usuarios al limitar cuánto problema puede causar una aplicación.

También lee: 4 de las Mejores Aplicaciones Sandbox para Windows para Mantenerte Seguro

¿Qué es el Sandboxing de Aplicaciones en macOS?

Cada aplicación tiene su propia área para jugar: un “sandbox”. Si la aplicación quiere alcanzar fuera de su sandbox, necesita pedir permiso al sistema operativo. Dependiendo de la configuración del sandbox, el sistema operativo negará o aprobará la solicitud de la aplicación mientras proporciona la menor información específica posible para completar la solicitud.

about-sandboxing

Piensa en un coche. El conductor está protegido por múltiples características de seguridad como frenos antibloqueo, airbags, zonas de deformación, y más. En 2007, momento de la introducción del Sandboxing de Aplicaciones, no existían sistemas informáticos análogos. Como preguntó la presentación introductoria, ¿dónde estaban los cinturones de seguridad para las computadoras? El sandboxing protege a los usuarios como los coches protegen a sus conductores: enfrentando fallos con sistemas de reducción de daños. Ya sea causado por actividad maliciosa o errores de codificación, el daño disminuye.

Debido a que el sandboxing limita lo que las aplicaciones pueden hacer, puede restringir la libertad del desarrollador. Las aplicaciones sandbox funcionan más lentamente y tardan más en desarrollarse. Gracias a la enorme capacidad del Mac, los límites del sandbox pueden tener un gran impacto en la compatibilidad de varias aplicaciones. Como resultado, los usuarios avanzados a menudo se ven impulsados a elegir aplicaciones que funcionan fuera del sandbox, ya sea por problemas de rendimiento o de características.

¿Cómo Funciona el Sandboxing de Aplicaciones?

El sandboxing se basa en el principio de menor privilegio. En resumen, los sistemas pueden hacer lo que necesitan hacer, pero no más. Al limitar cada parte de un sistema a completar solo su objetivo declarado, reduces la posibilidad de que tu aplicación sea secuestrada. Por ejemplo, no hay razón para que una aplicación de linterna tenga acceso a tu lista de contactos.

Las aplicaciones pueden alcanzar fuera de su sandbox, pero solo con el permiso del sistema operativo. Toma el cuadro de diálogo “Guardar y Abrir” en macOS. La aplicación, dentro de su sandbox, no puede acceder directamente a los recursos del sistema de archivos en tu disco duro. No puede, por ejemplo, dibujar un panel abierto en “~/Documents”. En su lugar, la aplicación debe pedir al API de Powerbox con las clases NSOpenPanel y NSSavePanel para acceder al panel.

macos-app-sandboxing-powerbox-design

La aplicación no puede ver lo que está sucediendo dentro de Powerbox directamente. Solo el archivo abierto o guardado será accesible para la aplicación. De esta manera, las aplicaciones pueden realizar funciones críticas sin riesgo innecesario.

Esa funcionalidad está habilitada por un derecho (específicamente com.apple.security.files.user-selected.read-write). Los desarrolladores de aplicaciones establecen derechos que declaran lo que hace una aplicación. Basado en los derechos declarados, el sistema operativo permite a la aplicación un nivel de funcionalidad apropiadamente limitado.

Este proceso de pensamiento subyace a la totalidad del modelo y mecanismo de sandboxing de aplicaciones: las aplicaciones deben declarar intención y pedir permiso a un jefe a nivel de sistema operativo para lograr cualquier cosa peligrosa.

Aplicaciones Sandbox vs. Aplicaciones No Sandbox

Desde el 1 de junio de 2012, todas las aplicaciones de terceros distribuidas a través de la Mac App Store deben estar sandboxed. Si bien el sandboxing permite una amplia gama de funcionalidades de aplicaciones, encontrarás que las aplicaciones de la Mac App Store a menudo son más limitadas que sus componentes no sandboxed. Algunos desarrolladores incluso mantienen dos versiones: una aplicación completamente funcional para descarga directa y una versión limitada para la Mac App Store. Gracias a la mayor complejidad del desarrollo de sandbox, agregar nueva funcionalidad a una aplicación es más difícil, si es que esa funcionalidad es incluso permitida por el sistema operativo.

Si bien las aplicaciones sandbox pueden beneficiarse de la distribución a través de la Mac App Store, puedes adivinar cuán valioso pensamos que es. El sandboxing también puede ser extendido con permisos de seguridad. Si bien una aplicación no puede activar permisos de Accesibilidad por sí misma, puede pedir al usuario que lo haga.

macos-security-privacy-permissions-hero

Para ver cuáles de tus aplicaciones están sandboxed, abre el Monitor de Actividad y haz clic derecho en los títulos de las columnas para agregar “Sandbox” a la ventana.

macos-app-sandboxing-activity-monitor-view

Hay algunas aplicaciones que simplemente nunca pueden existir en un sandbox. De hecho, una variedad de casos de uso valiosos son prevenidos por el sandboxing. El sandboxing previene la comunicación, observación o modificación entre aplicaciones, limitando significativamente cómo pueden interactuar las aplicaciones. Los atajos a nivel de sistema como TextExpander están totalmente prohibidos, ya que ese nivel de funcionalidad podría ser permitido por el sandbox.

Conclusión

Si bien es prometedor, el sandboxing de aplicaciones en macOS no se ejecutó bien. Limitó los puntos de venta únicos de las aplicaciones de Mac, como la velocidad y la funcionalidad mejorada. Las aplicaciones que funcionan fuera del sandbox son casi siempre más capaces y rápidas. Desde la perspectiva de este usuario avanzado, mis aplicaciones más utilizadas son las no sandboxed. Aplicaciones como TextExpander, SnagIt y TotalFinder son todas cruciales para mi trabajo diario. Para evitar una evitación generalizada similar, los futuros sistemas de seguridad necesitan flexibilidad y poder equilibrados con transparencia.

Crédito de la imagen: Apple