Facebook otwarty analizator statyczny (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 i umieścił w swoim repozytorium. Kod 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 () na platformie komunikacyjnej Zulip, spowodowane przekazaniem nieoczyszczonych parametrów zewnętrznych podczas renderowania miniatur.
Możliwości śledzenia przepływu danych Pysa mogą 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
