Facebook wis ngenalake analisa statis sumber terbuka sing diarani «Pysa»(Python Static Analyzer) yaiku dirancang kanggo ngenali kerentanan potensial ing kode Python.
pisa nyedhiyakake analisis aliran data minangka asil eksekusi kode, sing ngidini sampeyan ngenali babagan kemungkinan kerentanan lan masalah privasi sing gegandhengan karo panggunaan data ing papan sing ora katon.
Contone, Pysa bisa nglacak panggunaan data eksternal mentah ing telpon sing nglakokake program eksternal, ing operasi file, lan ing konstruksi SQL.
Dina iki, kita nuduhake rincian babagan Pysa, alat analisis statis sumber terbuka sing wis dibangun kanggo ndeteksi lan nyegah masalah keamanan lan privasi ing kode Python. Ing taun kepungkur, kita nuduhake cara nggawe Zoncolan, alat analisis statis sing mbantu kita nganalisa luwih saka 100 yuta baris kode hack lan mbantu para insinyur nyegah ewonan masalah keamanan potensial. Sukses kasebut menehi inspirasi kanggo ngembangake Pysa, yaiku akronim kanggo Python Static Analyzer.
Pysa nggunakake algoritma sing padha kanggo nindakake analisis statis lan malah nuduhake kode karo zoncolan. Kaya Zoncolan, Pysa nglacak data mili liwat program.
Pangguna nemtokake sumber (papane data penting asale) uga klelep (papan sing ora bisa mungkasi data sumber).
Kanggo aplikasi keamanan, jinis sumber sing paling umum yaiku papan sing data kontrol pangguna mlebu aplikasi, kayata kamus Django.
Panrima cenderung luwih beda-beda, nanging bisa kalebu API sing mbukak kode, kayata eval
, utawa API sing ngakses sistem file, kayataos.open
.
Pysa nindakake analisis analisis iteratif kanggo nggawe abstrak kanggo nemtokake fungsi sing ngasilake data saka sumber lan fungsi sing nduwe parameter sing pungkasane tekan sink. Yen Pysa nemokake manawa ana sumber sing nyambung menyang sink, mula ana masalah.
Pakaryan nganalisa mula bakal dingerteni kanggo ngidentifikasi sumber data sing mlebu lan telpon mbebayani, sing data asli ora digunakake.
Pysa ngawasi data liwat jaringan telpon fungsi lan nggandhengake data asli karo papan sing bisa mbebayani ing kode kasebut.
Amarga nggunakake kerangka server Python open source kaya Django lan Tornado kanggo produk kita dhewe, Pysa bisa miwiti nemoni masalah keamanan ing proyek sing nggunakake kerangka kasebut wiwit wiwitan. Nggunakake Pysa kanggo pigura sing durung ana jangkoan, umume gampang kaya nambah sawetara garis konfigurasi kanggo ngandhani Pysa ing endi data mlebu ing server.
Kerentanan umum sing diidentifikasi dening Pysa yaiku masalah pangalihan mbukak (CVE-2019-19775) ing platform olahpesen Zulip, disebabake liwat parameter eksternal sing ora resik nalika nampilake gambar cilik.
Kapabilitas pelacakan aliran data Pysa bisa digunakake kanggo validasi panggunaan pigura tambahan lan kanggo nemtokake kepatuhan karo kabijakan panggunaan data pangguna.
Contone, Pysa tanpa konfigurasi tambahan bisa digunakake kanggo verifikasi proyek nggunakake kerangka kerja Django lan Tornado. Pysa uga bisa ngenali kerentanan umum ing aplikasi web, kayata substitusi SQL lan skrip lintas situs (XSS).
Ing Facebook, analisa digunakake kanggo verifikasi kode layanan Instagram. Sajrone kuartal pertama taun 2020, Pysa mbantu ngenali 44% kabeh masalah sing ditemokake dening insinyur Facebook ing basis kode sisi server Instagram.
Ana total 330 masalah sing diidentifikasi ing proses kasebut verifikasi pangowahan otomatis nggunakake Pysa, 49 (15%) sing dievaluasi signifikan lan 131 (40%) ora mbebayani. Ing 150 kasus (45%) masalah kasebut dianggep positif ala.
Parser anyar dirancang minangka tambahan kanggo toolkit verifikasi jinis Pyre lan dilebokake ing repositori sampeyan. Kode kasebut diluncurake kanthi lisensi MIT.
Pungkasan yen sampeyan pengin ngerti luwih lengkap babagan iki, sampeyan bisa mriksa rincian ing kiriman asli. Linke yaiku.
Dadi pisanan komentar