• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This project scans and assesses workloads in Kubernetes at runtime. It can apply protection rules to workloads to avoid further risks as well.

Cloud Native Security Inspector (Project Narrows)

CodeQL Cypress ci

Cloud Native Security Inspector is an open source cloud native runtime security tool. It allows end users to assess the security posture of Kubernetes clusters at runtime. This project will add dynamic scanning giving Security Auditors greater awareness and control of running workloads.

Features

  • View overall security posture of applications in runtime
  • Policy-based scanning management
  • Revise baseline policies as needed and prevent redeploying workloads sourced from vulnerable images
  • Quarantine non-secure workloads
  • Review and filter the assessment reports
  • Event-driven K8s configuration security monitoring
  • Open framework for any scanner and any report consumer

Architecture

Cloud Native Security Inspector consists of the following components:

  1. The Controller Manager: Helps to reconcile the Setting and InspectionPolicy CR, then provision the scanner workloads.
  2. The Portal: The UI developed by Narrows core team, by which you can do Setting/Policy management, review the reports and check the overall security postures.
  3. The Exporter: The exporter is a hub between the scanners and the report consumers. Any scanner can send a report to the exporter as long as it follows the protocol. The exporter is also easy to be extended to support more report consumers.
  4. The report consumers: The consumers are where to export the security report to. Currently the Exporter supports exporting reports to Opensearch and Elasticsearch. However, due to the license limitation, only OpenSearch is integrated with the Portal. Our Helm chart and deploy.sh file can install an opensearch for you.

With regards to scanners, currently we support 3 different kinds of scanners:

Image vulnerability scanner

Harbor provides static analysis of vulnerabilities in images through the open source projects Trivy. In CNSI, this capability is used to perform dynamic security application testing (DAST).

Kubebench scanner

Kubebench scanner mainly cares about the underlying Kubernetes cluster. It checks whether Kubernetes is deployed securely by running the checks documented in the CIS Kubernetes Benchmark.

Risk Scanner (contributed by Arksec Beijing Ltd)

The Risk scanner fetches the CVSS vectors from the image vulnerability report, then reports scored-risks it observed in the vector.

Demo

Video Demo - Demo for Cloud Native Security Inspector features

Prerequisites

Deployment & Run

There are 2 options to deploy project Narrows if you would like to use the pre-built images from projects.registry.vmware.com.

Option 1: Using Helm chart

Check this doc for details.

Option 2: Using our deploy.sh script

You need to clone the source code if you choose this option.

$ git clone https://github.com/vmware-tanzu/cloud-native-security-inspector.git
$ cd cloud-native-security-inspector
$ ./deploy.sh install

If you would like to build your customized image, you call follow below steps:

$ git clone https://github.com/vmware/cloud-native-security-inspector.git

Before building the images, please ensure you have installed and configured the golang SDK correctly. To install the golang SDK, please familiarize yourself with the Golang documentation.

Use the following commands to compile the source code and build the docker images, and deployed to your K8s cluster.

$ cd cloud-native-security-inspector
$ ./deploy.sh install --build-source

Verifying the deployment

You can use the following command to see if all the components have been started successfully in Kubernetes.

~ → kubectl get all -n cnsi-system
NAME                                                          READY   STATUS    RESTARTS         AGE
pod/cloud-native-security-inspector-portal-7b4fb65c59-6nzmk   1/1     Running   0                17h
pod/cnsi-controller-manager-5586dcc798-znvqp                  2/2     Running   37 (6m51s ago)   17h
pod/cnsi-exporter-69c786c9f-8frmk                             1/1     Running   0                17h

NAME                                                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/cloud-native-security-inspector-portal-service   NodePort    10.102.75.93    <none>        3800:30150/TCP   17h
service/cnsi-controller-manager-metrics-service          ClusterIP   10.99.21.250    <none>        8443/TCP         17h
service/cnsi-exporter-service                            ClusterIP   10.104.26.251   <none>        6780/TCP         17h

NAME                                                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cloud-native-security-inspector-portal   1/1     1            1           17h
deployment.apps/cnsi-controller-manager                  1/1     1            1           17h
deployment.apps/cnsi-exporter                            1/1     1            1           17h

NAME                                                                DESIRED   CURRENT   READY   AGE
replicaset.apps/cloud-native-security-inspector-portal-7b4fb65c59   1         1         1       17h
replicaset.apps/cnsi-controller-manager-5586dcc798                  1         1         1       17h
replicaset.apps/cnsi-exporter-69c786c9f                             1         1         1       17h

