Preparándose para el tiempo de ejecución y el notario endurecidos de macOS

Con macOS Mojave, Apple introdujo soporte para Hardened Runtime y el servicio de Notario. Estos dos servicios están diseñados para mejorar la seguridad de las aplicaciones en macOS. Recientemente Apple ha declarado :


“A partir de macOS 10.14.5, todas las extensiones de kernel nuevas o actualizadas y todo el software de los desarrolladores nuevos para distribuir con Developer ID deben estar notarizados para poder ejecutarse. En una versión futura de macOS, se requerirá la notarización por defecto para todo el software ".



Hoy lo ayudará a comprender las nuevas reglas desde el punto de vista de Xamarin.
Este artículo en el blog

Seguridad en macOS


  • Firma de código: en macOS GateKeeper requiere que los paquetes de aplicaciones se firmen criptográficamente con una clave de una cuenta de desarrollador de Apple.

    • Este ha sido un requisito desde macOS Lion (10.7).
    • Obtener las claves y los certificados correctos puede ser difícil de hacer bien la primera vez. Consulte la documentación de firma de Xamarin.Mac .
  • Tiempo de ejecución reforzado : esta es una segunda capa de seguridad introducida en macOS Mojave (10.14). Al firmar el código con un indicador adicional, el tiempo de ejecución de Cocoa aplicará una serie de restricciones a la ejecución de la aplicación.

    • Por ejemplo, algunas restricciones incluyen negar la ejecución de código auto modificable o cargar bibliotecas dinámicas sin firmar.
    • Cada categoría de restricción se puede excluir mediante el uso de derechos especiales.
  • Notary Service : esta es una tercera capa de seguridad también introducida en macOS Mojave (10.14). Es un servicio de escaneo de código, que escaneará su software en busca de contenido malicioso. Para pasar el escaneo notarial, su aplicación ya debe haber optado por el tiempo de ejecución reforzado.

Como empezar


Para comenzar a preparar su solicitud para estos nuevos requisitos, aquí hay algunos pasos a seguir:



Configure sus derechos


Hasta que implementemos el soporte IDE para las nuevas opciones, se necesitan dos pasos manuales:



  1. Abra su aplicación Xamarin.Mac .csproj en un editor de texto y agregue

    <UseHardenedRuntime>true</UseHardenedRuntime> 

    a la sección de lanzamiento
  2. Abra su archivo derecho.plist en un editor de texto y agregue

     <key>com.apple.security.cs.allow-jit</key> <true/> 

Inicie su aplicación y pruébela. Si se bloquea, es posible que necesite derechos adicionales de Apple.


Notariza tu aplicación


Para notarizar debe seguir dos pasos:


  1. Subir su compilación al servicio de notario
  2. Grapa el boleto a tu aplicación

¡Estás listo! Si tiene algún comentario sobre este proceso, nos encantaría saber de usted. Envíe un correo electrónico a david.ortinau@microsoft.com o agregue un comentario en GitHub .



David ortinau
David ortinau

Gerente Senior de Programa, Herramientas para Desarrolladores Móviles

Source: https://habr.com/ru/post/448804/


All Articles