Pysa, un analitzador estàtic per Python ofert per Facebook

Facebook ha introduït un analitzador estàtic de codi obert anomenat «Pysa»(Python Static Analyzer) el qual està dissenyat per identificar vulnerabilitats potencials en el codi Python.

Pisa proporciona anàlisi de fluxos de dades com a resultat de l'execució de el codi, el que li permet identificar moltes vulnerabilitats potencials i problemes de privacitat relacionats amb l'ús de dades en llocs on no haurien d'aparèixer.

Per exemple, Pysa pot rastrejar l'ús de dades externes sense processar en trucades que executen programes externs, en operacions d'arxius i en construccions SQL.

Avui, compartim detalls sobre Pysa, una eina d'anàlisi estàtic de codi obert que hem construït per detectar i prevenir problemes de seguretat i privacitat en el codi Python. L'any passat, vam compartir com creem Zoncolan, una eina d'anàlisi estàtic que ens ajuda a analitzar més de 100 milions de línies de codi Hack i ha ajudat els enginyers a prevenir milers de possibles problemes de seguretat. Aquest èxit ens va inspirar a desenvolupar Pysa, que és un acrònim de Python Static Analyzer.

Pysa utilitza els mateixos algoritmes per realitzar anàlisis estàtiques i fins i tot comparteix codi amb Zoncolan. A l'igual que Zoncolan, Pysa rastreja els fluxos de dades a través d'un programa.

L'usuari defineix fonts (llocs on s'originen dades importants) així com a embornals (llocs on les dades de la font no haurien d'acabar).

Per a les aplicacions de seguretat, els tipus més comuns de fonts són llocs on les dades controlats per l'usuari ingressen a l'aplicació, com el diccionari de Django.

Els receptors tendeixen a ser molt més variats, però poden incloure API que executen codi, com eval, O API que accedeixen a el sistema d'arxius, comos.open

Pysa realitza rondes iteratives d'anàlisi per construir resums per determinar quines funcions retornen dades d'una font i quines funcions tenen paràmetres que finalment arriben a un embornal. Si Pysa troba que una font eventualment es connecta a un embornal, informa un problema. 

El treball de l'analitzador es redueix a identificar les fonts de dades entrants i trucades perilloses, en què no s'han d'utilitzar les dades originals.

Pysa monitoritzes el pas de dades al llarg de la cadena de crides a funcions i associa les dades originals amb llocs potencialment perillosos en el codi.

A causa de que fem servir marcs de servidor Python de codi obert com Django i Tornat per als nostres propis productes, Pysa pot començar a trobar problemes de seguretat en projectes que utilitzen aquests marcs des de la primera execució. Utilitza Pysa per marcs per als que encara no tenim cobertura és generalment tan simple com afegir algunes línies de configuració per dir-li a Pysa on ingressen les dades a servidor.

Una vulnerabilitat comuna identificada per Pysa és un problema de redireccionament obert (CVE-2019-19775) a la plataforma de missatgeria Zulip, causat per passar paràmetres externs no nets a l'mostrar miniatures.

Les capacitats de seguiment de l'flux de dades de Pysa es poden utilitzar per validar l'ús de marcs addicionals i per determinar el compliment de les polítiques d'ús de dades de l'usuari.

Per exemple, Pysa sense configuracions addicionals pot usar-se per a verificar projectes fent servir els frameworks Django i Tornat. Pysa també pot identificar vulnerabilitats comuns en aplicacions web, com a substitució de SQL i scripting entre llocs (XSS).

A Facebook, l'analitzador s'utilitza per verificar el codi de l'servei d'Instagram. Durant el primer trimestre del 2020, Pysa va ajudar a identificar el 44% de tots els problemes trobats pels enginyers de Facebook a la base de codi de la banda de servidor d'Instagram.

Es van identificar un total de 330 problemes en el procés de verificació automatitzada de canvis utilitzant Pysa, 49 (15%) dels quals van ser avaluats com a significatius i 131 (40%) no eren perillosos. En 150 casos (45%) els problemes es van atribuir a falsos positius.

El nou analitzador està dissenyat com un complement de el conjunt d'eines de verificació de tipus Pyre i es col·loca en el seu repositori. El codi es publica sota la llicència MIT.

Finalment si vols conèixer més a l'respecte, pots consultar els detalls a la publicació original. L'enllaç és aquest.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.