Zabezpečení kontejneru

Tento článek popisuje některé způsoby, jak zabezpečit kontejnery a vyhnout se zavedení ohrožení zabezpečení. Kontejnery představují efektivní způsob, jak zabalit a nasadit aplikace. Poskytují provozní a bezpečnostní výhody, protože aplikace a služby jsou oddělené v rámci prostředí. Kontejnery také pomáhají snížit účinky selhání celého systému kvůli jejich abstrakci, což zajišťuje dobu provozu a brání útokům, které by mohly ohrozit aplikace nebo služby.

Kontejnery obvykle běží na abstraktní vrstvě nad hostitelským operačním systémem a abstrakce nabízí určitou bariéru oddělení a příležitost použít vrstvený model obrany.

Průběžné zabezpečení kontejnerů můžete také nastavit zabezpečením kanálu kontejneru, aplikace a prostředí nasazení kontejneru. Příklady implementace zabezpečení kontejneru jsou popsané v tomto tématu.

Zabezpečení imagí

Ujistěte se, že jsou image hostované v zabezpečeném a důvěryhodném registru, aby se zabránilo neoprávněnému přístupu. Image by měly mít certifikát TLS s důvěryhodnou kořenovou certifikační autoritou a registr by měl používat Access Control role (RBAC) se silným ověřováním. Při návrhu CI/CD pro sestavení a doručování kontejnerů byste měli zahrnout řešení kontroly obrázků. Řešení pro kontrolu obrázků pomáhá identifikovat běžná ohrožení zabezpečení a expozice (CVEs) a zajišťuje, aby se zneužitelné image nenasadily bez nápravy.

Posílení zabezpečení hostitelského prostředí

Důležitým aspektem zabezpečení kontejneru je potřeba posílit zabezpečení systémů, na kterých jsou kontejnery spuštěné, a způsob, jakým fungují během běhu. Zabezpečení kontejneru by se mělo zaměřit na celý zásobník, včetně hostitele a démonů. Služby byste měli odebrat z hostitele, který není kritický, a v prostředí byste neměli nasazovat nekompatibilní kontejnery. Tímto způsobem může přístup k hostiteli nastat pouze prostřednictvím kontejnerů a řízení by byl centralizovaný do démona kontejneru a odebrání hostitele z prostoru útoku. Tyto kroky jsou užitečné zejména při použití proxy serverů pro přístup k kontejnerům, které by mohly omylem obejít ovládací prvky zabezpečení kontejneru.

Omezení prostředků kontejneru

Když dojde k ohrožení kontejneru, útočníci se můžou pokusit použít podkladové hostitelské prostředky k provádění škodlivých aktivit. Je vhodné nastavit limity využití paměti a procesoru, aby se minimalizoval dopad porušení.

Správně zabezpečené tajné kódy

Tajný kód je objekt obsahující citlivé informace, které mohou být potřeba předat mezi hostitelem a kontejnerem. Mezi příklady tajných kódů patří hesla, certifikáty SSL/TLS, privátní klíče SSH, tokeny, připojovací řetězce a další data, která by neměla být přenášena ve formátu prostého textu nebo uložena nešifrovaná. Všechny tajné kódy byste měli uchovávat mimo image a připojovat je přes orchestrační modul kontejneru nebo externího správce tajných kódů.

Praktická izolace

Použijte izolaci a nepoužívejte privilegovaného nebo kořenového uživatele ke spuštění aplikace v kontejneru. Měli byste se vyhnout spouštění kontejnerů v privilegovaném režimu, protože by to útočníkovi umožnilo snadno eskalovat oprávnění, pokud dojde k ohrožení kontejneru. Znalost identifikátoru UID (jedinečný identifikační kód) a GID (identifikační kód skupiny) kořenového uživatele v kontejneru může útočníkovi umožnit přístup k souborům napsaným kořenem na hostitelském počítači a upravit je. Je také nutné použít zásadu nejnižších oprávnění, kde má aplikace přístup pouze k tajným kódům, které potřebuje. Můžete vytvořit uživatele aplikace, který spustí proces aplikace.

Nasazení monitorování zabezpečení modulu runtime

Vzhledem k tomu, že stále existuje šance, že dojde k ohrožení zabezpečení i po provedení opatření proti útokům na vaši infrastrukturu, je důležité průběžně monitorovat a protokolovat chování aplikace, aby se zabránilo škodlivým aktivitám a zjistilo je. Nástroje, jako je Například Prometheus, poskytují efektivní způsob monitorování infrastruktury.

Další kroky