detekcia rootkitov - integrita kódu

Rootkity už nie sú len pre systémových administrátorov: žijú aj v repozitároch

Čo je rootkit?

Rootkit už nie je len nízkoúrovňový malvér. Vo svojej podstate je nenápadný. malware, ktorý umožňuje neoprávnený prístup pričom skrývajú svoju vlastnú existenciu. V tradičných kontextoch sa rootkity nachádzajú v priestore jadra alebo systémových službách. Dnes sa však nachádzajú aj vo vašich repozitároch, systémoch CI a manifestoch balíkov, kde sú skryté, narúšajú integritu kódu a infikujú systémy zostavovania.

Od systémových rootkitov k rootkitom repozitárov

Systémoví inžinieri sa kedysi namáhali s rootkitmi jadra. Tie im poskytovali plnú kontrolu nad systémom, zachytávali systémové volania, skrývali procesy a ohrozovali integritu kódu. Teraz si predstavte scenár zameraný na vývojárov: škodlivý aktér vloží rootkit do vášho Git repo or strom závislostíTento rootkit repozitára je kód, ktorý manipuluje s výstupmi zostavenia alebo sa vkráda do zadných vrátok a stáva sa súčasťou artefaktov vášho balíka ešte predtým, ako ich systém spustí. Rootkity sa presúvajú do vášho zdrojového kódu, závislostí a CI/CD toky.

Ako sa rootkity skrývajú v kódových bázach a závislostiach

Pozrime sa na hmatateľné vektory útokov rootkitov, ktoré by si mali vývojári všímať:

  • Zahmlené alebo zavádzajúce commits
    Predstavte si a commit ktorý hovorí „opraviť preklep“, ale v skutočnosti vloží zavádzač, ktorý dešifruje škodlivé užitočné dáta za behu. Detekcia rootkitov je zložitá, keď commit správy skrývajú zámer.
  • Zmenené alebo zadnými vrátkami chránené knižnice
    Bežná úžitková funkcia je nahradená nenápadne zabezpečenou verziou. Prechádza testami, ale po pracovnej dobe zaznamenáva tajomstvá na vzdialený server. Integrita kódu je porušená, aj keď knižnica vyzerá povedome.
  • Kompromitované balíky tretích strán a tranzitívne závislosti
    Nainštalovali ste lib-crypto@2.0.1proti prúdu, verzia s niekým otráveným 2.0.0 so škodlivým softvérom. Teraz váš pipeline omylom stiahne rootkit, alebo čo je horšie, váš lockfile sa poškodil a vy ste stiahli poškodený kód.
  • Spiaci kód a logické bomby

Kód zostane neškodný celé týždne alebo mesiace a potom sa prebudí. Napríklad:

Testy dnes prechádzajú a zlyhanie integrity kódu si všimnete až vtedy, keď je neskoro.

Prečo je detekcia rootkitov v DevOps dôležitá

Rootkity vo vašom pipeline a repozitáre ohrozujú skutočné pracovné postupy vývojárov:

  • Zmenené zostavy, ktoré zostanú bez povšimnutia: Ak rootkit hooks do vášho skriptu na zostavenie, povedzme škodlivý po inštalácii or setup.py, vaša CI prejde a vy odošlete kompromitované artefakty bez toho, aby ste o tom vedeli.
  • Nekonzistentné alebo nereprodukovateľné zostavy: Rootkit môže spôsobiť, že zostavenia na počítačoch vývojárov sa líšia od CI agentov. Tento rozdiel je varovným signálom pre integritu kódu, ale iba ak ju kontrolujete.
  • Trvalé kompromisy naprieč vydaniami: Po vložení prežije zlúčenia vetiev, výber nových verzií a budúce vydania. A čo je horšie, môže sa vložiť do aktualizácií a poškodiť váš dodávateľský reťazec.
  • Pipeline otrava a laterálny pohyb v rámci vývojárskych prostredí: Rootkit sa môže šíriť prostredníctvom konfigurácií CI, zdieľaných spúšťačov a počítačov vývojárov so zdieľanými prihlasovacími údajmi. Integrita kódu je narušená nielen v kóde, ale aj naprieč prostrediami.

Praktická detekcia rootkitov v Pipelines

Tu sú praktické techniky, ktoré sú priateľské k vývojárom a pomôžu vám zlepšiť si úroveň detekcie rootkitov:

• Overenie hashu pre kritické súbory a závislostí

