Facebook-ը ներկայացրել է Pysa-ն՝ Python լեզվի ստատիկ անալիզատոր

facebook ներկայացրեց բաց ստատիկ անալիզատոր Պիսա (Python Static Analyzer), որը նախատեսված է Python կոդի պոտենցիալ խոցելիությունը հայտնաբերելու համար: Նոր անալիզատորը նախագծված է որպես տիպի ստուգման գործիքակազմի հավելում pyre և տեղադրեց իր պահոցում: Կոդ հրատարակված MIT լիցենզիայի ներքո:

Pysa-ն տրամադրում է տվյալների հոսքերի վերլուծություն կոդերի կատարման արդյունքում, ինչը թույլ է տալիս բացահայտել բազմաթիվ պոտենցիալ խոցելիություններ և գաղտնիության խնդիրներ՝ կապված տվյալների օգտագործման հետ այն վայրերում, որտեղ դրանք չպետք է հայտնվեն:
Օրինակ, Pysa-ն կարող է հետևել չմշակված արտաքին տվյալների օգտագործմանը արտաքին ծրագրեր գործարկող զանգերում, ֆայլերի գործառնություններում և SQL կառուցվածքներում:

Անալիզատորի աշխատանքը հանգում է տվյալների աղբյուրների և վտանգավոր զանգերի նույնականացմանը, որոնցում բնօրինակ տվյալները չպետք է օգտագործվեն: Վեբ հարցումների տվյալները (օրինակ՝ HttpRequest.GET բառարանը Django-ում) համարվում են աղբյուր, իսկ eval-ի և os.open-ի նման զանգերը համարվում են վտանգավոր օգտագործում: Pysa-ն հետևում է տվյալների հոսքին ֆունկցիայի կանչերի շղթայի միջոցով և կապում է աղբյուրի տվյալները կոդի պոտենցիալ վտանգավոր վայրերի հետ: Pysa-ի միջոցով հայտնաբերված տիպիկ խոցելիությունը բաց վերահղման խնդիր է (CVE-2019-19775- ը) Zulip հաղորդագրությունների հարթակում, որն առաջացել է մանրապատկերների ցուցադրման ժամանակ չմաքրված արտաքին պարամետրերի փոխանցման արդյունքում:

Pysa-ի տվյալների հոսքին հետևելու հնարավորությունները կարող են դիմել ստուգելու լրացուցիչ շրջանակների ճիշտ օգտագործումը և օգտատերերի տվյալների օգտագործման քաղաքականությանը համապատասխանությունը որոշելու համար: Օրինակ, Pysa-ն առանց լրացուցիչ կարգավորումների կարող է օգտագործվել նախագծերը ստուգելու համար՝ օգտագործելով Django և Tornado շրջանակները: Pysa-ն կարող է նաև հայտնաբերել ընդհանուր խոցելիությունները վեբ հավելվածներում, ինչպիսիք են SQL ներարկումը և միջկայքի սկրիպտավորումը (XSS):

Facebook-ում անալիզատորն օգտագործվում է Instagram ծառայության կոդը ստուգելու համար։ 2020 թվականի առաջին եռամսյակում Pysa-ն օգնեց բացահայտել բոլոր այն խնդիրների 44%-ը, որոնք Facebook-ի ինժեներները հայտնաբերել էին Instagram-ի սերվերային կոդերի բազայում:
Ընդհանուր առմամբ, Pysa-ի փոփոխությունների վերանայման ավտոմատացված գործընթացը հայտնաբերել է 330 խնդիր, որոնցից 49-ը (15%) գնահատվել է որպես հիմնական, իսկ 131-ը (40%)՝ ոչ ծանր: 150 դեպքերում (45%) խնդիրները դասակարգվել են որպես կեղծ դրական:

Source: opennet.ru

Добавить комментарий