A Facebook bemutatta a Pysa-t, a Python nyelv statikus elemzőjét

Facebook benyújtott nyitott statikus analizátor pysa (Python Static Analyzer), amely a Python-kód lehetséges sebezhetőségeinek azonosítására szolgál. Az új elemző a típusellenőrző eszközkészlet kiegészítőjeként készült Halotti máglya és közzétette az adattárában. Kód közzétett az MIT engedélye alapján.

A Pysa elemzi a kódvégrehajtás eredményeként létrejövő adatfolyamokat, ami lehetővé teszi számos lehetséges sebezhetőség és adatvédelmi probléma azonosítását az adatok olyan helyeken történő felhasználásával kapcsolatban, ahol nem szabad megjelenniük.
Például a Pysa nyomon tudja követni a nyers külső adatok használatát külső programokat indító hívásokban, fájlműveletekben és SQL-konstrukciókban.

Az elemző munkája azon adatforrások és veszélyes hívások azonosításán múlik, amelyekben az eredeti adatokat nem szabad felhasználni. A webes kérésekből származó adatokat (például a Django HttpRequest.GET szótárát) forrásnak tekintjük, az eval és os.open hívásokat pedig veszélyes felhasználásnak. A Pysa nyomon követi az adatáramlást a függvényhívások láncán keresztül, és a forrásadatokat a kód potenciálisan veszélyes helyeihez társítja. A Pysa használatával azonosított tipikus biztonsági rés egy nyílt átirányítási probléma (CVE-2019 19775-).

A Pysa adatfolyam-követési képességei képesek alkalmaz a további keretrendszerek helyes használatának ellenőrzésére és a felhasználói adathasználati szabályzat betartásának megállapítására. Például a Pysa további beállítások nélkül használható projektek ellenőrzésére a Django és a Tornado keretrendszer használatával. A Pysa emellett képes észlelni a webalkalmazások gyakori sebezhetőségeit, például az SQL-befecskendezést és a cross-site scripting (XSS)-t.

A Facebookon az elemzőt az Instagram szolgáltatás kódjának ellenőrzésére használják. 2020 első negyedévében a Pysa segített azonosítani a Facebook mérnökei által az Instagram szerveroldali kódbázisában talált összes probléma 44%-át.
A Pysa automatizált változás-ellenőrzési folyamata összesen 330 problémát azonosított, amelyek közül 49 (15%) súlyos, 131 (40%) pedig nem súlyos. 150 esetben (45%) a problémákat hamis pozitívnak minősítették.

Forrás: opennet.ru

Hozzászólás