La naturaleza del tipo de programa que tendría éxito en penetrar las defensas de Apple se denomina kit raíz. Debe instalarse con privilegios de usuario root y se esconde como uno de los componentes del sistema operativo. La gente de seguridad de Apple ha estado al tanto de esta amenaza. Para combatirlo, Apple ha realizado toda una serie de maniobras.
Acceso raíz deshabilitado
OSX se instala con el usuario root deshabilitado. Todas las acciones de raíz se realizan en el contexto de sudo por los usuarios administradores. Windows otorga a los usuarios administradores privilegios de root (esencialmente) La mayoría de las máquinas con Windows solo tienen usuarios administradores.
- ¿Hay problemas de salud y seguridad en un trabajo de seguridad cibernética?
- ¿Qué tan fácil es pasar por alto la seguridad de Internet de su escuela / trabajo?
- ¿FireEye es bueno?
- ¿Por qué el fuzzing es tan efectivo, aunque es un método tan ingenuo?
- ¿Cuál es la certificación de seguridad de aplicaciones móviles más barata? ¿Cuáles son algunas certificaciones?
Protección de integridad del sistema
Con la introducción de El Capitan, Apple agregó una nueva característica que bloquea todo el acceso a los archivos y programas originales que modifican estos programas desde la configuración conocida instalada actualmente. Este ha sido un gran problema para muchas aplicaciones que realizan cambios sutiles al inyectar actualizaciones y recursos en el sistema con todo el apoyo sincero de los usuarios. Algunos de mis favoritos, como Total Finder, han tocado este problema como una pared de ladrillos. Aunque el tiempo y la innovación hacen formas de lograr fines similares. Sin embargo, esta característica es tan sorprendente que incluso muchos de los desarrolladores que han optado por renunciar a los productos que entran en conflicto con esta protección están de acuerdo en que es mejor tenerla activada y luego apagarla. Esto se debe a que hace que sea un 99% más difícil instalar un kit raíz o un código similar a un virus en el OSX. Se puede deshabilitar pero no sin reiniciar, pero cualquiera que tenga acceso para hacerlo, ya posee la caja.
Aquí está la información más detallada sobre las mejoras de seguridad en El Capitán.
La instalación del paquete requiere atención del usuario
Cualquier ejecutable instalado se bloquea como un “paquete” y se notifica al usuario y se le solicita permiso para instalar. El empaque es enorme. La mayoría de los esquemas de Windows para el bloqueo de la instalación preguntan componente por componente si la instalación está permitida y el usuario no tiene idea de cómo responder basándose solo en el nombre del archivo. La pregunta se hace tantas veces que incluso el usuario más experto mantiene esto apagado, a menos que exista un peligro claro y presente. El esquema de Apple es menos molesto y está integrado en el sistema operativo.
Tienda de aplicaciones
Apple proporcionó un esquema de distribución en el que el usuario se beneficia enormemente al aceptar la aplicación más rigurosa de los derechos digitales por parte del desarrollador a cambio de precios muy reducidos. Este modelo fue desarrollado de forma manual, pero Apple lo reconoció y lo extendió a todos sus desarrolladores. Uno de mis clientes fue un desarrollador que le vendió a Apple los derechos para instalar un juego que vendemos en un sitio web para ellos por $ 19.95. Esto tuvo que ser empaquetado y enviado y esto también aumentó el costo en esa cantidad. Pero, este desarrollador también logró obtener su juego en cada nuevo iMac vendiéndolo por $ 0.25 / copia. Esto destruyó el mercado de la versión de $ 19.95 para ese juego, pero resultó que obtuvo 100 veces los ingresos al obtener una copia en millones de máquinas a solo $ 0.25 cada una.
Apple cobra una tarifa nominal por actualizar el sistema operativo, que es esencialmente gratuito para promover la velocidad máxima de adopción de nuevas tecnologías de sistema operativo. La filosofía del sistema operativo de Apple pasó de ser un centro de ingresos a una tecnología habilitadora. Al obtener el 30% de cada venta de aplicaciones, Apple se beneficia enormemente para los desarrolladores que tienen acceso a un mercado dinámico y venden mucho software. La toma de Apple es lo suficientemente pequeña como para ser esencialmente los costos de empaque y envío que de todos modos habrían ido a terceros. El desarrollador mantiene lo que el distribuidor solía cobrar para empacar físicamente en el estante de la tienda. Antes de la tienda de aplicaciones, la expectativa de ingresos del mundo real de un paquete de $ 19.95 suponía que este precio era para los minoristas y el desarrollador obtendría el 40% de esto o $ 8.00 aprox. El resto lo consumen el distribuidor y el minorista. Sin la necesidad de mantener los precios para los minoristas, el desarrollador solo puede preguntar el precio real que estaban obteniendo y la ley de la oferta y la demanda aumenta su mercado de manera casi exponencial.
Para participar en la App Store, su aplicación debe pasar pruebas rigurosas para ver si “funciona bien”. Esto va mucho más allá de lo que Microsoft intentó hacer al intentar restringir a los desarrolladores que podrían instalar fácilmente para tener que tener un certificado / identidad aprobado por Microsoft. Microsoft experimenta una ola de rechazo de sus desarrolladores por esto. La zanahoria de Apple de reducir la piratería al garantizar los derechos digitales dentro de los “límites descuidados” frente a los ahorros de los usuarios mitigó estas preocupaciones, así como el esquema de implementación que fue completamente por elección del Usuario y los Desarrolladores. Podrían participar o ignorar, y cualquier cosa en el medio. El esquema también se implementó con el tiempo y las características realmente poderosas se desarrollaron en este sistema. Por lo tanto, los usuarios y desarrolladores han aceptado los cambios a medida que se han agregado.
Apple impuso una regla estricta que requiere Sandboxing para las ofertas de App Store. Jugar bien se definió más estrictamente como mantener todos tus juguetes en tu propia caja de arena. Si desea mirar los “juguetes” de otra persona, debe solicitar un permiso explícito que el usuario pueda revocar. Esto se basa en un concepto modificado de Unix llamado chroot. Obligar a la aplicación a ejecutarse esencialmente en su propia máquina virtual (en iOS esto se llama “la cárcel”). Pero, en OSX, esto se modifica para que la aplicación se instale en el directorio de la aplicación, su configuración y datos se almacenan en un contenedor en el espacio de la Biblioteca de usuarios. Las aplicaciones auxiliares compartidas (multiusuario) se instalan en la biblioteca principal, pero se tratan como una solicitud de permiso adicional. Las aplicaciones de espacio aislado tienen prohibido el acceso para cambiar los componentes del sistema o acceder a datos que el usuario no permite explícitamente.
Estaba hablando con uno de los gerentes principales de TI en una de las agencias del Gobierno Federal en una boda. Estaba haciendo una pequeña charla y él me estaba contando sobre un gran proyecto para proteger las computadoras de sus agencias al crear una base de datos de aplicaciones seguras para descargar que pudieran rastrear la utilización. Mis ojos se volvieron cada vez más grandes a medida que avanzaba sobre el presupuesto masivo para esto … y en mi fideo estaba diciendo … solo compre Macs y obtendrá esto gratis … mmmm …
Tienes que conocer tus límites
Apple creó iOS con un sistema de encarcelamiento aún más robusto que hace que la capacidad de modificar el sistema operativo u obtener acceso a la raíz sea prácticamente imposible a través de las funciones de seguridad integradas en el procesador. Esto restringe severamente a los desarrolladores de aplicaciones y hasta el día de hoy hace imposible el soporte remoto en iOS.
Una comunidad considerable ha crecido hasta convertirse en “jailbreak” iOS, pero se necesita un esfuerzo extremo para hacer esto y, a menudo, debe rehacerse con cada actualización de software. Hacer un jailbreak a tu producto iOS lo hace vulnerable, pero debes saber esto al entrar. Debe reemplazar el firmware para liberar el dispositivo, algo que solo se puede hacer con su presencia física.
Hasta ahora, Apple ha evitado este nivel de control draconiano de OSX. Necesitaba tener un hardware completamente nuevo desde el principio para intentarlo. De ahí la división entre los ecosistemas iOS y OSX.
Abandonando C
Apple ahora está abandonando el lenguaje C. Ha sido un buen viaje, pero C tiene defectos inherentes que abren agujeros de seguridad. Este proceso llevará años, ya que las bibliotecas y aplicaciones C seguirán existiendo y serán respaldadas por sus desarrolladores hasta que el producto quede obsoleto o el costo justifique una reescritura completa. Apple vuelve a ofrecer esencialmente su reemplazo para “gratis” para asegurar la máxima velocidad de conversión, pero luego deja de esperar y mira sobre Swift of Objective C. Cuando Objective C ya no esté disponible en Xcode (Apples Development Environment), este será un pista de que la fiesta “C” ha terminado.
Una discusión más completa de la estrategia de seguridad de Apple si está interesado.
Descripción general de seguridad para desarrolladores de Apple (pdf)