Pysa, en statisk analysator för Python som erbjuds av Facebook

Facebook har introducerat en statisk analysator med öppen källkod som heter «Pysa»(Python Static Analyzer) vilket är utformad för att identifiera potentiella sårbarheter i Python-kod.

pysa tillhandahåller dataflödesanalys som ett resultat av kodkörning, vilken låter dig identifiera många potentiella sårbarheter och problem integritet relaterad till användning av data på platser där den inte ska visas.

Till exempel Pysa kan spåra användningen av rå externa data i samtal som kör externa program, i filoperationer och i SQL-konstruktioner.

Idag delar vi information om Pysa, ett statiskt analysverktyg med öppen källkod som vi har byggt för att upptäcka och förhindra säkerhets- och sekretessproblem i Python-kod. Förra året delade vi hur vi skapade Zoncolan, ett statiskt analysverktyg som hjälper oss att analysera mer än 100 miljoner rader hackkod och har hjälpt ingenjörer att förhindra tusentals potentiella säkerhetsproblem. Den framgången inspirerade oss att utveckla Pysa, som är en förkortning för Python Static Analyzer.

Pysa använder samma algoritmer att utföra statisk analys och till och med dela kod med Zoncolan. Liksom Zoncolan, Pysa spårar dataflöden genom ett program.

Användaren definierar källor (platser där viktig information har sitt ursprung) samt sänkor (platser där källdata inte ska sluta).

För säkerhetsapplikationer är de vanligaste typerna av källor platser där användarkontrollerad data kommer in i applikationen, till exempel Django-ordlistan.

Mottagare tenderar att vara mycket mer varierade men kan inkludera API: er som kör kod, till exempel evaleller API: er som har åtkomst till filsystemet, till exempelos.open

Pysa utför iterativa analysomgångar för att bygga abstrakt för att bestämma vilka funktioner som returnerar data från en källa och vilka funktioner som har parametrar som så småningom träffar en diskbänk. Om Pysa upptäcker att en källa så småningom ansluter till ett handfat rapporterar det ett problem. 

Analysatorarbete det handlar om att identifiera inkommande datakällor och farliga samtal där originaldata inte ska användas.

Pysa övervakar överföringen av data genom kedjan av funktionssamtal och associerar originaldata med potentiellt farliga platser i koden.

Eftersom vi använder Python-serverramar med öppen källkod som Django och Tornado för våra egna produkter, kan Pysa börja stöta på säkerhetsproblem i projekt som använder dessa ramar från första början. Att använda Pysa för ramar som vi ännu inte har täckning för är i allmänhet så enkelt som att lägga till några konfigurationsrader för att berätta för Pysa var data kommer in på servern.

En vanlig sårbarhet som identifierats av Pysa är ett öppet omdirigeringsproblem (CVE-2019-19775) i Zulip-meddelandeplattformen som orsakas av att orena externa parametrar skickas när miniatyrer visas.

Pysas dataflödsspårningsfunktioner kan användas för att validera användningen av ytterligare ramar och för att bestämma överensstämmelse med användardatapolicyn.

T.ex. Pysa utan ytterligare konfigurationer kan användas för att verifiera projekt med ramarna Django och Tornado. Pysa kan också identifiera vanliga sårbarheter i webbapplikationer, såsom SQL-substitution och cross-site scripting (XSS).

På Facebook används analysatorn för att verifiera koden för Instagram-tjänsten. Under första kvartalet 2020 hjälpte Pysa till att identifiera 44% av alla problem som hittades av Facebook-ingenjörer i Instagrams serverbaserade kodbas.

Totalt 330 problem identifierades i processen av automatiserad ändringsverifiering med Pysa, varav 49 (15%) utvärderades som signifikanta och 131 (40%) var inte farliga. I 150 fall (45%) tillskrivs problemen falska positiva effekter.

Den nya parsern är utformad som ett komplement till Pyre-typverifieringsverktygssatsen och placeras i ditt förråd. Koden släpps under MIT-licensen.

Slutligen om du vill veta mer om det, du kan kontrollera detaljerna i originalinlägget. Länken är den här.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.