Seccomp Π² Kubernetes: 7 Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ

ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π° Π½Π° статията Π½Π° ΡΡ‚Π°Ρ€ΡˆΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΠΎ сигурност Π½Π° прилоТСнията Π² британската компания ASOS.com. Π‘ нСя Ρ‚ΠΎΠΉ Π·Π°ΠΏΠΎΡ‡Π²Π° Ρ†ΠΈΠΊΡŠΠ» ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, посвСтСни Π½Π° повишаванС Π½Π° сигурността Π² Kubernetes Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° seccomp. Ако интродукцията харСса Π½Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅, Ρ‰Π΅ послСдвамС Π°Π²Ρ‚ΠΎΡ€Π° ΠΈ Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ с Π±ΡŠΠ΄Π΅Ρ‰ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ ΠΏΠΎ Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ°.

Seccomp Π² Kubernetes: 7 Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ

Π’Π°Π·ΠΈ статия Π΅ ΠΏΡŠΡ€Π²Π°Ρ‚Π° ΠΎΡ‚ сСрия ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° създавамС ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ seccomp Π² Π΄ΡƒΡ…Π° Π½Π° SecDevOps, Π±Π΅Π· Π΄Π° прибягвамС Π΄ΠΎ магия ΠΈ колдовство. Π’ ΠΏΡŠΡ€Π²Π°Ρ‚Π° част Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° основитС ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° seccomp Π² Kubernetes.

ЕкосистСмата Kubernetes ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° осигуряванС Π½Π° сигурност ΠΈ изолация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Бтатията Π΅ посвСтСна Π½Π° Secure Computing Mode, извСстСн ΠΎΡ‰Π΅ ΠΊΠ°Ρ‚ΠΎ seccomp. НСговата ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмни повиквания, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π° изпълнСниС ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅.

Π—Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ? ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π΅ просто ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ процСс, стартиран Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° машина. И Ρ‚ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ядрото Π½Π°Ρ€Π°Π²Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ прилоТСния. Ако ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈΡ‚ΠΎ ΠΈ Π΄Π° Π±ΠΈΠ»ΠΎ систСмни повиквания, ΠΌΠ½ΠΎΠ³ΠΎ скоро Π·Π»ΠΎΠ²Ρ€Π΅Π΄Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π±ΠΈΡ…Π° сС възползвали ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, Π·Π° Π΄Π° заобиколят изолацията Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π΄Π° повлияят Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ прилоТСния: Π΄Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Ρ‚ информация, Π΄Π° промСнят систСмни настройки ΠΈ Ρ‚.Π½.

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ‚Π΅ seccomp опрСдСлят ΠΊΠΎΠΈ систСмни повиквания трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΈ. Π‘Ρ€Π΅Π΄Π°Ρ‚Π° Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° тях ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° стартиранСто ΠΌΡƒ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ядрото Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° тяхното изпълнСниС. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ позволява ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π½Π° Π°Ρ‚Π°ΠΊΠ° ΠΈ намаляванС Π½Π° Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅, Π°ΠΊΠΎ някоя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (Ρ‚.Π΅. Π²Π°ΡˆΠΈΡ‚Π΅ зависимости ΠΈΠ»ΠΈ зависимоститС Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ зависимости) Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ ѝ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ.

Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ основитС

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ» seccomp Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ‚Ρ€ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°: defaultAction, architectures (ΠΈΠ»ΠΈ archMap) ΠΈ syscalls.:

{
    "defaultAction": "SCMP_ACT_ERRNO",
    "architectures": [
        "SCMP_ARCH_X86_64",
        "SCMP_ARCH_X86",
        "SCMP_ARCH_X32"
    ],
    "syscalls": [
        {
            "names": [
                "arch_prctl",
                "sched_yield",
                "futex",
                "write",
                "mmap",
                "exit_group",
                "madvise",
                "rt_sigprocmask",
                "getpid",
                "gettid",
                "tgkill",
                "rt_sigaction",
                "read",
                "getpgrp"
            ],
            "action": "SCMP_ACT_ALLOW"
        }
    ]
}

(medium-basic-seccomp.json)

