Facebook esitteli Pysan, Python-kielen staattisen analysaattorin

Facebook toimitettu avaa staattinen analysaattori pysa (Python Static Analyzer), suunniteltu tunnistamaan Python-koodin mahdolliset haavoittuvuudet. Uusi analysaattori on suunniteltu lisäosaksi tyyppitarkistustyökalusarjaan polttorovio ja lähetetty arkistoonsa. Koodi julkaistu MIT-lisenssillä.

Pysa tarjoaa analyysin tietovirroista koodin suorittamisen seurauksena, jonka avulla voit tunnistaa monia mahdollisia haavoittuvuuksia ja tietosuojaongelmia, jotka liittyvät tietojen käyttöön paikoissa, joissa sen ei pitäisi näkyä.
Pysa voi esimerkiksi seurata ulkoisen raakadatan käyttöä ulkoisia ohjelmia käynnistävissä kutsuissa, tiedostotoiminnoissa ja SQL-rakenteissa.

Analysaattorin työ rajoittuu tietolähteiden ja vaarallisten puheluiden tunnistamiseen, joissa alkuperäisiä tietoja ei pitäisi käyttää. Verkkopyyntöjen dataa (esimerkiksi Djangon HttpRequest.GET-sanakirjaa) pidetään lähteenä, ja kutsuja, kuten eval ja os.open, pidetään vaarallisena käyttönä. Pysa seuraa tietovirtaa funktiokutsujen ketjun läpi ja yhdistää lähdetiedot mahdollisesti vaarallisiin paikkoihin koodissa. Tyypillinen Pysan avulla tunnistettu haavoittuvuus on avoin uudelleenohjausongelma (CVE-2019-19775).

Pysan tietovirran seurantaominaisuudet voivat Käytä varmistaakseen lisäkehysten oikean käytön ja määrittääkseen käyttäjätietojen käyttökäytännön noudattamisen. Esimerkiksi Pysaa ilman lisäasetuksia voidaan käyttää projektien tarkistamiseen Django- ja Tornado-kehysten avulla. Pysa voi myös havaita yleisiä verkkosovellusten haavoittuvuuksia, kuten SQL-injektio ja cross-site scripting (XSS).

Facebookissa analysaattorilla tarkistetaan Instagram-palvelun koodi. Vuoden 2020 ensimmäisellä neljänneksellä Pysa auttoi tunnistamaan 44 prosenttia kaikista Facebookin insinöörien Instagramin palvelinpuolen koodikannasta löytämistä ongelmista.
Pysan automatisoidussa muutostarkasteluprosessissa tunnistettiin yhteensä 330 ongelmaa, joista 49 (15 %) arvioitiin vakavaksi ja 131 (40 %) ei-vakavaksi. 150 tapauksessa (45 %) ongelmat luokiteltiin vääriksi positiivisiksi.

Lähde: opennet.ru

Lisää kommentti