Run

  • Refer to the Tutorial for a quick guidance.
  • Refer to the User Guide for more details on how to use Cloud Native Security Inspector.

Uninstalling

To uninstall Cloud Native Security Inspector, use the following command:

$ ./deploy.sh uninstall 

For more details, please refer to the User Guide.

Contact us

Email: [email protected]

License

Cloud Native Security Inspector is available under the Apache 2 license.

More Repositories

1

velero

Backup and migrate Kubernetes applications and their persistent volumes
Go
8,593
star
2

kubeapps

A web-based UI for deploying and managing applications in Kubernetes clusters
Go
4,954
star
3

sonobuoy

Sonobuoy is a diagnostic tool that makes it easier to understand the state of a Kubernetes cluster by running a set of Kubernetes conformance tests and other plugins in an accessible and non-destructive manner.
Go
2,822
star
4

community-edition

VMware Tanzu Community Edition is no longer an actively maintained project. Code is available for historical purposes only.
Go
1,333
star
5

carvel-ytt

YAML templating tool that works on YAML structure instead of text
Go
1,286
star
6

carvel-kapp

kapp is a simple deployment tool focused on the concept of "Kubernetes application" — a set of resources with the same label
Go
707
star
7

pinniped

Pinniped is the easy, secure way to log in to your Kubernetes clusters.
Go
493
star
8

cartographer

Cartographer is a Supply Chain Choreographer.
Go
436
star
9

k-bench

Workload Benchmark for Kubernetes
Go
372
star
10

helm-charts

Contains Helm charts for Kubernetes related open source tools
Mustache
248
star
11

carvel

Carvel provides a set of reliable, single-purpose, composable tools that aid in your application building, configuration, and deployment to Kubernetes. This repo contains information regarding the Carvel open-source community.
HTML
243
star
12

velero-plugin-for-aws

Plugins to support Velero on AWS
Go
208
star
13

tanzu-framework

Tanzu Framework provides a set of building blocks to build atop of the Tanzu platform and leverages Carvel packaging and plugins to provide users with a much stronger, more integrated experience than the loose coupling and stand-alone commands of the previous generation of tools.
Go
198
star
14

cluster-api-provider-bringyourownhost

Kubernetes Cluster API Provider BYOH for already-provisioned hosts running Linux.
Go
196
star
15

carvel-kbld

kbld seamlessly incorporates image building and image pushing into your development and deployment workflows
Go
182
star
16

crash-diagnostics

Crash-Diagnostics (Crashd) is a tool to help investigate, analyze, and troubleshoot unresponsive or crashed Kubernetes clusters.
Go
176
star
17

carvel-vendir

Easy way to vendor portions of git repos, github releases, helm charts, docker image contents, etc. declaratively
Go
168
star
18

carvel-kapp-controller

Continuous delivery and package management for Kubernetes.
Go
153
star
19

carvel-kwt

Kubernetes Workstation Tools CLI
Go
145
star
20

carvel-imgpkg

Store application configuration files in Docker/OCI registries
Go
134
star
21

tanzu-dev-portal

Content for Tanzu dev portal
HTML
132
star
22

velero-plugin-for-csi

Velero plugins for integrating with CSI snapshot API
Go
111
star
23

velero-plugin-for-microsoft-azure

Plugins to support Velero on Microsoft Azure
Go
99
star
24

vm-operator

Self-service manage your virtual infrastructure...
Go
86
star
25

cloud-suitability-analyzer

Automated, rule based source code scanning to determine cloud suitability
Go
77
star
26

secrets-manager

VMware Secrets Manager for Cloud-Native Apps is a lightweight secrets manager to protect your sensitive data. It’s perfect for edge deployments where energy and footprint requirements are strict—See more: https://vsecm.com/
Go
77
star
27

velero-plugin-for-gcp

Plugins to support Velero on Google Cloud Platform (GCP)
Go
75
star
28

sonobuoy-plugins

Plugins for Sonobuoy
Go
60
star
29

carvel-secretgen-controller

secretgen-controller provides CRDs to specify what secrets need to be on Kubernetes cluster (to be generated or not)
Go
57
star
30

velero-plugin-for-vsphere

Plugin to support Velero on vSphere
Go
57
star
31

service-installer-for-vmware-tanzu