defaultAction опрСдСля ΡΡŠΠ΄Π±Π°Ρ‚Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° всяко систСмно ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ посочСно Π² Ρ€Π°Π·Π΄Π΅Π»Π° syscalls.. Π—Π° Π΄Π° опростим Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°, Ρ‰Π΅ сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Π΄Π²Π΅ основни стойности, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ:

  • SCMP_ACT_ERRNO β€” Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° систСмно ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅,
  • SCMP_ACT_ALLOW β€” Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°.

Π’ сСкцията architectures ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ Ρ†Π΅Π»Π΅Π²ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ. Π’ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ самият Ρ„ΠΈΠ»Ρ‚ΡŠΡ€, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½ Π½Π° Π½ΠΈΠ²ΠΎ ядро, зависи ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° систСмнитС повиквания, Π° Π½Π΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°Ρ‚Π° ΠΈΠΌ, записани Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π°. ΠŸΡ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ срСдата Π½Π° изпълнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ‰Π΅ Π³ΠΈ ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΠΈ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅. Π˜Π΄Π΅ΡΡ‚Π° Π΅, Ρ‡Π΅ систСмнитС повиквания ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠΌΠ°Ρ‚ напълно Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π² зависимост ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата. НапримСр, систСмното ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ recvfrom (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° получСния информация ΠΎΡ‚ сокСта) ΠΈΠΌΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ = 64 Π² x64-систСми ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ = 517 Π² x86. Π’ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ списък Π½Π° всички систСмни повиквания Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86-x64.

Π’ сСкцията syscalls. ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ всички систСмни повиквания ΠΈ ΡƒΠΊΠ°Π·Π²Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ с тях. НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ бял списък, ΠΊΠ°Ρ‚ΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ defaultAction Π½Π° SCMP_ACT_ERRNO, Π° Π½Π° повикванията Π² сСкцията syscalls. Π΄Π° присвоитС SCMP_ACT_ALLOW. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚Π΅ само повикванията, записани Π² Ρ€Π°Π·Π΄Π΅Π»Π° syscalls., ΠΈ забраняватС всички останали. Π—Π° чСрния списък трябва Π΄Π° смСнитС стойноститС defaultAction ΠΈ дСйствията Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΈ.

Π‘Π΅Π³Π° трябва Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ няколко Π΄ΡƒΠΌΠΈ Π·Π° Π½ΡŽΠ°Π½ΡΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΈΠ·Ρ…ΠΎΠΆΠ΄Π°Ρ‚ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ бизнСс прилоТСния Π² Kubernetes ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ Ρ‚Π΅ Π΄Π° работят с Π½Π°ΠΉ-ниски ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ.

1. AllowPrivilegeEscalation=false

Π’ securityContext Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈΠΌΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ AllowPrivilegeEscalation. Ако Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Ρ‰Π΅ сС стартират с Π·Π°Π΄Π°Π΄Π΅Π½Π° (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ) Π±ΠΈΡ‚ no_new_priv. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π° ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ: Ρ‚ΠΎΠΉ Π½Π΅ позволява Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΄Π° стартира Π½ΠΎΠ²ΠΈ процСси с ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°.

Бтраничният Π΅Ρ„Π΅ΠΊΡ‚ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€, Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° истинно (стойност ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅), Π΅, Ρ‡Π΅ срСдата Π½Π° изпълнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»Π° seccomp Π² самото Π½Π°Ρ‡Π°Π»ΠΎ Π½Π° процСса Π½Π° стартиранС. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ всички систСмни повиквания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° стартиранС Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ процСси Π½Π° срСдата Π½Π° изпълнСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° потрСбитСля/Π³Ρ€ΡƒΠΏΠ°Ρ‚Π°, ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° някои capabilities), трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π°.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт банальноС echo hi, ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

{
    "defaultAction": "SCMP_ACT_ERRNO",
    "architectures": [
        "SCMP_ARCH_X86_64",
        "SCMP_ARCH_X86",
        "SCMP_ARCH_X32"
    ],
    "syscalls": [
        {
            "names": [
                "arch_prctl",
                "brk",
                "capget",
                "capset",
                "chdir",
                "close",
                "execve",
                "exit_group",
                "fstat",
                "fstatfs",
                "futex",
                "getdents64",
                "getppid",
                "lstat",
                "mprotect",
                "nanosleep",
                "newfstatat",
                "openat",
                "prctl",
                "read",
                "rt_sigaction",
                "statfs",
                "setgid",
                "setgroups",
                "setuid",
                "stat",
                "uname",
                "write"
            ],
            "action": "SCMP_ACT_ALLOW"
        }
    ]
}

