Košík je prázdný

V dnešní době je důležité zabezpečit kontejnery tak, aby nebyly zranitelné vůči útokům zneužívajícím systémová volání. Jedním ze způsobů, jak toho dosáhnout, je použití nástroje seccomp (Secure Computing Mode), který umožňuje omezit, která systémová volání může proces vykonávat. Tento článek popisuje, jak implementovat seccomp pravidla pro Docker kontejnery běžící na systému CentOS 7.

Předpoklady

Než začnete, ujistěte se, že máte:

  • Nainstalovaný operační systém CentOS 7.
  • Nainstalovaný Docker ve verzi, která podporuje seccomp.

Instalace a konfigurace Dockeru

  1. Instalace Dockeru: Použijte příkaz yum install docker pro instalaci Dockeru na váš CentOS 7 systém.
  2. Spuštění Dockeru: Po instalaci zahajte službu Docker příkazem systemctl start docker a nastavte její automatické spouštění při bootu systemctl enable docker.

Základy seccomp

Seccomp (Secure Computing Mode) je bezpečnostní mechanismus v Linuxu, který umožňuje omezit dostupná systémová volání pro proces. To výrazně zvyšuje bezpečnost tím, že minimalizuje povrch pro potenciální útoky.

Vytvoření seccomp profilu

  1. Základní profil: Docker automaticky používá defaultní seccomp profil, který je pro většinu aplikací dostatečně bezpečný. Můžete však chtít vytvořit vlastní profil pro specifické potřeby vaší aplikace.
  2. Vytvoření vlastního profilu: Profil seccomp je JSON soubor, který definuje, která systémová volání jsou povolena a která zakázána. Pro vytvoření vlastního profilu vytvořte soubor my_seccomp_profile.json a definujte v něm pravidla dle potřeby.

Příklad seccomp profilu:

{
  "defaultAction": "SCMP_ACT_ERRNO",
  "architectures": [
    "SCMP_ARCH_X86_64",
    "SCMP_ARCH_X86",
    "SCMP_ARCH_X86_64"
  ],
  "syscalls": [
    {
      "names": [
        "clone",
        "execve"
      ],
      "action": "SCMP_ACT_ALLOW",
      "args": []
    },
    {
      "names": [
        "chmod",
        "chown"
      ],
      "action": "SCMP_ACT_ERRNO",
      "args": []
    }
  ]
}

V tomto profilu jsou povolena systémová volání clone a execve, zatímco chmod a chown jsou zakázána.

Použití seccomp profilu s Docker kontejnerem

Při spuštění Docker kontejneru můžete použít vlastní seccomp profil pomocí přepínače --security-opt. Příklad:

docker run --rm -it --security-opt seccomp=my_seccomp_profile.json ubuntu bash

Tento příkaz spustí kontejner s obrazem Ubuntu a aplikuje na něj seccomp pravidla definovaná ve vašem profilu.

 

Použití seccomp pravidel pro omezení systémových volání v Docker kontejnerech je efektivní metodou zvýšení bezpečnosti vašich aplikací. Vytvořením vlastních seccomp profilů můžete dosáhnout přesného zabezpečení dle potřeb vaší aplikace. Na CentOS 7 je tento proces přímý a snadno integrovatelný do vašeho vývojového cyklu.