Fiankinan-doha-Fisafotofotoana-Version-Pinning

Tsy fisian'ny Version Pinning sy ny fisafotofotoana momba ny fiankinan-doha

Amin'ny fampivoarana rindrambaiko dia miankina amin'ny singa na artifacts manokana sy avy amin'ny antoko fahatelo isika. Tena ilaina amin'ny rindrambaiko maoderina ny Fitantanana ny Fiankinan-doha azo ovaina. Mpitantana fonosana toy ny NPM, Maven, pip or NuGet matetika ampiasaina hamaritana ny fiankinan-doha amin'ny rindrambaiko. Ireo fitaovana ireo dia natao mba hanamorana sy hampiadana ny fampiasana azy, fa tsy mba hiarovana ny fiarovana.

 

Ny olana

Ny olana dia ny fahafahan'ny mpamorona rindrambaiko mampiasa azy mora foana sy ny fahafahany mampiasa azy no mahatonga ny olon-dratsy ho toy ny zavatra tsy hay tohaina ho an'ny orinasany. Ny vokany: nanaraka ny lalana rehetra mety ho fanafihana aseho eto ireo olon-dratsy. Loharano: “Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks”

Ato amin'ity lahatsoratra ity dia hifantoka amin'ny fampiasana fanambarana dikan-teny misokatra isika, amin'ny heviny hoe ny dikan-teny alaina dia tsy raikitra fa tsy maintsy an'ny elanelana iray. Amin'ny fotoana fanamboarana, ny dikan-teny ambony indrindra mifanaraka amin'ny elanelana dikan-teny voafaritra no fidina ary alaina/apetraky ny mpitantana ny fonosana.