(hi-pod-seccomp.json)

… вмСсто Ρ‚Π΅Π·ΠΈ:

{
    "defaultAction": "SCMP_ACT_ERRNO",
    "architectures": [
        "SCMP_ARCH_X86_64",
        "SCMP_ARCH_X86",
        "SCMP_ARCH_X32"
    ],
    "syscalls": [
        {
            "names": [
                "arch_prctl",
                "brk",
                "close",
                "execve",
                "exit_group",
                "futex",
                "mprotect",
                "nanosleep",
                "stat",
                "write"
            ],
            "action": "SCMP_ACT_ALLOW"
        }
    ]
}

(hi-container-seccomp.json)

Но ΠΎΡ‚Π½ΠΎΠ²ΠΎ, Π·Π°Ρ‰ΠΎ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‚ΠΎΠ²Π°? Π›ΠΈΡ‡Π½ΠΎ Π°Π· Π±ΠΈΡ… ΠΈΠ·Π±Π΅Π³Π½Π°Π» Π΄Π° добавям Π² бСлия списък слСднитС систСмни повиквания (освСн Π°ΠΊΠΎ Π½Π΅ Π΅ наистина Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ): capset, set_tid_address, setgid, setgroups ΠΈ setuid. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, истинската слоТност Π΅ Π² Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСси, ΠΊΠΎΠΈΡ‚ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅, ΠΎΠ±Π²ΡŠΡ€Π·Π²Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ‚Π΅ с ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° срСдата Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, Π΅Π΄ΠΈΠ½ Π΄Π΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅, Ρ‡Π΅ слСд ΡŠΠΏΠ΄Π΅ΠΉΡ‚ Π½Π° срСдата Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (ΠΎΡ‚ вас ΠΈΠ»ΠΈ, ΠΏΠΎ-вСроятно, ΠΎΡ‚ доставчика Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ услуги), ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ извСднъТ спират Π΄Π° работят.

Π‘ΡŠΠ²Π΅Ρ‚ β„–1: Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ с AllowPrivilegeEscaltion=false. Π’ΠΎΠ²Π° Ρ‰Π΅ Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ‚Π΅ ΠΈ Ρ‰Π΅ Π³ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ чувствитСлни към ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² срСдата Π½Π° изпълнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

2. Π—Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π΄Π°Π²Π° Π½Π° Π½ΠΈΠ²ΠΎ pod:

annotations:
  seccomp.security.alpha.kubernetes.io/pod: "localhost/profile.json"

… ΠΈΠ»ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€:

annotations:
  container.security.alpha.kubernetes.io/<container-name>: "localhost/profile.json"

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ горСпосочСният синтаксис Ρ‰Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Kubernetes seccomp стана GA (Ρ‚ΠΎΠ²Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ сС ΠΎΡ‡Π°ΠΊΠ²Π° Π² слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Kubernetes β€” 1.18 β€” Π±Π΅Π». ΠΏΡ€Π΅Π².)

ΠœΠ°Π»Ρ†ΠΈΠ½Π° знаят, Ρ‡Π΅ Π² Kubernetes Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π±Π°Π³, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ‚Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ…Π° към pause-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Π˜Π·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° срСда частично компСнсира Ρ‚ΠΎΠ·ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ, Π½ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π΅ ΠΈΠ·Ρ‡Π΅Π·Π²Π° ΠΎΡ‚ pod-ΠΎΠ²Π΅Ρ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° настройка Π½Π° тяхната инфраструктура.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π²ΠΈΠ½Π°Π³ΠΈ стартира с AllowPrivilegeEscalation=true, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, посочСни Π² Ρ‚ΠΎΡ‡ΠΊΠ° 1, ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ.

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, избягватС Ρ‚ΠΎΠ·ΠΈ ΠΊΠ°ΠΏΠ°Π½ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ», ΠΊΠΎΠΉΡ‚ΠΎ Π΅ «настроСн» Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’ΠΎΠ²Π° Ρ‰Π΅ трябва Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π΅ отстранят Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия (ΠΌΠΎΠΆΠ΅ Π±ΠΈ 1.18?) Π½Π΅ станС Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° всички ΠΆΠ΅Π»Π°Π΅Ρ‰ΠΈ.

