ugunduzi wa rootkit - uadilifu wa msimbo

Rootkits Sio za Sysadmins Tu Tena: Pia Zinaishi Katika Repos

Kifaa cha Mizizi ni Nini?

Rootkit si programu hasidi ya kiwango cha chini tu tena. Kiini chake, ni siri programu hasidi inayotoa ufikiaji usioidhinishwa huku ikificha uwepo wake. Katika miktadha ya kitamaduni, rootkits huishi katika nafasi ya kernel au huduma za mfumo. Hata hivyo, leo, pia huishi katika hazina zako, mifumo ya CI, na vifurushi vyako, vikijificha mbele ya macho, vikiharibu uadilifu wa msimbo, na kuambukiza mifumo ya ujenzi.

Kutoka kwa Mizizi ya Mfumo hadi Mizizi ya Hifadhi

Wahandisi wa mfumo walikuwa wakitumia nguvu zao nyingi kupindukia vifurushi vya mizizi ya kernel. Hawa walitoa udhibiti kamili juu ya mfumo, wakizuia mifumo, wakificha michakato, na kuweka uadilifu wa msimbo katika hali iliyoathiriwa. Sasa, fikiria hali inayozingatia msanidi programu: mtendaji hasidi anaingiza kifurushi cha mizizi ndani yako. Repo ya Git or mti wa utegemezi. Rootkit hii ya hifadhi ni msimbo unaobadilisha matokeo yako ya ujenzi au kuingia kwa siri ndani ya milango ya nyuma, na kuwa sehemu ya mabaki ya kifurushi chako, hata kabla ya mfumo kuviendesha. Rootkits husogea juu hadi chanzo chako, utegemezi, na CI/CD mtiririko.

Jinsi Rootkits Zinavyojificha katika Misimbo na Utegemezi

Hebu tufungue vekta za mashambulizi ya rootkit zinazoonekana ambazo watengenezaji lazima waziangalie:

  • Imechanganyikiwa au inapotosha commits
    Fikiria a commit ambayo inasema "rekebisha makosa ya kuandika" lakini kwa kweli huingiza kipakiaji kinachoondoa usimbaji fiche wa faili hasidi wakati wa utekelezaji. Kugundua Rootkit ni gumu wakati commit ujumbe huficha nia.
  • Maktaba zilizobadilishwa au zilizofungwa nyuma
    Kitendakazi cha kawaida cha matumizi hubadilishwa na toleo lililofungwa kwa njia fiche. Hufaulu majaribio lakini huhifadhi siri kwenye seva ya mbali baada ya saa za kazi. Uadilifu wa msimbo umevunjwa, ingawa maktaba inaonekana kuwa ya kawaida.
  • Vifurushi vya wahusika wengine vilivyoathiriwa na utegemezi wa mpito
    Umesakinisha lib-crypto@2.0.1; juu ya mto, mtu aliye na sumu 2.0.0 na programu hasidi. Sasa yako pipeline huvuta rootkit kwa bahati mbaya, au mbaya zaidi, faili yako ya kufuli ilipotea na ukavuta msimbo uliochafuliwa.
  • Mabomu ya msimbo wa kulala na mantiki

Msimbo hubaki bila madhara kwa wiki au miezi, kisha huamka. Kwa mfano:

Majaribio yanapita leo, na huoni uadilifu wa msimbo ukishindwa hadi iwe kuchelewa sana.

Kwa Nini Ugunduzi wa Rootkit Ni Muhimu katika DevOps

Rootkits katika yako pipeline na hifadhi zinatishia mtiririko wa kazi wa wasanidi programu halisi:

  • Miundo iliyoharibika ambayo haionekani: Kama kifaa cha mizizi hooks kwenye hati yako ya ujenzi, sema ni hasidi baada ya kusakinisha or kuanzisha.py, CI yako itapita, na unasukuma mabaki yaliyoathiriwa bila kujua.
  • Miundo isiyo thabiti au isiyoweza kurudiwa: Kifaa cha mizizi kinaweza kusababisha tofauti kati ya miundo kwenye mashine za wasanidi programu na mawakala wa CI. Tofauti hiyo ni alama nyekundu kwa uadilifu wa msimbo, lakini tu ikiwa unaiangalia.
  • Maelewano yanayoendelea katika matoleo yote: Mara tu ikipachikwa, inaweza kustahimili kuunganishwa kwa matawi, kuchaguliwa kwa cherry, na kutolewa kwa siku zijazo. Mbaya zaidi, inaweza kujiingiza kwenye masasisho, na kuharibu mnyororo wako wa usambazaji.
  • Pipeline sumu na mwendo wa pembeni ndani ya mazingira ya msanidi programu: Kifaa cha mizizi kinaweza kuenea kupitia usanidi wa CI, viendeshaji vilivyoshirikiwa, na mashine za wasanidi programu zenye sifa zilizoshirikiwa. Uadilifu wa msimbo huvunjwa si tu katika msimbo, bali pia katika mazingira yote.

Ugunduzi wa Vitendo wa Rootkit katika Pipelines

Hapa kuna mbinu rafiki kwa msanidi programu na zinazoweza kutumika ili kuongeza mchezo wako wa kugundua rootkit:

