Cómo Apple pretende aumentar la integridad de la aplicación

Al comunicarse con un servidor, debe confiar en la integridad de la aplicación solicitante. Apple quiere hacer esto posible en el futuro con su propio servicio de «certificación» para desarrolladores de aplicaciones.

Cómo Apple pretende aumentar la integridad de la aplicación

Con la ayuda del marco DeviceCheck, los desarrolladores pueden reducir el riesgo de uso fraudulento de su aplicación y, por lo tanto, de sus servicios. Para verificar la integridad, los servicios DeviceCheck con iOS / iPadOS 14 ofrecen una API DCAppAttestService que los desarrolladores de aplicaciones pueden construir en sus aplicaciones para validar la integridad. Una aplicación puede utilizar esto para comprobar si se ha modificado de forma no autorizada.

DCAppAttestService-API genera una clave criptográfica basada en hardware para que se verifique la aplicación. Esta clave se utiliza con la ayuda de los servidores de Apple para confirmar la legitimidad de la aplicación para las solicitudes del servidor de contenido sensible o premium. A continuación, el método generateKey (deploymentHandler 🙂 genera dicho par de claves criptográficas únicas y basadas en el dispositivo.

Si tiene éxito, el controlador de finalización de este método devuelve un identificador de clave que las aplicaciones pueden usar más tarde para acceder a la clave. El desarrollador de la aplicación debe mantener la clave pública disponible para su servicio de servidor. El dispositivo iOS guarda automáticamente la clave privada en Secure Enclave. Aquí solo se puede utilizar para crear firmas a través del servicio App-Attest.

Cabe señalar que no todos los dispositivos pueden utilizar este nuevo servicio App-Attest. Los desarrolladores de aplicaciones disponen de una comprobación de compatibilidad, pero el resultado está codificado en iOS / iPadOS y siempre devuelve «verdadero».

Certificación de la aplicación de Apple: solicitudes de servidor firmadas

App-Attest-Service también ofrece (en dispositivos compatibles) la posibilidad de validar consultas sensibles del servidor. Para ello, se utiliza la propia infraestructura de Apple para firmar las solicitudes al servidor de antemano. Así, Apple permite a los desarrolladores de aplicaciones hacer una declaración sobre la seguridad de los datos enviados. No hay ninguna indicación de la seguridad o integridad del dispositivo en sí.

Como resultado, la aplicación recibe una firma para la comunicación basada en su ID de aplicación. La documentación de Apple dice: «Para utilizar el servicio App Attest, su aplicación debe tener un ID de aplicación que usted registre en el sitio web de Apple Developer». Esto también se aplica a las aplicaciones internas. Dado que el ID de la aplicación no solo se puede determinar para aplicaciones personalizadas o disponibles públicamente, sino que también está disponible para aplicaciones empresariales, este servicio también debería funcionar sin problemas aquí.

La interacción entre el servicio de atestación de Apple y el dispositivo permite que las solicitudes firmadas se envíen al backend. Si la firma se desvía durante la validación por parte del servidor, puede terminar la comunicación con la aplicación y, por lo tanto, con el dispositivo final. La posibilidad de que una aplicación esté dañada no se puede deducir necesariamente de una firma exitosa de la solicitud.

La propia Apple admite que no pueden estar seguros de si un dispositivo en el que está instalada la aplicación está comprometido : «Por ejemplo, App Attest definitivamente no puede identificar un dispositivo con un sistema operativo comprometido». Si un dispositivo se ve comprometido por un jailbreak, definitivamente no se puede descartar con una certeza del cien por cien de que la aplicación no esté comprometida. Porque un sistema operativo roto no puede verificar de forma segura un binario o recoger los comentarios de Apple. La práctica mostrará aquí qué tan bien y con seguridad funciona este procedimiento.

Atestación: tenga cuidado con las aplicaciones corporativas

Para una categoría de aplicaciones, este servicio puede representar un obstáculo insuperable: las aplicaciones de la AppStore de Apple que, supuestamente, se hacen seguras para el uso comercial con la ayuda de técnicas de envoltura de aplicaciones. Muchos fabricantes de MDM como Microsoft ( Intune ), VMware Airwatch, MobileIron o Blackberry ofrecen soluciones para parchear funciones de seguridad faltantes en aplicaciones existentes con funciones de seguridad en el caso.

El ajuste de aplicaciones generalmente sigue un patrón idéntico.

Sin embargo, el empaquetado de aplicaciones en sí mismo se basa en métodos de seguridad que los piratas informáticos utilizan para manipular y atacar aplicaciones. Para que esta protección no se elimine simplemente, la «aplicación de host» generalmente está anclada por cadenas estrechamente entrelazadas y certificados de cliente entre la «aplicación de host» y la biblioteca de envoltura. Sin embargo, la «fiabilidad» de dicho dentado, y por tanto la protección, depende en gran medida del producto. Las llamadas a la API de la «aplicación de host» se interceptan, pero los ataques externos no se evitan de forma eficaz. Sólo un » todavía es legible para un atacante, ya que temas como la ofuscación (ocultación) no se utilizan aquí y no se pueden parchear posteriormente.

Debido a esta «implantación» en aplicaciones existentes, Apple puede evitar por completo el empaquetado para futuras aplicaciones o actualizaciones de iOS. Por tanto, es concebible que el nuevo servicio de atestación de aplicaciones ponga fin al ajetreo en el futuro, porque este es precisamente el tipo de manipulación que se puede detectar. (megabyte)

Deja un comentario