Pysa, un analizor static pentru Python oferit de Facebook

Facebook a introdus un analizor static open source numit «Pysa»(Python Static Analyzer) care este conceput pentru a identifica vulnerabilitățile potențiale în codul Python.

pysa oferă analiza fluxului de date ca urmare a executării codului, care vă permite să identificați multe vulnerabilități și probleme potențiale de confidențialitate legată de utilizarea datelor în locuri unde nu ar trebui să apară.

De exemplu, Pysa poate urmări utilizarea datelor brute externe în apeluri care execută programe externe, în operații de fișiere și în construcții SQL.

Astăzi, împărtășim detalii despre Pysa, un instrument de analiză statică open source pe care l-am creat pentru a detecta și preveni problemele de securitate și confidențialitate în codul Python. Anul trecut, am împărtășit modul în care am creat Zoncolan, un instrument de analiză statică care ne ajută să analizăm mai mult de 100 de milioane de linii de cod de hack și a ajutat inginerii să prevină mii de potențiale probleme de securitate. Acest succes ne-a inspirat să dezvoltăm Pysa, care este un acronim pentru Python Static Analyzer.

Pysa folosește aceiași algoritmi pentru a efectua analize statice și chiar pentru a partaja codul cu zoncolan. La fel ca Zoncolan, Pysa urmărește fluxurile de date printr-un program.

Utilizatorul definește sursele (locurile în care provin date importante), precum și chiuvetele (locurile în care datele sursă nu ar trebui să se termine).

Pentru aplicațiile de securitate, cele mai frecvente tipuri de surse sunt locurile în care datele controlate de utilizator intră în aplicație, cum ar fi dicționarul Django.

Receptoarele tind să fie mult mai variate, dar pot include API-uri care rulează cod, cum ar fi eval, sau API-uri care accesează sistemul de fișiere, cum ar fios.open

Pysa efectuează runde iterative de analiză pentru a construi rezumate pentru a determina ce funcții returnează date dintr-o sursă și care funcții au parametri care, în cele din urmă, au lovit o chiuvetă. Dacă Pysa constată că o sursă se conectează în cele din urmă la o chiuvetă, va raporta o problemă. 

Munca analizorului se reduce la identificarea surselor de date primite și apeluri periculoase, în care datele originale nu ar trebui utilizate.

Pysa monitorizează trecerea datelor prin lanțul de apeluri funcționale și asociază datele originale cu locuri potențial periculoase din cod.

Deoarece folosim cadrele open source pentru server Python, cum ar fi Django și Tornado, pentru propriile noastre produse, Pysa poate începe să întâmpine probleme de securitate în proiectele care utilizează aceste cadre încă de la prima rulare. Utilizarea Pysa pentru framework-uri pentru care nu avem acoperire este în general la fel de simplă ca adăugarea câtorva linii de configurare pentru a spune Pysa unde intră datele în server.

O vulnerabilitate comună identificată de Pysa este o problemă de redirecționare deschisă (CVE-2019-19775) în platforma de mesagerie Zulip, cauzată de trecerea parametrilor externi necurați la afișarea miniaturilor.

Capacitățile de urmărire a fluxului de date Pysa pot fi utilizate pentru a valida utilizarea cadrelor suplimentare și pentru a determina conformitatea cu politicile de utilizare a datelor utilizatorilor.

De exemplu, Pysa fără configurații suplimentare poate fi utilizat pentru a verifica proiectele folosind cadrele Django și Tornado. Pysa poate identifica, de asemenea, vulnerabilitățile comune în aplicațiile web, cum ar fi substituirea SQL și scripturile cross-site (XSS).

Pe Facebook, analizorul este utilizat pentru a verifica codul serviciului Instagram. În primul trimestru al anului 2020, Pysa a ajutat la identificarea a 44% din toate problemele găsite de inginerii Facebook în baza de coduri a serverului Instagram.

În total au fost identificate 330 de probleme în acest proces de verificare automată a modificărilor folosind Pysa, 49 (15%) dintre care au fost evaluați ca fiind semnificativi și 131 (40%) nu au fost periculoși. În 150 de cazuri (45%) problemele au fost atribuite falsurilor pozitive.

Noul analizator este conceput ca un supliment la setul de instrumente de verificare de tip Pyre și este plasat în depozitul dvs. Codul este eliberat sub licența MIT.

În cele din urmă dacă vrei să afli mai multe despre asta, puteți verifica detaliile în postarea originală. Legătura este aceasta.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.