The unboring NIST SP 800-190

When most of us hear “NIST guidelines”, our first reaction might be “another boring PDF I’ll never open again“.

My first encounter with NIST Special Publication 800-190 happened when I was studying for the GIAC GCSA exam, which is focused on DevSecOps and container security. The SP 800-190 is refreshingly different. It isn’t just another checkbox compliance document – it genuinely provides practical, actionable steps to enhance container security posture.

Below are a few practical points from the NIST SP 800-190 recommendations for real-world improvements.


1. Image scanning and vulnerability management

One of the simplest and most effective recommendations is to regularly scan container images for vulnerabilities.

Actionable tip: Integrate tools like Clair, Trivy, or Anchore into your CI/CD pipeline to automate scans on every image build.

Don’t just scan: ensure your pipeline halts deployments when critical vulnerabilities are found.
It is also quite straightforward to implement – you won’t block the development process. Still, you will start getting insights and actionable stats.

2. Controlled image provenance

Maintaining a secure, verified source for your container images is not just nice, but also very important.

Actionable tip: Set up a private container registry (like Harbor or AWS ECR) and configure policies to accept only signed, verified images. Implement image signing tools such as Notary to enforce integrity.

More on the image provenance topic can be found here: https://docs.docker.com/build/metadata/attestations/slsa-provenance/

3. Least privilege and runtime restrictions

Containers running with root privileges or excessive permissions are one of the most common security pitfalls. Yes, even if there’s nothing to abuse within the container.

Actionable tip: Use Kubernetes’ pod security admission controls or tools like Open Policy Agent (OPA) to automatically restrict privileged containers. Enforce strict RBAC policies to minimize permissions at the orchestration level. This last part is a bit tricker and may be complex depending on your environment.

4. Secure network segmentation

Containers should communicate only with explicitly allowed services.

Actionable tip: Implement network policies in Kubernetes or utilize service meshes like Istio or Linkerd to define precise, minimalistic communication paths. Avoid the “everything talks to everything” anti-pattern.

5. Runtime threat detection

Identifying malicious activity at runtime is good for you essential to container security.

Actionable tip: Deploy runtime monitoring tools such as Falco or Sysdig to detect anomalous container behavior. Configure automatic alerts and even incident response actions based on detected threats.
It’s relatively easy to get started on this one.

6. Host OS security

Containers share the host OS, making host security muy importante.

Actionable tip: Regularly update your host OS, minimize installed packages, and consider using minimalistic distributions optimized for container environments, such as Alpine Linux, Flatcar Container Linux, or Talos Linux.

Hello, Golden Images! 👋


Practical application over checkboxes

By applying the NIST SP 800-190 advice, you don’t just fulfill compliance requirements – you genuinely reduce your organization’s exposure to container-based risks.

In short, treating NIST guidelines as practical advice rather than bureaucratic overhead will significantly boost your container security. Give NIST SP 800-190 another look – it might be exactly the pragmatic guide you need to level up your container security strategy and mature the Platform infra/DevOps team(s).


Links and resources


👋 Get notified about future posts

No spam. You'll receive a notification whenever I publish a new blog post.