V NixOS bol navrhnutý metod ochrany pred injectovaním backdoorov, ako v prípade XZ

Na zahrnutie do repozitára balíkov nixpkgs, ktorý sa používa v distribúcii NixOS, bol navrhnutý režim opakovaných zostavení, ktorý umožňuje odhaľovať prípady vnesenia backdoorov do kódu, pripomínajúce incident s projektom XZ. Predložená metóda ochrany umožňuje odhaliť úpravy v archívoch so zdrojovým kódom vydania, ktoré chýbajú v repozitároch kódu.

Podstata metódy spočíva v tom, že zdrojový kód novej verzie aplikácie sa zostavuje dvakrát – prvýkrát z kódu stiahnutého z git-repozitára a druhýkrát z kódu, ktorý sa distribuuje v hotových archívoch. Ak sa získané binárne súbory líšia, vzniká dôvod na podozrenie z prítomnosti skrytých úprav v repozitári alebo v archívnom súbore s kódom.

Pripomeňme, že v prípade projektu XZ repozitár s kódom neobsahoval podozrivé zmeny. Backdoorové škodlivé komponenty boli dodávané vo vnútri súborov, používaných v testovacej sade na overenie správnosti funkcie rozbaľovača XZ. Backdoor sa aktivoval na úrovni systému zostavovania, a samotný zdrojový kód XZ sa zhodoval s kódom z repozitára. Aktivujúce backdoor m4 makrá pre nástroje Automake boli zahrnuté iba v hotovom archíve s kódom a chýbali v repozitári.

Backdoor v XZ bol implantovaný útočníkom, ktorý získal status udržiavateľa projektu. Implantácia backdooru bola okamžite nezaznamenaná, pretože distribúcie väčšinou zostavujú balíky sťahovaním kódu z hotových archívov, keďže pri sťahovaní kódu na zostavenie je možné obísť sa jednou kontrolnou sumou na overenie integrity archívneho súboru a používať zrkadlá. Hlavná pozornosť pri kontrole kódu je sústredená na analýzu obsahu repozitára, takže nejaké nejasné rozdiely v archívoch nemusia byť okamžite odhalené.

Na uľahčenie overovania zhody súborov archívov a snímok repozitára zodpovedajúcich vydaniam, niektoré otvorené projekty, ako PostgreSQL, zaviedli systém opakovateľnej generácie archívov. V tomto prípade je poskytovaný nástroj, ktorý umožňuje samostatne zostaviť z kódu svoj archív, ktorý bude plne zodpovedať hotovému archívu dostupnému na stiahnutie. Ak sa nezávisle vytvorený archív a archív poskytovaný hlavným projektom budú líšiť, je to znak kompromitácie repozitára alebo referenčného archívu.

Problém spočíva v tom, že takáto metóda sa uplatňuje len v niektorých prípadoch, zatiaľ čo mnohé projekty naďalej zahrňujú do archívov ďalšie artefakty, ktoré chýbajú v hlavnom repozitári, ako sú man-strany, dokumentácia, príklady, skripty na vytváranie balíkov pre distribúcie a ďalšie súborové zostavy. V zásade sa to deje z historických dôvodov a špecifík procesu formovania vydaní. Jednoduchá kontrola zhodnosti obsahu repozitára a archívu v tomto prípade nie je vhodná.

Ako riešenie sa navrhlo zbierať binárne súbory vydania, ako z repozitára (napríklad je možné použiť automaticky generovaný archív na GitHub pre vydaný tag), tak aj z archívu pripraveného správcom a následne porovnať výsledky. Ako experiment bude takáto kontrola zatiaľ navrhnutá iba pre balík „xz“. Ak sa experiment osvedčí, plánujú sa kontroly využiť aj v iných balíkoch v nixpkgs.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster