GNU/Linux >> Znalost Linux >  >> Panels >> Docker

10 doporučených postupů zabezpečení Dockeru

Úvod

Docker kontejnery a Kubernetes jsou hnací silou životního cyklu moderního vývoje softwaru. Přestože je Docker bezpečnější možností než pracovat přímo na hostitelském počítači, při práci s kontejnery může nastat mnoho potenciálních bezpečnostních problémů.

Tento článek obsahuje deset doporučených postupů zabezpečení kontejnerů, které vám mohou pomoci předcházet útokům a narušení zabezpečení.

1. Pravidelně aktualizujte Docker a Host

Ujistěte se, že váš hostitel a Docker jsou aktuální. Používejte nejnovější verzi operačního systému a software pro kontejnerizaci, abyste předešli bezpečnostním chybám. Každá aktualizace obsahuje kritické bezpečnostní opravy, které jsou nezbytné pro ochranu hostitele a dat.

Udržování aktualizace Dockeru není omezeno na samotnou platformu. Spuštěné kontejnery se neaktualizují automaticky. Měli byste také aktualizovat kontejnery a obrázky, na kterých jsou založeny.

2. Nakonfigurujte kvóty zdrojů

Chcete-li se vyhnout kompromitovaným kontejnerům, které nadměrně spotřebovávají zdroje, nastavte limity využití paměti a procesoru Docker.

Bez konfigurace kvót prostředků poskytujete kontejneru přístup k plné paměti RAM a CPU hostitele. Protože se jedná o výchozí nastavení, doporučuje se omezit množství zdrojů, které může kontejner používat, aby to nenarušilo ostatní služby.

Nejen, že to zabrání kontejneru ve spotřebování všech zdrojů, ale také to pomůže udržet prostředí Dockeru efektivní. Kvóty zdrojů zajišťují, že kontejnery běží očekávanou rychlostí a zvyšují zabezpečení.

3. Použít uživatele bez oprávnění root

Docker umožňuje spuštění kontejneru v privilegovaném režimu. Ačkoli to může být rychlejší způsob, jak obejít některé bezpečnostní protokoly, vždy byste se měli zdržet používání tohoto postupu.

Nebezpečí spuštění privilegovaného kontejneru spočívá v tom, že otevírá dveře potenciální škodlivé činnosti. Privilegovaný uživatel Dockeru má stejná oprávnění jako root. To znamená, že má přístup k funkcím jádra a dalším zařízením na hostiteli. Uživatel se zlými úmysly může vstoupit do vašeho hostitelského systému prostřednictvím kontejneru a ohrozit vše, co je na něm.

Držet se výhradně uživatelů bez oprávnění root je jednoduché, protože jde o výchozí nastavení Dockeru. Chcete-li změnit výchozí konfiguraci, museli byste přidat --privileged příznak k docker run příkaz. Toto je však významné bezpečnostní riziko a nemělo by se používat.

4. Omezit schopnosti

Kontejnery mají omezenou sadu schopností Linuxu. Mohou například uživateli umožnit spouštět kontejner s účinností podobnou root, ale bez úplných práv root.

Omezené možnosti Dockeru jsou výchozí nastavení zabezpečení a jsou stejné pro každý kontejner. Proto se doporučuje upravit schopnosti tak, aby zahrnovaly pouze to, co je potřeba. Správce je spravuje pomocí --cap-add a --cap-drop možnosti.

Nejbezpečnějším způsobem konfigurace možností kontejneru je odstranit všechny (pomocí --cap-drop=ALL možnost) a poté přidejte požadované.

Seznam všech možností a zkratek naleznete v části Možnosti na stránce s Linuxem.

5. Zakázat nová privilegia

Jak je vidět v příkladu výše, Docker umožňuje měnit schopnosti a oprávnění kontejnerů po jejich spuštění. Chcete-li zabránit útokům eskalace oprávnění, je dobré definovat oprávnění kontejneru.

Chcete-li procesům kontejneru zakázat získávání nových oprávnění, použijte --security-opt příznak s hodnotou no-new-privileges:true . Přidání příznaku do docker run příkaz přepíše všechna pravidla, která nastavíte pomocí --cap-add a --cap-drop možnosti..

