Docker je jednou z nejpoužívanějších kontejnerových platforem a je velmi oblíbená mezi softwarovými inženýry a vývojáři. Dodává se s výkonným nástrojem grafického rozhraní (CLI) pro správu kontejnerů Docker a dalších souvisejících úloh.
Ve výchozím nastavení potřebujete oprávnění root ke spouštění příkazů souvisejících s Dockerem v systému Linux. Toto nastavení můžete samozřejmě změnit, aby bylo provádění pohodlnější a spouštět příkazy Dockeru bez oprávnění uživatele root, ale měli byste si být vědomi bezpečnostních důsledků. Podívejte se, jak používat Docker Containers v Linuxu.
Jaká je útočná plocha v Dockeru?
„Útočný povrch“ je počet bodů útoku, jako je počet oken, které může uživatel se zlými úmysly použít k proniknutí do vašeho systému a způsobit zkázu. Obecně by IT systémy měly mít minimální útočnou plochu, aby se minimalizovala bezpečnostní rizika.
Celkově je útočná plocha Dockeru minimální. Kontejnery běží v zabezpečeném izolovaném prostředí a neovlivňují operační systém hostitele, pokud není nakonfigurováno jinak. Kontejnery Docker navíc provozují pouze minimální služby, díky čemuž jsou bezpečnější.
Systém Linux můžete nakonfigurovat tak, aby spouštěl Docker bez oprávnění sudo. To může být vhodné ve vývojových prostředích, ale může představovat vážný bezpečnostní problém v produkčních systémech. To je důvod, proč Docker není nikdy implementován bez sudo.
1. Schopnost ovládat kontejnery Docker
Bez oprávnění sudo může kdokoli s přístupem k vašemu systému nebo serveru spravovat každý aspekt Dockeru. Má přístup k souborům protokolu Docker a může zastavit a odstranit kontejnery podle libosti nebo náhodně. Můžete také ztratit důležitá data nezbytná pro kontinuitu podnikání.
Pokud používáte kontejnery Docker v produkčním prostředí, výpadky vedou ke ztrátě různých dat a důvěry.
2. Získejte kontrolu nad adresáři hostitelského operačního systému
Docker Volumes je výkonná služba, která vám umožňuje sdílet a udržovat data kontejneru zápisem do určeného adresáře v hostitelském operačním systému.
Jednou z největších hrozeb spojených se spuštěním Dockeru bez sudo je, že kdokoli ve vašem systému může převzít kontrolu nad adresáři hostitelského operačního systému, včetně domovského adresáře.
Vše, co musíte udělat, je spustit obraz Linux Docker, řekněme obraz Ubuntu, a připojit jej do svého domovského adresáře pomocí následujícího příkazu:
docker run -ti -v /:/hostproot ubuntu bash
Protože kontejnery Linux Docker běží jako uživatel root, v podstatě to znamená, že máte přístup k celému domovskému adresáři.
Výše uvedený příkaz stáhne, spustí a nainstaluje nejnovější obraz Ubuntu do vašeho domovského adresáře.
V Terminálu pro kontejnery Docker přejděte do adresáře /hostproot
použít příkaz cd
:
cd /hostproot
Zobrazí seznam obsahu tohoto adresáře pomocí příkazu ls
Všechny soubory hostitelského operačního systému jsou nyní dostupné ve vašem kontejneru. Nyní můžete manipulovat se soubory, prohlížet důvěrné soubory, skrývat a odkrývat soubory, měnit oprávnění a tak dále.
3. Nainstalujte malware
Dobře navržený obraz Dockeru může běžet na pozadí a manipulovat s vaším systémem nebo shromažďovat citlivá data. Ještě horší je, že uživatel se zlými úmysly může ve vaší síti šířit škodlivý kód prostřednictvím kontejnerů Docker.
Existuje mnoho praktických případů použití kontejnerů Docker a s každou aplikací přichází jiná sada bezpečnostních hrozeb. Podívejte se, jak nainstalovat nástroj Docker v systému Linux.
Zabezpečení kontejnerů Docker v systému Linux
Docker je výkonná a bezpečná platforma. Spuštění Dockeru bez sudo zvyšuje plochu útoku a činí váš systém zranitelným. V produkčním prostředí se důrazně doporučuje používat sudo s Dockerem.
S tolika uživateli v systému je velmi obtížné přiřadit oprávnění každému uživateli. V takových případech může dodržování osvědčených postupů řízení přístupu pomoci udržet váš systém v bezpečí. Nyní si můžete přečíst Co je řízení přístupu a proč ho potřebujete?