Service Installer for VMware Tanzu is a one-click automation solution that enables VMware field engineers to easily and rapidly install, configure, and operate VMware Tanzu services across a variety of cloud infrastructures.
Python
55
star
32

velero-plugin-example

Example project for plugins for Velero, a Kubernetes disaster recovery utility
Go
50
star
33

application-accelerator-samples

Project for samples to be used with "Application Accelerator for VMware Tanzu" which is part of "VMware Tanzu Platform".
Java
45
star
34

terraform-provider-carvel

Carvel Terraform provider with resources for ytt and kapp to template and deploy to Kubernetes
Go
43
star
35

asset-relocation-tool-for-kubernetes

A tool for relocating Kubernetes Assets
Go
38
star
36

astrolabe

Data protection framework for complex applications
Go
37
star
37

carvel-community

Carvel provides a set of reliable, single-purpose, composable tools that aid in your application building, configuration, and deployment to Kubernetes. This repo contains information regarding the Carvel open-source community.
Shell
35
star
38

servicebinding

Service Bindings for Kubernetes
Go
32
star
39

cert-injection-webhook

Provides a Kubernetes webhook to inject CA certificates and proxy environment variables into pods.
Go
31
star
40

carvel-simple-app-on-kubernetes

K8s simple Go app example deployed with k14s tools
Shell
29
star
41

vsphere-kubernetes-drivers-operator

vSphere Kubernetes Driver Operator to simplify and automate the lifecycle management of CSI and CPI for Kubernetes cluster running on vSphere
Go
28
star
42

application-portfolio-auditor

Application Portfolio Auditor is a tool assessing cloud readiness, quality, and security of large sets of apps. It gathers and aggregates insights of multiple software analyzers.
Shell
28
star
43

graph-framework-for-microservices

Graph Framework for Microservices is a platform software stack that bootstraps and accelerates cloud-native microservice development, that is out-of-the-box ready to thrive in the ever challenging world of distributed systems and SaaS.
Go
28
star
44

load-balancer-operator-for-kubernetes

A Cluster API speaking operator for load balancers
Go
27
star
45

tanzu-cli

The Tanzu Core CLI project provides the core functionality of the Tanzu CLI. The CLI is based on a plugin architecture where CLI command functionality can be delivered through independently developed plugin binaries
Go
27
star
46

sources-for-knative

VMware-related event sources for Knative.
Go
26
star
47

kpack-cli

A command line interface for interacting with kpack.
Go
26
star
48

cross-cluster-connectivity

Multi-cluster DNS for Cluster API
Go
26
star
49

thepodlets

A VMware cloud native podcast. Exploring cloud native, one buzzword at a time!
HTML
25
star
50

carvel-ytt-library-for-kubernetes

