Os pesquisadores de segurança acabam de descobrir uma vulnerabilidade de desvio de assinatura de código que permite que o código malicioso se disfarce como um arquivo oficial do sistema Apply. Em outras palavras, algumas das implementações da API de assinatura de código oficial da Apple podem ser exploradas por hackers.
A Apple disponibilizou uma API para desenvolvedores que desejam construir uma função de segurança que verifica os arquivos da Apple como legítimos. O problema decorre da maneira como alguns desenvolvedores implementaram a API, introduzindo assim uma vulnerabilidade no produto de segurança.
A falha permite que o código malicioso não assinado pareça ter sido assinado pela Apple. Como resultado deste "mal-entendido", malware pode enganar produtos e serviços de segurança vulneráveis, fazendo-os acreditar que é apenas mais um arquivo legítimo da Apple.
Quem é afetado por esta vulnerabilidade? Uma série de produtos de segurança, vários projetos de código aberto e funções de segurança usados pelo Google, Facebook e Yelp.
Mais sobre a vulnerabilidade
Como explicado pelo pesquisador Josh Pitt da Okta, a falha existe na diferença entre como o carregador Mach-O carrega o código assinado e como as APIs de assinatura de código usadas indevidamente verificam o código assinado e é explorado por meio de um Universal / Fat Binário malformado (um formato binário que contém vários arquivos Mach-O com cada um direcionado a uma arquitetura de CPU nativa específica).
Deve-se notar que existem várias condições para que a vulnerabilidade funcione:
– O primeiro Mach-O no arquivo Fat / Universal deve ser assinado pela Apple, pode ser i386, x86_64, ou mesmo PPC.
– O binário malicioso, ou código não fornecido pela Apple, deve ser assinado adhoc e i386 compilado para um macOS de destino x86_64 bit.
– O CPU_TYPE no cabeçalho Fat do binário da Apple deve ser definido como um tipo inválido ou um tipo de CPU que não seja nativo do chipset host.
A prova de conceito inicial demonstrou como é fácil para a falha ser explorada com sucesso - a exploração nem requer acesso de administrador nem requer código JIT ou corrupção de memória para contornar as verificações de assinatura de código. Tudo o que é necessário é um “arquivo Fat / Universal formatado corretamente, e [então] verificações de assinatura de código [são devolvidos como sendo] válido“, o pesquisador apontou.
Patch é responsabilidade do desenvolvedor
além do que, além do mais, as APIs de assinatura de código têm sinalizadores que devem garantir que todos esses arquivos sejam assinados criptograficamente. A verdade é diferente, Como "essas APIs ficam aquém por padrão, e desenvolvedores de terceiros precisarão esculpir e verificar cada arquitetura no arquivo Fat / Universal e verificar se as identidades correspondem e são criptograficamente sólidas.”Quanto a quem é responsável pela correção do problema, O pesquisador da Okta diz que é responsabilidade do desenvolvedor.
Fornecedores afetados conhecidos e projetos de código aberto são alertados e os patches estão disponíveis. Aqui está uma lista de fornecedores afetados e os patches de aplicação:
negro de carbono (CVE-2018-10407); Facebook (CVE-2018-6336); F-Secure (CVE-2018-10403); Google (CVE-2018-10405); Desenvolvimento Objetivo (CVE-2018-10470); Objetivo-Ver (CVE-2018-10404); VirusTotal (CVE-2018-10408); e Yelp (CVE-2018-10406)
Pode haver ainda mais segurança de terceiros, ferramentas forenses e de resposta a incidentes que usam as APIs oficiais de assinatura de código, o que significa que há mais partes afetadas. O pesquisador pede aos desenvolvedores que verifiquem seu código usando sua prova de conceito.