facebook բաց կոդով ստատիկ վերլուծիչ (Python Static Analyzer), որը նախատեսված է Python կոդում հնարավոր խոցելիությունները բացահայտելու համար: Նոր վերլուծիչը նախատեսված է որպես տեսակի ստուգման գործիքի լրացում: և տեղադրվել է դրա պահոցում։ Կոդ MIT լիցենզիայի ներքո:
Pysa-ն տրամադրում է տվյալների հոսքի վերլուծություն կոդի կատարման ընթացքում, որը կարող է օգնել բացահայտել բազմաթիվ պոտենցիալ խոցելիություններ և գաղտնիության խնդիրներ, որոնք կապված են տվյալների օգտագործման հետ այնպիսի վայրերում, որտեղ դա չպետք է լինի։
Օրինակ, Pysa-ն կարող է հետևել չմաքրված արտաքին տվյալների օգտագործմանը արտաքին ծրագրեր գործարկող զանգերում, ֆայլերի գործողություններում և SQL կոնստրուկտներում։
Վերլուծիչի աշխատանքը հանգում է տվյալների աղբյուրների և վտանգավոր կանչերի նույնականացմանը, որոնցում չպետք է օգտագործվեն սկզբնական տվյալները: Վեբ հարցումներից ստացված տվյալները (օրինակ՝ Django-ի HttpRequest.GET բառարանը) համարվում են աղբյուր, իսկ eval և os.open նման կանչերը՝ վտանգավոր ծրագրեր: Pysa-ն հետևում է տվյալների անցմանը ֆունկցիաների կանչերի շղթայի երկայնքով և սկզբնական տվյալները կապում է կոդի պոտենցիալ վտանգավոր տեղերի հետ: Pysa-ի միջոցով հայտնաբերված տիպիկ խոցելիությունը բաց վերահղման հետ կապված խնդիրն է () Zulip հաղորդագրությունների հարթակում, որը առաջացել է մանրապատկերների արտապատկերման ժամանակ չմաքրված արտաքին պարամետրերի փոխանցման պատճառով։
Pysa-ի տվյալների հոսքի հետևման հնարավորությունները կարող են լրացուցիչ շրջանակների օգտագործման ճշգրտությունը ստուգելու և օգտատիրոջ տվյալների օգտագործման քաղաքականությանը համապատասխանությունը որոշելու համար: Օրինակ, Pysa-ն առանց լրացուցիչ կարգավորումների կարող է օգտագործվել Django և Tornado շրջանակներն օգտագործող նախագծերը ստուգելու համար: Pysa-ն կարող է նաև հայտնաբերել վեբ հավելվածների բնորոշ խոցելիությունները, ինչպիսիք են SQL փոխարինումը և խաչաձև սկրիպտավորումը (XSS):
Facebook-ը վերլուծիչն օգտագործում է Instagram ծառայության կոդը ստուգելու համար: 2020 թվականի առաջին եռամսյակում Pysa-ն օգնել է բացահայտել Facebook-ի ինժեներների կողմից Instagram սերվերի կոդային բազայում հայտնաբերված բոլոր խնդիրների 44%-ը:
Ընդհանուր առմամբ, Pysa-ի միջոցով ավտոմատացված փոփոխությունների ստուգման ընթացքում հայտնաբերվել է 330 խնդիր, որոնցից 49-ը (15%) գնահատվել են որպես նշանակալի, իսկ 131-ը (40%)՝ որպես աննշան: 150 դեպքում (45%) խնդիրները դասակարգվել են որպես կեղծ դրականներ:
Source: opennet.ru
