Facebook huet en Open Source Static Analysator genannt "Pysa" agefouert»(Python Static Analyzer) dat ass entwéckelt fir potenziell Schwachstelle am Python Code z'identifizéieren.
pysa stellt Daten Flux Analyse als Resultat vun der Codeausféierung, déi erlaabt Iech vill potenziell Schwachstelle a Probleemer z'identifizéieren vu Privatsphär bezunn op d'Benotzung vun Daten op Plazen wou se net sollten optrieden.
Zum Beispill, Pysa kann d'Benotzung vu rauem externen Daten an Uriff verfollegen déi extern Programmer ausféieren, an Dateieoperatiounen an a SQL-Konstrukten.
Haut deele mir Detailer iwwer Pysa, en Open Source statesch Analyse-Tool dat mir gebaut hunn fir Sécherheets- a Privatsphärsprobleemer am Python Code z'entdecken. Am läschte Joer hu mir eis gedeelt wéi mir Zoncolan erstallt hunn, e statescht Analyse-Tool dat hëlleft eis méi wéi 100 Milliounen Zeilen vum Hackcode ze analyséieren an huet Ingenieuren gehollef Dausende vu méigleche Sécherheetsprobleemer ze vermeiden. Deen Erfolleg huet eis inspiréiert Pysa z'entwéckelen, wat en Akronym fir Python Static Analyzer ass.
Pysa benotzt déiselwecht Algorithmen fir statesch Analyse ze maachen an och deele Code mat zoncolan. Wéi Zoncolan, Pysa verfollegt Datenflëss duerch e Programm.
De Benotzer definéiert Quellen (Plazen wou wichteg Daten hierkommen) souwéi Sinks (Plazen wou d'Quelldaten net sollen ophalen).
Fir Sécherheetsapplikatioune sinn déi heefegst Quellequellen Uertschafte wou Benotzer-kontrolléiert Daten an d'Applikatioun erakommen, wéi zum Beispill den Django Wierderbuch.
Empfänger tendéieren vill méi variéiert ze sinn, awer kënnen APIen enthalen déi Code lafen, wéi z eval
, oder APIen déi Zougang zum Dateisystem kréien, wéi zos.open
.
Pysa féiert iterativ Analyseronne fir Abstrakter ze bauen fir festzeleeën wéi eng Funktiounen Daten aus enger Quell zréckginn a wéi eng Funktiounen Parameter hunn déi schliisslech an e Spull treffen. Wann Pysa feststellt datt eng Quell eventuell mat engem Sink verbënnt, bericht et e Problem.
Analyser Aarbecht et geet drëm fir d'Enkennung vun Datenquellen z'identifizéieren a geféierlech Uriff, an deenen déi ursprénglech Date net sollten benotzt ginn.
Pysa iwwerwaacht d'Passage vun Daten duerch d'Kette vu Funktiounsruff a verbënnt d'originell Daten mat potenziell geféierleche Plazen am Code.
Well mir Open Source Python Server Frameworks wéi Django an Tornado fir eis eege Produkter benotzen, kann Pysa ufänke Sécherheetsprobleemer a Projeten ze begéinen, déi dës Framewaller vun der éischter Course benotzen. Pysa benotze fir Frameworks fir déi mir nach keng Ofdeckung hunn ass normalerweis sou einfach wéi e puer Konfiguratiounslinnen derbäi fir Pysa ze soen wou Daten an de Server kommen.
Eng gemeinsam Schwachstelle identifizéiert vu Pysa ass en oppent Viruleedungsausgab (CVE-2019-19775) an der Zulip Messagerie Plattform, verursaacht duerch verloosse vun onreine externen Parameteren wann Dir Miniaturen uweist.
D'Pysa Date Flow Tracking Capacitéite kënne benotzt ginn fir d'Benotzung vun zousätzleche Frames ze validéieren an d'Konformitéit mat de Benotzerdatenverbrauchspolitiken ze bestëmmen.
Zum Beispill, Pysa ouni zousätzlech Konfiguratiounen ka benotzt ginn fir Projeten mat de Frameworks ze verifizéieren Django an Tornado. Pysa kann och gemeinsam Schwachstelle bei Webapplikatiounen identifizéieren, wéi SQL Ersatz a Cross-Site Skripting (XSS).
Op Facebook gëtt den Analysator benotzt fir de Code vum Instagram Service z'iwwerpréiwen. Wärend dem éischten Trimester vun 2020 huet Pysa gehollef 44% vun alle Probleemer ze fannen, déi vu Facebook Ingenieuren an der Server-Säit Code Instagram vun Instagram fonnt goufen.
Insgesamt 330 Probleemer goufen am Prozess identifizéiert vu automatiséierter Verifikatiounsverifikatioun mat Pysa, 49 (15%) dovu goufen als bedeitend evaluéiert an 131 (40%) waren net geféierlech. An 150 Fäll (45%) goufen d'Problemer u falsch Positiven zougeschriwwen.
Deen neie Parser ass als Add-on fir de Pyre Typ Verifikatiounstoolkit entwéckelt a gëtt an Ärem Repository plazéiert. De Code gëtt ënner der MIT Lizenz verëffentlecht.
Endlech wann Dir méi doriwwer wësse wëllt, Dir kënnt d'Detailer am Original Post kontrolléieren. De Link ass dëst.
Gitt d'éischt fir ze kommentéieren