Fa'apipi'iina o le Fa'alagolago i le Fenumiai

Leai o le Pinning Version ma le Fenumiai o le Faʻalagolago

I le atina'eina o polokalama faakomepiuta tatou te fa'alagolago i vaega po'o mea totino a isi vaega ma isi vaega. O se Pulega Fa'alagolago e fetu'una'i e taua tele mo polokalama faakomepiuta fa'aonaponei. O pule o afifi e pei o le NPM, Maupip or NuGet e masani ona faʻaaogaina e faʻamaoti ai faʻalagolago i polokalama faakomepiuta. O nei meafaigaluega na mamanuina ma le faigofie ma le faigofie ona faʻaaoga, ae le o le saogalemu.

 

Le faafitauli

O le faʻafitauli, o le fetuutuunaʻi ma le faigofie o le faʻaaogaina mo le au atiaʻe e taʻua ai tagata leaga, o ē vaʻaia le faʻalagolago i polokalama faakomepiuta o se mea e le mafai ona teena mo a latou pisinisi. O le iʻuga: na mulimuli tagata leaga i auala uma o osofaʻiga o loʻo faʻaalia iinei. Punaoa: “Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks”

I lenei pou o le a tatou taulaʻi atu i le faʻaaogaina o faʻalauiloaga o le lomiga tatala, i le uiga o le lomiga ua sii mai e le o faʻamautu ae e tatau ona i ai i se vaega patino. I le taimi e fausia ai, o le lomiga aupito maualuga o loʻo iai e fetaui ma le vaega o lomiga ua faʻamaoti mai e filifilia ma sii mai/faʻapipiʻi e le pule o le afifi.

