Kontajnery bez root oprávnení: Kompletný sprievodca spúšťaním a riešením problémov s oprávneniami v obmedzených prostrediach

Posledná aktualizácia: 10/07/2026
Autor: Isaac

Zabezpečenie kontajnerov

Som si istý, že sa vám to už stalo: snažíte sa zostaviť kontajner na osobné použitie, chcete ho bezpečnejšie použiť neprivilegované kontajnery A zrazu sa ocitnete v pasci chýb oprávnení. Je frustrujúce stráviť hodiny konfiguráciou priečinkov v domovskom adresári používateľa a zistiť, že kontajner do nich nemôže zapisovať, alebo že keď to urobí, výsledné súbory na hostiteľovi sú poškodené. nemožné zvládnuť pretože patria fantomovému používateľovi.

Realita je taká, že hoci kontajnerizácia urýchlila dodávanie softvéru, otvorila dvere značným rizikám. Podľa nedávnych údajov prevažná väčšina produkčných obrazov nesie [nejasné - pravdepodobne „nejasné“ alebo „nejasné“] kritické zraniteľnostiVďaka tomu je bezpečnosť neoddeliteľnou súčasťou. Nejde len o to, aby sme zabránili hackerom v útokoch na nás, ale aj o pochopenie fungovania systému. izolácia procesu aby sa naša infraštruktúra nestala sitom.

Kontajnery bez root oprávnení: ako spúšťať a riešiť problémy s oprávneniami v obmedzených prostrediach
Súvisiaci článok:
Kontajnery bez root oprávnení: kompletný sprievodca spúšťaním a riešením problémov s oprávneniami v obmedzených prostrediach

Pochopenie ekosystému zabezpečenia kontajnerov

Aby sme prestali hádať s oprávneniami, najprv musíme vedieť, čo chránime. Architektúra kontajnera je rozdelená do niekoľkých kritických vrstiev. Najprv máme obrázok kontajneračo je pôvodný plán; ak je zraniteľný, všetky inštancie, ktoré nasadíte, budú nezabezpečené. Preto je dôležité používať dôveryhodné základné obrázky a priebežne ich aktualizovať.

Potom za behuktorý slúži ako arbiter medzi hostiteľským operačným systémom a aplikáciou. Ak je behové prostredie zastarané, riziko únik z kontajnera dramaticky narastá. K tomu musíme pripočítať orchestráciu, ako napríklad Kubernetes, kde riadenie prístupu na základe rolí (RBAC) Je to jediná skutočná bariéra proti neoprávnenému prístupu k rozhraniu API pre správu.

Nemôžeme zabudnúť na hostiteľský operačný systémAk sa útočníkovi podarí kompromitovať jadro hostiteľa, získa kľúče k celej doméne. Odporúčanie je tu jasné: použite minimálny operačný systém aby sa znížila plocha útoku. Nakoniec, sieť je najčastejším vstupným bodom; takmer 30 % narušení sa vyskytuje v dôsledku zlyhania pripojenia, takže segmentácia siete a šifrovanie TLS/SSL Sú povinné.

Kontajnery s Podmanom
Súvisiaci článok:
Kontajnery s Podmanom: kompletný sprievodca podmi a zväzkami

Problém s oprávneniami a root používateľom

Typickým problémom pre amatérov je pracovný postup so zväzkami. Vytvoríte priečinok, pripojíte ho a potom, bum!, chyba. povolenie zamietnutéDeje sa to preto, lebo štandardne sa mnoho kontajnerov spúšťa ako root. Keď sa pokúsite vynútiť UID a GID na 0 Ak ich chcete prispôsobiť používateľovi vášho hostiteľa, vytvárate nebezpečný most. Ak vám kontajner neumožňuje nakonfigurovať tieto ID, skončíte s premrhaním popoludnia zisťovaním, ktorého interného používateľa aplikácia používa na vykonanie... chown Manuálny.

  Čo je simulátor Velxio a ako prináša revolúciu v emulácii Arduina, ESP32 a Raspberry Pi?

Efektívnym riešením je aplikovať princíp najmenších privilégiíNemali by ste spúšťať nič ako root, pokiaľ to nie je absolútne nevyhnutné. Na vyriešenie problému so súbormi vytvorenými kontajnermi, ktoré nie je možné odstrániť na hostiteľovi, je nevyhnutné nakonfigurovať Dockerfile pomocou nasledujúcej inštrukcie: USER, definovanie používateľa bez privilégií pred spustením aplikácie.

Ak používate Podman, koncept bezkoreňové nádoby Je to natívne a veľmi užitočné, ale vyžaduje si to pochopenie toho, ako sú používatelia hostiteľa mapovaní na používateľov kontajnerov. Aby sa zabránilo tomu, že sa oprávnenia vymknú spod kontroly, ideálne by mala byť aplikácia navrhnutá tak, aby zapisovala do konkrétnych trás a aby... mapovanie objemu Robí sa to s ohľadom na skutočné UID používateľa, ktorý proces spúšťa.

