Facebook libera ferramenta de segurança do Instagram

Facebook libera ferramenta de segurança do Instagram

O Facebook libera formalmente uma das ferramentas secretas do Instagram para encontrar e corrigir bugs na vasta base de código Python do aplicativo. Batizada de Pysa, a ferramenta é um analisador estático. Ele funciona verificando o código em uma forma “estática”, antes que o código seja executado/compilado, procurando por padrões conhecidos que podem indicar um bug e, em seguida, sinalizando possíveis problemas para o desenvolvedor.

O Facebook afirma que a ferramenta foi desenvolvida internamente e, por meio de constantes aprimoramentos, a Pysa atingiu a maturidade. Por exemplo, o Facebook disse que no primeiro semestre de 2020, a Pysa detectou 44% de todos os bugs de segurança no código Python do servidor do Instagram.

Facebook libera ferramenta de segurança do Instagram

Por trás desse sucesso está o trabalho da equipe de segurança do Facebook. Apesar de Pysa ter sido baseada no código-fonte aberto do projeto Pyre, a ferramenta foi construída em torno das necessidades de uma equipe de segurança.

Enquanto a maioria dos analisadores estáticos procuram um grande número de bugs, o Pysa foi desenvolvido especificamente para procurar problemas relacionados à segurança. Mais particularmente, Pysa rastreia “fluxos de dados por meio de um programa”. Os dados fluem através do código de um programa. A maioria das explorações de segurança hoje se aproveita de fluxos de dados não filtrados ou não controlados. Por exemplo, uma execução remota de código (RCE), um dos piores tipos de bugs da atualidade.

Nos bastidores, Pysa tem como objetivo trazer alguns insights sobre como os dados trafegam entre as bases de código, e especialmente as grandes bases de código compostas por centenas de milhares ou milhões de linhas de código.

Este conceito não é novo e é algo que o Facebook já aperfeiçoou com o Zoncolan, um analisador estático que o Facebook lançou em agosto de 2019 para Hack – a variação de linguagem semelhante a PHP que o Facebook usa para a base de código do aplicativo principal do Facebook.

Tanto Pysa quanto Zoncolan procuram por “fontes” (onde os dados entram em uma base de código) e “coletores” (onde os dados vão parar). Ambas as ferramentas rastreiam como os dados se movem em uma base de código e encontram “coletores” perigosos, como funções que podem executar código ou recuperar dados confidenciais do usuário.

Quando uma conexão é encontrada entre uma fonte e um coletor perigoso, Pysa (e Zoncolan) avisa os desenvolvedores para investigar.

image002.png
Imagem: Facebook

Como a equipe de segurança do Facebook esteve intimamente envolvida com a criação do Pysa, a ferramenta já foi ajustada ao longo de meses de testes internos para encontrar os padrões de coletor de origem específicos para problemas de segurança comuns, como script entre sites, execuções de código remoto, injeções de SQL e mais.

Velocidade para gerir grande quantidade de código

Mas, como o engenheiro de segurança do Facebook Graham Bleaney disse, a capacidade da ferramenta Pysa de encontrar problemas de segurança não seria tão útil se levasse dias para escanear toda a base de código do Instagram.

Como tal, a Pysa também foi construída para ser rápida, sendo capaz de vasculhar milhões de linhas de código em qualquer lugar entre 30 minutos e horas. Isso permite que Pysa encontre bugs quase em tempo real e permite que as equipes de desenvolvedores se sintam seguras sobre a integração da ferramenta em seus fluxos de trabalho e rotinas regulares, sem temer que seu uso possa atrasar o envio de seu código ou não atingir prazos rígidos.

Este foco em não atrapalhar os desenvolvedores do Facebook e seus processos de trabalho regulares tem sido uma meta para a equipe de segurança do Facebook, como disse a equipe de segurança do Facebook em um episódio recente do podcast Risky Business.

Mais utilidades

Mas Pysa também tem outro ás na manga, que é a capacidade de extensão. O Instagram, que funciona principalmente em código Python, nunca foi desenvolvido como uma unidade coesa desde o início.

Assim como a maioria das plataformas principais, seu código foi costurado e aprimorado conforme a empresa crescia. Atualmente, sua base de código inclui diversos frameworks Python e bibliotecas Python, todos executando diferentes componentes e recursos do Instagram.

Para a Pysa, isso também significa que a ferramenta foi criada sob um modelo plug-and-play, em que pode ser estendida para se adaptar a novos frameworks rapidamente.

Como usamos estruturas de servidor Python de código aberto, como Django e Tornado para nossos próprios produtos, a Pysa pode começar a encontrar problemas de segurança em projetos que usam essas estruturas desde a primeira execução, disse Bleaney. Usar Pysa para estruturas para as quais ainda não temos cobertura é geralmente tão simples quanto adicionar algumas linhas de configuração para dizer a Pysa onde os dados entram no servidor.

O Facebook abriu formalmente o código-fonte da Pysa no GitHub, junto com várias definições de bug necessárias para ajudá-lo a encontrar problemas de segurança. O projeto do servidor Zulip já incorporou a Pysa em sua base de código depois que a ferramenta foi usada para descobrir um grande problema de segurança no ano passado.

pysa-defs.png
Imagem: ZDNet