
Zelená značka npm nestačí: pôvod balíka nepreverí jeho kód

Zelená značka pri verzii balíka npm znamená, že bola publikovaná s údajmi o pôvode. Dokumentácia npm o provenance vysvetľuje, že atestácia prepája balík so zdrojovým kódom a postupom zostavenia, ale nezaručuje neprítomnosť škodlivého kódu. Pôvod stiahnutých závislostí overíte príkazom npm audit signatures; obsah balíka a jeho skripty musíte posúdiť osobitne.
Pred použitím cudzej závislosti skontrolujte presný názov, verziu a register, z ktorého ju projekt získa. Potom si prezrite údaje o zostavení, stiahnite balík v oddelenom prostredí s vypnutými inštalačnými skriptmi a overte atestácie. Tento sled krokov má význam práve pred spustením balíka: platný dôkaz pôvodu môže patriť aj závislosti, ktorú ste vôbec nechceli nainštalovať.
Začnite názvom a registrom
Porovnajte názov v inštalačnom príkaze s názvom v repozitári projektu, ktorý chcete použiť. Všímajte si každý znak, prípadný rozsah začínajúci znakom @ a verziu, ktorú ste si vybrali. Podobne pomenovaný balík môže mať vlastnú stránku aj vierohodný opis; tieto údaje vám nepomôžu, ak ste otvorili inú závislosť.
Pri internom balíku skontrolujte nastavenie registra v súbore .npmrc a položku resolved v existujúcom package-lock.json. Odporúčania OWASP pre npm opisujú dependency confusion: verejný balík s názvom internej závislosti a vyššou verziou môže byť vybraný namiesto súkromného. Pre interné balíky odporúčajú vlastný rozsah názvov a jeho výslovné smerovanie na súkromný register. Úspešné overenie pôvodu verejného balíka by v takom prípade potvrdilo pôvod nesprávne vybratej závislosti.
Pri novej závislosti ešte nemusíte mať súbor package-lock.json. Vtedy má prednosť kontrola nastaveného registra a presnej adresy balíka pred stiahnutím; po skúšobnej inštalácii sa k vytvorenému záznamu resolved vráťte. Ak očakávate súkromný balík, verejný register nepovažujte za náhradný zdroj len preto, že v ňom existuje rovnaký názov.
Čo ukazuje zelená značka
Na stránke konkrétnej verzie v registri npm hľadajte zelenú značku pri údaji Version. Návod npm na zobrazenie provenance uvádza, že po otvorení značky možno vidieť prostredie zostavenia, odkaz na beh zostavovacieho postupu, zdrojový commit, súbor postupu a záznam vo verejnom registri atestácií. Na overenie stiahnutých závislostí príkazom npm audit signatures vyžaduje npm CLI vo verzii aspoň 9.5.0.
Údaje porovnajte s repozitárom a spôsobom vydania, ktoré očakávate od autora balíka. Pole repository v opise balíka je údaj zadaný vydavateľom; atestácia poskytuje overiteľnú väzbu na zdroj a zostavenie. Ak npm upozorní, že prepojený repozitár alebo commit už nevie nájsť, pôvod podľa tejto stopy nemožno spoľahlivo potvrdiť. Samotná značka tiež nehovorí, či sú pokyny na zostavenie alebo zdrojový kód bezpečné.
Atestácie overte bez spustenia inštalačných skriptov
Príkaz npm audit signatures pracuje so závislosťami, ktoré už boli stiahnuté do projektu. Na prvé posúdenie preto použite samostatný skúšobný projekt bez prístupu k firemným tajomstvám a s čo najmenšími oprávneniami. Izolácia je dôležitá aj pri vypnutých skriptoch: balík sa stále stiahne a rozbalí.
- Skontrolujte verziu nástroja príkazom npm --version. V oddelenom projekte potom po overení názvu a registra stiahnite presnú verziu príkazom npm install --ignore-scripts --save-exact názov@verzia. Zástupné slová nahraďte skutočným názvom a verziou balíka.
- Spustite npm audit signatures. Príkaz kontroluje podpisy registra a dostupné atestácie pôvodu v stiahnutom strome závislostí, teda aj pri balíkoch, ktoré sa pridali nepriamo. Výstup neposudzujte iba ako potvrdenie balíka uvedeného v inštalačnom príkaze.
- Pri chybe zistite, ktorej závislosti a ktorého registra sa týka. Chýbajúca provenance znamená, že pôvod zostavenia touto cestou neviete overiť; sama osebe nepreukazuje škodlivý kód. Neplatný podpis alebo atestácia vyžadujú preverenie nesúladu skôr, než balík prijmete.
Prepínač --ignore-scripts odloží vykonanie inštalačných skriptov, aby ste ich mohli preskúmať pred spustením. Pri chybe overenia skontrolujte aj verziu npm CLI: podpora bezpečnostných vlastností atestácií sa vyvíja. Aktualizácia nástroja však nie je vysvetlením každej chyby a nesmie automaticky zmeniť neplatný dôkaz na dôveryhodný.
Prezrite obsah, ktorý sa bude vykonávať
V rozbalenom balíku otvorte package.json a pozrite si položku scripts, najmä príkazy spúšťané pri inštalácii. Preskúmajte súbory, na ktoré odkazujú, aj skripty priamych závislostí. Spustenie inštalačného skriptu môže vykonať príkazy s oprávneniami prostredia, v ktorom inštalujete; preto záleží aj na tom, či by toto prostredie poskytlo prístup k tokenom alebo iným citlivým údajom.
Porovnajte súbory v stiahnutom balíku s príslušným vydaním v deklarovanom repozitári. Všímajte si pribalené spustiteľné súbory, nečakané zmeny závislostí a kód, ktorý pristupuje k prihlasovacím údajom alebo odosiela dáta mimo očakávanej funkcie balíka. Rozdiel medzi repozitárom a publikovaným archívom môže mať legitímne vysvetlenie v zostavení, no treba vedieť, odkiaľ vykonávaný súbor pochádza.
Schválenú verziu preneste do projektu
Keď sedí identita balíka, register, overiteľný pôvod aj preskúmaný obsah, pridajte schválenú verziu do projektu a skontrolujte zmenu package-lock.json. Všímajte si najmä nové nepriame závislosti, adresy v položkách resolved a údaje integrity. Pri tímovej alebo automatizovanej inštalácii použite npm ci, aby nesúlad medzi manifestom a uzamknutým stromom zastavil inštaláciu.
Samostatne spustite npm audit na zistenie známych zraniteľností v závislostiach. Jeho výsledok odpovedá na inú otázku než npm audit signatures: známe bezpečnostné hlásenie sa týka rizika v kóde, zatiaľ čo podpisy a atestácie sa týkajú integrity a pôvodu. Ak balík vyžaduje inštalačný skript, povoľte ho až po posúdení jeho konkrétneho príkazu a oprávnení prostredia, v ktorom pobeží.
Prečítajte si aj:
Súvisiace články


NetScaler CVE-2026-88779: SAML nasadenia musia aktualizovať znova

Agent OpenAI obišiel zákaz prístupu: Austrália žiada odpovede

CRA nekončí predajom softvéru: výrobca musí sledovať chyby ďalej

Character.AI či Replika: dôverný pocit nie je súkromný režim

Notion Calendar či Morgen: Outlook už nerozhoduje, úlohy a cena áno
Prihláste sa na odber newslettera
Dostávajte najnovšie správy o Web3, AI a kryptomenách priamo do svojej schránky.