Pysa, 'n statiese ontleder vir Python wat deur Facebook aangebied word

Facebook het 'n oop bron statiese ontleder genaamd 'Pysa' bekendgestel»(Python Static Analyzer) wat is ontwerp om potensiële kwesbaarhede in die Python-kode te identifiseer.

pysa bied data-vloei-analise as gevolg van die uitvoering van die kode, wat kan u baie potensiële kwesbaarhede en probleme identifiseer privaatheid met betrekking tot die gebruik van data op plekke waar dit nie moet verskyn nie.

Byvoorbeeld, Pysa kan die gebruik van rou eksterne data in oproepe opspoor wat eksterne programme uitvoer, in lêerbewerkings en in SQL-konstrukte.

Vandag deel ons besonderhede oor Pysa, 'n oop bron-statiese analise-instrument wat ons gebou het om sekuriteits- en privaatheidskwessies in Python-kode op te spoor en te voorkom. Verlede jaar het ons vertel hoe ons Zoncolan geskep het, 'n instrument vir statiese ontledings wat ons help om meer as 100 miljoen lyne hack-kode te ontleed en wat ingenieurs gehelp het om duisende potensiële sekuriteitsprobleme te voorkom. Daardie sukses het ons geïnspireer om Pysa te ontwikkel, wat 'n afkorting vir Python Static Analyzer is.

Pysa gebruik dieselfde algoritmes om statiese ontleding uit te voer en selfs kode mee te deel soncolan. Soos Zoncolan, Pysa volg data vloei deur 'n program.

Die gebruiker definieer bronne (plekke waar belangrike data ontstaan) sowel as sink (plekke waar die brongegee nie moet eindig nie).

Vir sekuriteitstoepassings is die mees algemene soorte bronne plekke waar gebruikersbeheerde data die toepassing binnedring, soos die Django-woordeboek.

Ontvangers is geneig om baie meer uiteenlopend te wees, maar kan API's insluit wat kode uitvoer, soos eval, of API's wat toegang tot die lêerstelsel het, soosos.open

Pysa voer herhalende ontledingsrondes uit om abstrakte te bou om te bepaal watter funksies data van 'n bron terugstuur en watter funksies parameters het wat uiteindelik 'n wasbak tref. As Pysa agterkom dat 'n bron uiteindelik aan 'n wasbak kan koppel, meld dit 'n probleem. 

Ontleder werk dit kom neer op die identifisering van inkomende databronne en gevaarlike oproepe, waarin die oorspronklike data nie gebruik moet word nie.

Pysa monitor die deurvoer van data deur die ketting van funksie-oproepe en assosieer die oorspronklike data met potensieel gevaarlike plekke in die kode.

Aangesien ons open source Python-bedienerraamwerke soos Django en Tornado vir ons eie produkte gebruik, kan Pysa vanaf die eerste lopie veiligheidsprobleme ondervind in projekte wat hierdie raamwerke gebruik. Die gebruik van Pysa vir raamwerke waarvoor ons nog nie dekking het nie, is oor die algemeen so eenvoudig as om 'n paar konfigurasiereëls by te voeg om aan Pysa te vertel waar data op die bediener kom.

'N Algemene kwesbaarheid wat deur Pysa geïdentifiseer is, is 'n oop aanstuurprobleem (CVE-2019-19775) in die Zulip-boodskapplatform, wat veroorsaak word deur onrein eksterne parameters deur te gee wanneer miniatuurweergawes vertoon word.

Pysa se datavloei-opsporingsfunksies kan gebruik word om die gebruik van addisionele rame te bekragtig en om te bepaal of dit voldoen aan die gebruiksbeleid vir gebruikersgebruik.

Bv. Pysa sonder addisionele konfigurasies kan gebruik word om projekte met behulp van die raamwerke te verifieer Django en Tornado. Pysa kan ook algemene kwesbaarhede in webtoepassings identifiseer, soos SQL-vervanging en cross-site scripting (XSS).

Op Facebook word die ontleder gebruik om die kode van die Instagram-diens te verifieer. Gedurende die eerste kwartaal van 2020 het Pysa gehelp met die identifisering van 44% van alle probleme wat Facebook-ingenieurs op Instagram se bedienerkodebasis gevind het.

Altesaam 330 probleme is in die proses geïdentifiseer van outomatiese veranderingsverifikasie met behulp van Pysa, waarvan 49 (15%) as beduidend geëvalueer is en 131 (40%) nie gevaarlik was nie. In 150 gevalle (45%) word die probleme aan vals positiewe toegeskryf.

Die nuwe ontleder is ontwerp as 'n aanvulling op die Pyre-tipe verifikasie-gereedskapstel en word in u bewaarplek geplaas. Die kode word vrygestel onder die MIT-lisensie.

Uiteindelik as u meer daaroor wil weet, u kan die besonderhede in die oorspronklike pos nagaan. Die skakel is dit.


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

Wees die eerste om te kommentaar lewer

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.