Pular para o conteúdo

Simulado · CNCF

Simulado Certified Kubernetes Security Specialist (CKS)

50
questões
120
minutos
67%
para passar no simulado
59
questões no banco

Resposta curta

O simulado de Certified Kubernetes Security Specialist (CKS) tem 50 questões em 120 minutos, com nota de corte de 67%, conforme configurado aqui. O jeito mais rápido de saber se você está pronto é fazer uma prova completa no relógio e ler a nota por domínio, não só o total.

Domínios cobrados

  • Cluster Setup and Hardening
  • Minimize Microservice Vulnerabilities
  • Monitoring, Logging and Runtime Security
  • Supply Chain Security
  • System Hardening

Questões de exemplo, com explicação

Três questões do banco, abertas para ler.

Questão 1 · Minimize Microservice Vulnerabilities

Your cluster runs both gVisor (runsc) and a standard runc-based RuntimeClass. A team wants to run an untrusted multi-tenant workload that performs heavy raw syscall-intensive operations (e.g., certain low-level filesystem and networking syscalls) and reports that under the gVisor RuntimeClass some syscalls fail or behave unexpectedly. From a CKS architecture standpoint, what is the most accurate trade-off to communicate, and what is a valid alternative isolation option?

  1. Kata Containers offers weaker isolation than gVisor because it shares the host kernel, so the correct move is to stay on gVisor and disable seccomp to unblock the syscalls.
  2. gVisor failures mean the RuntimeClass is misconfigured; switching the same pod to 'privileged: true' under runsc restores full syscall support while keeping the sandbox.
  3. gVisor intercepts syscalls in a userspace kernel (Sentry) implementing a subset of the Linux syscall surface, so apps using unsupported or unusual syscalls may break or slow down; a Kata Containers RuntimeClass (lightweight VM with a real Linux kernel) provides strong isolation with fuller syscall compatibility. ✓ (correta)
  4. gVisor and runc provide identical isolation, so the only fix is to grant the SYS_ADMIN capability so the missing syscalls are permitted.
Por que esta é a correta

gVisor's Sentry is a userspace application kernel that re-implements a subset of Linux syscalls and intercepts container syscalls, which is what provides isolation from the host kernel — but it also means unsupported/unusual syscalls can fail and syscall-heavy workloads can incur overhead. Kata Containers runs each pod in a lightweight VM with its OWN real Linux kernel, giving strong isolation while preserving broader syscall compatibility, so it is a valid alternative — making the first option correct. 'privileged: true under runsc restores syscalls' is wrong: privileged does not bypass the Sentry's syscall implementation and would also undermine the sandbox's purpose. 'gVisor and runc are identical / grant SYS_ADMIN' is wrong because runc shares the host kernel (no sandbox) while gVisor does not, and adding SYS_ADMIN is a dangerous privilege grant, not a compatibility fix. The last option inverts reality: Kata uses its own VM kernel (it does NOT share the host kernel), and disabling seccomp would weaken security rather than appropriately address syscall compatibility.

Questão 2 · Monitoring, Logging and Runtime Security

A team enables kube-apiserver audit logging by passing --audit-policy-file and --audit-log-path. They want a guarantee that no API request is served until its audit event has been written, accepting some latency cost, and they also want to retain logs for 30 days with rotation. Which configuration choice correctly provides the synchronous (blocking) write guarantee?

  1. Use the log backend with --audit-log-mode=blocking, plus --audit-log-maxage=30 and --audit-log-maxbackups for rotation ✓ (correta)
  2. Use --audit-log-mode=batch, which buffers events and flushes them synchronously before each response is returned
  3. Use the webhook backend, which is always synchronous, and rely on the receiver's retention to keep 30 days of logs
  4. Set the audit policy level to RequestResponse, which by definition forces synchronous writes before the response is sent
Por que esta é a correta

The log backend supports an --audit-log-mode flag; 'blocking' mode makes the API server wait for each audit event to be written before processing/returning the request, providing the synchronous guarantee at a latency cost, while --audit-log-maxage=30 and --audit-log-maxbackups handle retention/rotation. 'batch mode flushes synchronously before each response' is wrong: batch mode intentionally buffers and writes asynchronously in batches for performance and does NOT block the request, so it provides no per-request write guarantee. 'RequestResponse level forces synchronous writes' is wrong: the level controls how much data is captured, not whether the write is blocking; blocking behavior is governed by the mode, not the level. 'The webhook backend is always synchronous' is wrong: the webhook backend also has batch and blocking modes (and defaults toward batching), so it is not inherently synchronous, and offloading retention to the receiver does not satisfy the synchronous local-write guarantee requested.

Questão 3 · Monitoring, Logging and Runtime Security

You must detect any process that opens a shell (e.g., bash or sh) inside a running container, because your workloads should never spawn interactive shells in production. You are writing a custom Falco rule. Which condition most correctly and precisely expresses 'a shell was spawned inside a container' while minimizing false positives on the host?

  1. spawned_process and container and proc.name in (shell_binaries) ✓ (correta)
  2. evt.type = execve and proc.name = bash (matching anywhere on the node)
  3. container.id != host and evt.type = open and proc.cmdline contains "sh"
  4. k8s.ns.name != "" and evt.dir = < and fd.name contains "/bin/sh"
Por que esta é a correta

Falco ships macros that encode best practice: 'spawned_process' resolves to an execve in the exit direction (a real process creation), 'container' restricts to events occurring inside a container (container.id != host), and 'shell_binaries' is a maintained list including bash, sh, zsh, etc. Combining them yields a precise, low-false-positive rule. 'evt.type = execve and proc.name = bash matching anywhere on the node' is wrong because it omits the container scope (it would fire on host shells and on legitimate node administration) and only catches bash, missing sh/ash/zsh. 'k8s.ns.name != "" and evt.dir = < and fd.name contains /bin/sh' is wrong: evt.dir = < is the exit/return direction of a syscall and fd.name is for file-descriptor events, not process spawning; matching a path substring in fd.name does not reliably detect a shell process and would miss execs that don't open /bin/sh as an fd. 'container.id != host and evt.type = open and proc.cmdline contains sh' is wrong because watching open() with a cmdline substring 'sh' is a crude, noisy heuristic that fires on any process whose command line merely contains the characters 'sh' (e.g., 'ssh', 'wsh', 'crash') and does not actually detect process creation.

Faça o simulado completo

  • 50 questões sorteadas do banco, com cronômetro de 120 minutos
  • Nota por domínio e revisão de cada questão
  • Tutor de IA para conversar sobre cada questão que você errar
  • O que você errou alimenta seu plano de estudo

Simulado independente e não oficial. CNCF e o nome da prova são marcas de seus donos; o UpSkillScore não é afiliado a eles. Formato e nota de corte são a configuração do simulado no UpSkillScore, não uma declaração oficial.

Perguntas frequentes

Quantas questões tem o simulado de Certified Kubernetes Security Specialist (CKS)?

Tem 50 questões e limite de 120 minutos. A nota de corte do simulado é 67%.

Este é o exame oficial de Certified Kubernetes Security Specialist (CKS)?

Não. É um simulado independente, montado para espelhar a estrutura da prova real. Ele não substitui o exame oficial.

Preciso de conta para fazer?

Você lê a estrutura e as questões de exemplo sem conta. Fazer o simulado completo cronometrado, a nota por domínio e o tutor de IA exigem conta.