Kromě toho můžete odebrat nebo zakázat setuid a setgid binární soubory na obrázcích. Tím zajistíte, že tato funkce nebude použita k procházení/vkládání cesty, přetečení vyrovnávací paměti a útokům na eskalaci oprávnění.

6. Použijte důvěryhodné obrázky

Při stahování obrázku z online registrů se ujistěte, že pochází z bezpečného a důvěryhodného zdroje. Nejbezpečnější možností je držet se oficiálního centra Docker. Vyhněte se veřejným registrům třetích stran, které nemají zásady kontroly.

Pokud používáte online knihovny, vždy si prohlédněte obsah uvnitř obrázku. Před stažením čehokoli do hostitelského systému také použijte nástroje pro skenování obrázků k vyhledání zranitelností.

Nejlepší je podívat se na Docker Hub a zjistit, zda tam nenajdete požadovaný obrázek. Je to největší světová knihovna a komunita pro Docker s více než 100 000 obrázky kontejnerů.

7. Udržujte obrázky a kontejnery světlé

Minimalizujte útočnou plochu kontejnerů Docker použitím minimálního základního obrazu a snížením počtu komponent kontejneru. Udržování malé velikosti obrázku pomáhá předcházet narušení bezpečnosti a zrychluje výkon kontejneru.

Tipy, jak zmenšit velikost obrázku, naleznete v části Jak udržet obrázky Dockeru malé.

8. Zabezpečené registry

Registr Docker je systém pro doručování obsahu, který se používá k ukládání a poskytování obrázků pro vaše kontejnery. Můžete použít oficiální online registr společnosti Docker nebo nastavit soukromý registr na svém hostiteli.

Pro řešení úložiště obrázků na podnikové úrovni byste měli použít Docker Trusted Registry (DTR) . Registr můžete nainstalovat za bránu firewall, abyste zabránili potenciálnímu narušení.

9. Nevystavujte docker Daemon Socket

Docker komunikuje se soketem domény UNIX s názvem /var/run/docker.sock . Toto je hlavní vstupní bod pro Docker API. Každý, kdo má přístup k soketu démona Docker, má také neomezený přístup root.

Povolení uživateli zapisovat do /var/run/docker.sock nebo vystavení zásuvky kontejneru je velkým bezpečnostním rizikem pro zbytek systému. Pokud tak učiníte, v podstatě mu poskytnete oprávnění root.

Montáž zásuvky Docker uvnitř kontejneru neomezuje její privilegovaný přístup v rámci kontejneru. Umožňuje kontejneru plnou kontrolu nad hostitelem a všemi ostatními kontejnery. Proto to není doporučená praxe.

10. Monitorujte rozhraní API a síťovou aktivitu

Rozhraní API a sítě hrají klíčovou roli v zabezpečení Dockeru. Kontejnery Docker komunikují prostřednictvím rozhraní API a sítí. Proto, aby se zabránilo vniknutí, musí být architektura nakonfigurována bezpečně.

Správci zabezpečení nedávno objevili nový typ útoku, který využívá špatně nakonfigurovaná rozhraní API Dockeru. Hackeři využívají špatně nakonfigurovaných rozhraní API a zabezpečení sítě, používají je k nasazení bitové kopie a spouštějí škodlivý kontejner na hostitelském systému.

Kromě bezpečného nastavení sítí a rozhraní API musíte také monitorovat aktivity, abyste zachytili potenciální anomálie.


Docker
  1. Některé příkazy DOCKER

  2. Monitorování kontejnerů Docker:Výhody, osvědčené postupy a nástroje, které musíte mít

  3. Úvod do Dockeru

  1. Nejlepší postupy zabezpečení OpenSSH

  2. Jak SSH do kontejneru Docker

  3. Jak přiřadit statickou IP ke kontejneru Docker

  1. Jak spustit MySQL v kontejneru Docker

  2. Doporučené postupy zabezpečení serveru Windows

  3. Osvědčené postupy zabezpečení Wordpress v systému Linux