Pysa, penganalisis statis untuk Python yang ditawarkan oleh Facebook

Facebook telah memperkenalkan penganalisis statis open source yang disebut "Pysa»(Python Static Analyzer) yaitu dirancang untuk mengidentifikasi potensi kerentanan dalam kode Python.

pysa menyediakan analisis aliran data sebagai hasil dari eksekusi kode, yaitu memungkinkan Anda mengidentifikasi banyak potensi kerentanan dan masalah privasi terkait penggunaan data di tempat-tempat yang seharusnya tidak menampilkannya.

Misalnya, Pysa dapat melacak penggunaan data eksternal mentah dalam panggilan yang menjalankan program eksternal, dalam operasi file dan konstruksi SQL.

Hari ini, kami membagikan detail tentang Pysa, alat analisis statis open source yang kami buat untuk mendeteksi dan mencegah masalah keamanan dan privasi dalam kode Python. Tahun lalu, kami membagikan cara kami membuat Zoncolan, alat analisis statis yang membantu kami menganalisis lebih dari 100 juta baris kode peretasan dan telah membantu teknisi mencegah ribuan potensi masalah keamanan. Keberhasilan tersebut menginspirasi kami untuk mengembangkan Pysa, yang merupakan singkatan dari Python Static Analyzer.

Pysa menggunakan algoritma yang sama untuk melakukan analisis statis dan bahkan berbagi kode dengan Zoncola. Seperti Zoncolan, Pysa melacak aliran data melalui suatu program.

Pengguna menentukan sumber (tempat asal data penting) serta sink (tempat di mana data sumber tidak boleh diakhiri).

Untuk aplikasi keamanan, tipe paling umum dari sumber adalah tempat dimana data yang dikontrol pengguna memasuki aplikasi, seperti kamus Django.

Penerima cenderung jauh lebih bervariasi, tetapi dapat menyertakan API yang menjalankan kode, seperti eval, atau API yang mengakses sistem file, sepertios.open

Pysa melakukan putaran analisis berulang untuk membangun abstrak untuk menentukan fungsi mana yang mengembalikan data dari sumber dan fungsi mana yang memiliki parameter yang pada akhirnya gagal. Jika Pysa menemukan bahwa sumber akhirnya terhubung ke wastafel, itu melaporkan masalah. 

Pekerjaan analisa intinya adalah mengidentifikasi sumber data yang masuk dan panggilan berbahaya, di mana data asli tidak boleh digunakan.

Pysa memantau perjalanan data melalui rangkaian panggilan fungsi dan mengaitkan data asli dengan tempat-tempat yang berpotensi berbahaya dalam kode.

Karena kami menggunakan kerangka kerja server Python sumber terbuka seperti Django dan Tornado untuk produk kami sendiri, Pysa dapat mulai menghadapi masalah keamanan dalam proyek yang menggunakan kerangka kerja ini sejak pertama kali dijalankan. Menggunakan Pysa untuk frame yang belum memiliki jangkauan kami umumnya sesederhana menambahkan beberapa baris konfigurasi untuk memberi tahu Pysa di mana data masuk ke server.

Kerentanan umum yang diidentifikasi oleh Pysa adalah masalah pengalihan terbuka (CVE-2019-19775) di platform perpesanan Zulip, yang disebabkan oleh parameter eksternal yang tidak bersih saat menampilkan thumbnail.

Kemampuan pelacakan aliran data Pysa dapat digunakan untuk memvalidasi penggunaan bingkai tambahan dan untuk menentukan kepatuhan dengan kebijakan penggunaan data pengguna.

Misalnya Pysa tanpa konfigurasi tambahan dapat digunakan untuk memverifikasi proyek menggunakan kerangka kerja Django dan Tornado. Pysa juga dapat mengidentifikasi kerentanan umum dalam aplikasi web, seperti substitusi SQL dan skrip lintas situs (XSS).

Di Facebook, penganalisis digunakan untuk memverifikasi kode layanan Instagram. Selama kuartal pertama tahun 2020, Pysa membantu mengidentifikasi 44% dari semua masalah yang ditemukan oleh para insinyur Facebook di basis kode sisi server Instagram.

Sebanyak 330 masalah diidentifikasi dalam proses tersebut verifikasi perubahan otomatis menggunakan Pysa, 49 (15%) di antaranya dievaluasi sebagai signifikan dan 131 (40%) tidak berbahaya. Dalam 150 kasus (45%) masalah dikaitkan dengan positif palsu.

Parser baru dirancang sebagai add-on pada toolkit verifikasi jenis Pyre dan ditempatkan di repositori Anda. Kode dirilis di bawah lisensi MIT.

Akhirnya jika Anda ingin tahu lebih banyak tentang itu, Anda dapat memeriksa detailnya di postingan aslinya. Tautannya adalah ini.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.