Preparando-se para o tempo de execução e o notário reforçados do macOS

Com o macOS Mojave, a Apple introduziu o suporte ao serviço Hardened Runtime and Notary. Esses dois serviços foram projetados para melhorar a segurança dos aplicativos no macOS. Recentemente, a Apple declarou :


“A partir do macOS 10.14.5, todas as extensões de kernel novas ou atualizadas e todos os softwares de desenvolvedores novos a distribuir com o ID do desenvolvedor devem ser notarizados para serem executados. Em uma versão futura do macOS, o reconhecimento de firma será exigido por padrão para todos os softwares. ”



Hoje o ajudará a entender novas regras do ponto de vista do Xamarin.
Este artigo no blog

Segurança no macOS


  • Assinatura de código - no macOS GateKeeper, é necessário que os pacotes de aplicativos sejam assinados criptograficamente com uma chave de uma conta de desenvolvedor da Apple.

  • Tempo de execução reforçado - Esta é uma segunda camada de segurança introduzida no macOS Mojave (10.14). Ao assinar código com um sinalizador adicional, o tempo de execução do Cocoa aplicará várias restrições ao aplicativo em execução.

    • Por exemplo, algumas restrições incluem negar a execução de código auto-modificável ou carregar bibliotecas dinâmicas não assinadas.
    • Cada categoria de restrição pode ser excluída através do uso de direitos especiais.
  • Serviço de Notariado - Esta é uma terceira camada de segurança também introduzida no macOS Mojave (10.14). É um serviço de verificação de código, que verificará o seu software quanto a conteúdo malicioso. Para passar na varredura de notário, seu aplicativo já deve ter optado pelo tempo de execução mais rígido.

Como começar


Para começar a preparar seu aplicativo para esses novos requisitos, aqui estão algumas etapas a serem seguidas:



Configure seus direitos


Até implementarmos o suporte IDE para as novas opções, são necessárias duas etapas manuais:



  1. Abra o aplicativo Xamarin.Mac .csproj em um editor de texto e adicione

    <UseHardenedRuntime>true</UseHardenedRuntime> 

    para a seção Release
  2. Abra seu arquivo entitlements.plist em um editor de texto e inclua

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

Inicie seu aplicativo e teste-o. Se travar, você poderá precisar de direitos adicionais da Apple.


Notarize seu aplicativo


Para notarizar você precisa seguir duas etapas:


  1. Upload da sua compilação para o serviço de notário
  2. Grampeie o ticket na sua inscrição

Está tudo pronto! Se você tiver algum comentário sobre esse processo, gostaríamos de ouvi-lo. Envie um email para david.ortinau@microsoft.com ou adicione um comentário no GitHub .



David ortinau
David ortinau

Gerente de programa sênior, Ferramentas para desenvolvedores móveis

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


All Articles