Andeha hojerentsika ny fanambarana misokatra ao amin'ny fanambarana dependencies ho an'ny mpitantana fonosana samihafa:

      • NPM: package.json

    {

     

       ...

       "fiankinan-doha": {
          ...
          "manaiky": ">=1.3.8",
          "lodash": "~4.16.0",
          ...
       },
       ...
    }

    Ny dikan-teny lehibe indrindra efa misy izay tsy latsaky ny 1.3.8 ho an'ny fonosana ekena no hapetraka, ary koa ny fanavaozana 'patch' lehibe indrindra ho an'ny lodash ao amin'ny andiany 4.16.x.

        • Maven: pom.xml

      ...

      ...

           commons-io
           commons-io
           NAFAHANA

      ...

      ...

      Ny famoahana farany azo ampiasaina ho an'ny commons-io (rakitra jar) dia hampiana ho toy ny fiankinan-doha.

          • Pip: setup.py

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

        Manana ny lafy tsarany sy ny lafy ratsiny ireo tetika misokatra ireo. Ny tsara dia ny hoe ireo dikan-teny vaovao kokoa dia matetika Mirakitra fanatsarana ny fiasa sy ny kalitao, fanamboarana bibikely, ary fanavaozana fiarovana, izay havaozina ho azy. Mariho fa ho an'ny ankamaroan'ny tetikasa tena izy, ny fanamboarana dia tsy averina alefa any amin'ny famoahana madinika teo aloha, afa-tsy angamba noho ny fahalemena ara-piarovana mahatsiravina. Ny dikan-teny misokatra dia tsara ampiasaina amin'ny tranomboky ihany koa, mba hampihenana ny isan'ny dikan-teny mila apetraka rehefa voavaha ny fiankinan-doha rehetra.

        Saingy manana lafy ratsiny ny karazana dikan-teny misokatra. Tsy fantatrao tsara hoe inona avy ireo dikan-teny hapetraka amin'ny fotoana fanamboarana, ary tsy azo averina intsony ireo fanamboarana. Ary misy ihany koa ny maizina miaraka amin'ireo dikan-teny misokatra. Raha toa ka mahavita mamoaka singa ratsy ao amin'ny tahiry ho an'ny daholobe misy dikan-teny avo lenta mifanaraka amin'ny sehatra misokatra anao ny mpilalao ratsy fanahy, dia hampiditra ilay singa ratsy ny fananganana manaraka anao, angamba aza hampihatra malware amin'ny script fametrahana izay mety ho tanterahina ho azy. Ny fanafenana ny entana fanafihana dia iray amin'ireo zavakanto.

        Ity dia fantatra amin'ny hoe Tsy fisian'ny Pinning Version olana.

        Ireo olon-dratsy dia miezaka foana mametraka dika ratsy amin'ireo fonosana open-source malaza. Mety hahazo fidirana amin'ireo lakilen'ny fitahirizana fonosana ao anaty fivoahana miafina izy ireo; matetika izy ireo dia mampiasa "social engineering" na manafina fiankinan-doha ratsy ao anaty fonosana toa mahasoa. pull requestNa dia mpanoratra vitsivitsy aza indray andro any dia manapa-kevitra fa tsy rariny izao tontolo izao ka manaikitra ny mpanjifany amin'ny fitaovana fanoherana ao anaty fonosan'izy ireo manokana!

        Alaivo sary an-tsaina hoe miasa ho an'ny fikambanana iray izay mampiasa singa anatiny miampy singa open-source ianao.
        Raha fantatry ny mpilalao ratsy ny anaran'ireo singa anatiny ireo, dia afaka mamoaka singa mitovy anarana ao amin'ny tahiry ho an'ny daholobe izy. Maro amin'ireo mpitantana fonosana no mahazo voalohany ireo singa ho an'ny daholobe, ary raha voafidy tsara ny dikan-teny ary misokatra ny dikan-teny ao amin'ny fiankinan-doha nambaranao, dia ho avy ny fotoana! Ity olana ity dia nomena anarana hoe Fisafotofotoana momba ny fiankinan-doha.

        Andeha isika hampiseho ohatra iray. Aoka hatao hoe ao amin'ny tetikasa NPM-ntsika dia miankina amin'ny singa manokana isika:

            • NPM: package.json

          {
            "anarana": "ny tetikasako",

           

            ...
            "fiankinan-doha": {

              ...
              "my-private-dep": ">=1.0.0",

              ...

             }

             ...

          }

           

          Mety hamorona dikan-teny lehibe amin'ny my-private-dep (toy ny 99.0.0) ilay mpanafika ary hamoaka izany ao amin'ny tahiry npm ho an'ny daholobe, miaraka amin'ny kaontiny sandoka manokana (tsy mila manao na inona na inona amin'ny fikambanako ilay mpanafika). Ny mpitantana ny fonosana NPM no hametraka ny fiankinan-doha ratsy, matetika miaraka amin'ny vokatra mahatsiravina.

          Ny vahaolana

          Mba hisorohana ireo olana ireo amin'ny fizotran'ny fananganana rindrambaiko, dia tokony hanaraka fitsipika hentitra momba ny fomba fanambarana ny dikan-teny singa isika, izay miankina amin'ny teknolojia ampiasaina. Ny zava-dehibe dia ny hoe ny dikan-teny manokana amin'ny fonosana, rehefa avoaka ao amin'ny tahiry, dia tokony ho tsy azo ovaina (mba hisorohana ny fahatapahan'ny dependents, tsy noho ny antony fiarovana ihany).

          Ny hevitra ankapobeny dia ny mifantoka (Pin) dikan-teny, manamarina foana fa tsy misy malware ny dikan-teny raikitra amin'ireo singa (anisan'izany ny fiankinan-doha amin'ny tetezamita REHETRA), ary azo atao izany noho ny rakitra hidin-trano izay atolotry ny mpitantana fonosana maro. Andeha hojerentsika ny fomba fiasan'ny fametahana dikan-teny ho an'ny mpitantana fonosana samihafa. Misy fifanakalozana marefo eo amin'ny fanavaozana matetika ny dikan-teny ho an'ny fanamboarana ireo lesoka fantatra sy fametahana dikan-teny mba hisorohana ny fananganana tsy voafaritra mazava sy ny mety ho fanafihana amin'ny rojo famatsiana.

              • NPM:
                Mampiasa rakitra lock samihafa (npm-shrinkwrap.json / package-lock.json na yarn.lock) ireo mpitantana fonosana npm na yarn izay mirakitra dikan-teny raikitra ho an'ny fiankinan-doha rehetra, mivantana sy ankolaka. Tokony ho eo ambany fanaraha-maso ny dikan-teny ireo rakitra lock, raha tsy izany dia mety hifarana amin'ny dikan-teny samihafa ireo mpamorona / node fananganana hafa. Fadio ny fametrahana npm raha tsy hoe mila manavao ireo fiankinan-doha ianao rehefa eo am-pamolavolana (ohatra mba hametrahana fanamboarana fiarovana). Ampiasao ny npm ci (Clean Install) voafaritra kokoa amin'ny ankapobeny, mba hampiasan'ny mpitantana fonosana ny rakitra lock na hamarana amin'ny fahadisoana raha tsy misy rakitra lock, na tsy mifanaraka amin'ny package.json izany. Raha voamarina raha misy malware ireo dikan-teny voatanisa, dia miantoka ny rakitra lock fa tsy hisy zavatra ratsy hitranga amin'ny fotoana fananganana.

                Ho an'ny singa anatiny, dia asaina mamorona Sehatry ny NPM tantanin'ny fikambanana (toa ny @myorg), ary mampiasa io sehatra io ao amin'ny fiankinan-doha (toa ny @myorg/my-private-dep), izay mety manana fahitana manokana ihany. Ity sakana ity fisafotofotoana momba ny fiankinan-doha fanafihana, satria ny mpikambana ao amin'ny fikambanana manana fidirana amin'ny fanoratana ihany no afaka mamoaka fonosana ao anatin'izany sehatra izany.

              • Maven:
                Tsy manana rakitra mihidy ny Maven/Gradle (fa jereo ity lahatsoratra StackOverflow ity).

                Tsy ampiasaina amin'ny Maven/Gradle toy ny amin'ny tontolo iainana hafa ny andian-dahatsoratra version. Aza ampiasaina fotsiny karazana dikan-teny ary ny dikan-teny farany na ny famoahana meta. Tokony hojerena ihany koa ny dikan-teny tsy mivantana. Ny Dikan-teny Maven Plugin dia fitaovana tsara ho an'ny fanaraha-maso ny dikan-teny.

                Mariho fa ny Maven dia nanana foana ny foto-kevitra momba ny sehatry ny fandaminana (ny ampahany groupId amin'ny fiankinan-doha), ary toa tsy olana mihitsy ho an'io tontolo iainana io ny fisafotofotoana momba ny fiankinan-doha.

              • Pip:
                Ao amin'ny Python dia misy fitaovana samihafa ampiasaina amin'ny fikirakirana rakitra lock:

                - pipenv, izay mamorona rakitra hidin-trano Pipfile.lock.
                - tononkalo, izay mamorona tononkalo.lock.
                - fijanonan'ny fantsona, baiko izay mamorona requirements.txt izay miasa toy ny rakitra lock. Jereo raha mampiasa dikan-teny raikitra miaraka amin'ny mpandraharaha == ny fiankinan-doha rehetra. Avy eo ny pip install -r requirements.txt dia mampiasa ny fiankinan-doha raikitra.

            Ampahatsiahivo fa ireo rakitra mihidy etsy ambony dia tokony ho eo ambany fanaraha-maso ny dikan-teny, ary ny baiko fananganana nofidiana dia tokony hampiasa ny rakitra mihidy.

            Ny tahiry fonosana mahazatra ampiasaina amin'ny pip (PyPI) dia tsy manana sehatra anarana, ary mora voan'ny fanafihana fisafotofotoana miankina amin'ny fiankinan-doha. Fisorohana ny fisafotofotoana momba ny fiankinan-doha ao amin'ny tontolo iainana python Tsy mora izany, ary misy mpanoratra manoro hevitra ny fampiasana tahiry anatiny mba ho toy ny solonanarana ho an'ny fiankinan-doha ampahibemaso nalaina avy amin'ny PyPI, saingy alaivo aloha ny fiankinan-doha manokana avy amin'ny tahiry anatiny (tokony hanondro ny tahiry anatiny ny -index-url, fa tsy ny PyPI, ary tokony hesorina ny –extra-index-url).

            Fanafihana tena izy sasany

            Fanafihana GetcookiesNanampy fiankinan-doha ankolaka tao amin'ny fonosana npm mailparser malaza tamin'ny fonosana ratsy misy RCE backdoor (gCOMMANDhDATAi) ilay mpilalao dustin87:

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

            Na dia tsy ampiasaina intsony aza (tsy misy mpandinika!), dia mbola nahazo fampidinana 64,000 isan-kerinandro ny mailparser. Saika nisy fanafihana nitranga izany, satria tsy tena nampiasa ny RCE.cised.

            Navoaka ny NPM ity lahatsoratra ity miaraka amin'ny antsipiriany momba ny fanafihana getcookies.

            Fisafotofotoana momba ny fiankinan-doha:

            Nahita ny olana momba ny fisafotofotoana momba ny fiankinan-doha i Alex Birsan tamin'ny taona 2021 ary namoaka lahatsoratra mitondra ny lohateny hoe "Ny fomba nidirana an-tsokosoko tao amin'ny Apple, Microsoft ary orinasa am-polony hafa".

            Tsarovy fa ho an'ny npm dia tokony hotehirizina ny sehatry ny fikambanana toy ny @myorg, ary tokony hovaina ny fonosana anatiny mba hampiasana ny sehatry ny asa.

            Amin'ny pip, ny PyPI, rejisitra ho an'ny daholobe mahazatra, dia tsy manana sehatra/anarana. Ny fonosana manokana tsirairay dia mety manana fonosana ho an'ny daholobe mitovy anarana amin'ny fonosana anatiny, saingy foana, ary mety hiteraka hadisoana rehefa ampiasaina, ka azo fantarina raha toa ka nalaina tsy nahy.

            Node-ipc:

            Rehefa nanomboka ny adin'i Rosia sy Okraina, dia nampiditra kaody ratsy hanesorana ireo rakitra kisendrasendra ny tompon'ny fonosana, rehefa napetraka tao amin'ny mpampiantrano Rosiana sy Belarosiana. Nanao fanavahana ara-jeografika toy izao ny rakitra ssl-geospec.js:

            Mahaliana fa nampiasa dikan-teny misokatra ho an'ny fiankinan-doha amin'ny node-ipc ny fonosana hafa, toy ny rafitra Vue.js malaza, ary nahazo antso maika mba hampiraikitra ny fiankinan-doha amin'ny node-ipc amin'ny dikan-teny azo antoka.

            izany misy antsipiriany bebe kokoa ao amin'ny lahatsoratra amin'ity sabotazy ity, izay lasa dingana lavitra noho ny hafa Protectware olana.

             

            Famaranana ny fanamarihana

            Tokony ho ny dikan-teny misokatra na oviana na oviana azo ampiasaina amin'ny tetikasa rindrambaiko mitambatra. Mahatonga ny fananganana tsy azo averina intsony izy ireo, ary mety hanararaotra azy ireo ny mpanafika ary mahavita mampiditra malware amin'ny alàlan'ny fanafihana ireo hazo fiankinan-doha toy ny fisafotofotoana momba ny fiankinan-doha voalaza etsy ambony.

            Fandaminana diso toy ny dikan-teny misokatra, tsy fisian'ny fametahana dikan-teny, na singa anatiny tsy voasokajy tokony hialana. Ny zavatra voalohany dia ny mamantatra ireo olana ireo, angamba manakana ny fananganana mihitsy aza rehefa hita izy ireo, ary mametraka fenitra ho an'ny hetsika.

            Fitihana mandeha ho azy ny lesoka sy ny fahadisoana amin'ny fikirakirana, mitatitra ireo fiankinan-doha mampiahiahy izay mety ho marefo amin'ny fanafihana manokana amin'ny rojo famatsiana toy ny fisafotofotoana momba ny fiankinan-doha, miaraka amin'ny fitaovana fanamboarana azo ampiharina, no iray amin'ireo tanjona lehibe amin'ny Sehatra Xygeni.

            Raha hamaky bebe kokoa
            Ohm M., Plate H., Sykosch A., Meier M.: “Fanangonana Antsy avy amin'ny Backstabber: Famerenana ny Fanafihana amin'ny Rojo Famatsiana Rindrambaiko Loharano Misokatra”. DIMVA 2020. Fanamarihana amin'ny lahateny momba ny Siansa Informatika, vol 12223. Springer – 2020 (loharanon'ny sary hazo fanafihana fiankinan-doha.)
            @adam-npm: “Môdioly mampidi-doza voalaza: getcookies".npm Blog (voatahiry) - 2 Mey 2018.
            Alex Birsan: "Ny fomba nidirana an-tsokosoko tao amin'ny Apple, Microsoft ary orinasa am-polony hafa"Medium – 9 Febroary 2021."
            Ax Sharma: "Fanakorontanana goavana: Famafana rakitra ho fanoherana ny adin'i Okraina ny fonosana npm malaza"BleepingComputer - 17 Martsa 2022"

            fitaovana-fandrafetana-rindrambaiko-sca-fitaovana-famakafakana-firafitra
            Ataovy laharam-pahamehana, amboary ary arovy ny loza mety hitranga amin'ny rindrambaikonao
            Alao ny kaontinao maimaim-poana.
            Tsy mila carte de crédit.

            Arovy ny fampandrosoana sy ny fanaterana ny rindrambaikoo

            miaraka amin'ny Xygeni Product Suite