Facebook představil Pysa, statický analyzátor pro jazyk Python

facebook představen otevřít statický analyzátor pysa (Python Static Analyzer), navržený k identifikaci potenciálních zranitelností v kódu Pythonu. Nový analyzátor je navržen jako doplněk k sadě nástrojů pro kontrolu typu Pyre a zveřejněny ve svém úložišti. Kód publikováno pod licencí MIT.

Pysa poskytuje analýzu datových toků v důsledku spouštění kódu, což vám umožňuje identifikovat mnoho potenciálních zranitelností a problémů s ochranou soukromí spojených s používáním dat na místech, kde by se neměla objevit.
Pysa může například sledovat použití nezpracovaných externích dat ve voláních spouštějících externí programy, v operacích se soubory a v konstrukcích SQL.

Práce analyzátoru spočívá v identifikaci zdrojů dat a nebezpečných volání, ve kterých by původní data neměla být použita. Data z webových požadavků (například slovník HttpRequest.GET v Django) jsou považována za zdroj a volání jako eval a os.open jsou považována za nebezpečná použití. Pysa sleduje tok dat řetězcem volání funkcí a přiřazuje zdrojová data k potenciálně nebezpečným místům v kódu. Typická zranitelnost identifikovaná pomocí Pysa zmiňuje problém s otevřeným přesměrováním (CVE-2019-19775) na platformě pro zasílání zpráv Zulip, způsobené předáváním nevyčištěných externích parametrů při vykreslování miniatur.

Možnosti sledování toku dat Pysa mohou aplikovat k ověření správného použití dalších rámců a k určení souladu se zásadami používání uživatelských dat. Například Pysa bez dalších nastavení lze použít ke kontrole projektů pomocí frameworků Django a Tornado. Pysa také dokáže detekovat běžné zranitelnosti webových aplikací, jako je SQL injection a cross-site scripting (XSS).

Na Facebooku se analyzátor používá ke kontrole kódu služby Instagram. V prvním čtvrtletí roku 2020 pomohla Pysa identifikovat 44 % všech problémů, které inženýři Facebooku našli v kódové základně Instagramu na straně serveru.
Proces automatizované kontroly změn Pysa identifikoval celkem 330 problémů, z nichž 49 (15 %) bylo hodnoceno jako závažné a 131 (40 %) jako nezávažné. Ve 150 případech (45 %) byly potíže klasifikovány jako falešně pozitivní.

Zdroj: opennet.ru

Přidat komentář