Π‘ΡŠΠ²Π΅Ρ‚ β„–2: Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Π’ практичСски смисъл Ρ‚ΠΎΠ²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ слуТи ΠΊΠ°Ρ‚ΠΎ унивСрсалСн ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ°: Β«Π—Π°Ρ‰ΠΎ моят seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ» Ρ€Π°Π±ΠΎΡ‚ΠΈ с docker run, Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ слСд Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π² кластСра Kubernetes?Β».

3. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ runtime/default само Π² ΠΊΡ€Π°Π΅Π½ случай

Π’ Kubernetes ΠΈΠΌΠ° Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ: runtime/default ΠΈ docker/default. И Π΄Π²Π°Ρ‚Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΎΡ‚ срСдата Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π° Π½Π΅ ΠΎΡ‚ Kubernetes. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚ Π² зависимост ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° срСда Π·Π° изпълнСниС ΠΈ Π½Π΅ΠΉΠ½Π°Ρ‚Π° вСрсия.

Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° смяната Π½Π° runtime, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ систСмни ΠΏΠΎΠ²ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ»ΠΈ Π½Π΅. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ срСди Π·Π° изпълнСниС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ рСализацията Π½Π° Docker. Ако ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ», ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π΅ подходящ Π·Π° вас.

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŠΡ‚ docker/default сС счита Π·Π° остарял с Kubernetes 1.11, Π·Π°Ρ‚ΠΎΠ²Π° избягвайтС Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.

По ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŠΡ‚ runtime/default ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π° Π·Π° Ρ†Π΅Π»ΠΈΡ‚Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ създадСн: Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΎΡ‚ рисковСтС, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° docker run Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ машини. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ‰ΠΎ сС отнася Π΄ΠΎ бизнСс прилоТСнията, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² кластСри Kubernetes, Π±ΠΈΡ… си ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π΄Π° Ρ‚Π²ΡŠΡ€Π΄Ρ, Ρ‡Π΅ Ρ‚Π°ΠΊΡŠΠ² ΠΏΡ€ΠΎΡ„ΠΈΠ» Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ трябва Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π°Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ прилоТСния (ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ прилоТСния).

Π‘ΡŠΠ²Π΅Ρ‚ β„–3: Π‘ΡŠΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ прилоТСния. Ако Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ възмоТно, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‚Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π° Π²ΠΈΠ΄ΠΎΠ²Π΅ прилоТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ ΠΏΡ€ΠΎΡ„ΠΈΠ», ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° всички ΡƒΠ΅Π±-API Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Golang. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ runtime/default само ΠΊΠ°Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½Π° мярка.

Π’ Π±ΡŠΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‰Π΅ прСдставя ΠΊΠ°ΠΊ Π΄Π° създавамС seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π² Π΄ΡƒΡ…Π° Π½Π° SecDevOps, Π΄Π° Π³ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΈ тСствамС Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, няма Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ извинСния Π΄Π° Π½Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ прилоТСния.

4. Unconfined β€” Ρ‚ΠΎΠ²Π° НЕ Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

ΠžΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ ΠΎΠ΄ΠΈΡ‚ Π½Π° сигурността Π½Π° Kubernetes сС установи, Ρ‡Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ seccomp Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π°ΠΊΠΎ Π½Π΅ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ PodSecurityPolicy, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, всички pod’овС, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ», Ρ‰Π΅ работят Π² Ρ€Π΅ΠΆΠΈΠΌ seccomp=unconfined.

Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ сС Π³ΡƒΠ±ΠΈ цял слой изолация, осигуряващ Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. ПодобСн ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° ΠΎΡ‚ спСциалисти ΠΏΠΎ сигурност.

Π‘ΡŠΠ²Π΅Ρ‚ β„–4: Никакъв ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π΅ трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ seccomp=unconfined, особСно Π² production срСди.

5. β€žΠ Π΅ΠΆΠΈΠΌ Π½Π° ΠΎΠ΄ΠΈΡ‚β€œ

