Pysa, Facebookin tarjoama staattinen analysaattori Pythonille

Facebook on ottanut käyttöön avoimen lähdekoodin staattisen analysaattorin nimeltä "Pysa»(Python Static Analyzer), joka on suunniteltu tunnistamaan mahdolliset haavoittuvuudet Python-koodissa.

Pysa tarjoaa tiedonkulun analyysin koodin suorittamisen seurauksena, mikä avulla voit tunnistaa monia mahdollisia haavoittuvuuksia ja ongelmia yksityisyyden suoja, joka liittyy tietojen käyttöön paikoissa, joissa niiden ei pitäisi ilmestyä.

Esimerkiksi Pysa osaa seurata raakojen ulkoisten tietojen käyttöä puheluissa jotka suorittavat ulkoisia ohjelmia, tiedostotoiminnoissa ja SQL-rakenteissa.

Tänään jaamme tietoja Pysa-sta, avoimen lähdekoodin staattisesta analyysityökalusta, jonka olemme rakentaneet havaitsemaan ja estämään Python-koodin tietoturva- ja tietosuojaongelmat. Viime vuonna jaoimme kuinka loimme Zoncolanin, staattisen analyysityökalun, joka auttaa meitä analysoimaan yli 100 miljoonaa hakkerikoodiriviä ja on auttanut insinöörejä estämään tuhansia mahdollisia turvallisuusongelmia. Tämä menestys innoitti meitä kehittämään Pysaa, joka on lyhenne Python Static Analyzerille.

Pysa käyttää samoja algoritmeja suorittaa staattinen analyysi ja jopa jakaa koodi Zoncolan. Kuten Zoncolan, Pysa seuraa tietovirtoja ohjelman kautta.

Käyttäjä määrittelee lähteet (paikat, joista tärkeät tiedot ovat peräisin) sekä nielut (paikat, joissa lähdetiedon ei pitäisi loppua).

Turvallisuussovelluksissa yleisimpiä lähdetyyppejä ovat paikat, joissa käyttäjän ohjaama data tulee sovellukseen, kuten Django-sanakirja.

Vastaanottimet ovat yleensä paljon monipuolisempia, mutta ne voivat sisältää API: ta, jotka suorittavat koodia, kuten evaltai sovellusliittymät, jotka käyttävät tiedostojärjestelmää, kutenos.open

Pysa suorittaa iteroivia analyysikierroksia tiivistelmien rakentamiseksi sen määrittämiseksi, mitkä toiminnot palauttavat tietoja lähteestä ja mitkä toiminnot ovat parametreja, jotka lopulta osuvat nieluun. Jos Pysa havaitsee, että lähde lopulta muodostaa yhteyden pesualtaaseen, se ilmoittaa ongelmasta. 

Analysaattorityö se tunnistaa saapuvien tietolähteiden tunnistamisen ja vaaralliset puhelut, joissa alkuperäisiä tietoja ei tule käyttää.

Pysa seuraa datan kulkua toimintokutsuketjun läpi ja yhdistää alkuperäiset tiedot koodin mahdollisesti vaarallisiin paikkoihin.

Koska käytämme omiin tuotteisiimme avoimen lähdekoodin Python-palvelinkehyksiä, kuten Django ja Tornado, Pysa voi alkaa kohdata tietoturvaongelmia projekteissa, jotka käyttävät näitä kehyksiä alusta alkaen. Pysan käyttäminen kehyksissä, joihin meillä ei vielä ole kattavuutta, on yleensä niin yksinkertaista kuin lisäämällä muutama kokoonpanorivi kertoa Pysalle, mistä tietoja tulee palvelimelle.

Pysaan tunnistama yleinen haavoittuvuus on avoin uudelleenohjausongelma (CVE-2019-19775) Zulip-viestialustalla, joka johtuu epäpuhtaiden ulkoisten parametrien välittämisestä pikkukuvia näytettäessä.

Pysa-tiedonsiirtoseurantaominaisuuksia voidaan käyttää uusien kehysten käytön vahvistamiseen ja käyttäjien datakäytäntöjen noudattamisen määrittämiseen.

Esimerkiksi Pysaa ilman lisämäärityksiä voidaan käyttää projektien tarkistamiseen kehyksiä käyttäen Django ja Tornado. Pysa voi myös tunnistaa yleisiä haavoittuvuuksia verkkosovelluksissa, kuten SQL-korvaaminen ja sivustojen välinen komentosarja (XSS).

Analysaattoria käytetään Facebookissa tarkistamaan Instagram-palvelun koodi. Vuoden 2020 ensimmäisen vuosineljänneksen aikana Pysa auttoi tunnistamaan 44% kaikista ongelmista, jotka Facebook-insinöörit löysivät Instagramin palvelinpuolen koodikannasta.

Prosessissa havaittiin yhteensä 330 ongelmaa automatisoidusta muutoksen todentamisesta Pysa-tekniikalla, joista 49 (15%) arvioitiin merkittäviksi ja 131 (40%) eivät olleet vaarallisia. 150 tapauksessa (45%) ongelmat johtuivat vääristä positiivisista.

Uusi jäsennin on suunniteltu Pyre-tyyppitarkistustyökalupaketin lisäosaksi ja se sijoitetaan arkistoon. Koodi vapautetaan MIT-lisenssillä.

Vihdoin jos haluat tietää enemmän siitä, voit tarkistaa yksityiskohdat alkuperäisestä viestistä. Linkki on tämä.


Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.