Explorando vulnerabilidades no Cellebrite UFED e Analisador Fisico pela perspectiva de um App

(Traduzido de https://signal.org/blog/cellebrite-vulnerabilities/ por Fábio Martins)

moxie0 em 21 de abril de 2021

A Cellebrite desenvolve software para automatizar a extração e indexação física de dados de dispositivos móveis. Eles existem dentro do “label cinza” – onde a marca corporativa se junta com o ladrão para ser chamado de “inteligência digital”. Sua lista de clientes inclui regimes autoritários na Bielo-Rússia, Israel, Estados Unidos da América do Norte (EUA), e Venezuela; policiais em Mianmar. Alguns meses atrás, eles anunciaram que adicionaram suporte ao Signal em seu software.

Seus produtos costumam ser vinculados à perseguição de jornalistas e ativistas presos em todo o mundo, mas menos se escreveu sobre o que seu software realmente faz ou como funciona. Vamos olhar mais de perto. Em particular, seu software é frequentemente associado a contornar a segurança, então vamos examinar a segurança de seu próprio software.

Olhando por trás

Em primeiro lugar, qualquer coisa que envolva o Cellebrite começa com outra pessoa fisicamente segurando seu dispositivo nas mãos. A Cellebrite não faz nenhum tipo de interceptação de dados ou vigilância remota. Eles produzem dois softwares principais (ambos para Windows): UFED e Physical Analyzer (ou Analisador Fisico).

O UFED cria um backup do seu dispositivo na máquina Windows que esta rodando o UFED (é essencialmente um front-end para backup via adb no Android e backup do iTunes no iPhone, com algumas análises adicionais). Depois de criar um backup, o Physical Analyzer analisa os arquivos do backup para exibir os dados em formato navegável.

Quando a Cellebrite anunciou que adicionou o suporte Signal ao seu software, tudo o que realmente significava foi que eles adicionaram suporte ao Physical Analyzer para os formatos de arquivo usados ​​pelo Signal. Isso permite que o Physical Analyzer exiba os dados do Signal que foram extraídos de um dispositivo desbloqueado, que se encontra na posse física de um usuário do Cellebrite.

Uma maneira de pensar sobre os produtos da Cellebrite é que se alguém estiver segurando fisicamente seu dispositivo desbloqueado nas mãos, eles podem abrir os aplicativos que quiserem e tirar capturas de tela de tudo que há neles para salvar e revisar mais tarde. O Cellebrite basicamente automatiza esse processo para alguém que está segurando seu dispositivo nas mãos.

No lugar certo, a Celleb … ridade certa

Por uma coincidência verdadeiramente inacreditável, recentemente estava passeando quando vi um pequeno pacote cair de um caminhão à minha frente. Conforme me aproximei, o tipo de letra empresarial enfadonho lentamente entrou em foco: Cellebrite. Lá dentro, encontramos as versões mais recentes do software Cellebrite, um dongle de hardware projetado para evitar a pirataria (diz algo sobre seus clientes, eu acho!) E um número bizarramente grande de cabos dapatadores de celular.

Pacote da Cellebrite na beira da estrada.

O software

Qualquer pessoa familiarizada com segurança de software reconhecerá imediatamente que a principal tarefa do software da Cellebrite é analisar dados “não confiáveis” de uma ampla variedade de formatos usados ​​por muitos aplicativos diferentes. Ou seja, os dados que o software da Cellebrite precisa para extrair e exibir são, em última análise, gerados e controlados pelos aplicativos no dispositivo, não por uma fonte “confiável”, então a Cellebrite não pode fazer nenhuma suposição sobre a “exatidão” dos dados formatados que está recebendo. Este é o espaço em que virtualmente todas as vulnerabilidades de segurança se originam.

Uma vez que quase todo o código da Cellebrite existe para analisar entradas não confiáveis ​​que podem ser formatadas de uma forma inesperada para explorar a corrupção de memória ou outras vulnerabilidades no software de análise, pode-se esperar que a Cellebrite tenha sido extremamente cautelosa. Olhando para o UFED e o Physical Analyzer, no entanto, ficamos surpresos ao descobrir que muito pouco cuidado parece ter sido dado à segurança de software da própria Cellebrite. Faltam defesas de mitigação de exploits padrão da indústria e muitas oportunidades de exploração estão presentes.

Como apenas um exemplo (não relacionado ao que segue), seu software agrupa DLLs FFmpeg que foram construídas em 2012 e não foram atualizadas desde então. Houve mais de uma centena de atualizações de segurança nesse período, nenhuma das quais foi aplicada.

Vulnerabilidades FFmpeg por ano

Os exploits


Dado o número de oportunidades presentes, descobrimos que é possível executar código arbitrário em uma máquina Cellebrite simplesmente incluindo um arquivo formatado especialmente, mas inócuo em qualquer aplicativo em um dispositivo que é posteriormente conectado ao Cellebrite e escaneado. Praticamente não há limites para o código que pode ser executado.

Por exemplo, ao incluir um arquivo especialmente formatado, mas inócuo em um aplicativo em um dispositivo que é verificado pela Cellebrite, é possível executar um código que modifica não apenas o relatório Cellebrite sendo criado nessa verificação, mas também todos os anteriores e futuros. Os relatórios da Cellebrite de todos os dispositivos escaneados anteriormente e de todos os dispositivos escaneados no futuro, de qualquer forma (inserir ou remover texto, e-mail, fotos, contatos, arquivos ou quaisquer outros dados), sem alterações de carimbo de data / hora detectáveis ​​ou falhas de checksum. Isso pode até ser feito aleatoriamente e colocaria seriamente em questão a integridade dos dados dos relatórios da Cellebrite.

Qualquer aplicativo pode conter esse arquivo e, até que o Cellebrite seja capaz de reparar com precisão todas as vulnerabilidades em seu software com extrema confiança, o único remédio que um usuário do Cellebrite tem é não fazer a varredura dos dispositivos. A Cellebrite poderia reduzir o risco para seus usuários atualizando seu software para interromper a varredura de aplicativos que considera alto risco para esses tipos de problemas de integridade de dados, mas mesmo isso não é garantia.

Obviamente, estamos dispostos a divulgar de forma responsável as vulnerabilidades específicas que conhecemos para a Cellebrite se eles fizerem o mesmo para todas as vulnerabilidades que usam em sua extração física e outros serviços para seus respectivos fornecedores, agora e no futuro.

Abaixo está um vídeo de amostra de um exploit para UFED (exploits semelhantes existem para o Physical Analyzer). No vídeo, o UFED atinge um arquivo que executa código arbitrário na máquina Cellebrite. Essa carga útil de exploração usa a API do Windows MessageBox para exibir uma caixa de diálogo com uma mensagem. Isso é para fins de demonstração; é possível executar qualquer código, e uma carga útil de exploração real provavelmente tentaria alterar relatórios anteriores de forma indetectável, comprometer a integridade de relatórios futuros (talvez aleatoriamente!) ou exfiltrar dados da máquina Cellebrite.

O copyright


Também é interessante que o instalador do Physical Analyzer contém dois pacotes de instalador MSI chamados AppleApplicationsSupport64.msi e AppleMobileDeviceSupport6464.msi. Esses dois pacotes MSI são assinados digitalmente pela Apple e parecem ter sido extraídos do instalador do Windows para o iTunes versão 12.9.0.167.

Pacotes MSI

O programa de instalação do Physical Analyzer instala esses pacotes MSI em C:\Program Files\Common Files\Apple. Eles contêm DLLs que implementam a funcionalidade que o iTunes usa para interagir com dispositivos iOS.

DLLs instaladas no sistema de arquivos

A ferramenta Cellebrite iOS Advanced Logical carrega essas DLLs da Apple e usa sua funcionalidade para extrair dados de dispositivos móveis iOS. A captura de tela abaixo mostra que as DLLs da Apple são carregadas no processo UFED iPhone Logical.exe, que é o nome do processo da ferramenta iOS Advanced Logical.

DLLs carregadas em processo

Parece improvável para nós que a Apple tenha concedido à Cellebrite uma licença para redistribuir e incorporar DLLs da Apple em seu próprio produto, então isso pode representar um risco legal para a Cellebrite e seus usuários.

Completamente não relacionado

Uma notícia completamente não relacionada, mas as próximas versões do Signal irão baixar arquivos periodicamente para colocar no armazenamento do aplicativo. Esses arquivos nunca são usados ​​para nada dentro do Signal e nunca interagem com o software ou dados do Signal, mas têm uma boa aparência e a estética é importante no software. Os arquivos serão devolvidos apenas para contas que já tiveram instalações ativas por algum tempo, e apenas probabilisticamente em baixas porcentagens com base no número de telefone. Temos algumas versões diferentes de arquivos que consideramos esteticamente agradáveis ​​e faremos uma iteração por eles lentamente ao longo do tempo. Não há outro significado para esses arquivos.

Nota do Tradutor

A caixa de pandora foi aberta.

Não confie em empresas que oferecem “simulação de adversário” com adversários capazes e reais. Contrate tal pessoal com assinatura de NDA (Non-Disclosure Agreement), ou você pode acabar perdendo a sua empresa e/ou, seu produto e potencialmente seus clientes no mundo real, não no simulado.

Qualquer um que tenha tido o celular auditado / analisado pelo equipamento da Cellebrite em um processo judicial, já pode requerer a auditoria / análise do programa UFED pelos seus próprios peritos (inclusive este que vos fala, especialista nas tecnologias e ferramentas em questão, capaz de realizar as demonstrações necessárias fora ou em corte), alegando que as vulnerabilidades existentes (algumas públicas, outras não) do mesmo podem ferir a integridade das informações obtidas, e caso o pedido seja negado, pedir que as provas sejam removidas do processo judicial.

É importante ressaltar que tal medida vale não apenas para processos futuros, mas também passados – já que existe a possibilidade de que arquivos com nome ou conteúdo mal-formado, inválido ou corrompido, fato comum de acontecer em memórias tipo SDcard ou flash presentes no hardware dos dispositivos móveis, possam ter ferido a integridade das provas obtidas.

Exemplo de nome de arquivo corrompido num SDcard de smartphone, fato ocorrido sem interação humana proposital, mas que mesmo assim pode afetar a integridade de relatórios periciais:

SDcard de smartphone naturalmente corrompido

Sentenças podem ser anuladas, processos e julgamentos que tiveram base neste tipo de prova, recomeçarem do zero.

Também existe a possibilidade de que quantias bilionárias sequestradas pela justiça, precisem ser devolvidas.

O impacto dessa revelação pode afetar centenas, senão milhares, de processos judiciais em todo o mundo – já que não se pode mais confiar na integridade dos dados extraídos de um smartphone através dessa ferramenta, sem mencionar que as suas ações (CLBT) a serem listadas ( num suposto “merge” bilionário, de aproximadamente 12 bilhões de reais – realmente ocorrerá? ) em breve na NASDAQ, não atrairão muitos investidores, devido ao futuro incerto da companhia Israelense.

Quanto vale um relatório forense que não pode ser usado em corte?

Ou que se usado, pode ser facilmente retirado da lista de supostas provas, pelo advogado de defesa e seus peritos?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s