Í fyrri þættinum, Illgjarnir pakkar í opnum hugbúnaði: Vandamálið, ræddum við hvers vegna ógnaraðilarnir voru svo áhugasamir um að birta nýja skaðlega íhluti eða sprauta spilliforritum inn í nýjustu útgáfur af núverandi íhlutum: Opinn hugbúnaður gerir hverjum sem er kleift að stofna skammvinnan aðgang hvar sem er í íhlutaskrá (eins og NPM, PyPI, Docker Hub eða Visual Studio Marketplace) eða samvinnuþróunarvettvangi (eins og GitHub). Enginn kostnaður og mörg tækifæri til að nýta sér það umfram traust sem hugbúnaðarteymi hafa hefðbundið á íhlutum þriðja aðila.
Ósamhverfan milli þess hversu auðvelt það er fyrir árásarmenn að dreifa spilliforritum með því að nota innviði sem eru í boði fyrir opinn hugbúnað og hversu erfitt það er fyrir fyrirtæki sem þróa hugbúnað (alla?) að forðast að smitast af spilliforritum (og að dreifa spilliforritum í hugbúnaðinum sem þau dreifa fyrir aðra), leiddi til þess að fjórðungs milljón marksins af spilliforritum náðist næstum á síðasta ári.
Þetta er vandamál af slíkri stærðargráðu að engin ein stofnun getur leyst það og samfélagið er í því ferli að endurskoða opinn hugbúnað hvað varðar traust, sjálfgefið öryggi og hönnunaröryggi og líftíma íhluta. Við munum skoða slíkar hugmyndir í næsta þætti. Vernd gegn skaðlegum pakka frá opnum hugbúnaði: Hvað virkar (virkar ekki).
Hafðu í huga að við erum að tala um hugbúnaðaríhluti sem oftast samsvara hugbúnaðarpakkarEndurnýtanlegir íhlutir pakkaðir þannig að hægt sé að vísa til þeirra sem ósjálfstæði í hugbúnaðarupplýsingaskrá og settir upp með pakkastjóra eða smíðatóli. Athugið að þetta tilfelli gæti verið útvíkkað til að ná yfir almenna hluti. myndir af ílátum (notað af gámakeyrslutíma og hljómsveitarpöllum eins og Kubernetes), og viðbætur við hugbúnaðartól (fyrir byggingu, sjálfvirkni og dreifingu).
Hér greinum við hvernig þetta árásaraðferð byggð á skaðlegum íhlutum virkar, samkvæmt fyrri dæmum og því sem við höfum séð í kerfi okkar fyrir viðvörun um skaðleg efni (MEW). Við munum greina skaðlega íhluti í mismunandi víddum:
(1) dreifingarleiðin sem valin var (skrásetning notuð, í nýjum eða núverandi íhlut, og aðferðin sem notuð er til að smita útgáfu íhlutsins sem birt var), (2) hvernig spilliforritið er virkjað eða kveikt, (3) illgjarn hegðun, þ.e. hvaða skaðlegar aðgerðir eru sjáanlegar og hver er hvöt árásarmannsins, (4) hvaða aðferðir eru algengar til að hylja, fela sig til að fara fram hjá óáreittum, færa sig til hliðar, eiga samskipti við stjórn- og stjórnunarvélar (C2) o.s.frv.; og (5) aðferðir til að öðlast nægilegar vinsældir og traust svo að fórnarlömbin endi með að setja upp íhlutinn.
Dreifingarkerfið sem valið var
Við fylgjumst með „bakgrunnur hávaði„ófullkomin illgjarn forrit sem nota typosquatting til að veiða óvarkára forritara með innsláttarvillu í pakkaheitinu fyrir ósjálfstæði sitt. Margir vinsælir pakkar fá flóð af svipuðum nefndum pökkum með innsláttarvillum, með þeirri væntingu að þeir muni veiða óvarkára forritara.“
Þeir nota skammvinnan aðgang, birta hóp af typosquat-pakka, búa til annan og birta svo annan hóp... Með því að nota sjálfvirkni og hugvitsemi geta þeir náð einhverri fágun, en yfirleitt eru þeir frekar ómerkilegir. Innanhúss köllum við þá „ansjósu„Aðalmarkmiðið er að stela persónuskilríkjum, en stundum rekumst við á njósnaforrit sem stela frumkóða eða viðkvæmum gögnum eins og persónugreinanlegum upplýsingum, klippiborðstökum og öðrum efasemdum.“
Allt í einu sjáum við flóknari illgjarn íhluti, „hákarla“. Minnihluti þeirra beinist að tilteknum hópum eða samtökum, oftast með dulritunarþrýstibúnaði eða vefskímum sem eru virkjaðir skilyrt, kannski í samræmi við aðferðina sem sést í atvik í atburðastraumi að afkóða árásarfarminn aðeins þegar vísað er í pakkann frá markpakka.
Dreifingarferlið var greint í hinni frábæru og nú sígildu grein, „Safn hnífa bakstungunnar: Yfirlit yfir árásir á framboðskeðju opins hugbúnaðar„, sem er nauðsynleg lesning. Þú hefur örugglega séð þetta fína töflu áður:
Allar leiðir voru skoðaðar, þar á meðal nýir og núverandi pakkar; áhrif á frumkóðann, smíðakerfið eða pakkaða íhlutinn sjálfan; notkun stolinna innskráningarupplýsinga eða félagslegrar verkfræði; ræning á yfirgefnum reikningum og geymslum eða eitrun á viðhaldnum reikningum. Sumar árásir fengu nöfn (Typosquatting, Ruglingur um ósjálfstæði, Augljós ruglingur, Endurheimtingarstulduro.s.frv.) og voru þegar rædd annars staðar.
Hvað með skrárnar sem valdar voru?
NPM heldur áfram að vera leiðandi í heildarfjölda illgjarnra pakka, en við sáum aukningu frá og með þessu ári á PyPI. Python er vinsælt vistkerfi fyrir gagnavísindi og vélanám. Reyndar er þéttleiki spilliforrita nú hærri í PyPI en í NPM.
Hvernig spilliforritið er virkjað
Illgjarnir pakkar eru aðeins virkjaðir við uppsetningu í 4 af hverjum 10 tilfellum (á undanförnum árum var það nærri 6 af hverjum 10). Hinir keyra illgjarnan hegðun á keyrslutíma, þar sem 1 af hverjum 100 er virkjaður við keyrslu prófana. Andstæðingarnir virðast vita að óstýrð keyrsla uppsetningarforskrifta var óvirk víða.
Hvað eru vondu mennirnir að fá?
Við munum lista upp flokka illgjarnra hegðunar, þar sem vinsælustu eru fyrst. Athugið að áhrifin geta verið nokkuð mismunandi: a þurrka er þrjóskt eyðileggjandi, en það er ekki algengt og hefur aðeins sést í fáeinum tilfellum, tengdum markvissum netstríðsherferðum eða grimmilegri tölvuþrjótnun. Eftirfarandi flokkar eru frekar algengir:
- InfoStealer / Credentials DrainerLangalgengustu árásirnar, yfir 90% af ófullkomnum árásum, eru einföld þjófnaður sem leitar aðallega að innskráningarupplýsingum eins og lykilorðum, aðgangskóðum, API-lyklum og einkalyklum (fyrir SSH og þess háttar). Það er líklega einfaldast að skrifa það (ásamt þurrkara?). Þeir telja upp þekktar skrár/möppur og aðrar heimildir (t.d. skráningarlykla), pakka innihaldinu og senda þessi gögn á C2-þjón. Hugmyndin er einföld: „Ég birti þjófnað fyrir phishing-upplýsingar, svo ég geti síðar notað innskráningarupplýsingarnar til að hefja beina árás“.
C2 netið sem sést er yfirleitt ódýrt og óhreint, eins og Telegram rásir eða ngrok-lík göngagerðartól (oft í formi öfugra milliþjóna sem eru afhjúpaðir í gegnum útgangs-IP-tölur VPN). Það eru hundruðir (!) möguleikar, þar sem mörg GitHub verkefni falla undir Umræða um lykilorðsþjófnaðSérhæfingar eins og lyklaskráningarforrit eru sjaldgæfar fyrir illgjarn pakka og ímyndir af gámum, en algengari í tólviðbótum þar sem búist er við notendaviðskiptum.
- Dropari / Niðurhalari. Næst vinsælasti kosturinn, oftast í fjölþrepaárásum. Meira en einn af hverjum þremur skaðlegum íhlutum hefur „droppers“ (ef skaðlegi farmurinn fylgir með í pakkanum) eða „downloaders“ (farmurinn er sóttur frá endapunkti undir stjórn árásarmannsins). Farmurinn er oft þekkt tvíundaforritaafbrigði og hann er keyrður og stundum viðhaldið til að setja upp bakdyr, njósnaforrit, dulritunarþrýstiforrit og önnur notkunartilvik. Farmurinn sem er sóttur eða settur upp hefst annars stigs árás með öllum þeim krafti sem núverandi tvíundaskrár af skaðlegum hugbúnaði veita. Hægt er að dreifa tvíundaskránum innan pakkans, oft dulbúnum sem myndir eða meintar skaðlausar skráartegundir, til að forðast uppgötvun þegar tengst er við óvæntar síður.
- Dulritunargjaldmiðlaþjófar / námuverkamennFjárhagslega hvattir andstæðingar eru tilbúnir að nota skýjaeignir þínar til að keyra dulritunarvinnslutæki (þeir greina jafnvel hvort þau keyra í sýndarvél í skýinu). Þeim er alveg sama um ... lágt hagnaðarhlutfall 1 Bandaríkjadalur fyrir hverja 53 Bandaríkjadali sem fórnarlambið rukkar fyrir stolna skýjainnviði. Fórnarlömb vita kannski ekki af þessu fyrr en þau fá óvæntan reikning. Sem betur fer kemur þetta og fer. Cryptojacking Herferðir í illgjörnum pakka birtast stundum og hverfa svo, sem vefveiðar fyrir notendur veskis eða að lokum beinast að veskisveitunni, eins og í Bókhaldsárás.
Önnur hegðun, eins og að dreifa afturvirkt fyrir fjarstýrða keyrslu kóða með því að opna öfuga skel er sjaldgæfari nú en áður. Til dæmis, 123rf_framlagsvefur pakkinn (nú fjarlægður úr skrásetningunni) opnast án nokkurrar ruglings, öfug skel afrituð og límd úr Svindlblað fyrir öfuga skel:
Auk lögmætra og illgjarnra íhluta höfum við orðið vitni að nokkrum misnotkunum, þar á meðal:
Ruslpóstspakka
Það eru þúsundir lítilla pakka, aðallega í NPM, án spilliforrita en lofa auðveldum tekjum, snákaolíu, tenglum á Viagra-tilboð og öllu því. Nokkrir notendur birta slíkt ruslpóst og taka mikið af bandvídd úr skrásetningunni. Annar aðili, hugsanlega frá Indónesíu, reyndi að hagnast á því með því að að misnota te-Rang ætlað til að bæta forriturum sem nota opinn hugbúnað með því að búa til tugþúsundir tengdra NPM-pakka með tengdum GitHub-geymslum. Þetta er skýrt brot á notkunarskilmálunum.
Villuboð og öryggisrannsóknarbrellur
Þegar pakki lýsir sér sem sýsla gögn í góðum tilgangi, eins og að greina öryggisgalla fyrir villuleitarforrit eða rannsaka ákveðna þætti vistkerfisins. Við höfum séð þúsundir pakka í þessum flokki sem sækja auðkennandi en ekki of viðkvæm gögn á Burp Collaborator netfang frá PortSwigger (t.d. hýsingaraðila í oastify.com léninu). Við sáum oft eftirlíkingar af Ruglingur um ósjálfstæði sönnun á hugmynd eftir Alex Birsan, eins og Aurora-vefpóstur-atvinnumaður pakka (fjarlægt úr skrásetningunni), sem einfaldlega keyra þennan ógeðslega kóða í foruppsetningarforskriftinni:
Og innihélt einnig „Þetta er einföld sönnun á hugmyndinni um ruglingsárás á ósjálfstæði„fyrirvari lýsing í pakki.jsonÞetta er greinilegt brot á þjónustuskilmálunum, jafnvel án illvilja.
Einhverjar góðar fréttir? Við höfum ekki séð (ennþá) ransomware-árásir sem eru framkvæmdar í gegnum illgjarn íhluti. Af óþekktum ástæðum virðast netglæpamenn kjósa hefðbundnari tölvupóstveiðar, RDP-byggðar og niðurhalsaðferðir í gegnum netið.
Viðbótar aðferðir sem skoðaðar voru
Margar aðferðir voru notaðar til að þrautseiga, komast undan varnarmálum, safna upplýsingum, eiga samskipti við stjórn- og stjórnsýsluhermenn og til að lenda í ólöglegum málum.
Þrávirkni í skaðlegum íhlutum fæst með því að nota varanleikaaðgerðir í annars stigs tvíundaforritaforriti, en stundum er hegðunin staðsett í pakkakóðanum, þar sem áætluð verkefni og breytingar í Windows skrásetningunni eru algengust.
Obfuscation er algengt, en ófullkomið. Flest typosquatting pakkar (munið eftir „ansjósu„?) nota alls ekki dulkóðun; margir nota annað hvort einfaldar dulkóðanir (base64/hex kóðun eða staðgengilsdulkóðanir eins og rot13) eða nota tiltækar dulkóðanir og smámögnun, sem auðvelt er að snúa við með réttum verkfærum. Aðeins „hákarlarnir“ framkvæma alvöru, harðgerða dulkóðun sem erfitt er að bakvirkja.
Þykkniþykkja gæti falið árásina, en hvers vegna þarf að þykkja kóða í opnum hugbúnaði? Eru einhverjar vísbendingar um að eitthvað þurfi að vera falið fyrir augsýn? Við höfum fundið mörg dæmi um skaðlaus forrit sem nota þykkniþykju til að vernda hugverkarétt, sem er í andstöðu við „opinn hugbúnað“. Þykkniþykju getur verið notuð sem sönnun fyrir spilliforritum, en hún er ekki afgerandi. Það er líka erfitt að afþýða hana.
Undanskot frá varnarstýringum notar einfaldar aðferðir. Illgjarn kóði er oft varinn í reyna … ná blokkir sem hunsa allar undantekningar, þannig að óeðlileg virkni sést ekki í skráningunum. Staðfesting á umhverfinu (sem keyrir í sýndarvél eða íláti) er sjaldgæf, nema um sé að ræða spilliforrit sem miða á tiltekna stofnun eða umhverfi.
Að dulbúa tvíundarskrár í myndum og PDF skrám (eins konar steganógrafía) var önnur aðferð sem notuð var til að komast hjá uppgötvun.
Þar sem algengustu skaðlegu íhlutirnir eru upplýsingaþjófar, gagnasöfnun er nauðsynlegt. Leyndarmál (lykilorð, aðgangskóðar, API-lyklar, dulritunarlyklar) eru reglulega skönnuð í skráningarskrám, umhverfisbreytum og jafnvel klippiborðinu (sést hjá banka-Tróverja og dulritunarþjófum). Frumkóðaþjófnaður er einnig algengur, þar sem uppsetning pakka er oft gerð í þróunarhnút þar sem innri git-geymslur gætu verið klónaðar. Við höfum séð pakka telja upp möppur í leit að git-geymslum. Að leita að staðsetningum eins og .env, private.pem, settings.py, app.js eða application.properties er nokkuð algengt.
Útsíun er önnur útbreidd aðgerð. Aðeins minnihluti illgjarnra pakka reynir jafnvel að fela áfangastað gagnanna sem eru sóttar. Telegram rásir og ngrok-lík göng eru oft notuð. Og það eru margar yfirleitt á hvítlista lén sem notuð eru til útrýmingar.
Aðrar aðferðir, eins og uppörvun forréttinda eða hliðarhreyfingar, voru sjaldgæfari.
Að öðlast vinsældir og traust
Ímyndaðu þér tækniglæpamann með tilbúna, illgjarna djöfulshluti sem veltir fyrir sér: „Hvernig geri ég þennan drasl trúverðugan fyrir þessa grunslausu fávita?“
Það þýðir hvernig á að láta færsluna fyrir skaðlega íhlutinn sýna margar stjörnur / forka (fyrir vinsældir), auk útgáfa / vandamála og pull requests (fyrir virkni). Hugmyndin er að öðlast upplogna vinsældir (stjörnur) og háðara, og sannfærandi útlit varðandi mikilvægi og viðhald.
Skrásetningin athugar ekki hvort innihald GitHub verkefnis og innihald pakkans passi saman.Þetta er vel þekkt vandamál í hugbúnaðarframboðskeðjunni. Opinberu skrárnar eru risavaxnar sökkholur sem gleypa allt sem þeim er kastað. Þú getur tengt hvaða gagnasafn sem er.
Ef illgjarn pakki gerir innsláttarvillu í vinsælum pakka, þá er það einfalt: vísaðu bara í núverandi GitHub geymslu í ósjálfstæðisskránni sem notuð er til að búa til pakkann og birta hann í skrásetningunni. Fyrir nýja pakka á fölsku GitHub geymslu gætirðu þurft meiri hugvitsemi, kannski að búa til falsa... stjörnuskoðun/greining GitHub reikningar með forskriftum.
Og ef innihald pakkans þíns er nokkuð svipað og í geymslunni, þá skaltu færa nokkrar vel hannaðar breytingar hér og þar ... Þú getur sprautað spilliforritinu þínu inn í nýjan pakka sem líkist vinsælum pakka með því að vísa í geymslu þess sem fyrir er og beðið eftir innsláttarvillunum. Ef einhver þorir að bera saman innihald tar-skráar pakkans við innihald GitHub-geymslunnar, þá gæti mismunurinn á innspýtingarpunktunum auðveldlega farið fram hjá sér. Við höfum séð þessa aðferð oft áður.
Það væri velkomið að nota kerfi þar sem íhlutur getur gefið upp yfirlýsingu um uppruna, hvernig pakkinn var smíðaður, úr hvaða átt og af hverjum. En það er önnur saga.
Er Component X spilliforrit?
Er til (ítarlegur) gagnagrunnur yfir illgjarn pakka? Nei. Veikleikar í opnum hugbúnaði fá CVE auðkenni úthlutað, en aðeins fáir illgjarnir pakkar (sérstaklega þeir sem eru í fréttum) fá það. CWE fyrir illgjarn pakka er CWE-506 (innbyggður illgjarn kóði).
Venjuleg spilliforritatól (VirusTotal, MalwareBazaar, SOREL-20M…) eru ekki með sérstakar ráðstafanir gegn skaðlegum íhlutum. Það væri velkomið!
Það eru til rannsóknargagnagrunnar og gagnasöfn til greiningar (við notum nokkur þeirra), en færslur eru aðeins uppfærðar þegar vitað er um skaðlegan pakka, sem er oft of seint. Ef þú hefur áhuga, þá OpenSSF Illgjarnir pakkar er fín byrjun.
Í næstu færslu munum við ræða hvernig á að vita hvort tiltekinn pakki sé skaðlegur. Athugið: já, það eru til leiðir til að athuga hvort skaðlegir íhlutir séu til staðar snemma á tilkynningartímanum, áður en skrásetningin fjarlægir þekktan skaðlegan íhlut.
Ítarefni
Í næsta þætti „Vernd gegn skaðlegum pakka frá opnum hugbúnaði: Hvað virkar (virkar ekki)" Við munum ræða hvað ber og ber ekki að gera varðandi öryggi opins hugbúnaðar. Flestir öryggisvitaðir sérfræðingar hafa innsæi um hvernig eigi að takast á við þessa ógn, en misskilningur er gnægð.
Við munum fara yfir hvers vegna þessar hugmyndir eru rangar og hvernig slíkar misskilningur stuðlar að vinsældum þessarar árásaraðferðar og þeirri yfirþyrmandi áhættu sem fyrirtæki standa frammi fyrir. Við munum síðan skoða hvað virkar og hver er fyrirhöfnin og úrræðin sem þarf til þess.
Einnig ætlum við að skrifa um þróun illgjarnra pakka hvað varðar ásetning þeirra, inndælingarferli og árásaraðferðir.
Haltu áfram!