ytt (https://github.com/k14s/ytt) library that includes reusable K8s components (app, ...)
Shell
21
star
51

function-buildpacks-for-knative

Buildpacks for Knative Functions
Go
21
star
52

vsphere-tanzu-kubernetes-grid-image-builder

For building virtual machine images with VMware vSphere
Python
18
star
53

carvel-setup-action

Github Action for setting up Carvel apps (ytt, kbld, kapp, kctrl, kwt, imgpkg and vendir)
TypeScript
17
star
54

apps-cli-plugin

Apps Plugin for the Tanzu CLI
Go
16
star
55

cartographer-conventions

Conventions provide a mechanism for platform operators to define cross cutting behavior that is applied to Kubernetes resources by understanding the developers intent and the semantics of the resources being advised.
Go
15
star
56

community-engagement

Go
14
star
57

projects-operator

Provides a `Project` CRD and controller for k8s to help with organising resources
Go
13
star
58

vscode-ytt

Visual Studio Code extension for working with ytt yaml files
12
star
59

carvel-ytt-library-for-kubernetes-demo

Demo of ytt + kapp + k8s-lib to deploy a simple app with basic autoscaling
Go
10
star
60

tanzu-toolkit-for-visual-studio

C#
9
star
61

nsx-operator

Kubernetes Operator for managing NSX network resources
Go
9
star
62

dependency-labeler

Dependency Labeler adds metadata about a container image's dependencies as a label to the container image. Formerly maintained by the NavCon team, currently maintained by the Source Insight Tooling team
Go
9
star
63

tanzu-application-platform-reference-service-packages

Reference Service Instance Packages for Tanzu Application Platform.
Shell
9
star
64

homebrew-carvel

Provides tools from https://carvel.dev via Homebrew package.
Ruby
8
star
65

carvel-ytt-starter-for-kubernetes

Use this repo as an example for organizing ytt templates within your application repo
HTML
8
star
66

tanzu-plugin-runtime

The Tanzu Plugin Runtime provides functionality and helper methods to develop Tanzu CLI plugins
Go
8
star
67

carvel-docker-image

Source for ghcr.io/vmware-tanzu/carvel-docker-image:latest that includes various Carvel tools
Dockerfile
8
star
68

homebrew-tanzu

Homebrew tap and formulas for installing Tanzu Community Edition
Ruby
7
star
69

build-tooling-for-integrations

This project enables developers to start building and packaging new Tanzu integrations, including cluster packages and custom CLI commands.
Go
7
star
70

app-migrator-for-cloud-foundry

A CLI tool for exporting and importing Cloud Foundry applications between Cloud Foundry installations.
Go
7
star
71

package-for-cartographer

carvel-based Packaging for Cartographer
Shell
6
star
72

tanzu-source-controller

Tanzu Source Controller enables app devs to fetch OCI images and maven artifacts from remote source code repository. The controller follows the spirit of the FluxCD Source Controller.
Go
6
star
73

image-registry-operator-api

As part of the vSphere on Tanzu project, this VM Image Service offers a Kubernetes API to upload/download/share VM images backed by vSphere Content Library.
Go
5
star
74

observability-event-resource

Go
5
star
75

service-instance-migrator-for-cloud-foundry

A CLI tool for exporting and importing Cloud Foundry service instances between Cloud Foundry installations.
Go
5
star
76

ytt.vim

syntax for ytt
Vim Script
5
star
77

package-for-kpack

This repo will house the carvel tooling specific configuration and templating for a deployment of kpack (https://github.com/pivotal/kpack) that will be leveraged by TCE and TBS
Shell
5
star
78

package-for-kubeapps

This repo will house the carvel tooling specific configuration and templating for a deployment of Kubeapps (https://github.com/vmware-tanzu/kubeapps) that will be leveraged by TCE
Mustache
5
star
79

tanzu-plug-in-for-asdf

This ASDF plugin enables the download of Tanzu related tools from Github.
Shell
4
star
80

concourse-kpack-resource

Use a kpack image in a concourse pipeline naturally.
Go
4
star
81

net-operator-api

A client API for the Net Operator project, designed to allow for integration with vSphere 7 with Kubernetes
Go
4
star
82

carvel-guestbook-example-on-kubernetes

K8s guestbook example deployed with k14s tools
JavaScript
4
star
83

oss-httpd-build

This project is a schema to build Apache HTTP Server (httpd), along with a number of frequently updated library components (dependencies), on Linux or Windows. The results of this build are also distributed periodically to the general public from the https://network.tanzu.vmware.com/products/p-apache-http-server (login required)
PowerShell
4
star
84

carvel-release-scripts

contains scripts for releasing carvel tools
Shell
3
star
85

rotate-instance-identity-certificates

Tooling to rotate the Diego Instance Identity Certificates on Tanzu Application Service 2.4-2.6.
Go
3
star
86

build-image-action

A GitHub Action that can be used to call into a Tanzu Application Platform (TAP) installation and use Tanzu Build Service (TBS) to build an image from source.
Go
3
star
87

cartographer-catalog

Reusable Cartographer blueprints
Shell
2
star
88

homebrew-pinniped

Homebrew tap for Pinniped
Ruby
2
star
89

homebrew-kpack-cli

Homebrew Tap for kpack-cli (https://github.com/vmware-tanzu/kpack-cli)
Ruby
2
star
90

azure-log-analytics-nozzle-release

Go
2
star
91

vmotion-migration-tool-for-bosh-deployments

Tooling and instructions to seamlessly move a BOSH deployed Cloud Foundry installation to new vSphere hardware via vMotion. This tool allows you to live migrate without needing to take on an expensive and disruptive migration to a new platform just to support a hardware refresh.
Go
2
star
92

cartographer-site

Cartographer website
JavaScript
1
star
93

tanzu-observability-slug-generator

Java
1
star
94

asdf-carvel

k14s asdf plugin
Shell
1
star
95

package-for-source-controller

This repo will house the carvel tooling specific configuration and templating for a deployment of fluxcd-source-controller (https://github.com/fluxcd/source-controller) that will be leveraged by TCE
Shell
1
star
96

service-apis

Fork of kubernetes-sigs/service-apis
1
star