Facebook memperkenalkan Pysa, penganalisis statik untuk bahasa Python

Facebook diperkenalkan buka penganalisis statik pysa (Python Static Analyzer), direka untuk mengenal pasti potensi kelemahan dalam kod Python. Penganalisis baharu direka bentuk sebagai alat tambah kepada kit alat semakan jenis Pyre dan disiarkan dalam repositorinya. Kod diterbitkan di bawah lesen MIT.

Pysa menyediakan analisis aliran data hasil daripada pelaksanaan kod, yang membolehkan anda mengenal pasti banyak potensi kelemahan dan isu privasi yang berkaitan dengan penggunaan data di tempat yang tidak sepatutnya muncul.
Contohnya, Pysa boleh menjejaki penggunaan data luaran mentah dalam panggilan yang melancarkan program luaran, dalam operasi fail dan dalam binaan SQL.

Kerja penganalisis adalah untuk mengenal pasti sumber data dan panggilan berbahaya yang mana data asal tidak boleh digunakan. Data daripada permintaan web (contohnya, kamus HttpRequest.GET dalam Django) dianggap sebagai sumber dan panggilan seperti eval dan os.open dianggap sebagai penggunaan berbahaya. Pysa menjejaki aliran data melalui rangkaian panggilan fungsi dan mengaitkan data sumber dengan tempat yang berpotensi berbahaya dalam kod. Kerentanan biasa yang dikenal pasti menggunakan Pysa ialah masalah ubah hala terbuka (CVE-2019 19775-) dalam platform pemesejan Zulip, disebabkan oleh menghantar parameter luaran yang tidak dibersihkan apabila memaparkan lakaran kecil.

Keupayaan pengesanan aliran data Pysa boleh memohon untuk mengesahkan penggunaan rangka kerja tambahan yang betul dan untuk menentukan pematuhan dengan dasar penggunaan data pengguna. Contohnya, Pysa tanpa tetapan tambahan boleh digunakan untuk menyemak projek menggunakan rangka kerja Django dan Tornado. Pysa juga boleh mengesan kelemahan biasa dalam aplikasi web, seperti suntikan SQL dan skrip rentas tapak (XSS).

Di Facebook, penganalisis digunakan untuk menyemak kod perkhidmatan Instagram. Pada suku pertama 2020, Pysa membantu mengenal pasti 44% daripada semua masalah yang ditemui jurutera Facebook dalam pangkalan kod sisi pelayan Instagram.
Secara keseluruhan, proses semakan perubahan automatik Pysa mengenal pasti 330 isu, yang mana 49 (15%) dinilai sebagai utama dan 131 (40%) sebagai tidak teruk. Dalam 150 kes (45%) masalah diklasifikasikan sebagai positif palsu.

Sumber: opennet.ru

Tambah komen