Kuskure Ɗaya Da Ya Sake Tura Malware
Ya fara ne da kuskuren rubutu. A wani wuri cikin gaggawar tura fasali da haɗakar hulɗar jama'a, wani ya buga @utils_core maimakon @utils-core cikin fakamari.jsonWannan zamewar haruffan guda ɗaya ba ta haifar da kuskure ba. Madadin haka, ta ja a hankali kunshin da ke kama da mugunta a lokacin na gaba CI/CD gudu, ta amfani da amincewa da sigogin da aka haɗa da atomatik. Barka da zuwa duniyar rubuta rubutu a cikin buɗaɗɗen tushe.
Yin amfani da na'urar rubutu: Na'urar kai hari da ke bunƙasa sakamakon kuskuren ɗan adam
Yin amfani da na'urar buga rubutu (Typosquatting) daidai yake da yadda yake: masu aikata miyagun ayyuka suna yin rijistar fakitin da sunaye kusan iri ɗaya da na halal. A cikin yanayi mai sauri, wannan yana aiki saboda masu haɓaka suna amincewa da cewa suna da fakamari.json da kuma kunshin-kulle.json nuna abin da suke tsammani. Mutum ɗaya ya rage? Wataƙila ba a iya ganinsa a cikin bambancin hulɗa da jama'a.
NPM yana da tarihin amfani da shi ta hanyar rubuta rubutu. crossenv maimakon giciye-env or tashar abubuwan da suka faru Ƙofofin baya sun riga sun nuna yadda waɗannan kamannin suke da tasiri. Waɗannan fakitin bogi galibi suna wuce sharhi ne kawai saboda suna da kyau kuma ba sa haifar da kurakurai nan take a lokacin aiki.
Tarkuna na yau da kullun sun haɗa da:
- Jan layi da ƙasa: lodash-core vs lodash_core
- Jam'i: request vs buƙatun
- Haruffan da aka maye gurbinsu: fitar da kaya maimakon bayyana
Inda package-lock.json Ya Zama Wurin Makaho
Mai haɓaka manhajar yana gyara kuskuren rubutu. Ko kuma haka suke tunani. Amma zuwa yanzu, kunshin-kulle.json ya riga ya kulle cikin kunshin maharin. Kuma a nan ne ainihin haɗarin ke ɓoye.
Ba kamar fakamari.json, wanda ake gyarawa da hannu kuma ana samun ƙarin bincike, kunshin-kulle.json ana samar da shi ta atomatik ta hanyar NPMSakamakon haka, sau da yawa ana ɗaukarsa kamar wani tsari, ko a yi watsi da shi, ko kuma a yi watsi da shi kawai pull request sake dubawa. Ba sabon abu ba ne ga ƙungiyoyi su yi masa alama da "hayaniya mai yawa" ko kuma su amince da shi a ɓoye ba tare da yin nazari mai zurfi ba.
Masu kai hari sun san wannan. Sun dogara da shi. kunshin mugunta an yi nuni da shi, saboda kuskuren rubutu a cikin kunshin.json, kunshin-kulle.json yana rubuta sigar da aka warware. Ko da an gyara kuskuren daga baya, kuskuren shigarwar na iya ci gaba sai dai idan an sake sabunta fayil ɗin kulle.
Abin da ya ƙara ta'azzara lamarin, yin amfani da sigar pinning, wadda ake tsammanin za ta tabbatar da daidaito, na iya haifar da koma baya. Masu kai hari za su iya siffanta fakitin su na jabu daidai da wanda ya dace. CI/CD tsarin yana amincewa da nau'ikan da aka liƙa a makale, ba zai gano cewa yana shigar da fakiti tare da lambar sigar da aka sani ba amma daga wata majiya daban, mai cutarwa.
Wannan dagewa shiru shine abin da ke sa kunshin-kulle.json yana da haɗari sosai. Yana tabbatar da ginawa mai ƙarfi, eh, amma kuma yana tabbatar da cewa mummunan fakitin yana mannewa sai dai idan an kama shi an tsaftace shi da hannu.
CI/CD: Inda Malware Ke Ci Gaba – package.json
A cikin hali CI/CD pipeline, kunshin ɓarna ba ya buƙatar jira har sai lokacin aiki. Yana warwarewa kuma yana farawa tun da wuri a cikin kwararar:
Rage Dogaro
The pipeline yana jan ainihin nau'ikan dogaro daga pkulle-kulle.json, wanda yanzu ya haɗa da Kunshin da aka yi kuskure saboda kuskuren rubutu a ciki kunshin.json.
Shigar da Mataki
A lokacin npm ci, ana shigar da duk abubuwan da suka dogara da su, har da wanda aka yi wa mugunta. Babu gargaɗi, babu umarni, kawai shigarwar shiru.
Aiwatar da Rubutun Bayan Shigarwa
Kunshin mai kama da na baya ya haɗa da rubutun bayan shigarwa wanda ke gudana ta atomatik da zarar an gama shigarwa. Nan ne sulhun ya faru.
Misalin lambar ƙarya:
if (installation_phase_active) {
runHiddenPayload()
}
Bayanin lambar ƙarya:
A lokacin shigarwa, idan akwai ƙugiya bayan shigarwar, fakitin na bogi yana haifar da ɓoyayyen dabaru - sau da yawa kafin a fara ginawa ko gwaje-gwaje. Wannan na iya haɗawa da yin buƙatun waje, allurar ƙofofi na baya, ko wasu ayyuka marasa izini.
⚠️ Gargaɗi: Wannan lambar karya ce kawai don dalilai na nunawa kuma bai kamata a yi amfani da ita a cikin yanayi na gaske ba.
Babu wani faɗakarwa da aka kunna. Babu abin da ya gaza. Muhalli ya riga ya lalace, kafin naka pipeline har ma ya kai matakin gwaji.
Gano Bambancin Kafin Ya Yi Latti
Kuskuren da aka saba yi: ɗauka fakamari.json Ba ya ba da labarin gaba ɗaya. Ba ya ba da labarin. Ainihin iko yana cikin haɗin kunshin.json + kunshin-kulle.json.
Ga abin da ya kamata nema:
- Shin kunshin-kulle.json sun haɗa da fakitin da ba a zata ba?
- Shin akwai wasu abubuwan dogaro da aka samo daga rajistar da ba a sani ba ko kuma suna da wasu abubuwan ban mamaki?
- Shin lambobin sigar sun yi takamaiman bayani ko kuma ba su dace ba?
Yi amfani da kayan aikin CLI kamar:
- npm duba don nuna abubuwan da aka sani
- npm ls don duba cikakken bishiyar dogaro
- Bambanta don kwatanta nau'ikan tsakanin fakamari.json da kuma kunshin-kulle.json
Ka Taurare Ka Pipeline: Kare da ke Aiki
Don kare kai daga rubuta rubutu:
- Aiwatar da ƙa'idojin iyaka a cikin kunshin.json.
- Ƙara haɗin da aka riga aka haɗa hooks don lint da kuma tabbatar da abubuwan da suka dogara da su.
- amfani npm ci don guje wa karkatar da sigar da ba a yi niyya ba.
- A duba akai-akai kunshin-kulle.json don abubuwan da ba su da kyau.
Kuma mafi mahimmanci: yi amfani da shigarwar da ba a tabbatar ba a cikin kunshin-kulle.json a matsayin haɗarin da ka iya tasowa. Kowanne commit ya kamata a yi la'akari da shi a matsayin wurin duba kayayyaki.
Ganowa ta atomatik: Yadda Kayan aiki Ke Kama da Taimakon Xygeni
Duk da cewa ba harsashin azurfa ba ne, kayan aikin sarrafa kansa kamar Xygeni suna taka muhimmiyar rawa wajen rage kuskuren ɗan adam da ke bunƙasa rubutu a kai. Xygeni yana haɗuwa kai tsaye cikin tsarin aikin DevOps ɗinku, yana ƙara wani tsari na kariya a ainihin lokaci daga satar dogaro kafin ya kai ga aiwatarwa.
Ga yadda Xygeni ke taimakawa:
- Gano Sunan Kunshin da ake Zargi:
Yana amfani da dabarun lissafi masu wayo don gano tsarin rubutu a cikin fakamari.json, neman ƙananan bambance-bambance a cikin sanannun sunayen fakiti (kamar ƙarin maƙallan rubutu, transpositions, ko musanya haruffa). - Tabbatar da Hash ɗin da Ba a San Ko Wanene Ba:
Yana kwatanta hash na kowane dogaro a cikin kunshin-kulle.json a kan rumbun adana bayanai na kayayyakin tarihi da aka sani daga amintaccen rajista. Ko da sunan fakiti da sigar sun yi kyau, rashin daidaiton hash yana tayar da hankali. - Toshewa Kafin Ginawa:
Yana katsewa da toshe shigarwar duk wani fakitin da ba a tabbatar da shi ba ko wanda ake zargi kafin su kai ga matakan shigarwa ko bayan shigarwa a cikin CI/CD pipeline. - Binciken Jadawalin Dogara:
Yana ci gaba da duba cikakken tsarin dogaro don ƙoƙarin yin kuskuren rubutu a kaikaice ko kuma mummunan dogaro na wucin gadi. - Faɗakarwa da Rahoton:
Yana bayar da cikakkun bayanai, da faɗakarwa masu aiki, yana nuna abin da aka yiwa alama, dalili, da kuma inda ya fito a cikin sarkar dogaro.
Yayin da yanayin tsarin fakiti ke ƙara rikitarwa, kayan aiki kamar Xygeni suna zama masu mahimmanci. Bita da hannu ba ya ƙaruwa tare da faɗaɗa dogaro ko maimaitawa cikin sauri. Xygeni ya shiga don sarrafa gwaje-gwajen mahimmanci na zamani ta atomatik. pipelinebuƙatarsa, yana rufe gibin da ke tsakanin amincewa da tabbatarwa.
Hali Ɗaya. Sakamako Na Gaske.
Wannan ba wani abu bane na ban mamaki Zero-Day. An yi kuskuren rubutu. Harafi ɗaya da aka ɓata a ciki fakamari.json, a hankali aka ƙarfafa ta kunshin-kulle.json, kuma an aika malware, ta atomatik, a lokacin da ake aiki CI/CD gudu.
Wannan shine ainihin haɗarin yin rubutu a cikin rubutu: ba ya buƙatar rikitarwa. Yana amfani da sauri, aminci, da kuma sarrafa kansa. Da an hana wannan sulhu idan aka samu iko mai kyau:
- Ana dubawa ta atomatik don kama sunayen fakiti da sigar da ake zargi kafin shigarwa.
- Binciken Fayil ɗin Makulli don gano shigarwar da ba a yi bita ba ko kuma waɗanda ba a zata ba a cikin kunshin-kulle.json.
- Lissafin Tabbatar da Suna don yin alama ga fakitin da aka amince da su.
Hali ɗaya ne kawai ake buƙata. Dubawa da suka dace zai iya dakatar da shi kafin ya taɓa naka pipelineAmincewa ba ta isa ba. A cikin DevSecOps na zamani, kuna tabbatar da komai, ko kuma kuna haɗarin komai.







