zbulimi i rootkit-it - integriteti i kodit

Rootkit-et nuk janë më vetëm për administratorët e sistemit: Ato gjenden edhe në depo

Çfarë është një Rootkit?

Një rootkit nuk është më thjesht një program keqdashës i nivelit të ulët. Në thelb, ai është i fshehtë. malware që jep akses të paautorizuar ndërsa fsheh ekzistencën e vet. Në kontekstet tradicionale, rootkit-et jetojnë në hapësirën e kernelit ose në shërbimet e sistemit. Megjithatë, sot, ato jetojnë edhe në depot tuaja, sistemet CI dhe manifestet e paketave, duke u fshehur në sy të publikut, duke ndërhyrë në integritetin e kodit dhe duke infektuar sistemet e ndërtimit.

Nga Rootkit-et e Sistemit te Rootkit-et e Depozitës

Inxhinierët e sistemit dikur punonin shumë për rootkit-et e kernel-it. Këto jepnin kontroll të plotë mbi një sistem, duke kapur thirrjet sistemore, duke fshehur proceset dhe duke e mbajtur integritetin e kodit të kompromentuar. Tani, supozojmë një skenar të përqendruar te zhvilluesi: një aktor keqdashës injekton një rootkit në kompjuterin tuaj. Repoja Git or pemë varësieKy rootkit i depove është kod që manipulon rezultatet e ndërtimit tuaj ose futet fshehurazi në prapaskena, duke u bërë pjesë e objekteve të paketave tuaja, madje edhe para se një sistem t'i ekzekutojë ato. Rootkit-et zhvendosen në rrjedhën e sipërme në burimin tuaj, varësitë dhe CI/CD rrjedh

Si fshihen Rootkit-et në Bazat e Kodit dhe Varësitë

Le të shqyrtojmë vektorët konkretë të sulmit të rootkit-eve që zhvilluesit duhet t'i kenë parasysh:

  • I turbullt ose mashtrues commits
    Imagjinoni një commit që thotë "rregullo gabimin drejtshkrimor", por në fakt injekton një program ngarkues që deshifron ngarkesat keqdashëse gjatë kohës së ekzekutimit. Zbulimi i rootkit-eve është i ndërlikuar kur commit Mesazhet fshehin qëllimin.
  • Biblioteka të ndryshuara ose të mbyllura
    Një funksion i zakonshëm i shërbimeve zëvendësohet me një version paksa të fshehur. Ai kalon testet, por regjistron sekretet në një server të largët pas orarit të punës. Integriteti i kodit është i prishur, edhe pse biblioteka duket e njohur.
  • Paketa të kompromentuara të palëve të treta dhe varësi kalimtare
    Ju instaluat lib-crypto@2.0.1; në rrjedhën e sipërme, versioni i helmuar nga dikush 2.0.0 me programe keqdashëse. Tani juaji pipeline tërheq aksidentalisht një rootkit, ose më keq, skedari juaj i kyçjes është devijuar dhe ju keni nxjerrë kodin e ndotur.
  • Kodi i fjetur dhe bombat logjike

Kodi qëndron i paprekshëm për javë ose muaj, pastaj zgjohet. Për shembull:

Testet kalojnë sot dhe nuk e vini re dështimin e integritetit të kodit derisa të jetë tepër vonë.

Pse zbulimi i rootkit-eve ka rëndësi në DevOps

Rootkit-et në tuajin pipeline dhe depot kërcënojnë rrjedhat e punës reale të zhvilluesve:

  • Ndërtime të manipuluara që kalojnë pa u vënë re: Nëse një rootkit hooks në skriptin tuaj të ndërtimit, le të themi një keqdashës pas instalimit or konfigurim.py, CI-ja juaj do të kalojë dhe ju shtyni objekte të kompromentuara pa e ditur.
  • Ndërtime të paqëndrueshme ose të pariprodhueshme: Një rootkit mund të shkaktojë ndryshime në versionet e kompjuterëve zhvillues kundrejt agjentëve CI. Ky ndryshim është një sinjal paralajmërues për integritetin e kodit, por vetëm nëse po e kontrolloni.
  • Kompromis i vazhdueshëm në të gjitha versionet: Pasi të integrohet, mund t’i mbijetojë bashkimeve të degëve, përzgjedhjeve të vogla dhe versioneve të ardhshme. Më keq akoma, mund të injektohet në përditësime, duke korruptuar zinxhirin tuaj të furnizimit.
  • Pipeline helmimi dhe lëvizja anësore brenda mjediseve të zhvilluesve: Një rootkit mund të përhapet përmes konfigurimeve CI, ekzekutuesve të përbashkët dhe makinave zhvilluese me kredenciale të përbashkëta. Integriteti i kodit shkelet jo vetëm në kod, por në të gjitha mjediset.

Zbulimi praktik i Rootkit-it në Pipelines

Ja disa teknika të lehta për zhvilluesit dhe të zbatueshme për të përmirësuar nivelin tuaj të zbulimit të rootkit-eve:

• Validimi i hash-it për skedarët kritikë dhe varësi

