Docker je jednou z nejpoužívanějších kontejnerizačních platforem a je mezi softwarovými inženýry velmi oblíbená. Dodává se s výkonným nástrojem 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í jakýchkoli příkazů souvisejících s Dockerem v systému Linux. Samozřejmě to můžete pro pohodlí změnit a spouštět příkazy Dockeru bez oprávnění root, ale měli byste si být vědomi důsledků zabezpečení.
Co je útočná plocha Dockeru?
Plocha útoku je počet bodů útoku, spíše počet oken, které může uživatel se zlými úmysly použít k získání vstupu do vašeho systému a způsobit zkázu. Zpravidla by IT systémy měly mít minimální útočné plochy, aby se snížila bezpečnostní rizika.
Obecně je útočná plocha Dockeru velmi minimální. Kontejnery běží v zabezpečeném izolovaném prostředí a neovlivňují hostitelský operační systém, pokud není jinak. Kromě toho kontejnery Docker spouštějí pouze minimální služby, díky čemuž jsou bezpečnější.
Svůj systém Linux můžete nakonfigurovat tak, aby ovládal Docker bez oprávnění sudo. To může být výhodné ve vývojových prostředích, ale může to být vážná bezpečnostní chyba v produkčních systémech. A zde je důvod, proč byste nikdy neměli spouštět Docker bez sudo.
1. Schopnost ovládat kontejnery Docker
Bez práv sudo může každý, kdo má přístup k vašemu systému nebo serveru, ovládat každý aspekt Dockeru. Mají přístup k vašim souborům protokolu Docker a mohou zastavovat a mazat kontejnery libovolně nebo náhodně. Můžete také přijít o důležitá data, která jsou životně důležitá pro kontinuitu podnikání.
Pokud používáte kontejnery Docker v produkčním prostředí, výpadky vedou ke ztrátě podnikání 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 uchovávat data kontejneru jejich zápisem do určené složky v hostitelském operačním systému.
Jednou z největších hrozeb, které spuštění Dockeru bez sudo představuje, je, že kdokoli ve vašem systému může získat kontrolu nad adresáři hostitelského OS, včetně kořenového adresáře.
Jediné, co musíte udělat, je spustit obraz Linux Docker, například obraz Ubuntu, a připojit jej do kořenové složky pomocí následujícího příkazu:
docker spustit -ti -v /:/hostproot ubuntu bash
A protože kontejnery Linux Docker běží jako uživatel root, v podstatě to znamená, že máte přístup k celé kořenové složce.
Výše uvedený příkaz stáhne a spustí nejnovější obraz Ubuntu a připojí jej do kořenového adresáře.
Na kontejnerovém terminálu Docker přejděte na /hostproot pomocí adresáře příkaz cd:
CD /hostproot
Výpis obsahu tohoto adresáře pomocí příkazu ls zobrazuje všechny soubory hostitelského OS, které jsou nyní dostupné ve vašem kontejneru. Nyní můžete manipulovat se soubory, prohlížet tajné soubory, skrývat a odkrývat soubory, měnit oprávnění atd.
3. Nainstalujte škodlivý software
Dobře vytvoř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 by mohl ve vaší síti šířit škodlivý kód prostřednictvím kontejnerů Docker.
Existují několik praktických případů použití kontejnerů Dockera s každou aplikací přichází jiná sada bezpečnostních hrozeb.
Zabezpečte své kontejnery Docker v systému Linux
Docker je výkonná a bezpečná platforma. Spuštění Dockeru bez sudo zvyšuje vaši útočnou plochu 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 extrémně obtížné přiřadit oprávnění každému uživateli. V takových případech vám dodržování nejlepších postupů řízení přístupu může pomoci udržet zabezpečení vašeho systému.