Pysa, Python statiskais analizators, ko piedāvā Facebook

Facebook ir ieviesis atvērtā koda statisko analizatoru ar nosaukumu "Pysa»(Python Static Analyzer), kas ir paredzēts identificēt potenciālās Python koda ievainojamības.

pysa nodrošina datu plūsmas analīzi koda izpildes rezultātā, kas ļauj identificēt daudzas potenciālās ievainojamības un problēmas privātumu, kas saistīts ar datu izmantošanu vietās, kur tiem nevajadzētu parādīties.

Piemēram, Pysa var izsekot neapstrādātu ārējo datu izmantošanu zvanos kas izpilda ārējās programmas failu darbībās un SQL konstrukcijās.

Šodien mēs kopīgojam informāciju par Pysa - atvērtā koda statiskās analīzes rīku, ko esam izveidojuši, lai atklātu un novērstu Python koda drošības un privātuma problēmas. Pagājušajā gadā mēs dalījāmies, kā mēs izveidojām statiskās analīzes rīku Zoncolan, kas palīdz mums analizēt vairāk nekā 100 miljonus uzlaušanas koda rindiņu un palīdzēja inženieriem novērst tūkstošiem iespējamo drošības problēmu. Šie panākumi iedvesmoja mūs izstrādāt Pysa, kas ir Python Static Analyzer saīsinājums.

Pysa izmanto tos pašus algoritmus veikt statisko analīzi un pat koplietot kodu ar zoncolan. Tāpat kā Zoncolan, Pysa izseko datu plūsmas caur programmu.

Lietotājs nosaka avotus (vietas, kur rodas svarīgi dati), kā arī izlietnes (vietas, kur avota datiem nevajadzētu beigties).

Drošības lietojumprogrammām visbiežāk izmantotie avotu veidi ir vietas, kur lietojumprogrammā nonāk lietotāja kontrolēti dati, piemēram, vārdnīca Django.

Uztvērēji mēdz būt daudz dažādāki, taču tajos var būt iekļauti API, kas darbojas ar kodu, piemēram, evalvai API, kas piekļūst failu sistēmai, piemēram,os.open

Pysa veic iteratīvas analīzes kārtas, lai izveidotu abstraktus lai noteiktu, kuras funkcijas atgriež datus no avota un kurām funkcijām ir parametri, kas galu galā nonāk izlietnē. Ja Pysa atklāj, ka avots galu galā savienojas ar izlietni, tas ziņo par problēmu. 

Analizatora darbs tas nosaka ienākošo datu avotu identificēšanu un bīstamiem izsaukumiem, kuros nedrīkst izmantot sākotnējos datus.

Pysa uzrauga datu pāreju caur funkciju izsaukumu ķēdi un saista sākotnējos datus ar potenciāli bīstamām koda vietām.

Tā kā mēs saviem produktiem izmantojam atvērtā koda Python servera ietvarus, piemēram, Django un Tornado, Pysa jau no pirmās palaišanas var sākt saskarties ar drošības problēmām projektos, kas izmanto šos ietvarus. Pysa izmantošana ietvariem, kuriem mums vēl nav pārklājuma, parasti ir tik vienkārši, kā pievienot dažas konfigurācijas rindas, lai paziņotu Pysa, kur dati nonāk serverī.

Pysa identificētā izplatītā ievainojamība ir atvērta novirzīšanas problēma (CVE-2019-19775) ziņojumapmaiņas platformā Zulip, ko izraisa netīru ārējo parametru nodošana, parādot sīktēlus.

Pysa datu plūsmas izsekošanas iespējas var izmantot, lai apstiprinātu papildu rāmju izmantošanu un noteiktu atbilstību lietotāja datu lietošanas politikām.

Piemēram Pysa bez papildu konfigurācijām var izmantot, lai pārbaudītu projektus, izmantojot ietvarus Django un Tornado. Pysa var arī identificēt tīmekļa lietojumprogrammās bieži sastopamās vājās vietas, piemēram, SQL aizstāšanu un starpvietņu skriptu (XSS).

Pakalpojumā Facebook analizatoru izmanto, lai pārbaudītu pakalpojuma Instagram kodu. 2020. gada pirmajā ceturksnī Pysa palīdzēja identificēt 44% no visām problēmām, ko Facebook inženieri atrada Instagram servera puses kodu bāzē.

Šajā procesā kopumā tika identificētas 330 problēmas no automatizētās izmaiņu pārbaudes, izmantojot Pysa, 49 (15%) no tiem tika novērtēti kā nozīmīgi un 131 (40%) nebija bīstami. 150 gadījumos (45%) problēmas tika saistītas ar viltus pozitīviem rezultātiem.

Jaunais parsētājs ir veidots kā Pyre tipa pārbaudes rīku komplekta papildinājums un tiek ievietots jūsu repozitorijā. Kods tiek izlaists ar MIT licenci.

Beidzot ja vēlaties uzzināt vairāk par to, jūs varat pārbaudīt informāciju sākotnējā ziņojumā. Saite ir šī.


Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.