Stratégie pre vytváranie obrnených obrazov

Ak chcete prestať trpieť, musíte zmeniť spôsob, akým si vytvárate svoje obrazy. Jedna brutálne účinná technika je... viacstupňové zostavyV podstate použijete ťažký obraz so všetkými nástrojmi na zostavenie na vygenerovanie binárneho súboru a potom skopírujete iba tento súbor do finálneho obrazu. extrémne ľahké.

Kontajnery bez root oprávnení: ako spúšťať a riešiť problémy s oprávneniami v obmedzených prostrediach
Súvisiaci článok:
Zvládnutie kontajnerov bez root prístupu: kompletný sprievodca povoleniami a zabezpečením

S obrázkom môžete zájsť ešte ďalej poškriabaniuTýmto sa vytvorí kontajner, ktorý nemá absolútne nič: žiadny shell, žiadny správca balíkov, iba vašu aplikáciu. To útočníkovi prakticky znemožňuje vykonávať škodlivé príkazy, ak sa mu podarí dostať sa dovnútra, pretože Neexistuje žiadny interpret príkazov k dispozícii.

Ďalším bezpečnostným opatrením je vyčistiť obraz akéhokoľvek binárneho súboru s oprávneniami setuid alebo setgidTieto povolenia umožňujú spustenie súboru s oprávneniami vlastníka súboru a nie používateľa, ktorý ho spúšťa, čo je diaľnica pre... eskalácia privilégiíJednoduchý príkaz na vyhľadanie a odstránenie týchto častí počas vytvárania obrazu vám môže ušetriť veľa problémov.

  Čo je súbor LST? Na čo slúži a ako ho otvoriť

Nebezpečenstvá privilegovaného režimu a možnosti Linuxu

Niekedy, zo zúfalstva, že nedokážeme vyriešiť problém s oprávneniami, podľahneme pokušeniu použiť príznak –privilegovanýZabudnite na to. Privilegovaný režim preruší izoláciu kontajnera a poskytne vám plný prístup k zariadeniam hostiteľa. Je to ako keby ste dali kľúče od svojho domu cudzincovi len preto, že nevedel, ako otvoriť záhradnú bránku.

Namiesto toho by ste sa mali hrať s Možnosti LinuxuDocker priraďuje sadu predvolených oprávnení (napríklad CAP_CHOWN alebo CAP_NET_RAW). Ak vaša aplikácia nepotrebuje manipulovať so sieťou na nízkej úrovni, najrozumnejším prístupom je eliminovať nepotrebné schopnosti a pridajte iba tie, ktoré sú striktne vyžadované --cap-add.

Pre tých, ktorí riadia náročnejšie prostredia, existujú autorizačné pluginy ako napríklad opa-docker-authz. Tieto umožňujú zachytiť volania do API démona Docker a blokovať akýkoľvek pokus o spustenie kontajnera v privilegovanom režime, čím sa zabezpečí, že nikto, ani omylom, nenechá dvere otvorené k hostiteľovi.

Optimalizácia a údržba prostredia

Pri používaní Alpine Linuxu sa nenechajte uniesť veľkosťou obrazu 5 MB, ak to spôsobuje problémy s kompatibilitou s knižnicami. Niekedy je vhodnejší o niečo väčší obraz Debianu. stabilizovaný a známy tímom. Rozhodujúce je implementácia skenovanie zraniteľností Automatizovaný kanál CI/CD na detekciu CVE predtým, ako sa obraz dostane do produkcie.

Čo sa týka úložiska, bráni aplikácii v zápise do koreňového súborového systému. Nakonfigurujte súborový systém iba na čítanie (rootfs) a definuje špecifické zväzky iba pre dáta, ktoré je potrebné uchovávať. Toto je nielen bezpečnejšie, ale tiež si to vyžaduje čistejšiu architektúru a bez majetkuuľahčenie horizontálneho škálovania.

V prípade plánovaných procesov nevkladajte úlohu cron do kontajnera webovej stránky. Zlaté pravidlo je jeden proces na kontajnerNajčistejším prístupom je použiť obraz vašej aplikácie na spustenie dočasného kontajnera, ktorý vykoná úlohu a potom sa sám zničí, alebo spravovať cron z hostiteľa volaním kontajnerového enginu pomocou príkazov.

  Čo je súbor TXZ? Na čo slúži a ako ho otvoriť

Zabezpečenie kontajnerov je prebiehajúci proces, ktorý zahŕňa elimináciu root prístupu, obmedzenie možností jadra a odstránenie nepotrebných nástrojov z obrazov kontajnerov. Kombináciou neprivilegovaných používateľov s runtime hardeningom a neustálym monitorovaním sa dosahuje prostredie, v ktorom funkčnosť neohrozuje integritu hostiteľského systému.

Vytváranie ľahkých kontajnerov pomocou Podmanu v Linuxe
Súvisiaci článok:
Ľahké kontajnery s Podmanom v Linuxe: Praktický sprievodca