La premisa es esta:
Tengo una aplicación que se configuró en su código para que solo se ejecute en las versiones 10.4 a 10.9.2 de OS X. (Cuando intento instalarlo, aparece el mensaje "Esta versión de ____ es para Mac OS X 10.4 a 10.9.2"). Actualicé a 10.9.3, y el desarrollador solo necesita actualizar la aplicación para corregir esta restricción en su herramienta.
De hecho, estoy en contacto con el desarrollador, quien dice que está "demasiado ocupado" para trabajar en la aplicación o publicar una actualización en este momento.
Descubrí que la aplicación solo está leyendo /System/Library/CoreServices/SystemVersion.plist
para determinar la versión del sistema operativo, y logré eludir la restricción del instalador editando temporalmente el archivo usando esta guía. Pero después de revertir los valores de plist a 10.9.3 y reiniciar el sistema para comenzar (con suerte) usando la aplicación, vi que incluso verifica SystemVersion.plist
que se ejecute también, no solo durante la instalación.
Me preocupa que si me mantengo SystemVersion.plist
en 10.9.2 indefinidamente arruinaría otras partes del sistema, como las actualizaciones de la App Store y similares.
Así que mi idea ahora es tratar de encontrar algún método o herramienta, para bloquear la aplicación para que no pueda leer SystemVersion.plist
por completo. Piense en ello como una versión de 'sistema de archivos' de Little Snitch , si lo desea, solo una forma de crear personalizado. reglas, para procesos específicos, que impiden el acceso de lectura y/o escritura, a archivos/carpetas específicos en el sistema.
Tal vez solo haría que la aplicación arrojara un error y no se ejecutara en absoluto (probablemente podría probar esto moviendo temporalmente el archivo plist a la Papelera durante solo 30 segundos mientras intento instalarlo/ejecutarlo), pero en cualquier caso, creo es algo realmente útil para poder tener, para fines de seguridad potentes, al igual que el acceso a la red de bloqueo personalizado para aplicaciones en Little Snitch .
Entonces, ¿hay alguna herramienta de terceros increíble, o incluso una herramienta OS X / Xcode nativa, que pueda hacer esto? ¿Alguna idea de lo que debería suceder de todos modos, en cuanto al sistema/programación? Ajustar con 'Compartir y Persimmons' para un archivo en Finder me permite controlar el acceso del usuario , pero no el proceso.
Simplemente puede usar las funciones integradas de sandboxing de Mac OS X.
Cree un perfil personalizado que limite el acceso al archivo SystemVersion.plist, usando una sintaxis como esta:
(version 1)
(deny file* (literal "/System/Library/CoreServices/SystemVersion.plist"))
(allow default)
Guárdelo como, por ejemplo, ~/myprofile.sb y luego ejecute su programa de esta manera:
sandbox-exec -f ~/myprofile.sb "/Application/My Program.app/Contents/MacOS/My Program"
SystemVersion.plist
, como sospeché que podría ser. Pero al menos ahora describimos el procedimiento básico para esta característica de seguridad general realmente genial; ¡Esto funcionó bien con otras aplicaciones! Aún así, sería bueno probar su idea de las Preferencias del sistema de espacio aislado en sí. Pero, cuando lo probé ( sandbox-exec -f ~/myprofile.sb "/Applications/System Preferences.app/Contents/MacOS/System Preferences"
), también arrojó Abort trap 6, ¿alguna idea?(allow default)
funciona bien! Lo cual es bueno (supongo) - ¡chico, has dado en el clavo hasta ahora! eres un gurú!!! Yo también estoy aprendiendo mucho, gracias. Entonces, en cuanto a la idea de las canalizaciones con nombre (y nuevamente, primero debería probar esto en el instalador de la aplicación .app): ¿qué pocos comandos haría para configurar eso? He buscado en Google un poco y necesito orientación sobre cómo hacerlo :). Gracias. Seguiré buscando en Google por ahora, pero me siento un poco inmerso (esto es algo realmente avanzado y oscuro) y ciertamente no quiero estropear las cosas... será bueno documentar todo esto de todos modos.La aplicación Hands Off tiene esta función:
Supervisión del acceso al disco
Las aplicaciones presentes en su computadora pueden leer, almacenar o borrar libremente información en su computadora sin su conocimiento. Con Hands Off!, puede monitorear y controlar el acceso al disco desde todas las aplicaciones para evitar que obtengan información confidencial, borren sus datos o almacenen cookies.
Y resulta que incluye la función de firewall de red de Little Snitch.
https://www.macworld.com/article/3190149/little-flocker-reincarnates-at-f-secure-in-free-beta.html :
Little Flocker, una herramienta que restringe el acceso de aplicaciones y procesos del sistema a archivos sin permiso. No pudo dar detalles, pero recientemente F-Secure, una empresa líder en desarrollo y análisis de seguridad, anunció la compra de Little Flocker, que ahora se llama Xfence.
MacOS Catalina ahora tiene esta característica similar:
Protecciones de datos
macOS Catalina verifica con usted antes de permitir que una aplicación acceda a sus datos en sus carpetas Documentos, Escritorio y Descargas; unidad iCloud; las carpetas de proveedores de almacenamiento en la nube de terceros; media removible; y volúmenes externos. Además, se le preguntará antes de que una aplicación pueda realizar el registro de claves o capturar una imagen fija o una grabación de video de su pantalla.
njboot
usuario46942
usuario46942
Info.plist
como elInfo.plist
dentro del archivo .app anidado, no tienen esa cadena. De todos modos, originalmente lo verificó en el archivo del instalador, en el instalador, el código para verificar la versión del sistema operativo parecía estar dentro del archivo ejecutable compilado de Mac.njboot
usuario46942