Se'i o tatou fa'ata'ita'iina fa'alauiloaga tatala i fa'alauiloaga fa'alagolago mo pule eseese o afifi:

      • NPM: afifi.json

    {

     

       ...

       "fa'alagolago": {
          ...
          "talia": ">=1.3.8",
          “lodash”: “~4.16.0”,
          ...
       },
       ...
    }

    O le lomiga aupito tele o loʻo iai nei e lē i lalo ifo o le 1.3.8 mo le afifi taliaina o le a faʻapipiʻiina, faʻapea foʻi ma le faʻafouga 'patch' aupito tele mo le lodash i le vaega 4.16.x.

        • Maven: pom.xml

      ...

      ...

           lautele-io
           lautele-io
           FA'ASA'OLOTOGA

      ...

      ...

      O le fa'asalalauga mulimuli o lo'o avanoa mo le commons-io (faila jar) o le a fa'aopoopoina o se fa'alagolago.

          • Pip: setup.py

        ...
        seti(
            ...
            install_requires=['peppercorn', 'launchpadlib'],
            ...
        )
        ...

        O ia faiga fa'ata'ita'i tatala e iai ona itu lelei ma ona itu leaga. O le itu lelei, o fa'ata'ita'iga fou ia. masani o lo'o i ai fa'aleleiga o galuega ma le lelei, fa'asa'oga o mea sese, ma fa'asa'oga o le saogalemu, ia e fa'aleleia otometi lava. Fa'amolemole ia matau o le tele o galuega faatino moni, o fa'asa'oga e le toe fa'afo'i i fa'asalalauga laiti na muamua atu, vagana ai atonu mo ni fa'aletonu mata'utia o le saogalemu. O lomiga tatala e lelei fo'i mo le fa'aogaina i faletusi, e fa'aitiitia ai le aofa'i o lomiga e mana'omia ona fa'apipi'i pe a fo'ia uma fa'alagolago.

        Ae o vaega o lomiga tatala e iai lona itu leaga. E te le iloa tonu po o fea lomiga o le a faʻapipiʻiina i le taimi e fausia ai, ma e le mafai ona toe faia ni fausiaina. Ma e iai foʻi se uliuli itu ma lomiga tatala. Afai e mafai e se tagata fai mea leaga ona lolomiina se vaega leaga i le teuina o mea faitele faatasi ai ma se lomiga maualuga e fetaui ma lau vaega tatala, o lau isi fausiaina o le a aofia ai le vaega leaga, atonu foi e faatinoina ai polokalama leaga i tusitusiga faapipiiina atonu e faatinoina otometi. O le faanenefuina o le avega o osofaiga o se tasi lea o galuega taulima.

        E taua lenei mea o le Leai o le Pinning Version lomiga.

        E masani ona taumafai tagata leaga e tuʻu ni faʻamatalaga leaga o afifi lauiloa e tatala. Atonu latou te maua le avanoa i ki mo le teuina o afifi i se faʻamatalaga lilo; e masani ona latou faʻaaogaina le social engineering pe natia se faʻalagolago leaga i se mea e foliga mai e aoga. pull requestE oo lava i ni nai tusitala lava latou te filifili i se aso e le tonu le lalolagi ma latou faʻaleagaina a latou tagata faʻatau teteega i totonu o a latou lava afifi!

        Se'i mafaufau nei o lo'o e galue mo se fa'alapotopotoga e fa'aaogaina vaega i totonu fa'atasi ai ma vaega e tatala.
        Afai e iloa e se tagata fai mea leaga le igoa o ia vaega i totonu, e mafai ona ia lolomiina se vaega e tutusa le igoa i le teuina o mea faitele. E tele pule o afifi e muamua maua vaega faitele, ma afai e filifilia lelei le lomiga ma ua tatala le lomiga i lau faalagolago ua faalauiloa, pa! O lenei faafitauli ua faaigoaina Fenumiai i le Faalagolago.

        Se'i o tatou fa'aali atu se fa'ata'ita'iga. Fa'apea la i la tatou galuega faatino NPM o lo'o ia i tatou se fa'alagolago i se vaega tumaoti:

            • NPM: afifi.json

          {
            "igoa": "la'u-poloketi",

           

            ...
            "fa'alagolago": {

              ...
              “la’u-totonu-dep”: “>=1.0.0”,

              ...

             }

             ...

          }

           

          E ono fatuina e le tagata osofaʻi se lomiga tele o le my-private-dep (e pei o le 99.0.0) ma lolomiina i le nofoaga faitele o le npm repository, faatasi ai ma lana lava teugatupe pepelo (e le manaʻomia e le tagata osofaʻi ona faia se mea i laʻu faʻalapotopotoga). O le a faʻapipiʻi e le pule o le afifi NPM le faʻalagolago leaga, e masani ona iʻu i ni taunuuga mataʻutia.

          Le tali

          Ina ia ʻalofia nei faʻafitauli i la tatou faiga o le fausiaina o polokalama faakomepiuta, e tatau ona tatou mulimulitaʻi i tulaga faʻatonutonu i le auala e faʻalauiloa ai faʻaliliuga o vaega, e faʻalagolago i tekinolosi o loʻo faʻaaogaina. O le mea taua, o se faʻaliliuga faʻapitoa o se afifi, pe a uma ona lolomiina i totonu o se fale teu oloa, e tatau ona tumau (e ʻalofia ai le motusia o mea e faʻalagolago i ai, e le gata mo mafuaʻaga tau puipuiga).

          O le manatu lautele o le fa'amautu lea (pine) lomiga, siaki i taimi uma o lomiga tumau o vaega (e aofia ai UMA faʻalagolago fesuiaʻi) e saʻoloto mai malware, ma e mafai lenei mea ona o le faila loka e ofoina mai e le tele o pule o afifi. Se'i o tatou va'ai pe fa'apefea ona galue le pineina o lomiga mo pule eseese o afifi. E iai se fefa'ataua'iga ma'ale'ale i le va o fa'afouga masani o lomiga mo le faaleleia o vaivaiga ua iloa ma fa'amauina o le lomiga e aloese ai mai fausiaina e le o mautinoa ma osofaiga e ono tulaʻi mai i le filifili o sapalai.

              • NPM:
                E fa'aaogā e le npm po'o le yarn package managers ni lockfiles eseese (npm-shrinkwrap.json / package-lock.json po'o le yarn.lock, i le fa'asologa lava lea) o lo'o lisiina ai lomiga tumau mo fa'alagolago uma, tu'usa'o ma lē tu'usa'o. E tatau ona i lalo o le pulea o lomiga ia lockfiles, a leai e ono fa'ai'u isi tagata atia'e / build nodes i ni lomiga eseese. 'Alo'ese mai le npm install se'i vagana ua e mana'omia le fa'afouina o fa'alagolago (e pei o le fa'apipi'iina o ni fa'aleleiga saogalemu). Fa'aaogā le npm ci (Clean Install) e sili atu ona mautinoa i se tulaga lautele, o lea o le a fa'aaogā ai e le package manager le lockfile pe fa'amutaina i se mea sese pe a leai se lockfile, pe e le fetaui ma le package.json. Afai o lomiga o lo'o lisiina na siakiina mo ni malware, e fa'amautinoa e le lockfile e leai se mea leaga o le a tupu i le taimi e fausia ai.

                Mo vaega i totonu, e fautuaina e faia se Lapo'a o le NPM pulea e le faʻalapotopotoga (e pei o le @myorg), ma faʻaaoga lena lautele i le faʻalagolago (e pei o le @myorg/my-private-dep), lea e mafai ona naʻo le vaʻaia tumaoti. O lenei poloka fenumiai o le faalagolago osofa'iga, auā e na'o le sui auai o le fa'alapotopotoga e iai le avanoa e tusi ai e mafai ona lolomiina afifi i lalo o sea lautele.

              • Mau:
                E leai ni faila loka a Maven/Gradle (ae taga'i lenei tusiga StackOverflow).

                E le fa'aaogaina tele vaega o lomiga fa'atasi ma Maven/Gradle e pei o isi faiga fa'alenatura. 'Alo'ese mai vaega o lomiga ma lomiga lata mai po'o lomiga fa'asalalau. E tatau fo'i ona siaki lomiga lē tuusa'o. Fa'aliliuga Maven Plugin o se meafaigaluega lelei mo le puleaina o lomiga.

                Faamolemole ia matau o Maven sa i ai lava le manatu o le lautele o le faalapotopotoga (le vaega o le groupId o le faalagolago), ma o le fenumiai o le faalagolago e foliga mai e le o se faafitauli mo lena faiga.

              • Pip:
                I le Python o loʻo i ai meafaigaluega eseese mo le taulimaina o lockfiles:

                pipenv, lea e fa'atupuina ai se faila loka Pipfile.lock.
                solo, lea e fa'atupuina ai solo.lock.
                fa'a'aisa paipa, poloaiga e fa'atupuina ai se requirements.txt lea e galue o se faila loka. Siaki pe o fa'aogaina e fa'alagolago uma ni fa'aliliuga tumau ma le fa'agaioiga ==. Ona fa'aogaina lea e le pip install -r requirements.txt ia fa'alagolago tumau.

            Faamanatu o faila loka o loʻo i luga e tatau ona i lalo o le pulea o lomiga, ma o le poloaiga fausiaina ua filifilia e tatau ona faʻaaogaina le faila loka.

            O le fale teu oloa masani e faʻaaogaina ma le pip (PyPI) e leai ni vaega faʻaigoaina, ma e faigofie ona aʻafia i osofaʻiga fenumiai faʻalagolago. Aloese mai le fenumiai o le faalagolago i totonu o le faiga o le python e lē faigofie, ma o nisi tusitala e fautuaina le faʻaaogaina o se teuina i totonu e fai ma sui mo faʻalagolago lautele e aumai mai le PyPI, ae ave muamua faʻalagolago tumaoti mai le teuina i totonu (e tatau ona faasino le -index-url i le teuina i totonu, ae le o le PyPI, ma e tatau ona aveese le –extra-index-url).

            O nisi osofaʻiga moni

            Osofa'iga a GetcookiesNa fa'aopoopoina e le tagata fai ata tifaga o dustin87 se fa'alagolago lē tuusa'o i totonu o le afifi lauiloa o le npm mailparser i se afifi leaga ma se RCE backdoor (gCOMMANDhDATAi):

            JSON.stringify(req.headers).replace(/g([a-f0-9]{4})h((?:[a-f0-9]{2})+)i/gi, (o, p, v) => {})

            E ui ina ua lē toe fa'aaogaina (leai ni tagata iloilo!), ae na maua pea e le mailparser le tusa ma le 64,000 faila i vaiaso ta'itasi. O se tulaga lea o se osofa'iga na toetoe lava a le manuia, aua e le'i fa'atinoina moni e le RCEcised.

            NPM lomia lenei pou fa'atasi ai ma fa'amatalaga e uiga i le osofa'iga a le getcookies.

            Fenumiai i le Faalagolago:

            Na iloa e Alex Birsan i le 2021 le mataupu o le fenumiai o le faalagolago ma lolomiina ai se pou na faaulutalaina "Na faapefea ona ou osofaia Apple, Microsoft ma le tele o isi kamupani".

            Ia manatua o le npm e tatau ona fa'apolopolo le lautele o le fa'alapotopotoga e pei o le @myorg, ma e tatau ona suia afifi i totonu e fa'aaoga ai le lautele.

            Faatasi ai ma le pip, o le resitala lautele masani PyPI e leai ni scopes/namespaces. O afifi tumaoti taitasi e mafai ona i ai se afifi lautele squat e tutusa le igoa ma le afifi i totonu, ae gaogao, ma atonu e mafua ai se mea sese pe a faʻaaogaina, o lea e mafai ai ona iloa pe afai e aumaia faafuasei.

            Node-ipc:

            Ina ua amata le taua a Rusia ma Ukraine, na fa'aofi e le pule o le afifi se code leaga mo le aveeseina o faila fa'afuase'i, ina ua fa'apipi'iina i nofoaga Rusia ma Belarusian. O le faila ssl-geospec.js sa faia se eseesega fa'afanua fa'apenei:

            O le mea e malie ai, o isi afifi na faʻaaogaina lomiga tatala mo le node-ipc dependency, e pei o le Vue.js framework lauiloa, ma o ana tagata e tausia na maua se apili faanatinati e fa'amau le node-ipc dependency i luga o se fa'aliliuga saogalemu.

            lea o loo i ai nisi fa'amatalaga i le pou i luga o lenei fa'alavelave fa'aleaga, lea e sili atu lona mamao mai isi Tete'ega faafitauli.

             

            Faaiuga Faaiu

            O lomiga tatala e tatau ona aua lava nei e fa'aaogaina i poloketi fa'akomepiuta tu'ufa'atasi. Latou te faia ni fauga e le mafai ona toe gaosia, ma e ono fa'aaogaina e tagata osofa'i ma mafai ona fa'aofi ni polokalama fa'aleaga e ala i osofa'iga i la'au fa'alagolago e pei o le fenumiai fa'alagolago na ta'ua muamua.

            Fa'atulagaga sese e pei o lomiga tatala, leai o se pine o lomiga, po'o ni vaega i totonu e le'i va'aia e tatau ona 'alo 'ese ai. O le mea muamua lava o le iloa lea o ia fa'afitauli, atonu e o'o lava i le poloka o le fausiaina pe a maua, ma fa'atulaga se fa'atulagaga mo gaioiga.

            Iloa otometi o mea sese ma fa'atulagaga sese i mea fa'alagolago, lipotia o mea fa'alagolago masalomia e ono vaivai i osofa'iga fa'apitoa o le sapalai e pei o fenumiai o le faalagolago, o loʻo i ai uma meafaigaluega e mafai ona faʻaleleia, o se tasi lea o sini autū o le Fa'avae o Xygeni.

            Ina ia faitau atili
            Ohm M., Plate H., Sykosch A., Meier M.: “O le Backstabber's Knife Collection: O se Iloiloga o Osofa’iga o le Open Source Supply Chain”. DIMVA 2020. Fa’amatalaga o le Lauga i le Saienisi Komepiuta, vol 12223. Springer – 2020 (punaoa o le fuainumera o le la’au o le osofa’iga fa’alagolago.)
            @adam-npm: “Vaega leaga lipotia: getcookies“. npm Blog (fa'amaumauga) – 2 Me, 2018.
            Alex Birsan: “Na faapefea ona ou osofaia Apple, Microsoft ma le tele o isi kamupani"Medium – Fepuari 9, 2021."
            Ax Sharma: “Fa'alavelave TELE: O le afifi lauiloa o le npm e tapeina faila e tetee ai i le taua a Ukraine"BleepingComputer – 17 Mati, 2022

            meafaigaluega-sca-polokalame-su'esu'ega-tu'ufa'atasiga
            Fa'amuamua, toe fa'aleleia, ma puipui au tulaga lamatia o polokalama faakomepiuta
            Maua lau Teugatupe e leai se totogi.
            Leai se credit card e manaʻomia.

            Puipui lau Atina'eina ma le Tu'uina Atu o Polokalama Faakomepiuta

            fa'atasi ai ma le Xygeni Product Suite