Facebook нь Python хэлний статик анализатор Pysa-г нэвтрүүлсэн

Facebook-ийн танилцуулав нээлттэй статик анализатор Пйса (Python Static Analyzer) нь Python кодын болзошгүй эмзэг байдлыг тодорхойлох зорилготой. Шинэ анализатор нь төрөл шалгах хэрэгслийн нэмэлт болгон бүтээгдсэн Пайр мөн өөрийн нөөцөд байршуулсан. Код нийтэлсэн MIT лицензийн дагуу.

Pysa нь кодыг гүйцэтгэсний үр дүнд өгөгдлийн урсгалд дүн шинжилгээ хийдэг бөгөөд энэ нь өгөгдөл гарч ирэх ёсгүй газруудад ашиглахтай холбоотой олон болзошгүй эмзэг байдал, нууцлалын асуудлыг тодорхойлох боломжийг олгодог.
Жишээлбэл, Pysa нь гадаад програм ажиллуулдаг дуудлага, файлын үйл ажиллагаа, SQL бүтэц дэх түүхий гадаад мэдээллийн ашиглалтыг хянах боломжтой.

Анализаторын ажил нь өгөгдлийн эх сурвалж, анхны өгөгдлийг ашиглах ёсгүй аюултай дуудлагыг тодорхойлоход чиглэдэг. Вэб хүсэлтийн өгөгдлийг (жишээ нь, Django дахь HttpRequest.GET толь бичиг) эх сурвалж гэж үздэг бөгөөд eval болон os.open гэх мэт дуудлага нь аюултай хэрэглээ гэж тооцогддог. Pysa нь функцийн дуудлагын гинжин хэлхээгээр дамжуулан өгөгдлийн урсгалыг хянаж, код дахь аюултай газруудтай эх өгөгдлийг холбодог. Pysa ашиглан тодорхойлсон ердийн эмзэг байдал нь дахин чиглүүлэх нээлттэй асуудал юм (CVE-2019-19775) Зулип мессежийн платформ дахь өнгөц зургийг гаргахдаа цэвэрлээгүй гадаад параметрүүдийг дамжуулснаас үүдэлтэй.

Pysa-ийн өгөгдлийн урсгалыг хянах чадварууд нь боломжтой өргөдөл гаргах нэмэлт фрэймворкийн зөв ашиглалтыг шалгах, хэрэглэгчийн өгөгдөл ашиглалтын бодлогод нийцэж байгаа эсэхийг тодорхойлох. Жишээлбэл, нэмэлт тохиргоогүйгээр Pysa-г Django болон Tornado frameworks ашиглан төслүүдийг шалгахад ашиглаж болно. Pysa нь вэб программууд дахь SQL injection болон сайт хоорондын скрипт (XSS) зэрэг нийтлэг эмзэг байдлыг илрүүлж чаддаг.

Facebook дээр анализаторыг Instagram үйлчилгээний кодыг шалгахад ашигладаг. 2020 оны эхний улиралд Pysa нь Facebook-ийн инженерүүд Instagram-ын сервер талын кодын санд олсон бүх асуудлын 44 хувийг тодорхойлоход тусалсан.
Pysa-ийн автоматжуулсан өөрчлөлтийг хянан шалгах үйл явц нь нийтдээ 330 асуудлыг тодорхойлсон бөгөөд үүнээс 49 (15%) нь гол, 131 (40%) нь ноцтой биш гэж үнэлэгдсэн. 150 тохиолдолд (45%) асуудлыг худал эерэг гэж ангилсан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх