Pysa, um analisador estático para Python oferecido pelo Facebook

O Facebook introduziu um analisador estático de código aberto chamado «Pysa»(Python Static Analyzer) que é projetado para identificar vulnerabilidades potenciais no código Python.

pysa fornece análise de fluxo de dados como resultado da execução do código, que permite que você identifique muitas vulnerabilidades e problemas potenciais de privacidade relacionada ao uso de dados em locais onde eles não deveriam aparecer.

Por exemplo, Pysa pode rastrear o uso de dados externos brutos em chamadas que executam programas externos, em operações de arquivo e em construções SQL.

Hoje, compartilhamos detalhes sobre Pysa, uma ferramenta de análise estática de código aberto que criamos para detectar e prevenir problemas de segurança e privacidade no código Python. No ano passado, compartilhamos como criamos o Zoncolan, uma ferramenta de análise estática que nos ajuda a analisar mais de 100 milhões de linhas de código de hack e ajudou os engenheiros a prevenir milhares de problemas de segurança em potencial. Esse sucesso nos inspirou a desenvolver Pysa, que é um acrônimo para Python Static Analyzer.

Pysa usa os mesmos algoritmos para realizar análises estáticas e até mesmo compartilhar código com zonal. Como Zoncolan, Pysa rastreia fluxos de dados por meio de um programa.

O usuário define fontes (locais onde os dados importantes se originam), bem como sumidouros (locais onde os dados fonte não devem terminar).

Para aplicativos de segurança, os tipos mais comuns de fontes são locais onde os dados controlados pelo usuário entram no aplicativo, como o dicionário Django.

Os receptores tendem a ser muito mais variados, mas podem incluir APIs que executam código, como evalou APIs que acessam o sistema de arquivos, comoos.open

Pysa realiza rodadas iterativas de análise para construir resumos para determinar quais funções retornam dados de uma fonte e quais funções têm parâmetros que eventualmente atingem um coletor. Se Pysa descobrir que uma fonte eventualmente se conecta a um coletor, ele relata um problema. 

Trabalho do analisador tudo se resume a identificar fontes de dados de entrada e chamadas perigosas, nas quais os dados originais não devem ser usados.

Pysa monitora a passagem de dados pela cadeia de chamadas de função e associa os dados originais a locais potencialmente perigosos no código.

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

Uma vulnerabilidade comum identificada por Pysa é um problema de redirecionamento aberto (CVE-2019-19775) na plataforma de mensagens Zulip, causado pela passagem de parâmetros externos sujos ao exibir miniaturas.

Os recursos de rastreamento de fluxo de dados da Pysa podem ser usados ​​para validar o uso de quadros adicionais e determinar a conformidade com as políticas de uso de dados do usuário.

Por exemplo Pysa sem configurações adicionais pode ser usado para verificar projetos usando os frameworks Django e Tornado. Pysa também pode identificar vulnerabilidades comuns em aplicativos da web, como substituição de SQL e script entre sites (XSS).

No Facebook, o analisador é usado para verificar o código do serviço Instagram. Durante o primeiro trimestre de 2020, Pysa ajudou a identificar 44% de todos os problemas encontrados pelos engenheiros do Facebook na base de código do servidor do Instagram.

Um total de 330 problemas foram identificados no processo de verificação automática de alterações usando Pysa, 49 (15%) das quais foram avaliadas como significativas e 131 (40%) não eram perigosas. Em 150 casos (45%), os problemas foram atribuídos a falsos positivos.

O novo analisador é projetado como um suplemento ao kit de ferramentas de verificação de tipo Pyre e é colocado em seu repositório. O código é lançado sob a licença do MIT.

Finalmente se você quiser saber mais sobre isso, você pode verificar os detalhes na postagem original. O link é este.


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.