• Uthibitishaji wa hash kwa faili muhimu na utegemezi

Hesabu SHA‑256 (au sawa) kwa faili muhimu kama vile mahitaji.txt, package-lock.json, au hati za ujenzi wa kiwango cha juu:

Mabadiliko yoyote kwenye faili hizo yanaashiria uwezekano wa kupotea kwa programu hasidi.

• SBOM Uthibitisho wa (Muswada wa Programu wa Vifaa)

Kuzalisha SBOM ukitumia zana kama vile Syft au SPDX. Fuatilia hasa ni utegemezi gani (na matoleo) uliopo katika muundo wako. Linganisha SBOMs katika miundo mbalimbali ili kugundua nyongeza zisizotarajiwa au hasidi.

• Saini commits na uthibitisho wa sahihi

Tekeleza git commit -S na angalia sahihi katika CI:

Saini mpya, isiyosainiwa, au iliyotiwa saini kwa tuhuma commit inaweza kuwa probe ya chanzo-rootkit.

• Ugunduzi wa hitilafu kulingana na tabia wakati wa ujenzi au wakati wa utekelezaji

Tumia muundo wako kwa kutumia wasifu ili kubaini tabia isiyo ya kawaida: kwa mfano, simu zisizotarajiwa za mtandao wakati wa npm kufunga or ufungaji wa bomba, au faili mabadiliko katika dirs zilizolindwa:

Trafiki isiyotarajiwa wakati wa usakinishaji inaweza kuwa hatua ya kupakia rootkit.

• Kuchanganua sehemu za msimbo zilizofichwa au zenye entropy nyingi

Tumia zana zinazoashiria entropy ya msimbo unaotiliwa shaka au sehemu zisizo za ASCII/ngumu kusoma katika pull requestsKwa mfano, unganisha uchanganuzi wa Msingi64 matone au matumizi ya ajabu ya utekelezaji/eval. Msimbo ulioangaziwa unaweza kuwa kipakiaji cha kulala au mzigo uliosimbwa kwa njia fiche.

Kudumisha Uadilifu wa Kanuni Katika Mnyororo wa Ugavi

Kwa muda mrefu, unahitaji mbinu zinazofanya ugunduzi wa rootkit kuwa wa pili:

  • Ubandikaji wa utegemezi na faili za kufuli: Daima commit faili za kufuli (kifurushi-kufuli.json, mahitaji.kufuli, Nk). Bandika matoleo ili usivute kwa bahati mbaya utegemezi wa mpito uliobadilishwa na kuhatarisha rootkit kuingia.
  • Usaini wa kidijitali wa matoleo na vifurushi: Saini mabaki yako ya ujenzi kwa kutumia GPG au sawa. Wateja huthibitisha sahihi; ikiwa rootkit imebadilishwa na toleo lako, uthibitishaji hushindwa na huvunja mnyororo wa uaminifu.
  • Mapitio ya mara kwa mara ya mabadiliko ya mtu wa tatu na ya mpito: Tumia zana za ufuatiliaji wa utegemezi zinazoashiria utegemezi mpya au uliobadilika. Changanya na SBOM hutofautiana katika kugundua moduli zilizoingizwa au zilizobadilishwa.
  • Ufuatiliaji unaoendelea wa kupotoka kwa utegemezi au mabadiliko yasiyoidhinishwa: Ondoa SBOM hutofautiana katika CI yako: hushindwa kujenga ikiwa utegemezi usiotarajiwa utaonekana. Fuatilia mabadiliko ya utegemezi baada ya muda, na uarifu ikiwa kitu kitapotoka kutoka kwa hali inayotarajiwa: k.m., kifaa cha mizizi commit au utegemezi uliobadilishwa.

Hitimisho

Rootkits hazijazuiliwa kwenye sysadmins na kernels tena; zimehamia katika moyo wa maendeleo: repos zako, builds, na CI pipelines. Wasanidi programu lazima wachukulie ugunduzi wa rootkit na uadilifu wa msimbo kama masuala muhimu ya programu. Kwa kutumia uthibitishaji wa hash, SBOM ukaguzi, uliosainiwa commits, ugunduzi wa tabia zisizo za kawaida, na usafi wa utegemezi, unajenga ulinzi wa vitendo dhidi ya rootkits wanaoishi katika msimbo.

Chombo kama Xygeni, inayolenga uimarishaji wa mnyororo wa usambazaji wa programu, inaweza kuziwezesha timu za DevSecOps kudumisha uadilifu wa msimbo na kugundua vitisho vya rootkit mapema katika mtiririko wa kazi. Ni mshirika muhimu kwa usalama wa msanidi programu kwanza, ikisaidia kukomesha hili kabla ya kuenea kupitia repo yako, ujenzi, au uzalishaji.

zana-za-sca-za-uchambuzi-wa-muundo-wa-programu
Weka kipaumbele, rekebisha, na ulinde hatari za programu yako
Pata Akaunti yako ya Bure.
Hakuna kadi ya mkopo inayotakiwa.

Linda Uundaji na Uwasilishaji wa Programu yako

na Xygeni Product Suite