At XygeniVið höfum verið önnum kafin síðasta árið við að innleiða alhliða kerfi sem fylgist með opinberum opnum hugbúnaðarpakkaskrám í leit að grunsamlegri virkni eða illgjörnum kóða.
Þessi innviðir gera okkur kleift að greina í rauntíma alla pakka sem birtir eru daglega. Einnig er hægt að fylgjast með óeðlilegri hegðun notenda.
Þótt tilvist skaðlegs kóða í pakkaskrám sé vel þekkt, það er önnur undarleg eða óvenjuleg hegðun sem reglulegir notendur þessara skráa taka alls ekki eftir. Jafnvel fyrir okkur sem fylgjast vel með þeim er ekki auðvelt að finna ástæðu eða skýringu á slíkri hegðun.
Það sem einkennir Xygeni teymið er þrautseigja okkar þegar við stöndum frammi fyrir vandamáli, svo við köfuðum dýpra í þetta.
Þetta byrjaði allt með tölfræðihækkun
Eins og ég nefndi áðan, sem hluti af innviðum okkar, fylgjumst við með mörgum virknimælikvörðum í opinberum pakkaskrám með opnum hugbúnaði.
Síðustu daga marsmánaðar vakti vinnufélagi minn, Carmen, athyglina. Við byrjuðum að taka eftir verulegu fráviki í fjöldi pakka sem birtir eru á NPM. Eftir fyrstu skoðun komumst við að því að þessi frávik stafaði fyrst og fremst af tiltölulega fáum notendum þar sem birtingarhlutfall pakka hafði skyndilega aukist gríðarlega.
Þetta varð til þess að við endurskoðuðum ferlið okkar og tengd gögn innan kerfisins. Sem betur fer leiddi yfirferð okkar í ljós að gögnin virtust vera rétt, en þetta var líka nokkuð ráðgáta!
Við nánari skoðun komumst við að því að þessir pakkar höfðu nokkra sameiginlega eiginleika:
- Útgefendurnir voru nýstofnaðir notendur, ekki eldri en eins eða tveggja mánaða í mesta lagi.
- Pakkarnir höfðu að því er virtist hafa handahófskennd nöfn, líklega búin til með orðabók. Við getum fundið pakkanöfn með undarlegum nöfnum eins og enormous_mite-brostea, erick-mangut94-sukiwir, exotic_reptile-appteadev or augljós_túnfiskur-appteadevVið munum láta fylgja með viðauka með nokkrum dæmum um þær eignir sem við höfum fundið.
- Innihald þessara pakka var mjög svipað, oft það sama.
Í þessu samhengi tókum við eftir því að einn af pakkunum innihélt Python forskrift, hugsanlega fyrir slysni, sem virðist vera notað til að birta pakkana sjálfkrafa.
Að afhjúpa netið
Útgáfustarfsemi sumra þessara útgefenda síðasta mánuðinn hefur verið framkvæmd samkvæmt eftirfarandi tímalínu:
Hér eru allar tölfræðiupplýsingar um þennan atburð sem við getum deilt:
Ekkert sem skipti máli kom fram í einstökum umsögnum um suma pakkana sem tengdust þessum notendum. Þetta leiddi okkur til að greina heildarmyndina af þeim öllum og leita að mynstrum sem gætu gefið vísbendingar um þennan árangur.
Við höfum jú góðan fjölda pakka til að greina:
Þetta eru lykilatriðin sem við getum dregið fram úr greiningunni:
- Margir NPM-pakka eru tengdir innbyrðis. Sumir eru nefndir sem háðir öðrum.
- Þrátt fyrir að vera undarlegir pakkar og líklega enginn veit um tilvist þeirra, þá eru sumir með margar vikulegar niðurhalanir. Það er erfitt að sætta sig við að venjulegur notandi gæti viljað hlaða niður pökkum eins og ... 0mc03esisd.
- Sum þeirra hafa tengd gagnageymslur. Stundum virðast eigendur þessara gagnageymslu vera gervireikningar, svipaðir og þeir sem eru á npm.
Athugið: Notendur hlaða upp viðbótarpökkum í bylgjum, þannig að gögnin sem gefin eru geta verið lítillega frábrugðin.
Þetta er dæmi um eitt af tengdum geymslum. Það inniheldur kóða nokkurra af birtum pakka. Einnig nokkrar aðrar skrár, eins og a te.yaml skrá.
Að hitta leikarann/leikarana
Hvort þetta sé verk eins höfundar eða margra samstarfsaðila er erfitt að ákvarða. Hins vegar höfum við nokkrar vísbendingar sem þrengja uppruna þessarar starfsemi:
- Tungumál: Sumar athugasemdir í kóðanum eru á indónesísku.
- Staðsetning: Ákveðnir eigendur tengdra gagnasafna gefa til kynna staðsetningu sína í Indónesíu.
- Staðsetningin sem við getum borið kennsl á með lýsigögnum um virkni á GitHub bendir einnig til Indónesíu.
Klukkan fimm að tei
Þar sem Indónesía var bresk nýlenda, þá hentaði það fullkomlega hér til að fá sér te. Hins vegar, í þessu tilfelli, er þetta frekar sérstök tegund af tei.
Manst þú eftir te.yaml skrárnar sem við sáum í upphafi? Á þeim tíma sýndum við ekki innihald þeirra, en það leit svona út:
Þessar skrár virðast tengjast Te-samskiptareglurEn hvað nákvæmlega er það? Við komumst að https://tea.xyz/blog/250k-grant-for-open-source-developers, sem fjallar um tilganginn:
Tea hristir upp í stafræna heiminum með því að taka á langvarandi vandamáli ófullnægjandi launagreiðslum fyrir forritara sem nota opinn hugbúnað. Að leysa þetta vandamál er brýnna en nokkru sinni fyrr og þess vegna höfum við ákveðið að veita 250 þúsund dollara í styrki áður en samskiptareglurnar verða settar í loftið. Markmið þessa upphafsstigs er að styðja við viðhaldsaðila opinna verkefna sem hafa veruleg áhrif á vistkerfi opins hugbúnaðar og eru með teaRank sem er meira en 30 stig á undan tea Protocol Incentivized Testnet.
Samkvæmt skjölum um te-samskiptareglur:
„Til þess að verkefni sé skráð í tea-samskiptaregluna þarf það tea.yaml-skrá sem gegnir hlutverki samþykkta verkefnisins og stjórnar fjölda þátttakenda og fjölda atkvæða sem þarf til að framkvæma ákveðnar aðgerðir.“
Eftir að hafa farið inn á te-netið reyndum við að finna eitt af þeim pakka sem við grunum að sé að láta blekkja mannorð sitt. Við fundum það:
Þetta virðist skýra hvað er í gangi hér: Ákveðnir notendur blása upp opinn hugbúnaðarverkefni sín með uppspunnum vinsældum til að ræna teaRank og fá þá ávinninga sem tesamtökin veita. Peningar eru jú elsti drifkrafturinn, ásamt kynlífi.
Niðurstaða og lokahugsanir
Þótt engin merki hafi fundist um skaðlegan kóða í þessum NPM-pökkum, og þeir hafi líklega ekki ætlað neinum að nota þá, gætu þeir hugsanlega brotið gegn nokkrum þjónustuskilmálum NPM, GitHub eða tea association. Þetta fellur þó utan starfssviðs okkar (þeim hefur þó verið tilkynnt um þetta og gripið verður til þeirra aðgerða sem þeir telja viðeigandi). Misnotkun þessara palla mun hafa áhrif á okkur og samtök okkar á einhvern hátt.
Það sem er ljóst er að hvaða sem er, að því er virðist, saklaust opið hugbúnaðarforrit getur innihaldið hegðun sem erfitt er að skilja án fullra upplýsinga um samhengið.
Sem forritari finnst mér erfitt að stjórna handvirkt öllum opnum hugbúnaðarpökkunum sem notaðir eru í forritunum sem við þróum og viðhaldum með ákveðnu öryggi. Án hjálpar tóls sem sjálfvirknivæðir þessa stjórnun gæti þetta verkefni tekið teymum okkar óteljandi klukkustundir.
Það er alltaf möguleiki að líta í hina áttina og treysta því að opnir hugbúnaðarheimar séu öruggir staðir. Sem betur fer tel ég að þessi hugsunarháttur sé ekki mjög útbreiddur í dag; þetta tilfelli hefur verið nánast skaðlaust, en við upplifðum nýlega mun alvarlegri atvik með ... XZ bakdyr, og það hefur ekki verið sá eini.
Ef þú hefur lesið þetta hingað til, þá vona ég að þú hafir notið allra flækjustiganna sem fylgja þessum forvitnilega viðburði. Ekki gleyma að eyða nokkrum mínútum í að fara yfir hvað Xygeni getur lagt af mörkum til öryggis fyrirtækisins þíns.
Viðauki: Listi yfir tengd efni sem á að hafa með í lokaútgáfunni.
NPM viðeigandi notendur byggt á fjölda birtra pakka: vndra, wanzaty, artknight404, seblakkuah, Mikrositer, kellyman17
Lítið sýnishorn af tengdum pakka þeirra: mikrositer, cryndex, arts-dao, seblakkuah, vndrabnb, vndrave, depfif, depsik, depeit, depnin, Dopon, kellymanteasproject.
Sum af tengdum GitHub gagnasöfnum sem innihalda tea.yml skrár:





