Pysa, penganalisis statik pikeun Python ditawarkeun ku Facebook

Facebook parantos ngenalkeun analisa statik sumber terbuka anu disebut "Pysa»(Python Static Analyzer) nyaéta dirancang pikeun ngaidentipikasi kerentanan poténsial dina kode Python.

pisa nyadiakeun analisis aliran data salaku hasil tina palaksanaan kode, anu ngamungkinkeun anjeun ngaidentipikasi seueur kamungkinan kerentanan sareng masalah karusiahan anu aya hubunganana sareng panggunaan data di tempat-tempat anu henteu kedah némbongan.

Salaku conto, Pysa tiasa ngalacak panggunaan data éksternal atah dina nelepon anu ngaéksekusi program éksternal, dina operasi file sareng konstruksi SQL.

Dinten ieu, kami ngabagi detil ngeunaan Pysa, alat analisa statis sumber kabuka anu parantos kami bina pikeun ngadeteksi sareng nyegah masalah kaamanan sareng privasi dina kode Python. Taun kamari, kami ngabahas kumaha kami nyiptakeun Zoncolan, alat analisa statis anu ngabantosan kami nganalisis langkung ti 100 juta garis kode hack sareng parantos ngabantosan insinyur nyegah rébuan masalah kaamanan poténsial. Kasuksésan éta diideuan pikeun ngembangkeun Pysa, anu mangrupikeun akronim pikeun Python Static Analyzer.

Pysa nganggo algoritma anu sami pikeun ngalakukeun analisis statis sareng ngabagi kode sareng Zoncolan. Sapertos Zoncolan, Pysa ngalacak data ngalir ngaliwatan program.

Pamaké nangtoskeun sumber (tempat asal data penting) ogé tilelep (tempat dimana sumber data henteu kedah tamat).

Kanggo aplikasi kaamanan, jinis sumber anu paling umum nyaéta tempat dimana data anu dikendali ku pangguna lebet kana aplikasi, sapertos kamus Django.

Panarima condong jauh langkung seueur, tapi tiasa kalebet API anu ngaji kode, sapertos eval, atanapi API anu ngaksés sistem file, sapertosos.open

Pysa ngalakukeun babak analisis pikeun ngawangun abstrak pikeun nangtukeun fungsi mana anu balikkeun data tina sumber sareng fungsi mana anu ngagaduhan parameter anu tungtungna pencét tilelep. Upami Pysa mendakan yén sumber antukna nyambung kana tilelep, éta ngalaporkeun masalah. 

Pagawean penganalisis éta bisul pikeun ngaidentipikasi sumber data anu datang sareng telepon bahaya, numana data aslina henteu kedah dianggo.

Pysa ngawaskeun ngalirkeun data ngalangkungan ranté fungsi nelepon sareng ngaitkeun data aslina sareng tempat anu berpotensi bahaya dina kode.

Kusabab urang nganggo kerangka server open source Python sapertos Django sareng Tornado pikeun produk urang nyalira, Pysa tiasa ngamimitian ngungkulan masalah kaamanan dina proyék-proyék anu nganggo kerangka ieu ti mimiti ngajalankeun. Ngagunakeun Pysa pikeun kerangka anu urang teu ngagaduhan cakupan biasana umumna saderhana nambahan sababaraha garis konfigurasi pikeun nyaritakeun Pysa dimana data asup kana sérver.

Kerentanan umum anu diidentipikasi ku Pysa mangrupikeun masalah pangalihan terbuka (CVE-2019-19775) dina platform olahtalatah Zulip, disababkeun ku ngalirkeun parameter luar anu najis nalika nembongkeun gambar leutik.

Kamampuan nyukcruk aliran data Pysa tiasa dianggo pikeun ngesahkeun panggunaan pigura tambihan sareng pikeun nangtoskeun patuh kana kabijakan panggunaan data pangguna.

Contona, Pysa tanpa konfigurasi tambihan tiasa dianggo pikeun mastikeun proyék nganggo kerangka Django sareng Puting beliung. Pysa ogé tiasa ngaidentipikasi kerentanan umum dina aplikasi wéb, sapertos substitusi SQL sareng cross-site scripting (XSS).

Dina Facebook, analisa digunakeun pikeun verifikasi kode jasa Instagram. Salila kuartal kahiji taun 2020, Pysa ngabantosan ngaidentipikasi 44% tina sadaya masalah anu dipendakan ku insinyur Facebook dina basis kode sisi server-Instagram.

Jumlahna aya 330 masalah anu diidéntifikasi dina prosés tina verifikasi parobihan otomatis nganggo Pysa, 49 (15%) diantarana dievaluasi sakumaha signifikan sareng 131 (40%) henteu bahaya. Dina 150 kasus (45%) masalah disababkeun ku positip palsu.

Parser énggal dirancang salaku suplemén pikeun toolkit verifikasi tipe Pyre sareng disimpen dina Repository anjeun. Kodeu dileupaskeun dina lisénsi MIT.

tungtungna upami anjeun hoyong terang langkung seueur perkawis éta, anjeun tiasa mariksa detil dina tulisan aslina. Link na ieu.


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

Janten kahiji komen

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun.

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

bool (leres)