Հրապարակվել է անալիզատոր, որը հայտնաբերել է 200 վնասակար փաթեթ NPM-ում և PyPI-ում

OpenSSF-ը (Open Source Security Foundation), որը ձևավորվել է Linux Foundation-ի կողմից և ուղղված է բաց կոդով ծրագրային ապահովման անվտանգության բարելավմանը, ներկայացրել է Package Analysis բաց նախագիծը, որը մշակում է փաթեթներում վնասակար կոդի առկայության վերլուծության համակարգ: Ծրագրի կոդը գրված է Go-ում և տարածվում է Apache 2.0 լիցենզիայի ներքո: Առաջարկվող գործիքների օգտագործմամբ NPM և PyPI պահեստների նախնական սկանավորումը թույլ տվեց մեզ բացահայտել ավելի քան 200 նախկինում չհայտնաբերված վնասակար փաթեթներ:

Հայտնաբերված խնդրահարույց փաթեթների մեծ մասը շահարկում է անունների խաչմերուկը նախագծերի ներքին ոչ հրապարակային կախվածությունների հետ (կախվածության շփոթության գրոհ) կամ օգտագործում է typosquatting մեթոդներ (նշանակում է անուններ, որոնք նման են հանրաճանաչ գրադարանների անուններին), ինչպես նաև կանչում են սկրիպտներ, որոնք մուտք են գործում արտաքին հոսթինգներ ընթացքում: տեղադրման գործընթացը: Ըստ Package Analysis-ի մշակողների, հայտնաբերված խնդրահարույց փաթեթների մեծ մասը, ամենայն հավանականությամբ, ստեղծվել են անվտանգության հետազոտողների կողմից, ովքեր մասնակցում են bug bounty ծրագրերին, քանի որ ուղարկված տվյալները սահմանափակվում են օգտագործողի և համակարգի անունով, և գործողությունները կատարվում են բացահայտ, առանց փորձերի: թաքցնել իրենց պահվածքը.

Վնասակար գործողություններով փաթեթները ներառում են.

  • PyPI փաթեթ discordcmd, որը գրանցում է ոչ տիպիկ հարցումների ուղարկումը raw.githubusercontent.com, Discord API և ipinfo.io հասցեներին: Նշված փաթեթը ներբեռնել է ետնադռան կոդը GitHub-ից և տեղադրել այն Discord Windows-ի հաճախորդների գրացուցակում, որից հետո սկսել է ֆայլային համակարգում Discord նշանների որոնման և հարձակվողների կողմից վերահսկվող արտաքին Discord սերվերին ուղարկելու գործընթացը:
  • Colorsss NPM փաթեթը նաև փորձել է դիսկորդ հաշիվից նշաններ ուղարկել արտաքին սերվեր:
  • NPM փաթեթ @roku-web-core/ajax - տեղադրման գործընթացում այն ​​ուղարկեց տվյալներ համակարգի մասին և գործարկեց մշակիչ (հակադարձ կեղև), որն ընդունում էր արտաքին կապերը և գործարկում հրամանները:
  • PyPI փաթեթ գաղտնի երեք - գործարկել է հակադարձ կեղև հատուկ մոդուլ ներմուծելիս:
  • NPM փաթեթ random-vouchercode-generator - գրադարանը ներմուծելուց հետո այն հարցում է ուղարկել արտաքին սերվեր, որը վերադարձրել է հրամանը և այն ժամանակը, երբ այն պետք է գործարկվի:

Փաթեթների վերլուծության աշխատանքը հանգում է կոդերի փաթեթների վերլուծությանը ելակետային կոդում՝ ցանցային կապեր հաստատելու, ֆայլեր մուտք գործելու և հրամաններ գործարկելու համար: Բացի այդ, փաթեթների վիճակի փոփոխությունները վերահսկվում են՝ ի սկզբանե անվնաս ծրագրաշարի թողարկումներից մեկում վնասակար ներդիրների ավելացումը որոշելու համար: Պահեստներում նոր փաթեթների տեսքը վերահսկելու և նախկինում տեղադրված փաթեթներում փոփոխություններ կատարելու համար օգտագործվում է Package Feeds գործիքակազմը, որը միավորում է աշխատանքը NPM, PyPI, Go, RubyGems, Packagist, NuGet և Crate պահեստների հետ:

Փաթեթի վերլուծությունը ներառում է երեք հիմնական բաղադրիչ, որոնք կարող են օգտագործվել ինչպես համատեղ, այնպես էլ առանձին.

  • Փաթեթների վերլուծության աշխատանքների մեկնարկի ժամանակացույց՝ հիմնված Փաթեթների հոսքերի տվյալների վրա:
  • Անալիզատոր, որն ուղղակիորեն ուսումնասիրում է փաթեթը և գնահատում դրա վարքագիծը՝ օգտագործելով ստատիկ վերլուծություն և դինամիկ հետագծման տեխնիկա: Փորձարկումն իրականացվում է մեկուսացված միջավայրում։
  • Բեռնիչ, որը թեստի արդյունքները տեղադրում է BigQuery պահեստում:

Source: opennet.ru

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