Vypočítajte SHA-256 (alebo podobný algoritmus) pre kľúčové súbory, ako napríklad požiadavky.txt, package-lock.jsonalebo skripty zostavenia najvyššej úrovne:

Akákoľvek zmena v týchto súboroch signalizuje potenciálny škodlivý posun.

• SBOM Overenie (softvérového kusovníka)

Generovať SBOM s nástrojmi ako Syft alebo SPDX. Sledujte presne, ktoré závislosti (a verzie) sú vo vašej zostave. Porovnajte SBOMnaprieč zostavami na detekciu neočakávaných alebo škodlivých doplnkov.

• Podpísané commita overenie podpisu

vynútiť ísť commit -S a skontrolujte podpisy v CI:

Nový, nepodpísaný alebo podozrivo podpísaný commit by mohla byť sonda rootkitu zdroja.

• Detekcia anomálií na základe správania počas zostavovania alebo behu

Vylepšite svoju zostavu profilovaním, aby ste zachytili nezvyčajné správanie: napríklad neočakávané sieťové volania počas npm install or pip nainštalovaťalebo zmeny súborov v chránených adresároch:

Neočakávaná odchádzajúca prevádzka počas inštalácie môže byť fázou zavádzania rootkitu.

• Skenovanie zahalených alebo vysoko entropických segmentov kódu

Používajte nástroje, ktoré označujú podozrivú entropiu kódu alebo sekcie, ktoré nie sú v kóde ASCII/ťažko čitateľné, v pull requestsNapríklad integrujte skenovanie pre Base64 bloby alebo zvláštne použitie exec/eval. Zvýraznený kód môže byť spiaci zavádzač alebo šifrované užitočné zaťaženie.

Udržiavanie integrity kódu v celom dodávateľskom reťazci

Z dlhodobého hľadiska potrebujete postupy, vďaka ktorým bude detekcia rootkitov druhou prirodzenosťou:

  • Pripnutie závislostí a uzamykateľné súbory: Vždy commit uzamykateľné súbory (package-lock.json, požiadavky.lock, Atď). Pripnite verzie, aby ste náhodou nestiahli mutované tranzitívne závislosti a neriskovali tak vkradnutie rootkitu.
  • Kryptografické podpisovanie vydaní a balíkov: Podpíšte svoje vlastné artefakty zostavenia pomocou GPG alebo podobného nástroja. Spotrebitelia overujú podpisy; ak rootkit manipuluje s vašou verziou, overenie zlyhá a preruší reťaz dôvery.
  • Pravidelná kontrola zmeny tretích strán a tranzitívne zmeny: Používajte nástroje na monitorovanie závislostí, ktoré označujú nové alebo zmenené závislosti. Kombinujte s SBOM rozdiely na detekciu vložených alebo vymenených modulov.
  • Nepretržité monitorovanie posunu závislostí alebo neoprávnené zmeny: automatizovať SBOM rozdiely vo vašej CI: zostavenia zlyhajú, ak sa objavia neočakávané závislosti. Sledujte posun závislostí v priebehu času a upozornite, ak sa niečo odchyľuje od očakávaného stavu: napr. rootkit commit alebo nahradená závislosť.

Záver

Rootkity už nie sú obmedzené len na systémových administrátorov a jadrá; presunuli sa do srdca vývoja: do vašich repozitárov, zostavení a CI. pipelineVývojári musia považovať detekciu rootkitov a integritu kódu za kľúčové záležitosti týkajúce sa bezpečnosti aplikácií. Použitím overovania hashov, SBOM audit, podpísané commits, detekciou anomálií správania a hygienou závislostí budujete praktickú obranu proti rootkitom žijúcim v kóde.

Nástroj ako Xygeni, zameraný na posilnenie dodávateľského reťazca softvéru, môže tímom DevSecOps umožniť udržiavať integritu kódu a odhaľovať hrozby rootkitov v ranej fáze pracovného postupu. Je to kľúčový spojenec pre zabezpečenie zamerané na vývojárov, ktorý pomáha zastaviť ich skôr, ako sa rozšíria cez vaše úložisko, zostavenie alebo produkciu.

nástroje na analýzu zloženia softvéru SCA
Stanovte si priority, odstraňujte a zabezpečte svoje softvérové ​​riziká
Získajte svoj bezplatný účet.
Nie je potrebná kreditná karta.

Zabezpečte si vývoj a dodávku softvéru

s produktovým balíkom Xygeni