Facebook kompaniyasi Python tili uchun statik analizator Pysa ni taqdim etdi

Facebook tanishtirdi ochiq statik analizator Pisa (Python Static Analyzer), Python kodidagi potentsial zaifliklarni aniqlash uchun mo'ljallangan. Yangi analizator turni tekshirish asboblar to'plamiga qo'shimcha sifatida ishlab chiqilgan pyre va uning omboriga joylashtirdi. Kod e'lon qilindi MIT litsenziyasi ostida.

Pysa kodning bajarilishi natijasida ma'lumotlar oqimlarining tahlilini taqdim etadi, bu sizga ma'lumotlar paydo bo'lmasligi kerak bo'lgan joylarda foydalanish bilan bog'liq ko'plab mumkin bo'lgan zaifliklar va maxfiylik muammolarini aniqlash imkonini beradi.
Masalan, Pysa tashqi dasturlarni ishga tushiradigan qo'ng'iroqlarda, fayl operatsiyalarida va SQL konstruktsiyalarida xom tashqi ma'lumotlardan foydalanishni kuzatishi mumkin.

Analizatorning ishi dastlabki ma'lumotlardan foydalanmaslik kerak bo'lgan ma'lumotlar manbalarini va xavfli qo'ng'iroqlarni aniqlashga to'g'ri keladi. Veb-so'rovlar ma'lumotlari (masalan, Django'da HttpRequest.GET lug'ati) manba sifatida ko'rib chiqiladi va eval va os.open kabi qo'ng'iroqlar xavfli foydalanish hisoblanadi. Pysa funktsiya chaqiruvlari zanjiri orqali ma'lumotlar oqimini kuzatib boradi va manba ma'lumotlarini koddagi potentsial xavfli joylar bilan bog'laydi. Pysa yordamida aniqlangan odatiy zaiflik ochiq qayta yo'naltirish muammosidir (CVE-2019-19775) eskizlarni ko'rsatishda tozalanmagan tashqi parametrlarni o'tkazish natijasida yuzaga kelgan Zulip xabar almashish platformasida.

Pysa-ning ma'lumotlar oqimini kuzatish qobiliyatlari mumkin murojaat qilish qo'shimcha ramkalardan to'g'ri foydalanishni tekshirish va foydalanuvchi ma'lumotlaridan foydalanish siyosatiga muvofiqligini aniqlash. Masalan, Pysa qo'shimcha sozlamalarsiz Django va Tornado ramkalaridan foydalangan holda loyihalarni tekshirish uchun ishlatilishi mumkin. Pysa shuningdek, veb-ilovalardagi SQL in'ektsiyasi va saytlararo skript (XSS) kabi keng tarqalgan zaifliklarni aniqlay oladi.

Facebook’da analizator Instagram xizmati kodini tekshirish uchun ishlatiladi. 2020 yilning birinchi choragida Pysa Facebook muhandislari Instagram’ning server tomonidagi kodlar bazasida topilgan barcha muammolarning 44 foizini aniqlashga yordam berdi.
Umuman olganda, Pysa’ning avtomatlashtirilgan o‘zgarishlarni ko‘rib chiqish jarayoni 330 ta muammoni aniqladi, ulardan 49 tasi (15%) asosiy va 131 tasi (40%) jiddiy emas deb baholandi. 150 ta holatda (45%) muammolar noto'g'ri ijobiy deb tasniflangan.

Manba: opennet.ru

a Izoh qo'shish