prowler
Prowler is an Open Source Security tool for AWS, Azure, GCP and Kubernetes to do security assessments, audits, incident response, compliance, continuous monitoring, hardening and forensics readiness. Includes CIS, NIST 800, NIST CSF, CISA, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, GXP, Well-Architected Security, ENS and more
Top Related Projects
Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more
Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
Protect and discover secrets using Gitleaks 🔑
A vulnerability scanner for container images and filesystems
Write tests against structured configuration data using the Open Policy Agent Rego query language
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
Quick Overview
Prowler is an open-source security tool designed to perform AWS security best practices assessments, audits, incident response, continuous monitoring, hardening, and forensics readiness. It contains hundreds of controls covering CIS, PCI-DSS, ISO27001, GDPR, HIPAA, FFIEC, SOC2, AWS FTR, ENS, and custom security frameworks.
Pros
- Comprehensive security assessment with 300+ controls across multiple compliance frameworks
- Supports multi-account and multi-region scans
- Integrates with various security tools and platforms (e.g., Amazon Security Hub, Slack, Jira)
- Regularly updated to include the latest AWS services and security best practices
Cons
- Primarily focused on AWS, limiting its use for multi-cloud environments
- Can be resource-intensive when scanning large environments
- Requires careful configuration to avoid false positives
- Learning curve for customizing checks and interpreting results
Getting Started
To get started with Prowler, follow these steps:
- Install Prowler:
pip install prowler
- Configure AWS credentials:
aws configure
- Run a basic scan:
prowler aws
For more advanced usage and customization options, refer to the official documentation at https://github.com/prowler-cloud/prowler.
Competitor Comparisons
Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more
Pros of Trivy
- Broader scope: Scans containers, filesystems, and git repositories for vulnerabilities and misconfigurations
- Faster scanning speed, especially for large container images
- Supports multiple operating systems and package managers
Cons of Trivy
- Less comprehensive cloud security checks compared to Prowler
- Primarily focused on vulnerability scanning rather than compliance auditing
- May require additional tools for complete cloud infrastructure assessment
Code Comparison
Trivy CLI command:
trivy image alpine:3.10
Prowler CLI command:
./prowler aws
Trivy focuses on scanning specific targets like container images, while Prowler is designed to perform comprehensive security assessments of AWS environments.
Trivy excels in vulnerability scanning across various platforms and artifacts, making it ideal for DevSecOps pipelines. Prowler, on the other hand, specializes in cloud security auditing and compliance checks, particularly for AWS environments.
Both tools are valuable in their respective domains, with Trivy offering broader vulnerability scanning capabilities and Prowler providing deeper cloud security insights.
Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
Pros of Checkov
- Supports multiple cloud providers and IaC tools (AWS, Azure, GCP, Terraform, CloudFormation, Kubernetes, etc.)
- Offers a wide range of pre-built policies and custom policy creation
- Integrates well with CI/CD pipelines and provides clear, actionable output
Cons of Checkov
- May have a steeper learning curve for users new to IaC security scanning
- Can produce false positives in some scenarios, requiring manual verification
- Limited focus on runtime security checks compared to Prowler
Code Comparison
Checkov:
from checkov.common.models.enums import CheckResult, CheckCategories
from checkov.terraform.checks.resource.base_resource_check import BaseResourceCheck
class S3BucketVersioning(BaseResourceCheck):
def __init__(self):
name = "Ensure S3 bucket has versioning enabled"
check_id = "CKV_AWS_21"
Prowler:
#!/usr/bin/env bash
# Prowler - the handy cloud security tool (https://github.com/prowler-cloud/prowler)
PROWLER_VERSION="${PROWLER_VERSION:-$(cat ${PROWLER_DIR}/VERSION)}"
Both tools aim to enhance cloud security, but Checkov focuses more on Infrastructure as Code (IaC) scanning across multiple providers, while Prowler specializes in AWS security assessments with some multi-cloud capabilities. Checkov's Python-based approach allows for more flexible policy creation, while Prowler's bash-based structure may be more familiar to system administrators and DevOps engineers.
Protect and discover secrets using Gitleaks 🔑
Pros of Gitleaks
- Specialized in detecting secrets and sensitive information in git repositories
- Supports scanning local repositories, GitHub organizations, and GitLab groups
- Highly customizable with regex patterns and rules
Cons of Gitleaks
- Limited to secret detection, lacking broader security assessment capabilities
- May produce false positives, requiring manual review of results
- Doesn't provide remediation suggestions or security best practices
Code Comparison
Gitleaks (Go):
func (d *Detector) Detect(src string) ([]DetectResult, error) {
var results []DetectResult
for _, r := range d.Rules {
matches := r.Regexp.FindAllStringIndex(src, -1)
for _, match := range matches {
results = append(results, DetectResult{
Rule: r,
Start: match[0],
End: match[1],
Secret: src[match[0]:match[1]],
})
}
}
return results, nil
}
Prowler (Python):
def run_check(self, check):
check_metadata = check.metadata()
if self.audit_info.audit_session_name not in check_metadata.get("excluded_session_names", []):
finding = check.execute()
if finding:
self.findings.append(finding)
return self.findings
While both tools focus on security, Gitleaks specializes in secret detection within git repositories, whereas Prowler offers a broader range of cloud security assessments, particularly for AWS environments. Gitleaks is more focused and customizable for secret scanning, while Prowler provides a comprehensive security auditing solution for cloud infrastructures.
A vulnerability scanner for container images and filesystems
Pros of Grype
- Focused specifically on vulnerability scanning for container images and filesystems
- Faster scanning speed, especially for large container images
- Supports a wide range of package ecosystems and vulnerability databases
Cons of Grype
- Limited to vulnerability scanning, lacks broader security assessment capabilities
- Does not provide cloud infrastructure security checks
- Less comprehensive reporting and remediation guidance compared to Prowler
Code Comparison
Grype (scanning a container image):
grype alpine:latest
Prowler (running a security assessment):
./prowler aws
Summary
Grype is a specialized tool for vulnerability scanning in containers and filesystems, offering fast and focused scans across various package ecosystems. It excels in speed and specific vulnerability detection but lacks the broader security assessment capabilities of Prowler.
Prowler, on the other hand, provides a comprehensive security assessment for cloud environments, particularly AWS. It offers a wider range of checks, including compliance and best practices, but may not be as specialized or fast in container vulnerability scanning as Grype.
The choice between these tools depends on the specific security needs of your project: Grype for focused container vulnerability scanning, or Prowler for broader cloud security assessments.
Write tests against structured configuration data using the Open Policy Agent Rego query language
Pros of Conftest
- More flexible and general-purpose, can be used for various configuration files and policy types
- Integrates well with other Open Policy Agent tools and ecosystem
- Supports multiple input formats (YAML, JSON, INI, etc.)
Cons of Conftest
- Requires learning Rego language for writing policies
- Less out-of-the-box functionality for cloud security auditing
- May require more setup and configuration for specific use cases
Code Comparison
Prowler (shell script):
./prowler -p custom-profile -r us-east-1
Conftest (policy testing):
conftest test deployment.yaml
Key Differences
- Prowler is specifically designed for AWS security auditing, while Conftest is a general-purpose policy testing tool
- Prowler provides pre-defined checks and reports, whereas Conftest requires custom policy definitions
- Conftest offers more flexibility in terms of input formats and policy types, but may require more initial setup
- Prowler is more user-friendly for AWS-specific security assessments, while Conftest has a steeper learning curve but broader applicability
Both tools serve different purposes and can be complementary in a comprehensive security and compliance strategy.
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
Pros of Terrascan
- Broader scope: Supports multiple IaC tools (Terraform, Kubernetes, Helm, Kustomize, Dockerfiles)
- Policy-as-code approach with Rego language for custom rules
- Integrates well with CI/CD pipelines and supports various output formats
Cons of Terrascan
- Less focus on cloud-specific security checks compared to Prowler
- Steeper learning curve for creating custom policies
- May require more setup and configuration for comprehensive cloud security audits
Code Comparison
Terrascan (scanning a Terraform file):
terrascan scan -i terraform -f main.tf
Prowler (scanning AWS environment):
./prowler aws
Summary
Terrascan is a versatile IaC security scanner supporting multiple tools, while Prowler specializes in cloud security audits, particularly for AWS. Terrascan offers more flexibility in policy creation but may require more setup for cloud-specific checks. Prowler provides out-of-the-box cloud security audits but is more limited in scope to specific cloud providers.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Prowler SaaS and Prowler Open Source are as dynamic and adaptable as the environment theyâre meant to protect. Trusted by the leaders in security.
Learn more at prowler.com
Description
Prowler is an Open Source security tool to perform AWS, Azure, Google Cloud and Kubernetes security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness, and also remediations! We have Prowler CLI (Command Line Interface) that we call Prowler Open Source and a service on top of it that we call Prowler SaaS.
Prowler CLI
prowler <provider>
Prowler Dashboard
prowler dashboard
It contains hundreds of controls covering CIS, NIST 800, NIST CSF, CISA, RBI, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, GXP, AWS Well-Architected Framework Security Pillar, AWS Foundational Technical Review (FTR), ENS (Spanish National Security Scheme) and your custom security frameworks.
Provider | Checks | Services | Compliance Frameworks | Categories |
---|---|---|---|---|
AWS | 457 | 67 -> prowler aws --list-services | 30 -> prowler aws --list-compliance | 9 -> prowler aws --list-categories |
GCP | 77 | 13 -> prowler gcp --list-services | 2 -> prowler gcp --list-compliance | 2 -> prowler gcp --list-categories |
Azure | 136 | 17 -> prowler azure --list-services | 3 -> prowler azure --list-compliance | 2 -> prowler azure --list-categories |
Kubernetes | 83 | 7 -> prowler kubernetes --list-services | 1 -> prowler kubernetes --list-compliance | 7 -> prowler kubernetes --list-categories |
ð» Installation
Pip package
Prowler is available as a project in PyPI, thus can be installed using pip with Python >= 3.9, < 3.13:
pip install prowler
prowler -v
More details at https://docs.prowler.com
Containers
The available versions of Prowler are the following:
latest
: in sync withmaster
branch (bear in mind that it is not a stable version)v3-latest
: in sync withv3
branch (bear in mind that it is not a stable version)<x.y.z>
(release): you can find the releases here, those are stable releases.stable
: this tag always point to the latest release.v3-stable
: this tag always point to the latest release for v3.
The container images are available here:
From GitHub
Python >= 3.9, < 3.13 is required with pip and poetry:
git clone https://github.com/prowler-cloud/prowler
cd prowler
poetry shell
poetry install
python prowler.py -v
If you want to clone Prowler from Windows, use
git config core.longpaths true
to allow long file paths.
ðâï¸ High level architecture
You can run Prowler from your workstation, a Kubernetes Job, a Google Compute Engine, an Azure VM, an EC2 instance, Fargate or any other container, CloudShell and many more.
Deprecations from v3
General
Allowlist
now is calledMutelist
.- The
--quiet
option has been deprecated, now use the--status
flag to select the finding's status you want to get from PASS, FAIL or MANUAL. - All
INFO
finding's status has changed toMANUAL
. - The CSV output format is common for all the providers.
We have deprecated some of our outputs formats:
- The native JSON is replaced for the JSON OCSF v1.1.0, common for all the providers.
AWS
- Deprecate the AWS flag --sts-endpoint-region since we use AWS STS regional tokens.
- To send only FAILS to AWS Security Hub, now use either
--send-sh-only-fails
or--security-hub --status FAIL
.
ð Documentation
Install, Usage, Tutorials and Developer Guide is at https://docs.prowler.com/
ð License
Prowler is licensed as Apache License 2.0 as specified in each file. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Top Related Projects
Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more
Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
Protect and discover secrets using Gitleaks 🔑
A vulnerability scanner for container images and filesystems
Write tests against structured configuration data using the Open Policy Agent Rego query language
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot