Pysa, en statisk analysator til Python, der tilbydes af Facebook

Facebook har introduceret en open source statisk analysator kaldet «Pysa»(Python Static Analyzer) som er designet til at identificere potentielle sårbarheder i Python-kode.

pysa leverer datastrømsanalyse som et resultat af kodeudførelse, som giver dig mulighed for at identificere mange potentielle sårbarheder og problemer fortrolighed relateret til brugen af ​​data på steder, hvor det ikke skal vises.

For eksempel Pysa kan spore brugen af ​​rå eksterne data i opkald der udfører eksterne programmer, i filoperationer og i SQL-konstruktioner.

I dag deler vi detaljer om Pysa, et open source statisk analyseværktøj, som vi har bygget til at opdage og forhindre sikkerheds- og privatlivsproblemer i Python-kode. Sidste år delte vi, hvordan vi skabte Zoncolan, et statisk analyseværktøj, der hjælper os med at analysere mere end 100 millioner linjer med hackekode og har hjulpet ingeniører med at forhindre tusindvis af potentielle sikkerhedsproblemer. Denne succes inspirerede os til at udvikle Pysa, som er et akronym for Python Static Analyzer.

Pysa bruger de samme algoritmer at udføre statisk analyse og endda dele kode med zoncolan. Ligesom Zoncolan, Pysa sporer datastrømme gennem et program.

Brugeren definerer kilder (steder, hvor vigtige data stammer) samt dræn (steder, hvor kildedataene ikke skal ende).

For sikkerhedsapplikationer er de mest almindelige typer kilder steder, hvor brugerstyrede data kommer ind i applikationen, såsom Django-ordbogen.

Modtagere har tendens til at være meget mere varierede, men kan omfatte API'er, der kører kode, f.eks evaleller API'er, der har adgang til filsystemet, f.eksos.open

Pysa udfører iterative analyserunder for at opbygge abstrakter for at bestemme, hvilke funktioner der returnerer data fra en kilde, og hvilke funktioner der har parametre, der til sidst rammer en vask. Hvis Pysa finder ud af, at en kilde til sidst opretter forbindelse til en vask, rapporterer den et problem. 

Analyser arbejde det koger ned til at identificere indgående datakilder og farlige opkald, hvor de originale data ikke skal bruges.

Pysa overvåger passage af data gennem kæden af ​​funktionsopkald og forbinder de originale data med potentielt farlige steder i koden.

Da vi bruger open source Python-serverrammer som Django og Tornado til vores egne produkter, kan Pysa begynde at støde på sikkerhedsproblemer i projekter, der bruger disse rammer fra den allerførste kørsel. Brug af Pysa til rammer, som vi endnu ikke har dækning for, er generelt så simpelt som at tilføje et par konfigurationslinjer for at fortælle Pysa, hvor data kommer ind på serveren.

En almindelig sårbarhed identificeret af Pysa er et åbent omdirigeringsproblem (CVE-2019-19775) i Zulip-meddelelsesplatformen forårsaget af videregivelse af urene eksterne parametre, når der vises miniaturebilleder.

Pysas datastrømsporingsfunktioner kan bruges til at validere brugen af ​​yderligere rammer og til at bestemme overholdelse af brugerens dataforbrugspolitikker.

Fx Pysa uden yderligere konfigurationer kan bruges til at verificere projekter ved hjælp af rammerne Django og Tornado. Pysa kan også identificere almindelige sårbarheder i webapplikationer, såsom SQL-erstatning og cross-site scripting (XSS).

På Facebook bruges analysatoren til at verificere koden for Instagram-tjenesten. I løbet af første kvartal af 2020 hjalp Pysa med at identificere 44% af alle problemer, der blev fundet af Facebook-ingeniører i Instagrams serverbase.

I alt 330 problemer blev identificeret i processen af automatiseret ændringsverifikation ved hjælp af Pysa, hvoraf 49 (15%) blev vurderet som signifikant, og 131 (40%) var ikke farlige. I 150 tilfælde (45%) blev problemerne tilskrevet falske positive.

Den nye parser er designet som et tilføjelsesprogram til Pyre-typebekræftelsesværktøjssættet og placeres i dit lager. Koden frigives under MIT-licensen.

Endelig hvis du vil vide mere om det, du kan kontrollere detaljerne i det originale indlæg. Linket er dette.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.