Facebook wprowadził Pysa, statyczny analizator języka Python

Facebook wprowadzono otwarty analizator statyczny pysa (Python Static Analyzer), zaprojektowany w celu identyfikacji potencjalnych luk w kodzie Pythona. Nowy analizator został zaprojektowany jako dodatek do zestawu narzędzi do sprawdzania typu Stos i umieścił w swoim repozytorium. Kod opublikowany na licencji MIT.

Pysa zapewnia analizę przepływów danych w wyniku wykonania kodu, co pozwala zidentyfikować wiele potencjalnych podatności i problemów związanych z prywatnością związanych z wykorzystaniem danych w miejscach, w których nie powinny się one pojawiać.
Na przykład Pysa może śledzić wykorzystanie surowych danych zewnętrznych w wywołaniach uruchamiających programy zewnętrzne, w operacjach na plikach i w konstrukcjach SQL.

Praca analizatora sprowadza się do identyfikacji źródeł danych i niebezpiecznych wywołań, w których nie należy wykorzystywać oryginalnych danych. Dane z żądań internetowych (na przykład słownik HttpRequest.GET w Django) są uważane za źródło, a wywołania takie jak eval i os.open są uważane za niebezpieczne zastosowania. Pysa śledzi przepływ danych w łańcuchu wywołań funkcji i kojarzy dane źródłowe z potencjalnie niebezpiecznymi miejscami w kodzie. Typową luką zidentyfikowaną przy użyciu Pysa jest problem z otwartym przekierowaniem (CVE-2019-19775) na platformie komunikacyjnej Zulip, spowodowane przekazaniem nieoczyszczonych parametrów zewnętrznych podczas renderowania miniatur.

Możliwości śledzenia przepływu danych Pysa mogą stosować w celu sprawdzenia poprawności korzystania z dodatkowych ram i ustalenia zgodności z polityką wykorzystania danych użytkownika. Przykładowo Pysa bez dodatkowych ustawień może służyć do sprawdzania projektów wykorzystujących frameworki Django i Tornado. Pysa może również wykryć typowe luki w aplikacjach internetowych, takie jak wstrzykiwanie SQL i skrypty krzyżowe (XSS).

Na Facebooku analizator służy do sprawdzenia kodu serwisu Instagram. W pierwszym kwartale 2020 r. Pysa pomogła zidentyfikować 44% wszystkich problemów, które inżynierowie Facebooka wykryli w kodzie serwerowym Instagrama.
W sumie zautomatyzowany proces przeglądu zmian firmy Pysa zidentyfikował 330 problemów, z czego 49 (15%) oceniono jako poważne, a 131 (40%) jako mniej poważne. W 150 przypadkach (45%) problemy zostały sklasyfikowane jako fałszywie pozytywne.

Źródło: opennet.ru

Dodaj komentarz