At Xygeni, wy hawwe it ôfrûne jier drok west mei it ymplementearjen fan in wiidweidich systeem dat iepenbiere iepen-boarne pakketregisters kontrolearret op fertochte aktiviteit of ynherint kwea-aardige koade.
Dizze ynfrastruktuer lit ús ta om alle pakketten dy't deistich publisearre wurde yn realtime te analysearjen. Ek kinne wy ôfwikend brûkersgedrach kontrolearje.
Wylst de oanwêzigens fan kweade koade yn pakketregisters wol bekend is, binne der oare frjemde of ûngewoane gedragingen dy't folslein ûnopmurken bliuwe by de reguliere brûkers fan dizze registers. Sels foar dyjingen ûnder ús dy't se nau yn 'e gaten hâlde, is it net maklik om in reden of útlis te finen foar sok gedrach.
Wat it Xygeni-team karakterisearret is ús oanhâldendheid as wy mei in probleem te krijen hawwe, dus wy hawwe hjir djipper yn dûkt.
It begûn allegear mei in pyk yn 'e statistiken
Lykas ik earder neamde, kontrolearje wy as ûnderdiel fan ús ynfrastruktuer in protte aktiviteitsmetriken yn iepenbiere iepen-boarne pakketregisters.
Yn 'e lêste dagen fan maart sloech myn wurkkollega Carmen alarm. Wy begûnen in flinke ôfwiking te observearjen yn it oantal pakketten publisearre op NPM. Nei in earste resinsje fûnen wy dat dizze ôfwiking benammen te tankjen wie oan in relatyf lyts oantal brûkers waans publikaasjetaryf fan pakketten ynienen omheech sjitten wie.
Dit hat ús derta oanset om ús proses en de byhearrende gegevens binnen it platfoarm te besjen. Gelokkich hat ús resinsje útwiisd dat de gegevens korrekt liken te wêzen, mar dit wie ek wat ferbjusterjend!
Nei fierdere ynspeksje hawwe wy fûn dat dizze pakketten ferskate mienskiplike skaaimerken hiene:
- De útjouwers wiene nij oanmakke brûkers, net âlder as ien of twa moannen op syn heechst.
- De pakketten hienen skynber willekeurige nammen, wierskynlik generearre mei in wurdboek. Wy kinne pakketnammen fine mei frjemde nammen lykas enorme_mite-smiletea, erick-mangut94-sukiwir, eksoatyske_reptiel-appteadev or obvious_tuna-appteadevWy sille in taheaksel tafoegje mei wat foarbylden fan 'e aktiva dy't wy fûn hawwe.
- De ynhâld fan dizze pakketten wie tige ferlykber, faak itselde.
Yn dizze kontekst hawwe wy waarnommen dat ien fan 'e pakketten in Python-skript befette, mooglik per ûngelok, dy't brûkt liket te wurden om de pakketten automatysk te publisearjen.
It net ûntrafelje
De publikaasjeaktiviteit foar guon fan dizze útjouwers yn 'e lêste moanne is útfierd neffens de folgjende tiidline:
Hjir binne de folsleine statistiken relatearre oan dit barren dy't wy diele kinne:
Neat relevants kaam nei foaren út 'e yndividuele resinsje fan guon fan 'e pakketten dy't ferbûn wiene mei dizze brûkers. Dit late ús ta it analysearjen fan it algemiene byld fan allegear, op syk nei patroanen dy't oanwizings kinne jaan oer dit súkses.
Wy hawwe ommers in flinke hantsjefol pakketten om te analysearjen:
Dit binne de wichtichste punten dy't wy út 'e analyze kinne markearje:
- In protte fan 'e NPM-pakketten binne ûnderling ferbûn. Guon wurde oantsjut as ôfhinklikheden fan oaren.
- Nettsjinsteande dat it frjemde pakketten binne en wierskynlik nimmen fan har bestean wit, hawwe guon in protte wyklikse downloads. It is lestich te akseptearjen dat in normale brûker pakketten lykas ... downloade wol. 0mc03esisd.
- Guon hawwe assosjearre repositories. Soms lykje de eigners fan dizze repositories dummy-akkounts te wêzen, fergelykber mei dy op npm.
Opmerking: Brûkers uploade ekstra pakketten yn weagen, sadat de opjûne gegevens wat ferskille kinne.
Dit is in foarbyld fan ien fan 'e relatearre repositories. It befettet de koade fan guon fan 'e publisearre pakketten. Ek guon oare bestannen, lykas in tee.yaml map.
Moetsje de akteur(s)
Oft dit it wurk fan ien auteur is of fan meardere meiwurkers is lestich te bepalen. Wy hawwe lykwols wol wat bewiis dat de oarsprong fan dizze aktiviteit ferfine kin:
- Taal: Bepaalde opmerkings yn 'e koade binne yn it Yndonesysk.
- Lokaasje: Bepaalde eigners fan 'e oansletten depots jouwe harren lokaasje yn Yndoneezje oan.
- De lokaasje dy't wy kinne identifisearje fia de aktiviteitsmetadata op GitHub wiist ek nei Yndoneezje.
Fiif oere tee
Mei't Yndoneezje in Britske koloanje wie, soe it hjir perfekt passe om tee te drinken. Yn dit gefal is it lykwols in frij spesjale soarte tee.
Unthâlde jo de tee.yaml bestannen dy't wy oan it begjin seagen? Doe hawwe wy har ynhâld net sjen litten, mar it seach der sa út:
Dizze bestannen lykje relatearre te wêzen oan de TeeprotokolMar wat is it no krekt? Wy berikten https://tea.xyz/blog/250k-grant-for-open-source-developers, dy't praat oer it doel:
Tea skodt de digitale wrâld op troch it oanpakken fan it lang besteande probleem fan ûnfoldwaande kompensaasje foar iepen boarne-ûntwikkelders. It oplossen fan dit probleem is driuwender as ea, dêrom hawwe wy besletten om $250 oan subsydzjes yn te setten foarôfgeand oan de lansearring fan it protokol. Dizze earste faze is bedoeld om ûnderhâlders fan iepen boarne-projekten te stypjen dy't in wichtige ynfloed hawwe op it iepen boarne software-ekosysteem en in teaRank fan mear as 30 foar it tea Protocol Incentivized Testnet.
Neffens de dokuminten fan it teeprotokol:
"Foar in projekt om registrearre te wurden op it tea-protokol is in tea.yaml-bestân nedich dat tsjinnet as de grûnwet fan it projekt om it oantal bydragejouwers en it oantal stimmen te regeljen dat nedich is om bepaalde aksjes út te fieren."
Nei't wy tagong krigen ta it tee-netwurk, hawwe wy besocht ien fan 'e pakketten te finen dy't neffens ús syn reputaasje opblaasd krijt. Wy hawwe it fûn:
Dat liket te ferklearjen wat hjir bart: Bepaalde brûkers dy't har iepen boarneprojekten opblaze mei fiktive populariteit om de teaRank te kapen en de foardielen te krijen dy't de teeferiening biedt. Jild is ommers de âldste driuwende krêft, tegearre mei seks.
Konklúzje en lêste gedachten
Hoewol't der gjin bewiis fan kweade koade fûn is yn dizze NPM-pakketten, en se wierskynlik net fan doel wiene dat immen se brûke soe, kinne se mooglik ferskate Servicebetingsten (TOS) fan NPM, GitHub, of de teeferiening skeine. Dit falt lykwols bûten it berik fan ús wurk (se binne lykwols op 'e hichte brocht en de aksjes dy't se passend achtsje sille wurde nommen). It misbrûk fan dizze platfoarms sil ús en ús organisaasjes op ien of oare manier beynfloedzje.
Wat dúdlik is, is dat elk skynber ûnskuldich iepen boarnepakket gedrach kin befetsje dat lestich te begripen is sûnder folsleine kontekstuele ynformaasje.
As ûntwikkelder fyn ik it in útdaging om alle iepen boarnepakketten dy't brûkt wurde yn 'e applikaasjes dy't wy ûntwikkelje en ûnderhâlde mei de hân te kontrolearjen mei in bepaald nivo fan wissichheid. Sûnder de help fan in ark dat dizze kontrôle automatisearret, kin de taak ûntelbere oeren fan ús teams yn beslach nimme.
Der is altyd de opsje om de oare kant út te sjen, yn it fertrouwen dat de iepen boarne-sfearen feilige plakken binne. Gelokkich leau ik dat dizze mentaliteit hjoed de dei net sa wiidferspraat is; dit gefal is praktysk ûnskealik west, mar wy hawwe koartlyn in folle serieuzer ynsidint meimakke mei de XZ Backdoor, en it is net west De ienige.
As jo oant no ta lêzen hawwe, hoopje ik dat jo genoaten hawwe fan alle yngewikkelheden fan dit nijsgjirrige barren. Ferjit net om in pear minuten te besteegjen oan it besjen fan wat Xygeni kin bydrage oan de feiligens fan jo organisaasje.
Bylage: List fan relatearre aktiva om op te nimmen yn it definitive artikel
NPM mear relevante brûkers basearre op it oantal publisearre pakketten: vndra, wanzaty, artknight404, seblakkuah, Mikrositer, kellyman17
In lyts foarbyld fan har relatearre pakketten: mikrositer, cryndex, arts-dao, seblakkuah, vndrabnb, vndrave, depfif, depsik, depeit, depnin, Dopon, kellymanteasproject.
Guon fan 'e relatearre GitHub-repositories dy't tea.yml-bestannen befetsje:





