Cyflwynodd OpenSSF (Open Source Security Foundation), a ffurfiwyd gan y Linux Foundation ac a anelwyd at wella diogelwch meddalwedd ffynhonnell agored, y Dadansoddiad Pecyn prosiect agored, sy'n datblygu system ar gyfer dadansoddi presenoldeb cod maleisus mewn pecynnau. Mae cod y prosiect wedi'i ysgrifennu yn Go a'i ddosbarthu o dan drwydded Apache 2.0. Roedd sgan rhagarweiniol oβr storfeydd NPM a PyPI gan ddefnyddioβr offer arfaethedig yn ein galluogi i nodi mwy na 200 o becynnau maleisus nas canfuwyd yn flaenorol.
Mae'r rhan fwyaf o'r pecynnau problemus a nodwyd yn trin croestoriad enwau Γ’ dibyniaethau mewnol prosiectau nad ydynt yn gyhoeddus (ymosodiad dryswch ar ddibyniaeth) neu'n defnyddio dulliau teipscwatio (aseinio enwau tebyg i enwau llyfrgelloedd poblogaidd), a hefyd yn galw sgriptiau sy'n cyrchu gwesteiwyr allanol yn ystod y broses osod. Yn Γ΄l datblygwyr Dadansoddi Pecyn, mae'r rhan fwyaf o'r pecynnau problemus a nodwyd yn fwyaf tebygol o gael eu creu gan ymchwilwyr diogelwch sy'n cymryd rhan mewn rhaglenni bounty byg, gan fod y data a anfonir yn gyfyngedig i enw'r defnyddiwr a'r system, a bod y gweithredoedd yn cael eu cyflawni'n benodol, heb ymdrechion i cuddio eu hymddygiad.
Mae pecynnau gyda gweithgaredd maleisus yn cynnwys:
- Discordcmd pecyn PyPI, sy'n cofnodi anfon ceisiadau annodweddiadol i raw.githubusercontent.com, Discord API ac ipinfo.io. Dadlwythodd y pecyn penodedig y cod drws cefn o GitHub a'i osod yn y cyfeiriadur cleient Discord Windows, ac ar Γ΄l hynny dechreuodd y broses o chwilio am docynnau Discord yn y system ffeiliau a'u hanfon at weinydd Discord allanol a reolir gan yr ymosodwyr.
- Ceisiodd y pecyn NPM lliwiau hefyd anfon tocynnau o gyfrif Discord i weinydd allanol.
- Pecyn NPM @roku-web-core/ajax - yn ystod y broses osod anfonodd ddata am y system a lansio triniwr (cragen wrthdroi) a dderbyniodd gysylltiadau allanol a lansio gorchmynion.
- Pecyn PyPI secrevthree - lansiodd gragen wrthdro wrth fewnforio modiwl penodol.
- Pecyn NPM random-vouchercode-generator - ar Γ΄l mewnforio'r llyfrgell, anfonodd gais at weinydd allanol, a ddychwelodd y gorchymyn a'r amser y dylid ei redeg.
Mae gwaith Dadansoddi Pecyn yn dibynnu ar ddadansoddi pecynnau cod yn y cod ffynhonnell ar gyfer sefydlu cysylltiadau rhwydwaith, cyrchu ffeiliau, a rhedeg gorchmynion. Yn ogystal, mae newidiadau yng nghyflwr pecynnau yn cael eu monitro i benderfynu ar ychwanegu mewnosodiadau maleisus yn un o'r datganiadau meddalwedd diniwed i ddechrau. Er mwyn monitro ymddangosiad pecynnau newydd mewn ystorfeydd a gwneud newidiadau i becynnau a bostiwyd yn flaenorol, defnyddir y pecyn cymorth Package Feeds, sy'n uno gwaith gyda'r storfeydd NPM, PyPI, Go, RubyGems, Packagist, NuGet a Crate.
Mae Dadansoddiad Pecyn yn cynnwys tair cydran sylfaenol y gellir eu defnyddio ar y cyd ac ar wahΓ’n:
- Trefnydd ar gyfer lansio gwaith dadansoddi pecynnau yn seiliedig ar ddata o Package Feeds.
- Dadansoddwr sy'n archwilio pecyn yn uniongyrchol ac yn gwerthuso ei ymddygiad gan ddefnyddio dadansoddiad statig a thechnegau olrhain deinamig. Cynhelir y prawf mewn amgylchedd anghysbell.
- Llwythwr sy'n gosod canlyniadau'r profion yn storfa BigQuery.
Ffynhonnell: opennet.ru