Awesome
<picture> <source media="(prefers-color-scheme: dark)" srcset="./assets/logos/OpenClarity-logo-dark-bg.png"> <source media="(prefers-color-scheme: light)" srcset="./assets/logos/OpenClarity-logo-light-bg.png"> <img alt="OpenClarity Logo" src="./assets/logos/OpenClarity-logo-light-bg.png"> <br/><br/><br/> </picture> <!--TODO: Uncomment these once we have the first tagged version--> <!--[![Go Reference](https://pkg.go.dev/badge/github.com/openclarity/openclarity.svg)](https://pkg.go.dev/github.com/openclarity/openclarity)--> <!--[![Go Report Card](https://goreportcard.com/badge/github.com/openclarity/openclarity)](https://goreportcard.com/report/github.com/openclarity/openclarity)-->OpenClarity is an open source tool for agentless detection and management of Virtual Machine Software Bill Of Materials (SBOM) and security threats such as vulnerabilities, exploits, malware, rootkits, misconfigurations and leaked secrets.
<img src="./assets/OpenClarity-demo.gif" alt="OpenClarity demo" />Join OpenClarity's Slack channel to hear about the latest announcements and upcoming activities. We would love to get your feedback!
Table of Contents<!-- omit in toc -->
Why OpenClarity?
Virtual machines (VMs) are the most used service across all hyperscalers. AWS, Azure, GCP, and others have virtual computing services that are used not only as standalone VM services but also as the most popular method for hosting containers (e.g., Docker, Kubernetes).
VMs are vulnerable to multiple threats:
- Software vulnerabilities
- Leaked Secrets/Passwords
- Malware
- System Misconfiguration
- Rootkits
There are many very good open source and commercial-based solutions for providing threat detection for VMs, manifesting the different threat categories above.
However, there are challenges with assembling and managing these tools yourself:
- Complex installation, configuration, and reporting
- Integration with deployment automation
- Siloed reporting and visualization
The OpenClarity project is focused on unifying detection and management of VM security threats in an agentless manner.
Getting started
For step-by-step guidance on how to deploy OpenClarity across different environments, including AWS, Azure, GCP, and Docker, click on this link and choose your preferred provider for detailed deployment instructions.
Overview
OpenClarity uses a pluggable scanning infrastructure to provide:
- SBOM analysis
- Package and OS vulnerability detection
- Exploit detection
- Leaked secret detection
- Malware detection
- Misconfiguration detection
- Rootkit detection
The pluggable scanning infrastructure uses several tools that can be enabled/disabled on an individual basis. OpenClarity normalizes, merges and provides a robust visualization of the results from these various tools.
These tools include:
- SBOM Generation and Analysis
- Vulnerability detection
- Exploits
- Secrets
- Malware
- Misconfiguration
- Rootkits
* Windows only
** Linux and MacOS only
Usage modes
OpenClarity can be used multiple ways to fit different needs:
1. OpenClarity stack
As a complete stack, OpenClarity provides an integrated solution to
- discover assets in your environment,
- manage scan configurations, schedule and execute scans,
- visualize the results on a dashboard.
For the deployment instructions visit this page: Getting started.
2. CLI
OpenClarity can be used as a standalone command line tool to run the supported scanner tools.
-
Download
openclarity-cli
from the GitHub releases page. -
Create a configuration file, make sure to enable the scanner families you need. An example can be found here: .families.yaml
-
Execute the following command:
openclarity-cli scan --config .families.yaml
3. Go module
Import the github.com/openclarity/openclarity/scanner
package to run a scan with OpenClarity’s family manager from your code.
Example: scan.go
Asset discovery
OpenClarity stack supports the automatic discovery of assets in the following providers:
Provider | Asset types | Scope |
---|---|---|
Docker | Docker containers and images | Local Docker daemon |
Kubernetes | Docker containers and images | Cluster |
AWS | Virtual machines (EC2 instances) | Account (all regions) |
Azure | Virtual machines | Subscription |
GCP | Virtual machines | Project |
Supported filesystems
The following filesystem operations are supported on different host types:
Host | List block devices | Mount Ext2, Ext3, Ext4 | Mount XFS | Mount NTFS |
---|---|---|---|---|
Linux | Supported | Supported | Supported | Supported |
Darwin | Supported | Supported | Supported | Supported |
Windows | Not supported | Not supported | Not supported | Not supported |
Architecture
A high-level architecture overview is available here.
Roadmap
OpenClarity project roadmap is available here.
Contributing
If you are ready to jump in and test, add code, or help with documentation, please follow the instructions on our contributing guide for details on how to open issues, setup OpenClarity for development and test.
Code of Conduct
You can view our code of conduct here.