Π’Π°Π·ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π΅ Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»Π½Π° Π·Π° Kubernetes, Π½ΠΎ всС ΠΏΠ°ΠΊ ΠΏΠΎΠΏΠ°Π΄Π° Π² катСгорията β€žΠ½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‰Π΅ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅β€œ.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ, ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° seccomp ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π±ΠΈΠ»ΠΎ слоТно Π½Π°Ρ‡ΠΈΠ½Π°Π½ΠΈΠ΅ ΠΈ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° стСпСн зависСшС ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΎΠ±ΠΈΡ‚Π΅ ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π΅ Ρ‚Π°ΠΌ, Ρ‡Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ просто нямат Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° Π³ΠΈ тСстват Π² production срСди, Π±Π΅Π· Π΄Π° рискуват Π΄Π° β€žΡΡ€ΡƒΡ‚ΡΡ‚β€œ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π‘Π»Π΅Π΄ появата Π½Π° ядрото Π½Π° Linux 4.14, стана възмоТно Π΄Π° сС стартират части ΠΎΡ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π° Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΎΠ΄ΠΈΡ‚, записвайки Π² syslog информация Π·Π° всички систСмни повиквания, Π±Π΅Π· Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ тСхния процСс. АктивиранСто Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅ΠΆΠΈΠΌ става Ρ‡Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° SCMT_ACT_LOG:

SCMP_ACT_LOG: seccomp няма Π΄Π° влияС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ систСмното ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅, Π°ΠΊΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π° ΠΏΠΎΠ΄ някоС ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° Ρ„ΠΈΠ»Ρ‚ΡŠΡ€Π°, Π½ΠΎ информацията Π·Π° систСмното ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Ρ‰Π΅ бъдС записана Π² ΠΆΡƒΡ€Π½Π°Π»Π°.

Π•Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½Π°Ρ‚Π° стратСгия Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚:

  1. Π Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° систСмни повиквания, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ.
  2. Π‘Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° систСмни повиквания, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ няма Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ.
  3. ЗаписванС Π½Π° информация Π·Π° всички останали повиквания Π² ΠΆΡƒΡ€Π½Π°Π»Π°.

ΠžΠΏΡ€ΠΎΡΡ‚Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

{
    "defaultAction": "SCMP_ACT_LOG",
    "architectures": [
        "SCMP_ARCH_X86_64",
        "SCMP_ARCH_X86",
        "SCMP_ARCH_X32"
    ],
    "syscalls": [
        {
            "names": [
                "arch_prctl",
                "sched_yield",
                "futex",
                "write",
                "mmap",
                "exit_group",
                "madvise",
                "rt_sigprocmask",
                "getpid",
                "gettid",
                "tgkill",
                "rt_sigaction",
                "read",
                "getpgrp"
            ],
            "action": "SCMP_ACT_ALLOW"
        },
        {
            "names": [
                "add_key",
                "keyctl",
                "ptrace"
            ],
            "action": "SCMP_ACT_ERRNO"
        }
    ]
}

(medium-mixed-seccomp.json)

Но ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅, Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚Π΅ всички извиквания, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Π΅ няма Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ, ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° наврСдят Π½Π° кластСра. Π”ΠΎΠ±Ρ€Π° основа Π·Π° ΡΡŠΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° списъка Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация Π½Π° Docker. Π’ нСя ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ сС обяснява ΠΊΠΎΠΈ систСмни извиквания са Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π·Π°Ρ‰ΠΎ.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ. ΠœΠ°ΠΊΠ°Ρ€ SCMT_ACT_LOG Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ ядро Π½Π° Linux ΠΎΡ‚ края Π½Π° 2017 Π³ΠΎΠ΄ΠΈΠ½Π°, Ρ‚ΠΎΠΉ Π²Π»Π΅Π·Π΅ Π² СкосистСмата Π½Π° Kubernetes сравнитСлно скоро. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‰Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ядро Π½Π° Linux 4.14 ΠΈ вСрсия Π½Π° runC Π½Π΅ ΠΏΠΎ-ниска ΠΎΡ‚ v1.0.0-rc9.

