Facebook memperkenalkan Pysa, penganalisis statis untuk bahasa Python

Facebook diperkenalkan buka penganalisa statis pysa (Python Static Analyzer), dirancang untuk mengidentifikasi potensi kerentanan dalam kode Python. Alat analisa baru ini dirancang sebagai tambahan pada perangkat pengecekan tipe Onggokan kayu api dan diposting di repositorinya. Kode diterbitkan di bawah lisensi MIT.

Pysa menyediakan analisis aliran data sebagai hasil eksekusi kode, yang memungkinkan Anda mengidentifikasi banyak potensi kerentanan dan masalah privasi yang terkait dengan penggunaan data di tempat yang tidak seharusnya muncul.
Misalnya, Pysa dapat melacak penggunaan data eksternal mentah dalam panggilan yang meluncurkan program eksternal, dalam operasi file, dan dalam konstruksi SQL.

Pekerjaan penganalisa adalah mengidentifikasi sumber data dan panggilan berbahaya di mana data asli tidak boleh digunakan. Data dari permintaan web (misalnya, kamus HttpRequest.GET di Django) dianggap sebagai sumber, dan panggilan seperti eval dan os.open dianggap sebagai penggunaan berbahaya. Pysa melacak aliran data melalui rangkaian pemanggilan fungsi dan mengaitkan data sumber dengan tempat yang berpotensi berbahaya dalam kode. Kerentanan umum yang diidentifikasi menggunakan Pysa adalah masalah pengalihan terbuka (CVE-2019-19775) di platform perpesanan Zulip, yang disebabkan oleh penyampaian parameter eksternal yang tidak bersih saat merender gambar mini.

Kemampuan pelacakan aliran data Pysa bisa berlaku untuk memverifikasi kebenaran penggunaan kerangka kerja tambahan dan untuk menentukan kepatuhan terhadap kebijakan penggunaan data pengguna. Misalnya, Pysa tanpa pengaturan tambahan dapat digunakan untuk memeriksa proyek menggunakan kerangka Django dan Tornado. Pysa juga dapat mendeteksi kerentanan umum dalam aplikasi web, seperti injeksi SQL dan skrip lintas situs (XSS).

Di Facebook, penganalisis digunakan untuk memeriksa kode layanan Instagram. Pada kuartal pertama tahun 2020, Pysa membantu mengidentifikasi 44% dari seluruh masalah yang ditemukan teknisi Facebook di basis kode sisi server Instagram.
Secara total, proses peninjauan perubahan otomatis Pysa mengidentifikasi 330 masalah, dimana 49 (15%) di antaranya dinilai sebagai masalah besar dan 131 (40%) sebagai masalah tidak parah. Dalam 150 kasus (45%) masalahnya diklasifikasikan sebagai positif palsu.

Sumber: opennet.ru

Tambah komentar