Mariana Trench, analisador de código estático de código aberto do Facebook

Facebook revelado alguns dias atrás ele lançou o analisador estático de código aberto, Mariana Trench, que se destina a identificar vulnerabilidades em aplicativos Android e programas Java.

No a capacidade de analisar projetos sem códigos-fonte é fornecida, para o qual apenas o bytecode para a máquina virtual Dalvik está disponível. Outra vantagem é a altíssima velocidade de execução (a análise de vários milhões de linhas de código leva cerca de 10 segundos), que permite usar Mariana Trench para verificar todas as alterações propostas à medida que são introduzidas.

O analisador foi desenvolvido como parte de um projeto para automatizar o processo de revisão de código fonte de aplicativos móveis do Facebook, Instagram e Whatsapp.

Compartilhamos detalhes sobre Mariana Trench (MT), uma ferramenta que usamos para detectar e prevenir erros de segurança e privacidade em aplicativos Android e Java. Como parte de nosso esforço para ajudar a dimensionar a segurança por meio da automação predial, recentemente abrimos o MT para oferecer suporte a engenheiros de segurança no Facebook e em toda a indústria.

Esta postagem é a terceira de nossa série de mergulhos profundos em ferramentas de análise estática e dinâmica nas quais confiamos. MT é o sistema mais recente, seguindo Zoncolan e Pysa, construído para código Hack e Python respectivamente.

No primeiro semestre de 2021, metade de todas as vulnerabilidades nos aplicativos móveis do Facebook foram identificadas usando ferramentas de análise automatizadas. O código de Mariana Trench está intimamente ligado a outros projetos do Facebook, por exemplo, a operação do otimizador de bytecode Redex é usada para analisar bytecode e a biblioteca SPARTA é usada para interpretação visual e estudo de resultados. Análise estática.

Vulnerabilidades potenciais e problemas de segurança são identificados por meio da análise dos fluxos de dados durante a execução do aplicativo, que permite identificar situações em que dados externos brutos são processados ​​em construções perigosas, como consultas SQL, operações de arquivo e chamadas que levam ao lançamento de programas externos.

O MT foi projetado para ser capaz de escanear grandes bases de código móvel e apontar problemas potenciais em solicitações pull antes de entrarem em produção. Ele foi criado como resultado da estreita colaboração entre os engenheiros de segurança e de software do Facebook, que treinam o MT para examinar o código e analisar como os dados fluem por ele. Analisar fluxos de dados é útil porque muitos problemas de segurança e privacidade podem ser modelados como fluxo de dados onde não deveriam.

O trabalho do analisador é reduzido para determinar fontes de dados e chamadas perigosas, onde os dados originais não devem ser usados: O analisador monitora a passagem de dados pela cadeia de chamadas de função e conecta os dados iniciais a locais potencialmente perigosos no código.

Já que no MT, um fluxo de dados pode ser descrito por:

  • Fonte: um ponto de origem. Pode ser uma string controlada pelo usuário que entra no aplicativo por meio de `Intent.getData`.
  • Pia: um destino. No Android, isso pode ser uma chamada para `Log.w` ou` Runtime.exec`. Por exemplo, os dados de uma chamada para Intent.getData são considerados uma fonte a ser monitorada e as chamadas para Log.w e Runtime.exec são considerados usos perigosos.

Uma grande base de código pode conter muitos tipos diferentes de fontes e receptores correspondentes. Podemos dizer ao MT para nos mostrar fluxos específicos definindo regras.

Uma regra pode especificar, por exemplo, que queremos encontrar redirecionamentos de intenção (problemas que permitem que invasores interceptem dados confidenciais) definindo uma regra que nos mostra todos os rastros de fontes "controladas pelo usuário" para um depósito de "redirecionamentos de intenções.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar o detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.