<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Kubescape</title><link>https://kubescape.io/</link><atom:link href="https://kubescape.io/feed_rss_created.xml" rel="self" type="application/rss+xml" /><docs>https://github.com/kubescape/kubescape</docs><language>en-None</language> <pubDate>Tue, 07 Jul 2026 21:22:13 -0000</pubDate> <lastBuildDate>Tue, 07 Jul 2026 21:22:13 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.8.0</generator> <item> <title>Kubescape Node Agent Now Works on GKE Autopilot Clusters</title> <author>slashben</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape Node Agent Now Works on GKE Autopilot Clusters&lt;/h1&gt;&lt;p&gt;The Kubescape community is excited to share that &lt;strong&gt;Kubescape’s node agent now supports GKE Autopilot clusters&lt;/strong&gt;, thanks to Google Cloud’s newly introduced &lt;strong&gt;Workload Allowlisting&lt;/strong&gt; capability.&lt;/p&gt;&lt;p&gt;This is a significant milestone that opens the door for &lt;strong&gt;full runtime observability and Kubernetes-native security&lt;/strong&gt; on fully-managed GKE environments.&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;A Quick Background: Why It Wasn’t Possible Before&lt;/h2&gt;&lt;p&gt;Historically, GKE Autopilot enforced strict constraints on workloads requiring privileged permissions, like those needed by Kubescape’s node agent. This made it impossible to get visibility into system-level activity — something many security-conscious users rely on for runtime protection, vulnerability tracing, and compliance enforcement.&lt;/p&gt;&lt;p&gt;But with the rollout of Google Cloud’s &lt;strong&gt;Autopilot partner workload support&lt;/strong&gt;, this has changed. Users can now explicitly allow trusted workloads through a declarative &lt;strong&gt;AllowlistSynchronizer&lt;/strong&gt; configuration. Kubescape is among the first open-source tools to make use of this capability.&lt;/p&gt;&lt;p&gt;👉 &lt;a href=&#34;https://cloud.google.com/kubernetes-engine/docs/how-to/run-autopilot-partner-workloads&#34;&gt;Learn more about Google Cloud’s Allowlisting mechanism&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;Why It Matters&lt;/h2&gt;&lt;p&gt;By running Kubescape’s node agent on GKE Autopilot, users can finally get &lt;strong&gt;deep runtime visibility and Kubernetes-native security&lt;/strong&gt; without needing to manage the underlying nodes themselves.&lt;/p&gt;&lt;p&gt;This means:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Access to &lt;strong&gt;real-time anomaly detection&lt;/strong&gt; from inside your container and host environment&lt;/li&gt;&lt;li&gt;Support for &lt;strong&gt;seccomp and network policy insights&lt;/strong&gt;, including smart suggestions&lt;/li&gt;&lt;li&gt;Seamless &lt;strong&gt;vulnerability prioritization&lt;/strong&gt; with in-use and reachable package analysis&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Compliance scanning and misconfiguration detection&lt;/strong&gt; with behavioral remediation insights&lt;/li&gt;&lt;/ul&gt;&lt;hr&gt;&lt;h2&gt;How to Enable It&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Make sure your cluster is running GKE Autopilot &lt;strong&gt;version &lt;code&gt;1.32.2-gke.1652000&lt;/code&gt; or newer&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Use Kubescape Helm chart &lt;strong&gt;version &lt;code&gt;1.27.5&lt;/code&gt; or newer&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Create an &lt;code&gt;AllowlistSynchronizer&lt;/code&gt; object to sync the allowlist for Kubescape:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;code&gt;yamlapiVersion: auto.gke.io/v1kind: AllowlistSynchronizermetadata: name: kubescape-allow-listspec: allowlistPaths: - ARMO/armo-kubescape-node-agent/1.27/*&lt;/code&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Apply it to your cluster:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;code&gt;bashkubectl apply -f kubescape-allowlist.yaml&lt;/code&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Confirm it&#39;s synced:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;code&gt;bashkubectl get WorkloadAllowlist&lt;/code&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Install Kubescape with Helm:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;code&gt;bashhelm upgrade --install kubescape kubescape/kubescape-operator \ --set nodeAgent.gke.allowlist.enabled=true \ --set nodeAgent.gke.allowlist.name=armo-kubescape-node-agent-1.27&lt;/code&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Verify the node agent is running:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;code&gt;bashkubectl get pods -n kubescape&lt;/code&gt;&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;What’s Next?&lt;/h2&gt;&lt;p&gt;Kubescape continues to evolve with community input and contributions. Supporting GKE Autopilot is part of a broader goal: making &lt;strong&gt;Kubernetes security accessible, powerful, and fully open&lt;/strong&gt; — no matter where or how you run your workloads. We&#39;re excited to see this feature land and look forward to seeing what the community will build with it.&lt;/p&gt;&lt;p&gt;If you are missing a feature or have feedback, please let us know on &lt;a href=&#34;https://github.com/kubescape/kubescape/issues&#34;&gt;GitHub&lt;/a&gt; or &lt;a href=&#34;https://github.com/kubescape/kubescape/discussions&#34;&gt;Discussions&lt;/a&gt;.&lt;/p&gt;</description><link>https://kubescape.io/blog/2025/05/15/kubescape-gke-autopilot/</link> <pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2025/05/15/kubescape-gke-autopilot/</guid> </item> <item> <title>Introducing a Visual Way to Explore Kubernetes Security: the Kubescape Plugin for Headlamp</title> <author>oshratn</author> <author>mgalesloot</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Introducing a Visual Way to Explore Kubernetes Security: the Kubescape Plugin for Headlamp&lt;/h1&gt;&lt;p&gt;Managing security in Kubernetes can feel like navigating a maze. With countless vulnerabilities, policies, and best practices to juggle, it’s easy for developers to get overwhelmed and hard to know where to start. Reporting on your security posture adds another layer of complexity-especially when many open-source tools are highly technical and not user-friendly for the average Kubernetes user.&lt;/p&gt;&lt;p&gt;That’s where Headlamp comes in. Headlamp is an open-source Kubernetes UI that provides an intuitive, visual way to explore and manage your clusters. It helps users of all experience levels understand what’s happening in their environments, surfacing insights that would otherwise require deep command-line expertise.&lt;/p&gt;&lt;h2&gt;Announcing the Kubescape Plugin for Headlamp&lt;/h2&gt;&lt;p&gt;We’re excited to share the new Kubescape plugin for Headlamp, a game-changer for anyone looking to simplify Kubernetes security management! As Viktor Farcic noted at KubeCon NA 2024, “What Kubescape needs is a GUI.”&lt;/p&gt;&lt;p&gt;This plugin bridges the gap between robust security scanning and accessible, actionable insights. By reading reports from Kubescape, it brings security and compliance data directly into the Headlamp interface. Now, you can view and manage your cluster’s security posture without switching between tools or deciphering command-line outputs.&lt;/p&gt;&lt;h2&gt;What Can You Do with the Kubescape Plugin?&lt;/h2&gt;&lt;p&gt;The Kubescape plugin enhances Headlamp with dedicated pages and features for:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Configuration Scanning: Instantly see compliance and configuration scan results, making it easier to spot and address misconfigurations.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Vulnerability Scanning: Get clear insights into vulnerabilities and CVEs (Common Vulnerabilities and Exposures) affecting your clusters and images.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Network Policies Viewer: Visualize and manage network policies to strengthen your cluster’s security boundaries.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Admission Policies Playground: Test and validate admission policies as recommended by Kubescape. The playground leverages WASM to evaluate CEL expressions in real-time, empowering you to experiment safely.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Multi-Tenant Support: Enjoy namespace-specific views for multi-tenant clusters, so teams can focus on what matters to them.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;figure markdown&gt; ![Source: Kubescape plugin for Headlamp PoC](headlamp-compliance.png){ width=&#34;600&#34; } &lt;figcaption&gt;Source: Kubescape plugin for Headlamp PoC&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;Getting Started: How to Install the Kubescape Plugin&lt;/h2&gt;&lt;p&gt;Ready to try it out? Here’s a quick guide to getting the Kubescape plugin up and running in Headlamp.&lt;/p&gt;&lt;h3&gt;Kubescape&lt;/h3&gt;&lt;p&gt;Follow the &lt;a href=&#34;https://kubescape.io/docs/install-operator/&#34;&gt;Kubescape operator installation procedure&lt;/a&gt; and make sure you enable continuousScan &lt;code&gt;--set capabilities.continuousScan=enable&lt;/code&gt; and network observability &lt;code&gt;--set capabilities.networkPolicyService=enable&lt;/code&gt;.&lt;/p&gt;&lt;h3&gt;Headlamp Desktop App​&lt;/h3&gt;&lt;p&gt;If you are using Headlamp as a desktop app (Windows, Mac, or Linux), go to the Plugin Catalog (available from the sidebar when in the home view), then look for the Kubescape plugin from the list, click it to see its details, and then click the install button. After the plugin is installed, use the notification to reload Headlamp.&lt;/p&gt;&lt;h3&gt;Headlamp Web app​&lt;/h3&gt;&lt;p&gt;If you are deploying Headlamp as a web app (running in-cluster), you need to add the plugin files to the plugins folder of the headlamp-server. The Helm chart of Headlamp allows you to add an init container that will download the plugin. Please check the instructions at &lt;a href=&#34;https://github.com/kubescape/headlamp-plugin/&#34;&gt;Kubescape plugin for Headlamp&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Acknowledgements &amp;amp; Future&lt;/h2&gt;&lt;p&gt;A huge thanks to the Headlamp team for providing an extensible multi-cluster K8s dashboard experience, and Kubescape team for building such a powerful tool for security posture management.&lt;/p&gt;&lt;p&gt;The Kubescape plugin for Headlamp is currently in beta and ready for you to test. We’re eager to hear your feedback and ideas let us know what you think!&lt;/p&gt;&lt;p&gt;With this new integration, Kubernetes security is more accessible than ever. Dive in, explore your clusters visually, and take control of your security posture today!&lt;/p&gt;</description><link>https://kubescape.io/blog/2025/04/30/kubescape-headlamp/</link> <pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2025/04/30/kubescape-headlamp/</guid> </item> <item> <title>Kubescape Now Supports CIS Kubernetes Benchmark v1.10</title> <author>oshratn</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape Now Supports CIS Kubernetes Benchmark v1.10&lt;/h1&gt;&lt;p&gt;We&#39;re happy to announce that Kubescape has upgraded it&#39;s securiy controls to align with the latest CIS Kubernetes Benchmark v1.10. Thus, helping you strengthen your cluster security posture with industry-recognized standards.&lt;/p&gt;&lt;h2&gt;What&#39;s New in CIS Kubernetes Benchmark v1.10?&lt;/h2&gt;&lt;p&gt;The CIS Kubernetes Benchmark v1.10.0 delivers significant enhancements to address the evolving security landscape:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Comprehensive security recommendations tailored to counter emerging threats&lt;/li&gt;&lt;li&gt;Broader component coverage across your Kubernetes infrastructure&lt;/li&gt;&lt;li&gt;Clearer control documentation to improve implementation accuracy&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Key Improvements Include:&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Automated Assessment Content (AAC)&lt;/strong&gt;: Full integration with AAC and expanded compatibility with Kubernetes versions 1.30 and 1.31, streamlining your compliance verification process.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Enhanced Recommendations&lt;/strong&gt;: 27 recommendations have undergone thorough revision to their audit and remediation procedures.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Upgraded Cryptographic Standards&lt;/strong&gt;: Modernized cipher specifications that enforce more robust encryption requirements&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Refined Security Context Variables&lt;/strong&gt;: Updated terminology around &#39;securityContext&#39; variables to facilitate proper security configuration&lt;/p&gt;&lt;h2&gt;How Kubescape Empowers Your Compliance Journey&lt;/h2&gt;&lt;p&gt;With Kubescape&#39;s implementation of CIS v1.10, you can:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Perform detailed compliance assessments against the latest benchmark&lt;/li&gt;&lt;li&gt;Quickly identify compliance gaps between previous and current requirements&lt;/li&gt;&lt;li&gt;Follow clear, practical remediation guidance to address vulnerabilities&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Take Action Today&lt;/h2&gt;&lt;p&gt;Ready to strengthen your Kubernetes security posture? Try Kubescape now to run your first CIS v1.10 compliance scan. See how your clusters measure up against the latest security standards.&lt;/p&gt;&lt;p&gt;Our community forums and documentation are available to support your implementation journey. Join us in making Kubernetes environments more secure, one cluster at a time.&lt;/p&gt;&lt;h2&gt;Join the Kubescape community&lt;/h2&gt;&lt;p&gt;We welcome your feedback and ideas for improvement. We hold &lt;a href=&#34;https://kubescape.io/project/community/#monthly-meeting&#34;&gt;community meetings&lt;/a&gt; on Zoom, on the first Tuesday of every month, at 14:00 GMT.&lt;/p&gt;&lt;p&gt;Thanks to all our contributors! Check out our &lt;a href=&#34;https://github.com/kubescape/project-governance/blob/main/CONTRIBUTING.md&#34;&gt;CONTRIBUTING&lt;/a&gt; file to learn how to join them.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Feel free to pick a task from the &lt;a href=&#34;https://github.com/orgs/kubescape/projects/4/views/3&#34;&gt;good first issue list&lt;/a&gt; and suggest a design&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://github.com/orgs/kubescape/projects/4&#34;&gt;Open an issue&lt;/a&gt;: we aim to respond to all issues within 48 hours&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://slack.cncf.io/&#34;&gt;Join the CNCF Slack&lt;/a&gt; and then our &lt;a href=&#34;https://cloud-native.slack.com/archives/C04EY3ZF9GE&#34;&gt;users&lt;/a&gt; or &lt;a href=&#34;https://cloud-native.slack.com/archives/C04GY6H082K&#34;&gt;developers&lt;/a&gt; channel&lt;/li&gt;&lt;li&gt;Don’t forget to leave a star on our &lt;a href=&#34;https://github.com/kubescape/kubescape&#34;&gt;repository&lt;/a&gt;: it means the world to us!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The Kubescape project follows the &lt;a href=&#34;https://github.com/cncf/foundation/blob/master/code-of-conduct.md&#34;&gt;CNCF Code of Conduct&lt;/a&gt;.&lt;/p&gt;</description><link>https://kubescape.io/blog/2025/03/06/kubescape-cis-10/</link> <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2025/03/06/kubescape-cis-10/</guid> </item> <item> <title>Kubescape&#39;s Journey to Incubation: Celebrating our Community and a Secure Kubernetes Future</title> <author>oshratn</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape&#39;s Journey to Incubation: Celebrating our Community and a Secure Kubernetes Future&lt;/h1&gt;&lt;p&gt;We are thrilled to share that Kubescape has officially been accepted as a CNCF Incubating project. This milestone is a significant achievement for the project. Kubescape began in 2021 as a fun project to scan for compliance with NSA-CISA Kubernetes hardening guidelines. What started as a security scanner, helping Devlopers and DevOps teams implement better Kubernetes security practices, evolved into a full security platform. Still helping security Kubernetes environments 😉&lt;/p&gt;&lt;p&gt;From the very beginning, Kubescape was built with the cloud-native community in mind. It started as a simple CLI tool designed to check cluster configurations against NSA-CISA Kubernetes Hardening Guidance. Over time, with the support of a rapidly growing community, Kubescape has evolved into one of the most complete open-source solutions for Kubernetes security. We are proud to have contributed to its development alongside contributors in the Kubescape community, and to see so many adopters leveraging Kubescape in their day-to-day workflows.&lt;/p&gt;&lt;p&gt;The Kubescape community has been a driving force behind this success. It’s not just the maintainers and contributors that we celebrate but the many users who have adopted and integrated Kubescape into their environments. Companies like Intel, AWS, Bitnami, ARMO, and Energi Danmark are just a few of the organizations using Kubescape. Some use Kubescape to secure their Kubernetes clusters. Others leverage it for educational purposes. Other use cases that go beyond what we imagined when we made our first commit. We are grateful for the trust that these adopters, along with hundreds of others, have shown in Kubescape.&lt;/p&gt;&lt;p&gt;As we look toward the future, the Kubescape project is poised for even greater growth. Our roadmap is not just about adding more features, but about continuing to improve usability and optimizing the performance of the platform. We are excited to welcome new contributors and users into the fold as we continue on the hamster-wheel of Kubernetes security.&lt;/p&gt;&lt;p&gt;The Kubescape community is our foundation, and we are committed to fostering a collaborative and inclusive environment where all contributions are valued. With the incredible support of the Cloud Native Computing Foundation (CNCF) and the broader Kubernetes community, we are determined to demonstrate sustained growth, strong governance, and broad adoption on our journey toward CNCF graduation. We believe that this is just the beginning, and we are eager to see where the future takes us.&lt;/p&gt;&lt;p&gt;Together, with the support of these vibrant communities, Kubescape will continue to evolve and grow, offering better security, deeper insights, and an ever-expanding set of features. We invite everyone - whether you are an adopter, contributor, or newcomer - to join us in shaping the future of Kubernetes security.&lt;/p&gt;&lt;h2&gt;Join the Kubescape community&lt;/h2&gt;&lt;p&gt;We welcome your feedback and ideas for improvement. We hold &lt;a href=&#34;https://kubescape.io/project/community/#monthly-meeting&#34;&gt;community meetings&lt;/a&gt; on Zoom, on the first Tuesday of every month, at 14:00 GMT.&lt;/p&gt;&lt;p&gt;Thanks to all our contributors! Check out our &lt;a href=&#34;https://github.com/kubescape/project-governance/blob/main/CONTRIBUTING.md&#34;&gt;CONTRIBUTING&lt;/a&gt; file to learn how to join them.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Feel free to pick a task from the &lt;a href=&#34;https://github.com/orgs/kubescape/projects/4/views/3&#34;&gt;good first issue list&lt;/a&gt; and suggest a design&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://github.com/orgs/kubescape/projects/4&#34;&gt;Open an issue&lt;/a&gt;: we aim to respond to all issues within 48 hours&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://slack.cncf.io/&#34;&gt;Join the CNCF Slack&lt;/a&gt; and then our &lt;a href=&#34;https://cloud-native.slack.com/archives/C04EY3ZF9GE&#34;&gt;users&lt;/a&gt; or &lt;a href=&#34;https://cloud-native.slack.com/archives/C04GY6H082K&#34;&gt;developers&lt;/a&gt; channel&lt;/li&gt;&lt;li&gt;Don’t forget to leave a star on our &lt;a href=&#34;https://github.com/kubescape/kubescape&#34;&gt;repository&lt;/a&gt;: it means the world to us!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The Kubescape project follows the &lt;a href=&#34;https://github.com/cncf/foundation/blob/master/code-of-conduct.md&#34;&gt;CNCF Code of Conduct&lt;/a&gt;.&lt;/p&gt;</description><link>https://kubescape.io/blog/2025/02/25/kubescape-incubation/</link> <pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2025/02/25/kubescape-incubation/</guid> </item> <item> <title>CEL and Kubescape: Transforming Kubernetes Admission Control</title> <author>oshratn</author> <category>Project</category> <description>&lt;h1&gt;CEL and Kubescape: Transforming Kubernetes Admission Control&lt;/h1&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;p&gt;Admission control is a crucial part of the Kubernetes security, enabling the approval or modification of API objects as they are submitted to the server. It allows administrators to enforce business logic or policies on what objects can be admitted into a cluster. Kubernetes RBAC is a scalable authorization mechanism, but lacks the fine grained control over different Kubernetes objects. This creates the need for another layer of control which is Admission Policies. To enhance this capability, Kubernetes introduced dynamic admission control webhooks in version 1.7. Despite its benefits, adoption of admission controllers for policy enforcement faces challenges, namely scalability challenges. Maintaining webhook infrastructure as a production service is complex, and handling webhook failures can either reduce cluster availability or undermine policy enforcement. Additionally, the network hop and evaluation time involved in admission control can introduce significant latency, particularly in &#34;serverless” environments where pods are rapidly spun up in response to network requests.Kubernetes 1.30 has brought a significant development to the table with the introduction of the Common Expression Language (CEL) for admission control. This new feature offers an alternative to validating admission webhooks for enforcing custom policies, with a focus on policy enforcement capabilities and CRD validation rules that were previously in beta.The introduction of CEL for admission control enables administrators to define complex and tailored policies, improving the overall security of Kubernetes clusters. This is significant for organizations with complex security requirements, as it allows them to create finely tuned policies that precisely match the security needs of different applications and environments.In this blog post, we&#39;ll explore the benefits of Validating Admission Policies, its goals, and how Kubescape maintainers have leveraged it to create a robust and precise cel-admission-library.&lt;/p&gt;&lt;h2&gt;Validating Admission Policies Short Primer&lt;/h2&gt;&lt;p&gt;The first part of this blog post explains what ValidatingAdmissionPolicies are and explain why they were added and their benefits. If you have been following the development of KEP-3488, through alpha in Kubernetes 1.26, beta in Kubernetes 1.28 and GA in the aforementioned Kubernetes 1.30 and you just want to get started with them, feel free to skip to &lt;a href=&#34;#using-the-kubescape-cel-library-in-your-cluster&#34;&gt;Using the Kubescape CEL library in your cluster&lt;/a&gt;.If you are reading this and thinking: “I already have OPA Gatekeeper or Kyverno up and running to solve this”.&lt;/p&gt;&lt;figure markdown&gt; ![Admission control meme](/assets/admission-meme.jpg){ width=&#34;600&#34; }&lt;/figure&gt;&lt;p&gt;Please join us to get a better understanding of this Kubernetes native feature, what it seeks to achieve and what the benefits of using it are. Also, take into account that this functionality will become the de-facto standard, similar to what happened with OpenTelemetry and GatewayAPI.&lt;/p&gt;&lt;h3&gt;Introduction to ValidatingAdmissionPolicies&lt;/h3&gt;&lt;p&gt;ValidatingAdmissionPolicies are: A declarative, in-process alternative to validating admission webhooks. They use the Common Expression Language (CEL) to define the policies.&lt;/p&gt;&lt;p&gt;They consist of two main resources:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ValidatingAdmissionPolicy describes the policy logic&lt;/li&gt;&lt;li&gt;ValidatingAdmissionPolicyBinding links the above policy to the resources it applies to&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;The Goals of Validating Admission Policies&lt;/h3&gt;&lt;p&gt;The Kubernetes team has established specific goals for Validating Admission Policies to guarantee that it aligns with the community&#39;s requirements.:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Alternative to Webhooks&lt;/strong&gt;: Validating Admission Policies aims to provide an alternative to webhooks for the majority of validating admission use cases.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;In-Tree Extensions&lt;/strong&gt;: The feature intends to offer the in-tree extensions required to build policy frameworks for Kubernetes without relying on webhooks.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Efficient Type Checking&lt;/strong&gt;: Validating Admission Policies aims to make good use of CEL type checking, even when considering that CRD schemas can be changed at any time, and not all fields of built-in types exist in older Kubernetes versions.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Polyfill Implementati&lt;/strong&gt;&lt;strong&gt;on&lt;/strong&gt;: The Kubernetes organization plans to provide a polyfill implementation that offers enhancement functionality to Kubernetes versions where this feature is not available.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Core Functionality as a Library&lt;/strong&gt;: Validating Admission Policies intends to provide core functionality as a library, enabling use cases like GitOps, CI/CD pipelines, and auditing to run the same CEL validation checks as the API server.Having said that, Polyfill Implementation and Core Functionality as a Library (points 4 and 5 above) have yet to be implemented, and we should keep an eye out for them in the future.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;The Benefits of Validating Admission Policies&lt;/h3&gt;&lt;p&gt;The Validating Admission Policies functionality offers several advantages over webhooks, making it a more attractive choice for policy enforcement:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;No Infrastructure Requirement&lt;/strong&gt;: Validating Admission Policies doesn&#39;t require you to build infrastructure to host the admission webhook, simplifying the process.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Reduced Latency&lt;/strong&gt;: By eliminating the need for an additional network hop, Validating Admission Policies helps reduce latency, ensuring smoother and faster operations.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Increased Reliability and Scalability&lt;/strong&gt;: In-process webhooks used by Validating Admission Policies are less prone to failure than webhooks with extra infrastructure dependencies, enhancing the overall reliability. Beyond this, the in-process admission decision makes the Kubernetes control plane more scaleable since it doesn&#39;t depend on an external component.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Lower Operational Burden&lt;/strong&gt;: Cluster administrators responsible for the observability, security, and release/rollout/rollback plans for webhooks will experience a lower operational burden with Validating Admission Policies.&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Kubescape&#39;s Cel-Admission-Library&lt;/h2&gt;&lt;p&gt;When Validating Admission Policies was first introduced in beta in version 1.26, the maintainers of Kubescape were eager to utilize it. They created the &lt;a href=&#34;https://github.com/kubescape/cel-admission-library&#34;&gt;cel-admission-library&lt;/a&gt; based on Kubescape controls originally written in Rego. The library includes the following 27 admission controls:&lt;/p&gt;&lt;p&gt;| Control ID | Name | Policy name | Configuration parameter || --- | --- | --- | --- || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0001/&#34;&gt;C-0001&lt;/a&gt; | Forbidden Container Registries | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0001-deny-forbidden-container-registries.md&#34;&gt;kubescape-c-0001-deny-forbidden-container-registries&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#untrustedregistries&#34;&gt;untrustedRegistries&lt;/a&gt; || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0004/&#34;&gt;C-0004&lt;/a&gt; | Resources memory limit and request | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0004-deny-resources-with-memory-limit-or-request-not-set.md&#34;&gt;kubescape-c-0004-deny-resources-with-memory-limit-or-request-not-set&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#memory_request_min&#34;&gt;memoryRequestMin&lt;/a&gt; || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0009/&#34;&gt;C-0009&lt;/a&gt; | Resource limits | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0009-deny-resources-with-memory-or-cpu-limit-not-set.md&#34;&gt;kubescape-c-0009-deny-resources-with-memory-or-cpu-limit-not-set&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0016/&#34;&gt;C-0016&lt;/a&gt; | Allow privilege escalation | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0016-allow-privilege-escalation.md&#34;&gt;kubescape-c-0016-allow-privilege-escalation&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0017/&#34;&gt;C-0017&lt;/a&gt; | Immutable container filesystem | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0017-deny-resources-with-mutable-container-filesystem.md&#34;&gt;kubescape-c-0017-deny-resources-with-mutable-container-filesystem&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0018/&#34;&gt;C-0018&lt;/a&gt; | Configured readiness probe | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0018-deny-resources-without-configured-readiness-probes.md&#34;&gt;kubescape-c-0018-deny-resources-without-configured-readiness-probes&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0020/&#34;&gt;C-0020&lt;/a&gt; | Mount service principal | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0020-deny-resources-having-volumes-with-potential-access-to-known-cloud-credentials.md&#34;&gt;kubescape-c-0020-deny-resources-having-volumes-with-potential-access-to-known-cloud-credentials&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/&#34;&gt;cloudProvider&lt;/a&gt; || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0034/&#34;&gt;C-0034&lt;/a&gt; | Automatic mapping of service account | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0034-deny-resources-with-automount-service-account-token-enabled.md&#34;&gt;kubescape-c-0034-deny-resources-with-automount-service-account-token-enabled&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0038/&#34;&gt;C-0038&lt;/a&gt; | Host PID/IPC privileges | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0038-deny-resources-with-host-ipc-or-pid-privileges.md&#34;&gt;kubescape-c-0038-deny-resources-with-host-ipc-or-pid-privileges&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0041/&#34;&gt;C-0041&lt;/a&gt; | HostNetwork access | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0041-deny-resources-with-host-network-access.md&#34;&gt;kubescape-c-0041-deny-resources-with-host-network-access&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0042/&#34;&gt;C-0042&lt;/a&gt; | SSH server running inside container | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0042-deny-resources-with-ssh-server-running.md&#34;&gt;kubescape-c-0042-deny-resources-with-ssh-server-running&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0044/&#34;&gt;C-0044&lt;/a&gt; | Container hostPort | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0044-deny-resources-with-host-port.md&#34;&gt;kubescape-c-0044-deny-resources-with-host-port&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0070/&#34;&gt;C-0045&lt;/a&gt; | Writable hostPath mount | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0045-deny-workloads-with-hostpath-volumes-readonly-not-false.md&#34;&gt;kubescape-c-0045-deny-workloads-with-hostpath-volumes-readonly-not-false&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0046/&#34;&gt;C-0046&lt;/a&gt; | Insecure capabilities | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0046-deny-resources-with-insecure-capabilities.md&#34;&gt;kubescape-c-0046-deny-resources-with-insecure-capabilities&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#insecurecapabilities&#34;&gt;insecureCapabilities&lt;/a&gt; || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0048/&#34;&gt;C-0048&lt;/a&gt; | HostPath mount | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0048-deny-workloads-with-hostpath-mounts.md&#34;&gt;kubescape-c-0048-deny-workloads-with-hostpath-mounts&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0050/&#34;&gt;C-0050&lt;/a&gt; | Resources CPU limit and request | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0050-deny-resources-with-cpu-limit-or-request-not-set.md&#34;&gt;kubescape-c-0050-deny-resources-with-cpu-limit-or-request-not-set&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#cpu_limit_min&#34;&gt;cpuLimitMin&lt;/a&gt; || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0055/&#34;&gt;C-0055&lt;/a&gt; | Linux hardening | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0055-linux-hardening.md&#34;&gt;kubescape-c-0055-linux-hardening&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0056/&#34;&gt;C-0056&lt;/a&gt; | Configured liveness probe | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0056-deny-resources-without-configured-liveliness-probes.md&#34;&gt;kubescape-c-0056-deny-resources-without-configured-liveliness-probes&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0057/&#34;&gt;C-0057&lt;/a&gt; | Privileged container | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0057-privileged-container-denied.md&#34;&gt;kubescape-c-0057-privileged-container-denied&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0061/&#34;&gt;C-0061&lt;/a&gt; | Pods in default namespace | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0061-deny-workloads-in-default-namespace.md&#34;&gt;kubescape-c-0061-deny-workloads-in-default-namespace&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0062/&#34;&gt;C-0062&lt;/a&gt; | Sudo in container entrypoint | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0062-deny-resources-having-containers-with-sudo-in-entrypoint.md&#34;&gt;kubescape-c-0062-deny-resources-having-containers-with-sudo-in-entrypoint&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0073/&#34;&gt;C-0073&lt;/a&gt; | Naked PODs | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0073-deny-naked-pods.md&#34;&gt;kubescape-c-0073-deny-naked-pods&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0074/&#34;&gt;C-0074&lt;/a&gt; | Containers mounting Docker socket | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0074-resources-mounting-docker-socket-denied.md&#34;&gt;kubescape-c-0074-resources-mounting-docker-socket-denied&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0075/&#34;&gt;C-0075&lt;/a&gt; | Image pull policy on latest tag | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0075-deny-resources-with-image-pull-policy-not-set-to-always-for-latest-tag.md&#34;&gt;kubescape-c-0075-deny-resources-with-image-pull-policy-not-set-to-always-for-latest-tag&lt;/a&gt; | not configurable || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0076/&#34;&gt;C-0076&lt;/a&gt; | Label usage for resources | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0076-deny-resources-without-configured-list-of-labels-not-set.md&#34;&gt;kubescape-c-0076-deny-resources-without-configured-list-of-labels-not-set&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#recommendedlabels&#34;&gt;recommendedLabels&lt;/a&gt; || &lt;a href=&#34;https://kubescape.io/docs/controls/c-0077/&#34;&gt;C-0077&lt;/a&gt; | K8s common labels usage | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0077-deny-resources-without-configured-list-of-k8s-common-labels-not-set.md&#34;&gt;kubescape-c-0077-deny-resources-without-configured-list-of-k8s-common-labels-not-set&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#k8srecommendedlabels&#34;&gt;k8sRecommendedLabels&lt;/a&gt; || &lt;a href=&#34;hhttps://kubescape.io/docs/controls/c-0078/&#34;&gt;C-0078&lt;/a&gt; | Images from allowed registry | &lt;a href=&#34;/docs/policies-based-on-kubescape-controls/kubescape-c-0078-only-allow-images-from-allowed-registry.md&#34;&gt;kubescape-c-0078-only-allow-images-from-allowed-registry&lt;/a&gt; | &lt;a href=&#34;https://kubescape.io/docs/frameworks-and-controls/configuring-controls/#imagerepositoryallowlist&#34;&gt;imageRepositoryAllowList&lt;/a&gt; |&lt;a href=&#34;https://github.com/kubescape/cel-admission-library/edit/main/README.md&#34;&gt;source&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Using the Kubescape CEL library in your cluster&lt;/h2&gt;&lt;p&gt;This section originally appeared in &lt;a href=&#34;https://kubernetes.io/blog/2023/03/30/kubescape-validating-admission-policy-library/#using-the-cel-library-in-your-cluster&#34;&gt;Kubernetes Validating Admission Policies: A Practical Example&lt;/a&gt; on the Kubernetes blog.Policies are provided as Kubernetes objects, which are then bound to certain resources by a &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors&#34;&gt;selector&lt;/a&gt;.&lt;a href=&#34;https://minikube.sigs.k8s.io/docs/&#34;&gt;Minikube&lt;/a&gt; is a quick and easy way to install and configure a Kubernetes cluster for testing. To install Kubernetes v1.26 with the ValidatingAdmissionPolicy &lt;a href=&#34;https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/&#34;&gt;feature gate&lt;/a&gt; enabled:&lt;code&gt;bash minikube start --kubernetes-version=1.30.2 --extra-config=apiserver.runtime-config=admissionregistration.k8s.io/v1alpha1 --feature-gates=&#39;ValidatingAdmissionPolicy=true&#39;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;To install the policies in your cluster:```bash&lt;/p&gt;&lt;h1&gt;Install configuration CRD&lt;/h1&gt;&lt;p&gt;kubectl apply -f https://github.com/kubescape/cel-admission-library/releases/latest/download/policy-configuration-definition.yaml&lt;/p&gt;&lt;h1&gt;Install basic configuration&lt;/h1&gt;&lt;p&gt;kubectl apply -f https://github.com/kubescape/cel-admission-library/releases/latest/download/basic-control-configuration.yaml&lt;/p&gt;&lt;h1&gt;Install policies&lt;/h1&gt;&lt;p&gt;kubectl apply -f https://github.com/kubescape/cel-admission-library/releases/latest/download/kubescape-validating-admission-policies.yaml```&lt;/p&gt;&lt;p&gt;To apply policies to objects, create a ValidatingAdmissionPolicyBinding resource. Let’s apply the above Kubescape C-0017 control to any namespace with the label policy=enforced:```bash&lt;/p&gt;&lt;h1&gt;Create a binding&lt;/h1&gt;&lt;p&gt;kubectl apply -f - &amp;lt;&amp;lt;EOTapiVersion: admissionregistration.k8s.io/v1alpha1kind: ValidatingAdmissionPolicyBindingmetadata: name: c0017-bindingspec: policyName: kubescape-c-0017-deny-mutable-container-filesystem matchResources: namespaceSelector: matchLabels: policy: enforcedEOT&lt;/p&gt;&lt;h1&gt;Create a namespace for running the example&lt;/h1&gt;&lt;p&gt;kubectl create namespace policy-examplekubectl label namespace policy-example &#39;policy=enforced&#39;```&lt;/p&gt;&lt;p&gt;Now, if you attempt to create an object without specifying a readOnlyRootFilesystem, it will not be created.```bash&lt;/p&gt;&lt;h1&gt;The next line should fail&lt;/h1&gt;&lt;p&gt;kubectl -n policy-example run nginx --image=nginx --restart=Never```&lt;/p&gt;&lt;p&gt;The output shows our error:&lt;code&gt;bash The pods &#34;nginx&#34; is invalid: : ValidatingAdmissionPolicy &#39;kubescape-c-0017-deny-mutable-container-filesystem&#39; with binding &#39;c0017-binding&#39; denied request: Pods having containers with mutable filesystem not allowed! (see more at https://kubescape.io/docs/controls/c-0017/)&lt;/code&gt;&lt;/p&gt;&lt;h2&gt;Configuration&lt;/h2&gt;&lt;p&gt;Policy objects can include configuration, which is provided in a different object. Many of the Kubescape controls require a configuration: which labels to require, which capabilities to allow or deny, which registries to allow containers to be deployed from, etc. Default values for those controls are defined in &lt;a href=&#34;https://github.com/kubescape/cel-admission-library/blob/main/configuration/basic-control-configuration.yaml&#34;&gt;the ControlConfiguration object&lt;/a&gt;.To use this configuration object, or your own object in the same format, add a paramRef.name value to your binding object:&lt;code&gt;bashapiVersion: admissionregistration.k8s.io/v1alpha1kind: ValidatingAdmissionPolicyBindingmetadata: name: c0001-bindingspec: policyName: kubescape-c-0001-deny-forbidden-container-registries paramRef: name: basic-control-configuration matchResources: namespaceSelector: matchLabels: policy: enforced&lt;/code&gt;&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;The introduction of Validating Admission Policies in Kubernetes 1.30 is a game-changer, offering a more efficient and reliable way to enforce custom policies. With its numerous benefits and well-defined goals, Validating Admission Policies is set to make a significant impact on the Kubernetes landscape. The cel-admission-library created by Kubescape maintainers is a testament to the potential of this new feature, and we encourage you to try it out using Kubescape.We are happy to contribute this library to the Kubernetes community and will continue to develop it for Kubescape and Kubernetes users alike. We hope it becomes useful, either as something you use yourself, or as examples for you to write your own policies.As for the validating admission policy feature itself, we are very excited to see this native functionality generally available on Kubernetes.&lt;/p&gt;</description><link>https://kubescape.io/blog/2024/08/04/cel-and-kubescape/</link> <pubDate>Sun, 04 Aug 2024 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2024/08/04/cel-and-kubescape/</guid> </item> <item> <title>Enhancing Bitnami Helm Charts Security: A Kubescape Case Study</title> <author>agarcia-oss</author> <category>Project</category> <category>Study</category> <description>&lt;h1&gt;Enhancing Bitnami Helm Charts Security: A Kubescape Case Study&lt;/h1&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;p&gt;CVEs get all the press when it comes to secure software supply chain, and for good reason: vulnerabilities in open source code cost the global economy billions of dollars per year. However, even the most secure applications with the best supply chain provenance can be accidentally misconfigured in such a way that leaves insidious security holes lurking in your environment.&lt;/p&gt;&lt;p&gt;Much of the value that &lt;a href=&#34;https://bitnami.com/&#34;&gt;Bitnami&lt;/a&gt; adds in packaging open source software is in the configuration. Our Helm charts, for example, are loved because they are very thorough in exposing the “knobs and dials&#39;&#39; that are unique to each open source application you deploy to Kubernetes. Developers and IT admins alike also appreciate that we are constantly checking and improving the default configuration we ship in our charts to ensure they are as secure as possible. That’s why, when we recently discovered an open-source Kubernetes security project called &lt;a href=&#34;https://github.com/kubescape/kubescape&#34;&gt;Kubescape&lt;/a&gt;, we saw an opportunity to thoroughly check our software against industry best practices and close any gaps that existed.&lt;/p&gt;&lt;!-- more --&gt;&lt;h2&gt;Why did we choose Kubescape?&lt;/h2&gt;&lt;p&gt;Kubescape is a flexible tool that analyzes Kubernetes software in different ways: it can check Helm charts and artifacts like Dockerfiles in your source code repository, or it can scan the software running in your Kubernetes clusters. We decided to try Kubescape because it covers a wide variety of best practices. Its controls can be tailored to meet specific requirements, ensuring a fine-tuned approach to security. The tool identifies misconfigurations by comparing OSS configurations to industry recognized security best practices from organizations such as NSA-CISA and CIS.&lt;/p&gt;&lt;p&gt;When we ran Kubescape against Bitnami and Tanzu Application Catalog Helm charts, it identified meaningful changes we could make to further secure our software. This discovery led us to include Kubescape in our automated build pipelines to programmatically implement preventative, detective, and corrective measures against any security or quality defects that may be introduced into our software.&lt;/p&gt;&lt;p&gt;We now use Kubescape in several ways to improve our overall security posture and deliver a great user experience for our community users and Tanzu Application Catalog customers.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We continuously implement security improvements based on Kubescape&#39;s risk analysis and security compliance scanning.&lt;/li&gt;&lt;li&gt;We created an &lt;a href=&#34;https://tanzu.vmware.com/oss-health-assessment&#34;&gt;Open Source Health Assessment&lt;/a&gt; service where users can upload their Kubescape scanning reports and receive actionable insights.&lt;/li&gt;&lt;li&gt;We integrated Kubescape into the Bitnami catalog through a Kubescape CLI image, enabling users to initiate OSS health assessments locally using a simple Docker run command.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Bitnami Helm chart security improvements&lt;/h2&gt;&lt;p&gt;So what were those meaningful improvements we could make to our catalogs, thanks to Kubescape? Here are a few of the most important:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Eliminated group root dependency&lt;/strong&gt;: One of the major improvements was enabling containers to function without group root. Previously, Bitnami charts used user 1001 and group root (following OpenShift standards). The new changes made 1001 the default runAsGroup, eliminating the need for group root and improving security.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Configured immutable filesystems&lt;/strong&gt;: Using immutable filesystems is a mandatory requirement of security checklists such as NSA or MITRE. This configuration helps enforce an immutable infrastructure strategy; the container only needs to write on the mounted volume that persists the state. An immutable root filesystem is also capable of preventing malicious binaries from writing to the host system.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Significantly reduced misconfigured resources&lt;/strong&gt;: The OSS health assessment report showed that after implementing its suggested improvements, the percentage of misconfigured resources dropped from 54.55% to 17.39%. This indicates a substantially better security posture for Bitnami Helm charts. The improved charts now address common security concerns such as unnecessary privilege escalation rights, root privileges granted to applications, and issues with ingress and egress configurations.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved compliance with security frameworks&lt;/strong&gt;: Kubescape&#39;s ability to detect compliance with multiple frameworks (including NSA-CISA, MITRE ATT&amp;amp;CK®, and the CIS Benchmark) helped ensure that Bitnami Helm charts align better with industry-standard security practices.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Enhanced OpenShift compatibility&lt;/strong&gt;: When implemented, the configuration changes suggested by Kubescape enabled Bitnami Helm charts to function within OpenShift&#39;s restricted-v2 Security Context Constraints (SCC), which was not possible before.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These enhancements further aligned Bitnami and &lt;a href=&#34;https://tanzu.vmware.com/application-catalog&#34;&gt;Tanzu Application Catalog Helm charts&lt;/a&gt; with industry standards and provide users with greater confidence in their deployments.&lt;/p&gt;&lt;p&gt;For organizations looking to assess their own Kubernetes environments, the &lt;a href=&#34;https://tanzu.vmware.com/oss-health-assessment&#34;&gt;VMware Tanzu OSS Health Assessment tool&lt;/a&gt;, which integrates Kubescape, offers comprehensive reports on misconfigurations and security vulnerabilities within OSS dependencies. It also provides insights using your own data about how upgrading from the community Bitnami Application Catalog to the enterprise &lt;a href=&#34;https://tanzu.vmware.com/application-catalog&#34;&gt;Tanzu Application Catalog&lt;/a&gt; can save you time and effort in improving your security posture.&lt;/p&gt;&lt;figure markdown&gt; ![Tanzu OSS Assessment](oss.png){ width=&#34;600&#34; } &lt;figcaption&gt;VMware Tanzu OSS Health Assessment&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;Final considerations&lt;/h2&gt;&lt;p&gt;This case study demonstrates how leveraging tools &lt;a href=&#34;https://kubescape.io/&#34;&gt;Kubescape&lt;/a&gt; can significantly enhance the security of Helm charts and, by extension, the overall security posture of Kubernetes deployments. As the Kubernetes ecosystem continues to evolve, such initiatives will play a crucial role in maintaining the balance between innovation and security in cloud-native environments.&lt;/p&gt;</description><link>https://kubescape.io/blog/2024/07/16/kubescape-study-bitnami-charts/</link> <pubDate>Tue, 16 Jul 2024 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2024/07/16/kubescape-study-bitnami-charts/</guid> </item> <item> <title>Patching Image Vulnerabilities with Kubescape &amp; Copa</title> <author>anubhav06</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Patching Image Vulnerabilities with Kubescape &amp;amp; Copa&lt;/h1&gt;&lt;p&gt;In this article, we’ll learn how can we patch vulnerabilities in our container images using Kubescape &amp;amp; Copa.&lt;/p&gt;&lt;hr&gt;&lt;!-- more --&gt;&lt;h2&gt;What is Kubescape? 🔍&lt;/h2&gt;&lt;figure markdown&gt; ![image-1](image-1.png){ width=&#34;200&#34; }&lt;/figure&gt;&lt;p&gt;Kubescape is an open-source &lt;strong&gt;Kubernetes security platform&lt;/strong&gt;. It includes risk analysis, security compliance, and misconfiguration scanning. Targeted at the DevSecOps practitioner or platform engineer, it offers an easy-to-use CLI interface, flexible output formats, and automated scanning capabilities. It saves Kubernetes users and admins precious time, effort, and resources.Kubescape is a &lt;a href=&#34;https://www.cncf.io/projects/kubescape/&#34;&gt;Cloud Native Computing Foundation (CNCF) incubating project&lt;/a&gt;.&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;What are Image Vulnerabilities? 💀👾&lt;/h2&gt;&lt;figure markdown&gt; ![image-2](image-2.gif){ width=&#34;600&#34; }&lt;/figure&gt;&lt;p&gt;Container images can contain security vulnerabilities that can be exploited by attackers. These vulnerabilities can include outdated software versions, unpatched vulnerabilities, or weak encryption protocols. Container image vulnerabilities can be identified through vulnerability scanning tools that analyze container images and their dependencies.&lt;/p&gt;&lt;p&gt;On a broad scale, we can divide image vulnerabilities into 2 categories:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;OS-Level Vulnerability:&lt;/strong&gt; These are vulnerabilities because of the underlying OS in your image. It is unrelated to your application code. For example: You are using alpine as the base image in your container image.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Application-Level Vulnerability:&lt;/strong&gt; These are vulnerabilities due to the source code of your application. For example: A SQL injection error in your code or an outdated python library/package which you are using in your software.&lt;/li&gt;&lt;/ul&gt;&lt;hr&gt;&lt;h2&gt;What is Image Patching? 🩹&lt;/h2&gt;&lt;figure markdown&gt; ![image-3](image-3.gif){ width=&#34;600&#34; }&lt;/figure&gt;&lt;p&gt;Kubescape can “patch” or “fix” the vulnerabilities in your image with the help of Copa, by updating the packages to their applicable fixed-in versions.&lt;/p&gt;&lt;p&gt;Below is the architecture diagram of how &lt;a href=&#34;https://project-copacetic.github.io/copacetic/website/quick-start&#34;&gt;Copacetic&lt;/a&gt; can patch images:&lt;/p&gt;&lt;figure markdown&gt; ![image-4](image-4.png){ width=&#34;600&#34; } &lt;figcaption&gt;Architecture of copa&lt;/figcaption&gt;&lt;/figure&gt;&lt;ol&gt;&lt;li&gt;Parses the needed update packages from the container image’s vulnerability report produced by a scanner like Kubescape.&lt;/li&gt;&lt;li&gt;Obtains and processes the needed update packages using the appropriate package manager tools such as apt, apk, etc.&lt;/li&gt;&lt;li&gt;Applies the resulting update binaries to the container image using buildkit.&lt;/li&gt;&lt;/ol&gt;&lt;hr&gt;&lt;h2&gt;How does it work? ⚒️🤔&lt;/h2&gt;&lt;figure markdown&gt; ![image-5](image-5.gif){ width=&#34;500&#34; }&lt;/figure&gt;&lt;p&gt;Below is a small flowchart I made, to help you understand the Kubescape image patching process:&lt;/p&gt;&lt;figure markdown&gt; ![image-6](image-6.png){ width=&#34;600&#34; } &lt;figcaption&gt;Kubescape image patching process&lt;/figcaption&gt;&lt;/figure&gt;&lt;ol&gt;&lt;li&gt;The user inputs the image which needs to be patched&lt;/li&gt;&lt;li&gt;Kubescape scans the image for vulnerabilities using Grype as its engine&lt;/li&gt;&lt;li&gt;Kubescape then uses the scanned image information to analyze the vulnerabilities and passes the report further to the patching process.&lt;/li&gt;&lt;li&gt;Kubescape then reads the vulnerability report and patches the applicable vulnerable packages in the image using Copacetic.&lt;/li&gt;&lt;li&gt;Kubescape re-scans the patched image for vulnerabilities using Grype as its engine.&lt;/li&gt;&lt;li&gt;In the CLI output, we have the vulnerability summary report and a patched image exported to our local Docker Server&lt;/li&gt;&lt;/ol&gt;&lt;hr&gt;&lt;h2&gt;Demo 🧑‍💻 👀&lt;/h2&gt;&lt;figure markdown&gt; ![image-7](image-7.gif){ width=&#34;600&#34; }&lt;/figure&gt;&lt;p&gt;Let’s see the working in action.&lt;/p&gt;&lt;p&gt;Run the following command to scan the &lt;strong&gt;“nginx:1.23”&lt;/strong&gt; image for vulnerabilities:&lt;/p&gt;&lt;p&gt;&lt;code&gt;bashkubescape scan image nginx:1.23&lt;/code&gt;&lt;/p&gt;&lt;p&gt;We get the following output:&lt;/p&gt;&lt;figure markdown&gt; ![image-8](image-8.png){ width=&#34;600&#34; } &lt;figcaption&gt;Kubescape image scan output&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;As we can see there are &lt;strong&gt;265 vulnerabilities&lt;/strong&gt; which Kubescape has found in this image.&lt;/p&gt;&lt;p&gt;Let’s run the patch command on this image now:&lt;/p&gt;&lt;p&gt;&lt;code&gt;bashkubescape patch -i nginx:1.23&lt;/code&gt;&lt;/p&gt;&lt;p&gt;We get the following output:&lt;/p&gt;&lt;figure markdown&gt; ![image-9](image-9.png){ width=&#34;600&#34; } &lt;figcaption&gt;Kubescape image patch output&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;As we can see, we have a new image called &lt;strong&gt;“nginx:1.23-patched”&lt;/strong&gt; and the total vulnerabilities has reduced to just 198 from 265!&lt;/p&gt;&lt;p&gt;Now, you might wonder — Why weren’t all the vulnerabilities patched and why do we still have 198 vulnerabilities which are not fixed? The answer lies in how image scanning and image patching works.&lt;/p&gt;&lt;p&gt;If you are familiar with any of the popular image scanning software like Grype/Trivy/Docker etc., it lists the following:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The particular package in your image which has a certain vulnerability. &lt;em&gt;For example:&lt;/em&gt; &lt;strong&gt;libcurl4&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;The current version of the package which is being used in your image. &lt;em&gt;For example:&lt;/em&gt; &lt;strong&gt;7.74.0–1.3+deb11u7&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;The package version in which the vulnerability has been fixed. &lt;em&gt;For example:&lt;/em&gt; &lt;strong&gt;7.74.0–1.3+dev11u10&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If we update the package to the fixed-in version, the vulnerability will be fixed. However, there are certain packages which do not have a fix known yet. These are the vulnerabilities which security researchers are actively working on to find a fix. Therefore, these left vulnerabilities are those vulnerabilities which no one has a fix yet for.&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;We needed the ability to patch containers quickly without going upstream for a full rebuild. As the window between &lt;a href=&#34;https://www.bleepingcomputer.com/news/security/hackers-scan-for-vulnerabilities-within-15-minutes-of-disclosure/&#34;&gt;vulnerability disclosure and active exploitation continues to narrow&lt;/a&gt;, there is a growing operational need to patch critical security vulnerabilities in container images so they can be quickly redeployed into production. Kubescape &amp;amp; Copa can help you patch those OS-level vulnerabilities in your image quickly.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;If you are interested in knowing how I added this integration &amp;amp; support between Kubescape &amp;amp; Copa, checkout my &lt;a href=&#34;https://anubhav-gupta.medium.com/lfx-mentorship-my-experience-c0c451839735&#34;&gt;other story&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;</description><link>https://kubescape.io/blog/2024/07/14/kubescape-3-image-patching/</link> <pubDate>Sun, 14 Jul 2024 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2024/07/14/kubescape-3-image-patching/</guid> </item> <item> <title>Kubescape: The 1st Open Source project to support VEX Generation</title> <author>oshratn</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape: The 1st Open Source project to support VEX Generation&lt;/h1&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;p&gt;Vulnerability Exploitability eXchange (VEX) is a vulnerability document designed to complement a Software Bill of Materials (SBOM). It informs users of a software product about the applicability of one or more vulnerability findings.&lt;/p&gt;&lt;p&gt;Security scanners will detect and flag components in software that have been identified as being vulnerable. Often, software is not necessarily affected as signaled by security scanners for many reasons.&lt;/p&gt;&lt;p&gt;For example: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The vulnerable component may have been already patched, &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The vulnerable component may not be present&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The vulnerable code is not actually executed. &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The extreme transparency brought by SBOMs into how software is composed will most likely increase the number of these kinds of false positives, requiring an automated solution to avoid an explosion in the false positive rate of security scans. Hence VEX.&lt;/p&gt;&lt;p&gt;Using VEX is a way to turn down the noise, and give security practitioners a good strong signal, a scanner may consume VEX data from the software supplier. However, it is time-consuming to write a VEX document and since it is imperative these documents stay current, it is a never ending task.&lt;strong&gt;The solution to this must come via automation.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;!!! note &#34;&lt;em&gt;&lt;a href=&#34;https://kubescape.io/project/survey/&#34;&gt;Are you running Kubescape? Want to help us get to incubation in the CNCF? Please help us by filling in our three-question survey!&lt;/a&gt;&lt;/em&gt;&#34;&lt;/p&gt;&lt;!-- more --&gt;&lt;h2&gt;VEX and vulnerability scanners&lt;/h2&gt;&lt;p&gt;The adoption and support of VEX documents represent a major shift in how security practitioners address software vulnerabilities. Primarily, VEX is designed to assist these professionals in determining which vulnerabilities require immediate attention and remediation. This targeted approach is crucial in a landscape where prioritizing security efforts is overwhelming due to the sheer volume of reported vulnerabilities.&lt;/p&gt;&lt;p&gt;Grype and Trivy are two popular open source vulnerability scanners. Their newest versions allow them to ingest VEX documents. Thus, giving clearer results of vulnerability scans, with a better signal-to-noise ratio. Leading to more actionable results, since users of VEX based scans have a good understanding of the vulnerabilities that can hurt them now.&lt;/p&gt;&lt;p&gt;However, one big stumbling block remained - &lt;strong&gt;the sourcing of reliable and accurate VEX documents&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;The ideal providers of VEX documents are the software vendors themselves. They possess the most in-depth understanding of their products and are best positioned to evaluate which vulnerabilities are genuinely exploitable. Despite this, expecting a swift and universal adoption of this practice appears optimistic, particularly in the short term. The creation of VEX documents demands considerable effort from software vendors. While the initial technical evaluation may be something that can be achieved, VEX documents need to be continuously updated to reflect the evolving threat landscape. This requires considerable effort from the software vendors. &lt;/p&gt;&lt;p&gt;This need poses an even greater challenge for open-source projects, which often operate with limited resources and rely heavily on community contributions. The expectation that these projects will regularly produce detailed VEX documents is probably unrealistic, at least in the near future. Therefore, while the concept of VEX documents is a step in the right direction for cybersecurity, its practical implementation, especially across diverse software ecosystems, remains complex.&lt;/p&gt;&lt;h2&gt;Enter Kubescape&lt;/h2&gt;&lt;p&gt;he &lt;a href=&#34;http://kubescape.io&#34;&gt;Kubescape&lt;/a&gt; project, a Kubernetes security platform, is a CNCF incubating project. It has made significant progress in cybersecurity with its latest feature: the generation of reliable Vulnerability Exploitability eXchange (VEX) documents. Kubescape is the first project to provide this functionality. One of Kubescape&#39;s functions is to &lt;a href=&#34;https://kubescape.io/docs/operator/vulnerabilities/&#34;&gt;scan Kubernetes workload images for vulnerabilities&lt;/a&gt;, a task crucial for monitoring the security posture of containerized environments.&lt;/p&gt;&lt;p&gt;A standout feature of Kubescape is its &#34;&lt;a href=&#34;https://kubescape.io/docs/operator/relevancy/#view-relevancy-information&#34;&gt;Reachability&lt;/a&gt;&#34; capability. This functionality uses eBPF technology to detect which software packages are loaded into memory from a container image during runtime. It then automatically categorizes vulnerabilities associated with unloaded packages as unreachable. This distinction is crucial as it distinguishes between theoretical vulnerabilities and those that pose an actual risk in the given container environment.&lt;/p&gt;&lt;p&gt;Leveraging this reachability feature, Kubescape Operator (version 1.16.2 and up), has started producing VEX documents and storing them as Kubernetes API objects. This approach is a game-changer in vulnerability management. It involves marking reachable vulnerabilities as &#34;affected&#34; and unreachable ones as &#34;not affected,&#34; providing clear and actionable signaling for vulnerability prioritization and management.&lt;/p&gt;&lt;p&gt;Using the information it generates, Kubescape can also produce meaningful VEX documents for the images running in a Kubernetes cluster. It flags (logically) vulnerabilities as &#34;affected&#34; based on whether the package that the vulnerability belongs to is loaded into the memory during the runtime of the container. Packages not loaded into memory are left as &#34;not affected&#34; when not loaded to the memory.&lt;/p&gt;&lt;p&gt;The VEX output of Kubescape uses the OpenVEX specification, described below.&lt;/p&gt;&lt;p&gt;These Kubernetes API objects containing VEX information can be easily downloaded and integrated into workflows that use Trivy or Grype (or any other tool that supports OpenVEX). This integration simplifies the vulnerability management process significantly. In many cases, over 80% of the vulnerabilities in an image are marked as &#34;not affected,&#34; thus saving practitioners substantial time and effort. &lt;/p&gt;&lt;h3&gt;Generating VEX Documents with Kubescape&lt;/h3&gt;&lt;p&gt;A prerequisite to using Kubescape to generate a VEX document is that you install the Kubescape operator. For details, you can check out &lt;a href=&#34;https://kubescape.io/docs/install-operator/&#34;&gt;Kubescape documentation&lt;/a&gt; or the &lt;a href=&#34;https://github.com/kubescape/operator&#34;&gt;Kubescape GitHub repo&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;To produce a VEX document, Kubescape needs to see a workload running the given image from its start. In other words, it needs to see containers from start.&lt;/p&gt;&lt;p&gt;Now that all the prerequisites have been fulfilled, the following steps will lead to the auto-generation of a VEX document.&lt;/p&gt;&lt;p&gt;The following example uses a NGINX deployment to demonstrate the generation of a VEX document.&lt;/p&gt;&lt;p&gt;| kubectl apply -f https://k8s.io/examples/application/deployment.yaml || -- |&lt;/p&gt;&lt;p&gt;Wait for the VEX objects using this command:&lt;/p&gt;&lt;p&gt;| kubectl -n kubescape get openvulnerabilityexchangecontainers.spdx.softwarecomposition.kubescape.io -w || -- |&lt;/p&gt;&lt;p&gt;It takes 2 minutes of monitoring time (by default) to produce the first version of the VEX for the image in the above deployment, it can take more if the processing queue is busy.&lt;/p&gt;&lt;p&gt;To get the VEX document as a JSON file locally you can use jsonpath to extract the .spec field that contains the VEX itself:&lt;/p&gt;&lt;p&gt;| kubectl -n kubescape get openvulnerabilityexchangecontainer $(kubectl -n kubescape get openvulnerabilityexchangecontainer -o jsonpath=&#39;{.items[0].metadata.name}&#39;) -o jsonpath=&#39;{.spec}&#39; &amp;gt; nginx.json || -- |&lt;/p&gt;&lt;p&gt;this stores the JSON format in nginx.json&lt;/p&gt;&lt;p&gt;Here is an example to see how many vulnerabilities are affected:&lt;/p&gt;&lt;p&gt;| $ jq &#34;.&#34; nginx.json | grep -c &#34;\&#34;affected\&#34;&#34;&lt;/p&gt;&lt;p&gt;| 58 || -- |&lt;/p&gt;&lt;p&gt;$ jq &#34;.&#34; nginx.json | grep -c &#34;\&#34;not_affected\&#34;&#34;&lt;/p&gt;&lt;p&gt;| 338 || -- |&lt;/p&gt;&lt;p&gt;Now that we have a VEX document in hand, how do we feed it to a scanner?&lt;/p&gt;&lt;p&gt;Let’s take &lt;strong&gt;Grype &lt;/strong&gt;as an example scanner:&lt;/p&gt;&lt;p&gt;Grype will take into account the VEX information when calculating results for the image nginx:1.14.2 . Grype will ignore all vulnerabilities that were marked as &#34;not_affected&#34;.&lt;/p&gt;&lt;p&gt;Note: the following flow was run and tested on Grype 0.71.0&lt;/p&gt;&lt;p&gt;Here is how to run it:&lt;/p&gt;&lt;p&gt;| grype nginx:1.14.2 --vex nginx.json || -- |&lt;/p&gt;&lt;p&gt;This produces the following output (note the 338 ignored vulnerabilities!):&lt;/p&gt;&lt;figure markdown&gt; ![VEX Output](output.png){ width=&#34;600&#34; } &lt;figcaption&gt;VEX output via Grype&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;VEX formats&lt;/h2&gt;&lt;p&gt;While VEX can be applied to any software, it is very effective within Kubernetes environments to communicate the exploitability of vulnerabilities in containerized applications. As such, it is now gaining traction in the open source and cloud-native communities.&lt;/p&gt;&lt;p&gt;There are three main formats for VEX today:&lt;/p&gt;&lt;h3&gt;CycloneDX VEX:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Integrates seamlessly with the CycloneDX Software Bill of Materials (SBOM) standard.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Leverages existing SBOM data for product and component identification.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Provides a dedicated VEX BOM specifically focused on vulnerability exploitability.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Allows independent VEX documents for dynamic updates without affecting the SBOM.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Offers tight integration with CycloneDX tools and BOM-Link for deep linking.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Works well with other SBOM formats like SPDX, but with less tight integration.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CSAF VEX:&lt;/h3&gt;&lt;p&gt;Follows the Common Security Advisory Framework (CSAF) format.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Focuses on vulnerability information and mitigation guidance.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Can be combined with SBOM data through references or embedded within a CSAF document.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Offers wider adoption and familiarity due to CSAF&#39;s established presence.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;May require additional data mapping for integration with SBOMs.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;OpenVEX&lt;/h3&gt;&lt;p&gt;That being said, the open source community, namely the Linux Foundation, are working on a standard called OpenVEX. OpenVEX is an implementation of VEX that is designed to be minimal, compliant, interoperable, and embeddable. The specification is available in the &lt;a href=&#34;https://github.com/openvex/spec/blob/main/OPENVEX-SPEC.md&#34;&gt;OPENVEX-SPEC.md&lt;/a&gt; file of the &lt;a href=&#34;https://github.com/openvex&#34;&gt;OpenVEX GitHub repository&lt;/a&gt;. OpenVEX documents are minimal JSON-LD files that capture the minimal requirements for VEX as defined by the VEX working group organized by CISA. The OpenVEX Specification is owned and steered by the community.&lt;/p&gt;&lt;h2&gt;Staying up-to-date&lt;/h2&gt;&lt;p&gt;If you’ve reached this point then you probably understand that VEX documents play a critical role in communicating the true risk posed by vulnerabilities within software products. However, the effectiveness of VEX hinges on one crucial factor: regular updates and refreshes.&lt;/p&gt;&lt;p&gt;Here&#39;s why keeping VEX documents up-to-date is essential:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Dynamic Vulnerability Landscape&lt;/strong&gt;: Vulnerabilities are constantly evolving. New information about exploitability emerges, patches get released, and attack techniques change. Outdated VEX documents based on old data can lead to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Misinformed decision-making: Basing critical security decisions on inaccurate information about exploitability.Misdirected efforts: Wasting time and resources patching vulnerabilities that are no longer exploitable.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Unpatched critical vulnerabilities: Leaving actual exploitable vulnerabilities unaddressed, increasing security risk.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Evolving Threat Landscape&lt;/strong&gt;: Attackers constantly refine their techniques to exploit vulnerabilities. Keeping VEX documents current ensures you&#39;re aware of the latest exploitability information and can prioritize patching accordingly. This minimizes the window of opportunity for attackers and helps you stay ahead of evolving threats.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Improved Collaboration&lt;/strong&gt;: Regular updates keep all stakeholders in the software supply chain on the same page. This facilitates better communication, coordination, and collaboration on vulnerability remediation efforts. Sharing accurate and timely VEX information fosters trust and transparency within the ecosystem.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Better Risk Management&lt;/strong&gt;: Accurate VEX data empowers you to make informed decisions about risk mitigation strategies. You can allocate resources efficiently, prioritize patches based on actual exploitability, and focus on the vulnerabilities that pose the greatest immediate threat. This proactive approach minimizes potential damage and reduces overall security risk.&lt;/p&gt;&lt;p&gt;Refreshing VEX documents regularly can be automated using Kubescape and integrated into existing vulnerability management processes. This ensures a continuous flow of accurate information, enabling proactive risk management and informed decision-making.&lt;/p&gt;&lt;p&gt;Remember, VEX is only as valuable as its data. Keep it fresh, keep it accurate, and stay ahead of the changing vulnerability landscape&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;In this post we introduced the concept of VEX and that some open source scanners can use VEX to give more precise vulnerability scan results. Results that help lighten the load of figuring out which vulnerabilities need to be patch now.&lt;/p&gt;&lt;p&gt;However, to date, VEX adoption is still slow, due to the fact that generating VEX documents, especially those using the OpenVEX standard, is not yet straightforward or automated.&lt;/p&gt;&lt;p&gt;Kubescape is the first open source project that supports auto-generation of VEX documents. These documents can be used in the Kubescape scanner itself, or ingested by other open source scanners, like Grype and Trivy.&lt;/p&gt;&lt;p&gt;So, next time your vulnerability scanner spews an endless list of vulnerabilities whose dependencies you now need to investigate, try Kubescape to lighten the load. &lt;/p&gt;&lt;p&gt;To follow additional developments in open source Kubernetes security, check out the Kubescape GitHub repo, follow us on X (formerly known as Twitter), or join the community channels (#kubescape, #kubescape-dev) on the CNCF Slack.&lt;/p&gt;&lt;h2&gt;Join the Kubescape community&lt;/h2&gt;&lt;p&gt;We welcome your feedback and ideas for improvement. We hold &lt;a href=&#34;https://kubescape.io/project/community/#monthly-meeting&#34;&gt;community meetings&lt;/a&gt; on Zoom, on the first Tuesday of every month, at 14:00 GMT.&lt;/p&gt;&lt;p&gt;Thanks to all our contributors! Check out our &lt;a href=&#34;https://github.com/kubescape/kubescape/blob/master/CONTRIBUTING.md&#34;&gt;CONTRIBUTING&lt;/a&gt; file to learn how to join them.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Feel free to pick a task from the &lt;a href=&#34;https://github.com/kubescape/kubescape/issues?q=is%3Aissue+is%3Aopen+label%3A%22open+for+contribution%22&#34;&gt;good first issue list&lt;/a&gt; and suggest a design&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://github.com/kubescape/kubescape/issues/new/choose&#34;&gt;Open an issue&lt;/a&gt;: we aim to respond to all issues within 48 hours&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://slack.cncf.io/&#34;&gt;Join the CNCF Slack&lt;/a&gt; and then our &lt;a href=&#34;https://cloud-native.slack.com/archives/C04EY3ZF9GE&#34;&gt;users&lt;/a&gt; or &lt;a href=&#34;https://cloud-native.slack.com/archives/C04GY6H082K&#34;&gt;developers&lt;/a&gt; channel&lt;/li&gt;&lt;li&gt;Don’t forget to leave a star on our &lt;a href=&#34;https://github.com/kubescape/kubescape&#34;&gt;repository&lt;/a&gt;: it means the world to us!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The Kubescape project follows the &lt;a href=&#34;https://github.com/cncf/foundation/blob/master/code-of-conduct.md&#34;&gt;CNCF Code of Conduct&lt;/a&gt;.&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/12/07/kubescape-support-for-vex-generation/</link> <pubDate>Thu, 07 Dec 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/12/07/kubescape-support-for-vex-generation/</guid> </item> <item> <title>Kubescape 3.0: The Capabilties System &amp; Continuous Scanning</title> <author>vladklokun</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape 3.0: The Capabilties System &amp;amp; Continuous Scanning&lt;/h1&gt;&lt;p&gt;Kubescape 3.0 is laden with new functionality. In this blog post, we will introduce you to two new and complementary features. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The new &lt;strong&gt;Capabilities&lt;/strong&gt; system&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The &lt;strong&gt;Continuous Scanning&lt;/strong&gt; feature&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Watch a short video for a demonstration of these features in action, or read on.&lt;/p&gt;&lt;div class=&#34;video-wrapper&#34;&gt; &lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/KkJhEzcLw6k?si=7wLenc1TSm7LaCn2&#34; title=&#34;YouTube video player&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;!-- more --&gt;&lt;h2&gt;What’s new and how to?&lt;/h2&gt;&lt;h3&gt;The Capabilities System&lt;/h3&gt;&lt;p&gt;The Capabilities system allows you to customize Kubescape&#39;s functionality according to your needs. You can enable or disable specific features such as Vulnerability and Configuration scanning, Relevancy, and Continuous Scanning. To do so, you just need to edit the values.yaml file and set the corresponding keys to enable or disable.&lt;/p&gt;&lt;figure markdown&gt; ![Capabilities](capabilities.png){ width=&#34;600&#34; } &lt;figcaption&gt;Example of capabilities YAML&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;Continuous Scanning&lt;/h3&gt;&lt;p&gt;One of the features you can enable with the Capabilities system is Continuous Scanning. This enables Kubescape to monitor your cluster&#39;s security posture continuously. Whenever a new resource is added to the cluster, Kubescape will automatically trigger a security scan and report the results. This way, you can always have the most up-to-date information about the state of your cluster&#39;s security.&lt;/p&gt;&lt;p&gt;To use Continuous Scanning, you need to install Kubescape and set the &lt;em&gt;continuousScan&lt;/em&gt; key to &lt;em&gt;enable&lt;/em&gt;&lt;/p&gt;&lt;p&gt;```yaml&lt;/p&gt;&lt;p&gt;capabilities:&lt;/p&gt;&lt;p&gt;continuousScan: enable # Make sure this is set to &#34;enable&#34;&lt;/p&gt;&lt;p&gt;```&lt;/p&gt;&lt;p&gt;Once enabled, the Continuous Scan feature will only scan according to additional capabilities defined by you. In the example below, we have enabled all the capabilities for the continuous scan.&lt;/p&gt;&lt;p&gt;```yaml&lt;/p&gt;&lt;p&gt;capabilities:&lt;/p&gt;&lt;p&gt;relevancy: enable&lt;/p&gt;&lt;p&gt;configurationScan: enable&lt;/p&gt;&lt;p&gt;vulnerabilityScan: enable&lt;/p&gt;&lt;p&gt;nodeScan: enable&lt;/p&gt;&lt;p&gt;&lt;code&gt;After installing Kubescape with Continuous Scanning enabled, you can access the scan results as Custom Resources with the Kubernetes API. You can list all the scan results in your cluster by running the following command:&lt;/code&gt;kubectl get workloadconfigurationscans -n default```To view a specific scan result in more detail, you can run this, more specific, command:&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubectl get workloadconfigurationscans -n default {YOUR_RESOURCE_NAME} -o yaml | less&lt;/code&gt;With these commands, you can see how Kubescape evaluates your cluster&#39;s security based on the best practices from NSA and MITRE.&lt;/p&gt;&lt;h1&gt;Conclusion&lt;/h1&gt;&lt;p&gt;Kubescape 3.0’s new Capabilities system and Continuous Scanning feature are powerful tools that offer customization and continuous monitoring of your cluster’s security posture. By enabling specific capabilities, you can tailor Kubescape to your needs and ensure you always have the most current information about your cluster’s security. &lt;/p&gt;&lt;p&gt;The ability to access scan results as Custom Resources with the Kubernetes API, will increase your understanding of how Kubescape evaluates your cluster’s security based on the best practices from leading frameworks, such as, NSA-CISA and MITRE ATT&amp;amp;CK. We encourage you to explore these features and share your experiences with us. Stay tuned for more updates and keep your clusters safe and secure with Kubescape.&lt;/p&gt;&lt;p&gt;Please feel free to &lt;a href=&#34;https://github.com/kubescape/kubescape/issues&#34;&gt;raise any issues in the Kubescape GitHub project&lt;/a&gt; or ask questions &lt;a href=&#34;https://kubescape.io/project/community/#slack&#34;&gt;in our Slack channel&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Are you enjoying Kubescape? &lt;a href=&#34;https://kubescape.io/project/survey/&#34;&gt;Please fill in our user survey!&lt;/a&gt;&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/11/06/kubescape-3-capablities-continuous-scanning/</link> <pubDate>Mon, 06 Nov 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/11/06/kubescape-3-capablities-continuous-scanning/</guid> </item> <item> <title>Kubescape 3.0: Introducing Workload Scanning</title> <author>vladklokun</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape 3.0: Introducing Workload Scanning&lt;/h1&gt;&lt;p&gt;Kubescape 3.0 introduces workload scanning, which allows you to comprehensively report on the security posture of individual workloads running in a Kubernetes cluster. This includes both misconfiguration and vulnerability scanning. This scan results in information that gives a 360° assessment of your workload’s security posture.&lt;/p&gt;&lt;p&gt;Watch a short video for a demonstration of workload scanning and its benefits, or read on.&lt;/p&gt;&lt;div class=&#34;video-wrapper&#34;&gt; &lt;iframe width=&#34;640&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/N13jDFBAy7w?si=6KC2njGeCbSfzZRJ&#34; title=&#34;YouTube video player&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;!-- more --&gt;&lt;h2&gt;What’s new and how to?&lt;/h2&gt;&lt;p&gt;To scan a workload, simply run the following command:&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubescape scan workload -n &amp;lt;namespace&amp;gt; &amp;lt;kind&amp;gt;/&amp;lt;name&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;For example, to scan a Deployment named &#34;my-deployment&#34;, you would run the following command:&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubescape scan workload Deployment/my-deployment&lt;/code&gt;&lt;/p&gt;&lt;h2&gt;Workload configuration scanning&lt;/h2&gt;&lt;p&gt;At the top of the scan results, you will see the configuration scan results. These results are grouped by specific areas of concerns, such as security, networking, and secrets.&lt;/p&gt;&lt;p&gt;Kubescape also provides links to documentation for each misconfiguration, so that you can easily learn more about the issue and how to fix it.&lt;/p&gt;&lt;figure markdown&gt; ![WL config scan results](wl-config-scan-results.png){ width=&#34;600&#34; } &lt;figcaption&gt;Configuration scan results in the Kubescape CLI&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;Workload vulnerability scanning&lt;/h2&gt;&lt;p&gt;In addition to configuration scanning, Kubescape 3.0 also scans the images that your workloads run. This is important because container images are often the weakest link in the security chain.&lt;/p&gt;&lt;p&gt;If Kubescape finds any vulnerabilities in the images that your workloads run, it will display the results in the &#34;Vulnerabilities&#34; section of the scan results.&lt;/p&gt;&lt;figure markdown&gt; ![Vulnerability summary](vulnerability-summary.png){ width=&#34;600&#34; } &lt;figcaption&gt;Image scan results in the Kubescape CLI&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;A helping hand&lt;/h2&gt;&lt;p&gt;Security scan results can be overwhelming and confusing. To lighten this cognitive load and ensure that you make the greatest security impact with your work, Kubescape also provides a &#34;What Now?&#34; section. It provides concrete steps on how to improve the security of the workload. For example, Kubescape may suggest running a more detailed image scan or reviewing the documentation for a particular control.&lt;/p&gt;&lt;figure markdown&gt; ![What now](what-now.png){ width=&#34;600&#34; } &lt;figcaption&gt;Guided next steps in the &#34;What now?&#34; section&lt;/figcaption&gt;&lt;/figure&gt;&lt;h1&gt;Benefits&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comprehensive scanning&lt;/strong&gt;: Kubescape scans workloads for both misconfigurations and vulnerabilities, giving you a complete view of their security posture with a single command.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easy to use&lt;/strong&gt;: Kubescape&#39;s CLI is simple and intuitive to use, making it easy to scan workloads and understand the results.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Actionable insights&lt;/strong&gt;: Kubescape provides clear and concise explanations of each issue, as well as links to documentation on how to fix it.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;CI/CD integration&lt;/strong&gt;: Kubescape can be easily integrated into CI/CD pipelines to stop broken images from being deployed.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;Conclusion&lt;/h1&gt;&lt;p&gt;Workloads are at the heart of what you do. They hold the business value you bring your customers. They should be secure. A holistic view of your workload security, with clear guidelines on how to patch security issues and which issues to address first is key. Make the most of your security engineering time with Kubescape workload scanning. Try Kubescape today!&lt;/p&gt;&lt;p&gt;Please feel free to &lt;a href=&#34;https://github.com/kubescape/kubescape/issues&#34;&gt;raise any issues in the Kubescape GitHub project&lt;/a&gt; or ask questions &lt;a href=&#34;https://kubescape.io/project/community/#slack&#34;&gt;in our Slack channel&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Are you enjoying Kubescape? &lt;a href=&#34;https://kubescape.io/project/survey/&#34;&gt;Please fill in our user survey!&lt;/a&gt;&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/10/23/kubescape-3-workload-scanning/</link> <pubDate>Mon, 23 Oct 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/10/23/kubescape-3-workload-scanning/</guid> </item> <item> <title>Kubescape 3.0: Introducing Image Scanning</title> <author>vladklokun</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape 3.0: Introducing Image Scanning&lt;/h1&gt;&lt;p&gt;In previous versions, Kubescape supported vulnerability scanning inside a cluster. We’ve brought this feature to the Kubescape command line in 3.0.&lt;/p&gt;&lt;p&gt;Watch a short video for a demonstration of image scanning from the Kubescape CLI and its benefits, or read on.&lt;/p&gt;&lt;div class=&#34;video-wrapper&#34;&gt; &lt;iframe width=&#34;640&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/rjLL_5F41Oc?si=X5XLkMLBpzTQl5FK&#34; title=&#34;YouTube video player&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;!-- more --&gt;&lt;h2&gt;What’s new and how to?&lt;/h2&gt;&lt;h3&gt;Scanning an image in the Kubescape CLI&lt;/h3&gt;&lt;p&gt;To scan an image, simply run the following command:&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubescape scan image&lt;/code&gt;&lt;/p&gt;&lt;p&gt;Kubescape will then scan the image for vulnerabilities and show you the results. &lt;/p&gt;&lt;figure markdown&gt; ![Image scan](image-scan-results.png){ width=&#34;600&#34; } &lt;figcaption&gt;Result of image vulnerability scanning in Kubescape&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;The results include the following information:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The most pressing vulnerabilities in the image&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The most vulnerable components&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A link to the documentation for each vulnerability&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you would like to see all the vulnerabilities, regardless of severity, you can run the command in verbose mode with the -v flag.&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubescape scan image --verbose&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The initial scan can take a while, as it is a comprehensive scan of everything. Subsequent scans are much quicker, so you can easily scan your images as part of your CI/CD pipeline.&lt;/p&gt;&lt;h2&gt;Adding scans to your CI/CD pipelines&lt;/h2&gt;&lt;p&gt;Having said that, the use case for security in CI/CD pipelines is not only about speed. To support this we extended our severity threshold flag to support image scanning. Just indicate the severity you would like to fail on, and Kubescape will fail your runs on them.&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubescape scan image my-image:latest --severity-threshold high&lt;/code&gt;&lt;/p&gt;&lt;p&gt;We believe that image scanning is an essential part of any Kubernetes security strategy. We encourage you to try it out and see for yourself how it can help you keep your images safe.&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Image scanning is key to maintaining a tight security posture. It is now available on Kubescape and can be run via the CLI or embedded into your CI/CD pipelines. To learn more, please visit the &lt;a href=&#34;https://kubescape.io/docs&#34;&gt;Kubescape documentation&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Feel free to &lt;a href=&#34;https://github.com/kubescape/kubescape/issues&#34;&gt;raise any issues in the Kubescape GitHub project&lt;/a&gt; or ask questions &lt;a href=&#34;https://kubescape.io/project/community/#slack&#34;&gt;in our Slack channel&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Are you enjoying Kubescape? &lt;a href=&#34;https://kubescape.io/project/survey/&#34;&gt;Please fill in our user survey!&lt;/a&gt;&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/10/12/kubescape-3-image-scanning/</link> <pubDate>Thu, 12 Oct 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/10/12/kubescape-3-image-scanning/</guid> </item> <item> <title>Kubescape 3.0: CLI improvements</title> <author>vladklokun</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Kubescape 3.0: CLI improvements&lt;/h1&gt;&lt;p&gt;In the latest release of Kubescape, we completely overhauled the CLI experience to make it easier and faster for you to improve the security of your clusters.&lt;/p&gt;&lt;p&gt;Watch a short video for a demonstration of the new CLI and its benefits, or read on.&lt;/p&gt;&lt;div class=&#34;video-wrapper&#34;&gt; &lt;iframe width=&#34;640&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/ul5Wry6sS8w?si=V8CStezYDZa_4Dtd&#34; title=&#34;YouTube video player&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;!-- more --&gt;&lt;h2&gt;What’s new?&lt;/h2&gt;&lt;h3&gt;Cluster overview scan&lt;/h3&gt;&lt;p&gt;The new cluster overview/baseline security scan is designed to lessen the shock of being overrun by an overwhelming number of compliance and vulnerability errors identified by Kubescape. It helps you focus on the most important information. &lt;/p&gt;&lt;p&gt;The results are now structured in a way that presents you with the highest-value information from the get-go: your compliance score against the most popular security frameworks as well as the steps to safely go down the security rabbit hole without getting lost.&lt;/p&gt;&lt;p&gt;The overview scan performs some key security checks and then shows you the number of resources which have certain permissions. You are then able to set up &lt;a href=&#34;https://kubescape.io/docs/accepting-risk/&#34;&gt;risk acceptance rules&lt;/a&gt; to allow for things which are deliberately installed or configured about your cluster.&lt;/p&gt;&lt;p&gt;For example, malware in a cluster will often attempt to create a cluster admin role, or a role with permissions that approximates that. With the Kubescape overview scan, you can identify which roles you have installed that should have these permissions, and then easily see, or be notified, when the configuration changes from your secure baseline.&lt;/p&gt;&lt;figure markdown&gt; ![New CLI output](kubescape-3-0-cli-showcase.png){ width=&#34;600&#34; } &lt;figcaption&gt;Kubescape’s new default CLI output is the cluster overview/baseline scan.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Before the quick summary sections are summary tables for each security concern of your cluster: controls related to the workloads running in the cluster, your cluster’s networking, secrets, access control and control plane behaviors.&lt;/p&gt;&lt;figure markdown&gt; ![Examples of cluster overview scan summary tables per concern](summary-tables-per-concern.png){ width=&#34;600&#34; } &lt;figcaption&gt;Examples of cluster overview scan summary tables per concern&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;Quick pointer to highest-stake workloads&lt;/h3&gt;&lt;p&gt;To help you focus on what matters most, Kubescape provides you with a quick pointer to your highest-stake workloads – &lt;strong&gt;those posing the highest risk AND providing the highest reward&lt;/strong&gt; &lt;strong&gt;for remediation&lt;/strong&gt; – as well as a Kubescape command to immediately investigate them.&lt;/p&gt;&lt;figure markdown&gt; ![List of highest stakes workloads in the cluster overview scan](highest-stakes-workloads.png){ width=&#34;600&#34; } &lt;figcaption&gt;List of highest stakes workloads in the cluster overview scan&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;Ready-made commands for deep exploration of failed controls&lt;/h3&gt;&lt;p&gt;For sections other than the Control Plane, Kubescape provides you with ready-made commands to continue to explore the failed control. &lt;/p&gt;&lt;p&gt;If you’re concerned about one of your results and would like to investigate it further, just run the command Kubescape gives you and scan for the control in question. These commands appear in the “View details” column in the summary tables, as depicted in the screenshot above.&lt;/p&gt;&lt;h3&gt;Image scanning&lt;/h3&gt;&lt;p&gt;To make Kubescape a complete one-stop shop for Kubernetes security, we introduced image scanning to the command line tool. &lt;/p&gt;&lt;p&gt;Image scanning allows you to scan your container images for vulnerabilities, even if they are not running in a cluster. This is a valuable feature for ensuring that your images are secure before you deploy them to your clusters.&lt;/p&gt;&lt;p&gt;To use image scanning, simply run the following command:&lt;/p&gt;&lt;p&gt;&lt;code&gt;kubescape image scan &amp;lt;image&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;Kubescape will then scan the image for vulnerabilities and provide you with a report.&lt;/p&gt;&lt;figure markdown&gt; ![Result of image vulnerability scanning](image-scan-results.png){ width=&#34;600&#34; } &lt;figcaption&gt;Result of image vulnerability scanning&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;The new functionality in the Kubescape 3.0 CLI will make it easier and faster for you to improve the security of your Kubernetes clusters. Try it out today and let us know what you think!&lt;/p&gt;&lt;p&gt;Please feel free to &lt;a href=&#34;https://github.com/kubescape/kubescape/issues&#34;&gt;raise any issues in the Kubescape GitHub project&lt;/a&gt; or ask questions &lt;a href=&#34;https://kubescape.io/project/community/#slack&#34;&gt;in our Slack channel&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Are you enjoying Kubescape? &lt;a href=&#34;https://kubescape.io/project/survey/&#34;&gt;Please fill in our user survey!&lt;/a&gt;&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/10/01/kubescape-3-cli-improvements/</link> <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/10/01/kubescape-3-cli-improvements/</guid> </item> <item> <title>Introducing Kubescape 3.0</title> <author>craigbox</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Introducing Kubescape 3.0&lt;/h1&gt;&lt;p&gt;We are excited to announce the preview release of Kubescape 3.0, the next generation of the CNCF &lt;a href=&#34;https://www.armosec.io/glossary/kubernetes-security-posture-management/&#34;&gt;Kubernetes security posture management&lt;/a&gt; tool.&lt;/p&gt;&lt;p&gt;Kubescape 3.0 will add:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Compliance and container scan results stored as Kubernetes resources inside the cluster&lt;/li&gt;&lt;li&gt;Scanning container images for vulnerabilities from the CLI&lt;/li&gt;&lt;li&gt;Reporting on the vulnerabilities of all the images in a cluster &lt;/li&gt;&lt;li&gt;A new overview security scan, which helps you set a baseline for cluster security&lt;/li&gt;&lt;li&gt;Highlighting of high-risk workloads: those that could do the most damage if they are compromised&lt;/li&gt;&lt;li&gt;Improved display output&lt;/li&gt;&lt;li&gt;A new capability-based Helm chart&lt;/li&gt;&lt;li&gt;Per workload, per namespace and per cluster Prometheus metrics&lt;/li&gt;&lt;li&gt;Alerting through Prometheus Alertmanager&lt;/li&gt;&lt;li&gt;Sending data outside the cluster to hosted services&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Most of these features have landed already, with some being finished over the next few weeks.&lt;/p&gt;&lt;p&gt;!!! note &#34;&lt;em&gt;&lt;a href=&#34;https://kubescape.io/project/survey/&#34;&gt;Are you running Kubescape? Want to help us get to incubation in the CNCF? Please help us by filling in our three-question survey!&lt;/a&gt;&lt;/em&gt;&#34;&lt;/p&gt;&lt;!-- more --&gt;&lt;h2&gt;How we got here&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;http://kubescape.io/&#34;&gt;Kubescape&lt;/a&gt; launched in September 2021 as a tool for validating a cluster against the NSA hardening guidance that had been issued under a month before. As Kubescape’s original creators &lt;a href=&#34;https://armosec.io/&#34;&gt;ARMO&lt;/a&gt; built out their hosted offering, the maintainers added features to Kubescape to support that product, including vulnerability scanning and analysis of access control rules. That data was only available through ARMO’s commercial product.&lt;/p&gt;&lt;p&gt;The Kubescape project was donated to the Cloud Native Computing Foundation in 2022. Now, as a CNCF project, we’ve brought key functionality in-cluster, exposing security data in a Kubernetes-native format and enabling more DevOps-focused use cases. &lt;/p&gt;&lt;h2&gt;New features&lt;/h2&gt;&lt;h3&gt;Configuration scan results stored in-cluster&lt;/h3&gt;&lt;p&gt;Kubescape can scan running clusters in two ways: with an in-cluster agent installed via a Helm chart, or “agent-free” using the command line tool. In previous versions, the result data from in-cluster scans was only available to be sent to the ARMO service.&lt;/p&gt;&lt;p&gt;In Kubescape 3.0 we have added in-cluster storage for scan results. With the Kubescape in-cluster components installed, you will be able to see your scan results in &lt;code&gt;ConfigurationScanSummary&lt;/code&gt; and &lt;code&gt;WorkloadConfigurationScanSummary&lt;/code&gt; objects . Watch for enhancements in this area, including continuous scanning, where results are updated as resources change.&lt;/p&gt;&lt;h3&gt;Vulnerability scanning, in-cluster and in the CLI&lt;/h3&gt;&lt;p&gt;In previous versions, Kubescape supported vulnerability scanning inside a cluster. We’ve brought this feature to the Kubescape command line in 3.0.&lt;/p&gt;&lt;figure markdown&gt; ![Scanning a single image in Kubescape 3.0](/blog/introducing-kubescape-3/scan-image.png){ width=&#34;600&#34; } &lt;figcaption&gt;The UX for scanning a single image in Kubescape. Output can be in tabular or `VulnerabilityManifest` JSON format&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Bringing our image scanning to the command line unlocks many great use cases. You can scan a manifest file in a CI pipeline, and flag or reject it based on the number and class of vulnerabilities in the containers that will be installed. You can also use the CLI to scan an individual image and get output in the same JSON format as the in-cluster objects.&lt;/p&gt;&lt;p&gt;Our in-cluster agent previously had support for scanning the images in a Kubernetes cluster. We have extended that support to include exposing these results in-cluster with &lt;code&gt;VulnerabilityManifestSummary&lt;/code&gt; objects, with full SBOM and vulnerability information in related &lt;code&gt;VulnerabilityManifest&lt;/code&gt; objects. including software bills of materials (SBOMs) for each container, and filtered output using the Kubescape relevancy engine.&lt;/p&gt;&lt;p&gt;&lt;code&gt;yaml{ &#34;apiVersion&#34;: &#34;spdx.softwarecomposition.kubescape.io/v1beta1&#34;, &#34;kind&#34;: &#34;VulnerabilityManifestSummary&#34;, &#34;metadata&#34;: { &#34;annotations&#34;: { &#34;kubescape.io/image-id&#34;: &#34;nginx@sha256:6926dd802f40e5e7257fded83e0d8030039642e4e10c4a98a6478e9c6fe06153&#34;, &#34;kubescape.io/status&#34;: &#34;&#34;, &#34;kubescape.io/wlid&#34;: &#34;wlid://cluster-docker-desktop/namespace-default/deployment-nginx-deployment&#34;, &#34;kubescape.io/workload-container-name&#34;: &#34;nginx&#34; }, &#34;creationTimestamp&#34;: &#34;2023-09-18T08:37:38Z&#34;, &#34;labels&#34;: { &#34;kubescape.io/context&#34;: &#34;non-filtered&#34;, &#34;kubescape.io/image-id&#34;: &#34;nginx-sha256-6926dd802f40e5e7257fded83e0d8030039642e4e10c4a98a6&#34;, &#34;kubescape.io/image-name&#34;: &#34;nginx&#34;, &#34;kubescape.io/workload-api-group&#34;: &#34;apps&#34;, &#34;kubescape.io/workload-api-version&#34;: &#34;v1&#34;, &#34;kubescape.io/workload-container-name&#34;: &#34;nginx&#34;, &#34;kubescape.io/workload-kind&#34;: &#34;Deployment&#34;, &#34;kubescape.io/workload-name&#34;: &#34;nginx-deployment&#34;, &#34;kubescape.io/workload-namespace&#34;: &#34;default&#34; }, &#34;name&#34;: &#34;Deployment-nginx-deployment-nginx&#34;, &#34;namespace&#34;: &#34;default&#34;, &#34;resourceVersion&#34;: &#34;1&#34;, &#34;uid&#34;: &#34;3aea854d-8eea-4b8b-8a99-6472d3bc0521&#34; }, &#34;spec&#34;: { &#34;severities&#34;: { &#34;critical&#34;: { &#34;all&#34;: 0, &#34;relevant&#34;: 0 }, &#34;high&#34;: { &#34;all&#34;: 4, &#34;relevant&#34;: 0 }, &#34;low&#34;: { &#34;all&#34;: 4, &#34;relevant&#34;: 0 }, &#34;medium&#34;: { &#34;all&#34;: 23, &#34;relevant&#34;: 0 }, &#34;negligible&#34;: { &#34;all&#34;: 72, &#34;relevant&#34;: 0 }, &#34;unknown&#34;: { &#34;all&#34;: 10, &#34;relevant&#34;: 0 } }, &#34;vulnerabilitiesRef&#34;: { &#34;all&#34;: { &#34;kind&#34;: &#34;vulnerabilitymanifests&#34;, &#34;name&#34;: &#34;nginx-e06153&#34;, &#34;namespace&#34;: &#34;default&#34; }, &#34;relevant&#34;: { &#34;kind&#34;: &#34;&#34;, &#34;name&#34;: &#34;&#34;, &#34;namespace&#34;: &#34;&#34; } } }, &#34;status&#34;: {}}&lt;/code&gt;&lt;/p&gt;&lt;h3&gt;New scan modes&lt;/h3&gt;&lt;p&gt;We have introduced a new cluster overview/baseline security scan, which performs some key security checks and then shows you the number of resources which have certain permissions. You are then able to set up risk acceptance rules to allow for things which are deliberately installed or configured about your cluster.&lt;/p&gt;&lt;p&gt;For example, malware in a cluster will often attempt to create a cluster admin role, or a role with permissions that approximates that. With the Kubescape baseline scan, you can identify which roles you have installed that should have these permissions, and then easily see, or be notified, when the configuration changes from your secure baseline.&lt;/p&gt;&lt;p&gt;If you would like to preview the new security scan mode, update Kubescape to the latest version (2.9.x) and try &lt;code&gt;kubescape scan --view=security&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;This scan will become the default behavior of &lt;code&gt;kubescape scan&lt;/code&gt; in the coming weeks. You can access the previous default by running &lt;code&gt;kubescape scan framework allcontrols,nsa,mitre&lt;/code&gt;.&lt;/p&gt;&lt;figure markdown&gt; ![The new overview security scan](/blog/introducing-kubescape-3/security-scan.png){ width=&#34;600&#34; } &lt;figcaption&gt;The new overview security scan. Use Kubescape&#39;s risk acceptance feature to get all the scores down to 0, and then anything above this represents an issue worth investigating.&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;Enhancements to monitoring and alerting&lt;/h3&gt;&lt;p&gt;Now we have data in the cluster regarding the configuration and vulnerability status of your environment, we can make this available through Prometheus. Our wonderful LFX mentorship students &lt;a href=&#34;https://github.com/0xt3j4s&#34;&gt;Tejas Jamdade&lt;/a&gt; and &lt;a href=&#34;https://github.com/yrs147&#34;&gt;Yash Raj Singh&lt;/a&gt; have been building a Prometheus exporter and dashboards. These will allow you to look at control failures and vulnerabilities at a workload, namespace or cluster level, as well as setting up &lt;a href=&#34;https://prometheus.io/docs/alerting/latest/alertmanager/&#34;&gt;Alertmanager&lt;/a&gt; to inform you when security problems exceed a configurable threshold.&lt;/p&gt;&lt;h3&gt;Third-party cluster data services&lt;/h3&gt;&lt;p&gt;Good security practice is to store security information regarding a cluster outside of that cluster, so that it cannot be altered in the event of an attack.&lt;/p&gt;&lt;p&gt;As part of our commitment to vendor neutrality as a CNCF project, we have updated support for submitting data outside the cluster it is collected from. Previously, this feature was tightly coupled to the service operated by Kubescape’s creators. With Kubescape 3.0, we are fully documenting the APIs required for operating a Kubescape-compatible service, and allowing submission to any URL that is running a compliant service.&lt;/p&gt;&lt;h3&gt;Capabilities-based in-cluster installation&lt;/h3&gt;&lt;p&gt;With all our new in-cluster features, we’ve made it easy to enable and disable them in our Helm chart. You can now configure configuration scanning, vulnerability scanning, relevancy, and the node scanner in the &lt;code&gt;values.yaml&lt;/code&gt; file:&lt;/p&gt;&lt;p&gt;&lt;code&gt;yamlcapabilities: relevancy: enable configurationScan: enable continuousScan: disable vulnerabilityScan: enable nodeScan: enable&lt;/code&gt;&lt;/p&gt;&lt;h3&gt;Other new features&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&#34;https://github.com/GoogleContainerTools/distroless&#34;&gt;distroless&lt;/a&gt; base images for added security&lt;/li&gt;&lt;li&gt;New eBPF engine, for lower resource consumption and improved kernel compatibility&lt;/li&gt;&lt;li&gt;Experimental support for &lt;a href=&#34;https://github.com/kubescape/kubescape/pull/1332&#34;&gt;patching container images&lt;/a&gt; (thanks to LFX mentorship student &lt;a href=&#34;https://github.com/anubhav06&#34;&gt;Anubhav Gupta&lt;/a&gt;) &lt;/li&gt;&lt;li&gt;Much nicer color and table output (thanks to contributor &lt;a href=&#34;https://github.com/XDRAGON2002&#34;&gt;Anant Vijay&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Improvements for empty scans and scanning deleted resources&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Kubescape 3.1 and beyond&lt;/h2&gt;&lt;p&gt;We’re certainly not done here! For the rest of the year we will be finishing off our compliance and vulnerability scanning roadmap, including an in-cluster UI for better visualization of the saved results.&lt;/p&gt;&lt;figure markdown&gt; ![Kubescape 3.1 UI preview](/blog/introducing-kubescape-3/ui-preview.png){ width=&#34;600&#34; } &lt;figcaption&gt;A work-in-progress look at what we’re building for the in-cluster UI. The final UI will probably be much different (and much better!)&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2&gt;Join the Kubescape community&lt;/h2&gt;&lt;p&gt;We welcome your feedback and ideas for improvement. We hold &lt;a href=&#34;https://kubescape.io/project/community/#monthly-meeting&#34;&gt;community meetings&lt;/a&gt; on Zoom, on the first Tuesday of every month, at 14:00 GMT.&lt;/p&gt;&lt;p&gt;Thanks to all our contributors! Check out our &lt;a href=&#34;https://github.com/kubescape/kubescape/blob/master/CONTRIBUTING.md&#34;&gt;CONTRIBUTING&lt;/a&gt; file to learn how to join them.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Feel free to pick a task from the &lt;a href=&#34;https://github.com/kubescape/kubescape/issues?q=is%3Aissue+is%3Aopen+label%3A%22open+for+contribution%22&#34;&gt;good first issue list&lt;/a&gt; and suggest a design&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://github.com/kubescape/kubescape/issues/new/choose&#34;&gt;Open an issue&lt;/a&gt;: we aim to respond to all issues within 48 hours&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;https://slack.cncf.io/&#34;&gt;Join the CNCF Slack&lt;/a&gt; and then our &lt;a href=&#34;https://cloud-native.slack.com/archives/C04EY3ZF9GE&#34;&gt;users&lt;/a&gt; or &lt;a href=&#34;https://cloud-native.slack.com/archives/C04GY6H082K&#34;&gt;developers&lt;/a&gt; channel&lt;/li&gt;&lt;li&gt;Don’t forget to leave a star on our &lt;a href=&#34;https://github.com/kubescape/kubescape&#34;&gt;repository&lt;/a&gt;: it means the world to us!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The Kubescape project follows the &lt;a href=&#34;https://github.com/cncf/foundation/blob/master/code-of-conduct.md&#34;&gt;CNCF Code of Conduct&lt;/a&gt;.&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/09/19/introducing-kubescape-3/</link> <pubDate>Tue, 19 Sep 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/09/19/introducing-kubescape-3/</guid> </item> <item> <title>Happy second birthday, Kubescape!</title> <author>slashben</author> <category>Announcements</category> <category>Project</category> <description>&lt;h1&gt;Happy second birthday, Kubescape!&lt;/h1&gt;&lt;p&gt;What do you get a piece of software for its second birthday? A brand-new blog, of course! And cake. More on the cake later.&lt;/p&gt;&lt;p&gt;Kubescape is an open-source Kubernetes security platform that helps you identify and fix security risks, misconfigurations and vulnerabilities in your Kubernetes clusters. It is a powerful tool that can save you time and effort, and help you keep your Kubernetes deployments secure.&lt;/p&gt;&lt;!-- more --&gt;&lt;p&gt;I co-founded ARMO, the creators of Kubescape, with the idea of bringing runtime security to Kubernetes deployments. As security engineers, we went to CISOs and security teams at enterprises and asked them what they needed. They told us that the Kubernetes deployments were the responsibility of the DevOps teams, and we should go talk to them.&lt;/p&gt;&lt;p&gt;The DevOps teams we spoke to had a whole different set of problems than the one we set out to solve. They were concerned by the hundreds of configuration options available in Kubernetes. They wanted tools to manage their security posture, reduce the amount of work to engineer and validate secure applications, and validate that their environments were compliant with industry best practices. They also emphasized the importance of these tools being available for immediate download, being open source, and being part of the larger Cloud Native community.&lt;/p&gt;&lt;p&gt;We heard you loud and clear, and in September 2021 we launched Kubescape. That means we’re now two years old!&lt;/p&gt;&lt;p&gt;The &lt;a href=&#34;https://www.cncf.io/blog/2021/09/03/kubescape-the-first-open-source-tool-for-running-nsa-and-cisa-kubernetes-hardening-tests/&#34;&gt;initial version of Kubescape&lt;/a&gt; let you validate your cluster against the then-recently published NSA and CISA Kubernetes hardening guidelines. Further releases added &lt;a href=&#34;https://www.businesswire.com/news/home/20211012005814/en/ARMO-Launches-Expanded-Version-of-Kubescape-World%E2%80%99s-First-Open-Source-Kubernetes-Testing-Tool-Compliant-with-NSA-CISA-Hardening-Guidance&#34;&gt;support for the MITRE ATT&amp;amp;CK framework&lt;/a&gt; and &lt;a href=&#34;https://www.prnewswire.com/il/news-releases/armo-adds-cis-benchmark-to-kubescape-to-boost-kubernetes-security-and-compliance-scanning-301660019.html&#34;&gt;CIS benchmarks&lt;/a&gt;, and the security library now includes over 230 controls to validate your security posture.&lt;/p&gt;&lt;p&gt;We also added support for vulnerability scanning, allowing you to check for CVEs in your running containers or in a container registry, and recently added a &lt;a href=&#34;https://www.armosec.io/blog/kubernetes-vulnerability-relevancy-and-prioritization/&#34;&gt;capability to help users prioritize vulnerability detection by using eBPF to detect which packages are loaded at runtime&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href=&#34;https://www.armosec.io/blog/cncf-accepts-kubescape-security-and-compliance-scanner/&#34;&gt;Kubescape joined the Cloud Native Computing Foundation (CNCF)&lt;/a&gt; in December 2021, becoming the first and only open source, CNCF-hosted tool for &lt;a href=&#34;https://www.armosec.io/glossary/kubernetes-security-posture-management/&#34;&gt;Kubernetes security posture management&lt;/a&gt;. With almost 9,000 stars in GitHub, and users doing almost a million scans per month, it has become one of the most popular tools in this space.&lt;/p&gt;&lt;p&gt;ARMO has bet its business on open source, offering a &lt;a href=&#34;https://cloud.armosec.io/&#34;&gt;comprehensive Kubernetes security platform&lt;/a&gt; powered by Kubescape. However, this same engine is available to anyone, and we’re delighted to see &lt;a href=&#34;https://www.jit.io/blog/kubescape-jit&#34;&gt;companies like Jit building their Kubernetes support on top of Kubescape.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Oh, and did we mention cake? The ARMO team celebrated Kubescape&#39;s second birthday by decorating some cakes. Congratulations to &lt;a href=&#34;https://github.com/amirmalka&#34;&gt;Amir&lt;/a&gt;, &lt;a href=&#34;https://github.com/YiscahLevySilas1&#34;&gt;Yiscah&lt;/a&gt; and &lt;a href=&#34;https://github.com/RinaO1234&#34;&gt;Rina&lt;/a&gt;, our winning team.&lt;/p&gt;&lt;figure class=&#34;video_container&#34;&gt; &lt;video controls=&#34;false&#34; allowfullscreen=&#34;true&#34; loop=&#34;true&#34; autoplay=&#34;true&#34;&gt; &lt;source src=&#34;/blog/second-birthday/cakes.mp4&#34; type=&#34;video/mp4&#34;&gt; &lt;/video&gt;&lt;/figure&gt;&lt;p&gt;We are excited to tell you about some of the new features in our upcoming version. Keep an eye on our new blog in the next few days.&lt;/p&gt;</description><link>https://kubescape.io/blog/2023/09/14/happy-second-birthday-kubescape/</link> <pubDate>Thu, 14 Sep 2023 00:00:00 +0000</pubDate><source url="https://kubescape.io/feed_rss_created.xml">Kubescape</source><guid isPermaLink="true">https://kubescape.io/blog/2023/09/14/happy-second-birthday-kubescape/</guid> </item> </channel></rss>