Llogarit një SHA‑256 (ose të ngjashëm) për skedarët kryesorë si p.sh. kërkesat.txt, paketë-kyç.json, ose skripte ndërtimi të nivelit të lartë:

Çdo ndryshim në ato skedarë sinjalizon një devijim të mundshëm dashakeq.

• SBOM Validimi (Lista e Materialeve të Softuerit)

Generate SBOM me mjete si Syft ose SPDX. Gjurmoni saktësisht se cilat varësi (dhe versione) janë në ndërtimin tuaj. Krahasoni SBOMs nëpër ndërtime për të zbuluar shtesa të papritura ose dashakeqe.

• Nënshkruar commits dhe verifikimi i nënshkrimit

zbatoj git commit -S dhe kontrolloni nënshkrimet në CI:

Një i ri, i panënshkruar ose i nënshkruar në mënyrë të dyshimtë commit mund të jetë një sondë burim-rootkit.

• Zbulimi i anomalive të bazuara në sjellje gjatë ndërtimit ose kohës së ekzekutimit

Instrumentoni ndërtimin tuaj me profilizim për të kapur sjellje të çuditshme: për shembull, thirrje të papritura në rrjet gjatë instaloni npm or instalim pip, ose ndryshimet e skedarëve në direktoritë e mbrojtura:

Trafiku i papritur dalës gjatë instalimit mund të jetë një fazë ngarkimi e rootkit-it.

• Skanimi për segmente kodi të turbullta ose me entropi të lartë

Përdorni mjete që sinjalizojnë entropi të dyshimtë të kodit ose seksione jo-ASCII/të vështira për t'u lexuar në pull requestsPër shembull, integroni një skanim për Baza64 pika të vogla ose përdorim i çuditshëm ekzekutiv/vlerësues. Kodi i theksuar mund të jetë një ngarkues i fjetur ose një ngarkesë e enkriptuar.

Ruajtja e Integritetit të Kodit në të gjithë Zinxhirin e Furnizimit

Në plan afatgjatë, ju nevojiten praktika që e bëjnë zbulimin e rootkit-eve të natyrshme:

  • Ngjitja e varësisë dhe skedarët e kyçjes: Gjithmonë commit skedarët e kyçjes (paketa-kyç.json, kërkesat.kyç, Etj). Pin-oni versionet në mënyrë që të mos tërhiqni aksidentalisht varësitë e mutuara kalimtare dhe të rrezikoni që të futet ndonjë rootkit.
  • Nënshkrimi kriptografik i lëshimeve dhe paketave: Nënshkruani artefaktet tuaja të ndërtimit me GPG ose të ngjashme. Konsumatorët verifikojnë nënshkrimet; nëse një rootkit ka ndërhyrë në versionin tuaj, verifikimi dështon dhe prish zinxhirin e besimit.
  • Rishikimi i rregullt i ndryshime të palëve të treta dhe kalimtare: Përdorni mjete monitorimi të varësive që sinjalizojnë varësitë e reja ose të ndryshuara. Kombinoni me SBOM ndryshimet për të zbuluar modulet e injektuara ose të zëvendësuara.
  • Monitorim i vazhdueshëm për zhvendosje të varësisë ose ndryshime të paautorizuara: automatizoj SBOM ndryshimet në CI-në tuaj: ndërtime të dështuara nëse shfaqen varësi të papritura. Ndiqni ndryshimin e varësisë me kalimin e kohës dhe njoftoni nëse diçka devijon nga gjendja e pritur: p.sh., një rootkit commit ose zëvendësoi varësinë.

Përfundim

Rootkit-et nuk kufizohen më vetëm te administratorët e sistemit dhe bërthamat; ato kanë migruar në zemër të zhvillimit: depot, ndërtimet dhe CI-të tuaja. pipelineZhvilluesit duhet ta trajtojnë zbulimin e rootkit-it dhe integritetin e kodit si shqetësime thelbësore të aplikacionit. Duke përdorur validimin e hash-it, SBOM auditim, i nënshkruar commits, zbulimin e anomalive të sjelljes dhe higjienën e varësive, ju ndërtoni mbrojtje praktike kundër rootkit-eve që jetojnë në kod.

Një mjet si Xygeni, i fokusuar në forcimin e zinxhirit të furnizimit të softuerëve, mund t'i fuqizojë ekipet DevSecOps për të ruajtur integritetin e kodit dhe për të zbuluar kërcënimet rootkit në fazat e hershme të rrjedhës së punës. Është një aleat jetik për sigurinë e zhvilluesve në radhë të parë, duke ndihmuar në ndalimin e kësaj para se të përhapet në depon, ndërtimin ose prodhimin tuaj.

mjetet-e-për-përbërjes-së-softuerit-sca-tools
Përparësoni, korrigjoni dhe siguroni rreziqet e softuerit tuaj
Merrni Llogarinë tuaj Falas.
Nuk kërkohet kartë krediti.

Siguroni Zhvillimin dhe Ofrimin e Softuerit tuaj

me Xygeni Product Suite