Pysa, statický analyzátor pro Python nabízený Facebookem

Facebook představil otevřený zdrojový statický analyzátor s názvem "Pysa»(Python Static Analyzer), který je navržen k identifikaci potenciálních zranitelností v kódu Pythonu.

pysa poskytuje analýzu toku dat v důsledku spuštění kódu, který umožňuje identifikovat mnoho potenciálních zranitelností a problémů soukromí související s použitím údajů na místech, kde by se neměly objevit.

Například Pysa může sledovat použití nezpracovaných externích dat při hovorech které provádějí externí programy, při operacích se soubory a v konstrukcích SQL.

Dnes sdílíme podrobnosti o Pysa, nástroji pro statickou analýzu otevřeného zdroje, který jsme vytvořili pro detekci a prevenci problémů se zabezpečením a ochranou soukromí v kódu Pythonu. V loňském roce jsme sdíleli, jak jsme vytvořili Zoncolan, nástroj statické analýzy, který nám pomáhá analyzovat více než 100 milionů řádků hackovacího kódu a pomohl technikům předcházet tisícům možných bezpečnostních problémů. Tento úspěch nás inspiroval k vývoji Pysy, což je zkratka pro Python Static Analyzer.

Pysa používá stejné algoritmy provádět statickou analýzu a dokonce sdílet kód s zoncolan. Jako Zoncolan, Pysa sleduje datové toky programem.

Uživatel definuje zdroje (místa, odkud pocházejí důležitá data) i jímky (místa, kde by zdrojová data neměla končit).

U bezpečnostních aplikací jsou nejběžnějšími typy zdrojů místa, kde do aplikace vstupují uživatelsky řízená data, například slovník Django.

Přijímače mají tendenci být mnohem rozmanitější, ale mohou zahrnovat rozhraní API, která spouští kód, například eval, nebo API, která přistupují k systému souborů, napříklados.open

Pysa provádí iterativní kola analýzy a vytváří souhrny k určení, které funkce vracejí data ze zdroje a které funkce mají parametry, které nakonec zasáhnou jímku. Pokud Pysa zjistí, že se zdroj nakonec připojí k umyvadlu, ohlásí problém. 

Práce analyzátoru scvrkává se na identifikaci příchozích zdrojů dat a nebezpečná volání, při nichž by se neměla používat původní data.

Pysa monitoruje průchod dat řetězcem volání funkcí a spojuje původní data s potenciálně nebezpečnými místy v kódu.

Protože pro své vlastní produkty používáme open source serverové rámce Pythonu jako Django a Tornado, může Pysa od prvního spuštění začít narazit na bezpečnostní problémy v projektech, které tyto rámce používají. Používání Pysy pro rámce, pro které zatím nemáme pokrytí, je obecně tak jednoduché, jako přidání několika konfiguračních řádků, které Pysě řeknou, kam přicházejí data na server.

Běžnou chybou identifikovanou společností Pysa je problém s otevřeným přesměrováním (CVE-2019-19775) na platformě pro zasílání zpráv Zulip, který je způsoben předáním nečistých externích parametrů při zobrazování miniatur.

Funkce sledování toku dat Pysy lze použít k ověření použití dalších rámců a k určení souladu se zásadami využití dat uživatelů.

Např Pysa bez dalších konfigurací lze použít k ověření projektů pomocí rámců Django a tornádo. Pysa také dokáže identifikovat běžné chyby ve webových aplikacích, jako je substituce SQL a skriptování mezi weby (XSS).

Na Facebooku se analyzátor používá k ověření kódu služby Instagram. Během prvního čtvrtletí roku 2020 pomohla Pysa identifikovat 44% všech problémů nalezených inženýry Facebooku v kódové základně Instagramu na straně serveru.

V procesu bylo zjištěno celkem 330 problémů automatizovaného ověřování změn pomocí Pysy bylo 49 (15%) hodnoceno jako významné a 131 (40%) nebylo nebezpečných. Ve 150 případech (45%) byly problémy přičítány falešně pozitivním výsledkům.

Nový analyzátor je navržen jako doplněk sady nástrojů pro ověřování typu Pyre a je umístěn ve vašem úložišti. Kód je vydáván pod licencí MIT.

Konečně pokud o tom chcete vědět víc, můžete zkontrolovat podrobnosti v původním příspěvku. Odkaz je tento.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.