Π‘ΡŠΠ²Π΅Ρ‚ β„–5: ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŠΡ‚ Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° Π°ΡƒΠ΄ΠΈΡ‚ Π·Π° тСстванС Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Π° срСда ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС създадСн, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ Ρ‡Π΅Ρ€Π½ΠΈ ΠΈ Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ, Π° всички ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π° сС записват Π² ΠΆΡƒΡ€Π½Π°Π».

6. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ

Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ изисква Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ усилия, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ трябва Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° всяко ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΎΠ±Π°Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° сигурността:

НастоятСлно сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠΉ Π΅ ΠΏΠΎ-прост ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½. ЧСрният списък трябва Π΄Π° сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ опасно систСмно ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ (ΠΈΠ»ΠΈ опасСн Ρ„Π»Π°Π³/опция, Π°ΠΊΠΎ Ρ‚Π΅ са Π² чСрния списък). ОсвСн Ρ‚ΠΎΠ²Π°, чСсто ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ прСдставянСто Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°, Π±Π΅Π· Π΄Π° сС промСня Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС заобиколят ограничСнията Π½Π° чСрния списък.

Π—Π° прилоТСния Π½Π° Π΅Π·ΠΈΠΊΠ° Go Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΡ… спСциалСн инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ слСдва ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ ΡΡŠΠ±ΠΈΡ€Π° всички извиквания, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС. НапримСр, Π·Π° слСдното ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

package main

import "fmt"

func main() {
	fmt.Println("test")
}

… Ρ‰Π΅ стартирамС gosystract Ρ‚Π°ΠΊΠ°:

go install https://github.com/pjbgf/gosystract
gosystract --template='{{- range . }}{{printf "%s", .Name}}{{- end}}' application-path

… ΠΈ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ слСдния Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚:

"sched_yield",
"futex",
"write",
"mmap",
"exit_group",
"madvise",
"rt_sigprocmask",
"getpid",
"gettid",
"tgkill",
"rt_sigaction",
"read",
"getpgrp",
"arch_prctl",

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ²Π° Π΅ само ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ относно инструмСнтитС Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ.

Π‘ΡŠΠ²Π΅Ρ‚ β„–6: ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΡ‚Π΅ само ΠΎΠ½Π΅Π·ΠΈ повиквания, ΠΊΠΎΠΈΡ‚ΠΎ наистина са Π²ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ, ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π°ΠΉΡ‚Π΅ всички останали.

7. ΠŸΠΎΠ»ΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ основи (ΠΈΠ»ΠΈ сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π·Π° Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅)

Π―Π΄Ρ€ΠΎΡ‚ΠΎ Ρ‰Π΅ слСди Π·Π° спазванСто Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»Π° нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ стС Π·Π°Π΄Π°Π»ΠΈ. Π”ΠΎΡ€ΠΈ ΠΈ Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ искатС. НапримСр, Π°ΠΊΠΎ Π·Π°Π±Ρ€Π°Π½ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ повиквания ΠΊΠ°Ρ‚ΠΎ exit ΠΈΠ»ΠΈ exit_group, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π΄ΠΎΡ€ΠΈ простата ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚ΠΈΠΏ echo hi ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎΠΎΠΊΠ°Ρ‡ΠΈ Π·Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ висока натоварСност Π½Π° CPU Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°:

Seccomp Π² Kubernetes: 7 Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ

Π’ Ρ‚Π°ΠΊΠΈΠ²Π° случаи ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° strace ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ β€” тя Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π² ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚:

Seccomp Π² Kubernetes: 7 Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ
sudo strace -c -p 9331

Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ всички систСмни повиквания, Π½ΡƒΠΆΠ½ΠΈ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°.

Π‘ΡŠΠ²Π΅Ρ‚ β„–7: Π’Π½ΠΈΠΌΠ°Π²Π°ΠΉΡ‚Π΅ с Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ ΠΈ провСрявайтС Π΄Π°Π»ΠΈ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ систСмни повиквания са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² бял списък.

Π’Π°Π·ΠΈ ΠΏΡŠΡ€Π²Π° част ΠΎΡ‚ Ρ†ΠΈΠΊΡŠΠ»Π° статии Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° seccomp Π² Kubernetes Π² Π΄ΡƒΡ…Π° Π½Π° SecDevOps Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° Ρ‚ΡƒΠΊ. Π’ слСдващитС части Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Ρ‚ΠΎΠ²Π° Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ процСса.

P.S. ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster