Explorando vulnerabilidades em Cellebrite UFED e Analisador Físico a partir da perspectiva de um aplicativo

Views: 770
0 0
Read Time:6 Minute, 38 Second

A Cellebrite faz software para automatizar dados de extração e indexação física de dispositivos móveis. Eles existem dentro do cinza – onde a marca empresarial se une aos larcenous a serem chamados de “inteligência digital”. Sua lista de clientes incluiu regimes autoritários na Bielorrússia, Rússia, Venezuela e China; esquadrões da morte em Bangladesh; juntas militares em Mianmar; e aqueles que procuram abusar e oprimir na Turquia, Emirados Árabes Unidos e em outros lugares. Há alguns meses, eles anunciaram que adicionaram suporte ao Signal ao seu software.

Seus produtos têm sido frequentemente ligados à perseguição de jornalistas e ativistas presos em todo o mundo, mas menos foi escrito sobre o que seu software realmente faz ou como funciona. Vamos dar uma olhada mais de perto. Em particular, seu software é frequentemente associado a ignorar a segurança, então vamos ter algum tempo para examinar a segurança de seu próprio software.

O fundo

Primeiro, qualquer coisa envolvendo Cellebrite começa com outra pessoa fisicamente segurando seu dispositivo em suas mãos. A Cellebrite não faz nenhum tipo de interceptação de dados ou vigilância remota. Eles produzem duas peças primárias de software (ambas para Windows): UFED e Physical Analyzer.

A UFED cria um backup do seu dispositivo na máquina Windows executando ufed (é essencialmente um frontend para no backup android e iTunes no iPhone, com algumas análises adicionais). Uma vez criado um backup, o Physical Analyzer analisa os arquivos do backup para exibir os dados em forma de sobrancelha.adb backup

Quando a Cellebrite anunciou que adicionou suporte ao Signal ao seu software, tudo o que realmente significava era que eles tinham adicionado suporte ao Physical Analyzer para os formatos de arquivo usados pelo Signal. Isso permite que o Analisador Físico exiba os dados do Sinal extraídos de um dispositivo desbloqueado na posse física do usuário Cellebrite.

Uma maneira de pensar sobre os produtos da Cellebrite é que se alguém estiver fisicamente segurando seu dispositivo desbloqueado em suas mãos, ele pode abrir qualquer aplicativo que quiser e tirar capturas de tela de tudo neles para salvar e passar mais tarde. A Cellebrite essencialmente automatiza esse processo para alguém que segura seu dispositivo em suas mãos.

O lugar de rito no Celleb… tempo de rito

Por uma coincidência inacreditável, eu estava recentemente fora para uma caminhada quando eu vi um pequeno pacote cair de um caminhão à minha frente. À medida que me aproximava, o tipo de empresa maçante lentamente entrou em foco: Cellebrite. No interior, 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 adaptadores de cabo.

Cellebrite case on side of road.

O software

Qualquer pessoa familiarizada com a segurança do software reconhecerá imediatamente que a tarefa principal do software da Cellebrite é analisar dados “não confiáveis” de uma ampla variedade de formatos, como usado por muitos aplicativos diferentes. Ou seja, os dados que o software da Cellebrite precisa para extrair e exibir são finalmente gerados e controlados pelos aplicativos no dispositivo, não uma fonte “confiável”, de modo que a Cellebrite não pode fazer quaisquer suposições sobre a “correção” dos dados formatados que está recebendo. Este é o espaço em que praticamente 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 poderiam ser formatadas de 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 tanto para a UFED quanto para o Physical Analyzer, porém, ficamos surpresos ao descobrir que muito pouco cuidado parece ter sido dado à segurança do software da Cellebrite. Faltam defesas de mitigação de exploração padrão da indústria, e muitas oportunidades de exploração estão presentes.

Como apenas um exemplo (não relacionado ao que se segue), seus pacotes de software FFmpeg DLLs que foram construídos em 2012 e não foram atualizados desde então. Houve mais de cem atualizações de segurança nesse tempo, nenhuma das quais foram aplicadas.

FFmpeg vulnerabiltiies by year

As façanhas

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 especialmente formatado, mas inócuo em qualquer aplicativo em um dispositivo que é posteriormente conectado ao Cellebrite e digitalizado. Não há praticamente limites no código que podem ser executados.

Por exemplo, incluindo um arquivo especialmente formatado, mas inócuo em um aplicativo em um dispositivo que é então digitalizado pela Cellebrite, é possível executar códigos que modificam não apenas o relatório Cellebrite que está sendo criado nessa varredura, mas também todos os relatórios de Cellebrite gerados anteriormente e futuros de todos os dispositivos previamente digitalizados e todos os dispositivos digitalizados futuros de qualquer forma arbitrária (inserindo ou removendo texto, e-mail, fotos, contatos, arquivos ou quaisquer outros dados), sem alterações de carimbo de tempo detectáveis ou falhas de verificação de fluxo. Isso poderia até ser feito aleatoriamente, e seriamente colocaria em questão a integridade dos dados dos relatórios da Cellebrite.

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

Estamos, naturalmente, dispostos a divulgar de forma responsável as vulnerabilidades específicas que conhecemos sobre a Cellebrite se eles fizerem o mesmo por 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 amostral de uma exploração para UFED (explorações semelhantes existem para Analisador Físico). No vídeo, ufed atinge um arquivo que executa código arbitrário na máquina Cellebrite. Essa carga de exploração usa a API do MessageBox Windows para exibir uma caixa de diálogo com uma mensagem nele. Isto é para fins de demonstração; é possível executar qualquer código, e uma carga de exploração real provavelmente procuraria alterar relatórios anteriores deseficavelmente, comprometer a integridade de relatórios futuros (talvez aleatoriamente!), ou exfiltrar dados da máquina Cellebrite.

Também de interesse, o instalador do Physical Analyzer contém dois pacotes de instalador MSI empacotados nomeados e . Esses dois pacotes MSI são assinados digitalmente pela Apple e parecem ter sido extraídos do instalador do Windows para a versão 12.9.0.167 do iTunes.AppleApplicationsSupport64.msiAppleMobileDeviceSupport6464.msi

MSI packages

O programa de configuração do Analisador Físico instala esses pacotes MSI em . Eles contêm DLLs implementando funcionalidades que o iTunes usa para interagir com dispositivos iOS.C:\Program Files\Common Files\Apple

DLLs installed on filesystem

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

DLLs loaded in process

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, de modo que isso pode apresentar um risco legal para a Cellebrite e seus usuários.

O completamente não relacionado

Em notícias completamente não relacionadas, as próximas versões do Signal estarão periodicamente buscando arquivos para colocar no armazenamento de aplicativos. Esses arquivos nunca são usados para nada dentro do Signal e nunca interagem com o software ou dados signal, mas eles parecem agradáveis, e a estética é importante no software. Os arquivos só serão devolvidos para contas que já estão ativas há algum tempo, e apenas probabilísticamente em baixos percentuais com base no fragmento de número de telefone. Temos algumas versões diferentes de arquivos que achamos que são esteticamente agradáveis, e iterará através desses lentamente ao longo do tempo. Não há outro significado para esses arquivos.

FONTE: SIGNAL

POSTS RELACIONADOS