Pysa, en statisk analysator for Python som tilbys av Facebook

Facebook har introdusert en åpen kildekode statisk analysator kalt "Pysa»(Python Static Analyzer) som er designet for å identifisere potensielle sårbarheter i Python-kode.

Pysa gir dataflytanalyse som et resultat av kodeutførelse, som lar deg identifisere mange potensielle sårbarheter og problemer personvern knyttet til bruk av data på steder der det ikke skal vises.

For eksempel Pysa kan spore bruken av rå eksterne data i samtaler som utfører eksterne programmer, i filoperasjoner og i SQL-konstruksjoner.

I dag deler vi detaljer om Pysa, et statisk analyseverktøy med åpen kildekode som vi har bygget for å oppdage og forhindre sikkerhets- og personvernproblemer i Python-kode. I fjor delte vi hvordan vi opprettet Zoncolan, et statisk analyseverktøy som hjelper oss med å analysere over 100 millioner linjer med hackkode og har hjulpet ingeniører med å forhindre tusenvis av potensielle sikkerhetsproblemer. Den suksessen inspirerte oss til å utvikle Pysa, som er et akronym for Python Static Analyzer.

Pysa bruker de samme algoritmene å utføre statisk analyse og til og med dele kode med Zoncolan. Som Zoncolan, Pysa sporer datastrømmer gjennom et program.

Brukeren definerer kilder (steder der viktige data stammer) samt synker (steder der kildedataene ikke skal slutte).

For sikkerhetsapplikasjoner er de vanligste typene av kilder steder der brukerstyrte data kommer inn i applikasjonen, for eksempel Django-ordboken.

Mottakere har en tendens til å være mye mer varierte, men kan inkludere APIer som kjører kode, for eksempel eval, eller API-er som har tilgang til filsystemet, for eksempelos.open

Pysa utfører iterative analyserunder for å bygge abstrakter for å bestemme hvilke funksjoner som returnerer data fra en kilde, og hvilke funksjoner som har parametere som til slutt treffer en vask. Hvis Pysa finner ut at en kilde til slutt kobles til en vask, rapporterer det et problem. 

Analyserarbeid det koker ned til å identifisere innkommende datakilder og farlige samtaler der de originale dataene ikke skal brukes.

Pysa overvåker overføring av data gjennom kjeden av funksjonsanrop og knytter de opprinnelige dataene til potensielt farlige steder i koden.

Fordi vi bruker åpen kildekode Python-serverrammer som Django og Tornado til våre egne produkter, kan Pysa begynne å støte på sikkerhetsproblemer i prosjekter som bruker disse rammene helt fra første løp. Å bruke Pysa til rammer vi ikke har dekning for ennå, er vanligvis så enkelt som å legge til noen få konfigurasjonslinjer for å fortelle Pysa hvor data kommer inn på serveren.

En vanlig sårbarhet identifisert av Pysa er et åpent viderekoblingsproblem (CVE-2019-19775) i Zulip-meldingsplattformen, forårsaket av å sende urene eksterne parametere når du viser miniatyrbilder.

Pysas datastrømsporingsfunksjoner kan brukes til å validere bruken av ekstra rammer og for å bestemme samsvar med brukerens databruk.

Eg Pysa uten ytterligere konfigurasjoner kan brukes til å verifisere prosjekter ved hjelp av rammene Django og Tornado. Pysa kan også identifisere vanlige sårbarheter i webapplikasjoner, for eksempel SQL-erstatning og skripting på tvers av nettsteder (XSS).

På Facebook brukes analysatoren til å verifisere koden til Instagram-tjenesten. I løpet av første kvartal 2020 hjalp Pysa med å identifisere 44% av alle problemene som ble funnet av Facebook-ingeniører i Instagrams serverbase.

Totalt 330 problemer ble identifisert i prosessen av automatisert endringsverifisering ved bruk av Pysa, hvorav 49 (15%) ble vurdert som signifikante og 131 (40%) var ikke farlige. I 150 tilfeller (45%) ble problemene tilskrevet falske positive.

Den nye parseren er designet som et supplement til verifiseringsverktøysettet for Pyre-type og plasseres i depotet ditt. Koden er utgitt under MIT-lisensen.

Endelig hvis du vil vite mer om det, du kan sjekke detaljene i det opprinnelige innlegget. Koblingen er denne.


Innholdet i artikkelen følger våre prinsipper for redaksjonell etikk. Klikk på for å rapportere en feil her.

Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.