prowler

Prowler is the Open Cloud Security platform for AWS, Azure, GCP, Kubernetes, M365 and more. It helps for continuous monitoring, security assessments & audits, incident response, compliance, hardening and forensics readiness. Includes CIS, NIST 800, NIST CSF, CISA, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, ENS and more

https://github.com/prowler-cloud/prowler

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 312 committers (1.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary

Keywords

aws azure cis-benchmark cloud cloudsecurity compliance cspm devsecops forensics gcp gdpr hardening iam multi-cloud python security security-audit security-hardening security-tools well-architected

Keywords from Contributors

agents langchain transformer cryptocurrencies distributed interface anthropic gemini parallel hack
Last synced: 6 months ago · JSON representation

Repository

Prowler is the Open Cloud Security platform for AWS, Azure, GCP, Kubernetes, M365 and more. It helps for continuous monitoring, security assessments & audits, incident response, compliance, hardening and forensics readiness. Includes CIS, NIST 800, NIST CSF, CISA, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, ENS and more

Basic Info
  • Host: GitHub
  • Owner: prowler-cloud
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Homepage: https://prowler.com
  • Size: 154 MB
Statistics
  • Stars: 12,040
  • Watchers: 127
  • Forks: 1,788
  • Open Issues: 146
  • Releases: 0
Topics
aws azure cis-benchmark cloud cloudsecurity compliance cspm devsecops forensics gcp gdpr hardening iam multi-cloud python security security-audit security-hardening security-tools well-architected
Created over 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Codeowners Security

README.md

Prowler is the Open Cloud Security platform trusted by thousands to automate security and compliance in any cloud environment. With hundreds of ready-to-use checks and compliance frameworks, Prowler delivers real-time, customizable monitoring and seamless integrations, making cloud security simple, scalable, and cost-effective for organizations of any size.

Learn more at prowler.com

Prowler community on Slack
Join our Prowler community!


Slack Shield Python Version Python Version PyPI Downloads Docker Pulls AWS ECR Gallery

Version Version Contributors Issues License Twitter Twitter


Description

Prowler is an open-source security tool designed to assess and enforce security best practices across AWS, Azure, Google Cloud, and Kubernetes. It supports tasks such as security audits, incident response, continuous monitoring, system hardening, forensic readiness, and remediation processes.

Prowler includes hundreds of built-in controls to ensure compliance with standards and frameworks, including:

  • Industry Standards: CIS, NIST 800, NIST CSF, and CISA
  • Regulatory Compliance and Governance: RBI, FedRAMP, and PCI-DSS
  • Frameworks for Sensitive Data and Privacy: GDPR, HIPAA, and FFIEC
  • Frameworks for Organizational Governance and Quality Control: SOC2 and GXP
  • AWS-Specific Frameworks: AWS Foundational Technical Review (FTR) and AWS Well-Architected Framework (Security Pillar)
  • National Security Standards: ENS (Spanish National Security Scheme)
  • Custom Security Frameworks: Tailored to your needs

Prowler App

Prowler App is a web-based application that simplifies running Prowler across your cloud provider accounts. It provides a user-friendly interface to visualize the results and streamline your security assessments.

Prowler App

For more details, refer to the Prowler App Documentation

Prowler CLI

console prowler <provider> Prowler CLI Execution

Prowler Dashboard

console prowler dashboard Prowler Dashboard

Prowler at a Glance

[!Tip] For the most accurate and up-to-date information about checks, services, frameworks, and categories, visit Prowler Hub.

| Provider | Checks | Services | Compliance Frameworks | Categories | |---|---|---|---|---| | AWS | 576 | 82 | 36 | 10 | | GCP | 79 | 13 | 10 | 3 | | Azure | 162 | 19 | 11 | 4 | | Kubernetes | 83 | 7 | 5 | 7 | | GitHub | 17 | 2 | 1 | 0 | | M365 | 70 | 7 | 3 | 2 | | NHN (Unofficial) | 6 | 2 | 1 | 0 |

[!Note] The numbers in the table are updated periodically.

[!Note] Use the following commands to list Prowler's available checks, services, compliance frameworks, and categories: - prowler <provider> --list-checks - prowler <provider> --list-services - prowler <provider> --list-compliance - prowler <provider> --list-categories

💻 Installation

Prowler App

Prowler App offers flexible installation methods tailored to various environments:

For detailed instructions on using Prowler App, refer to the Prowler App Usage Guide.

Docker Compose

Requirements

  • Docker Compose installed: https://docs.docker.com/compose/install/.

Commands

console curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/docker-compose.yml curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/.env docker compose up -d

Containers are built for linux/amd64.

Configuring Your Workstation for Prowler App

If your workstation's architecture is incompatible, you can resolve this by:

  • Setting the environment variable: DOCKER_DEFAULT_PLATFORM=linux/amd64
  • Using the following flag in your Docker command: --platform linux/amd64

Once configured, access the Prowler App at http://localhost:3000. Sign up using your email and password to get started.

Common Issues with Docker Pull Installation

[!Note] If you want to use AWS role assumption (e.g., with the "Connect assuming IAM Role" option), you may need to mount your local .aws directory into the container as a volume (e.g., - "${HOME}/.aws:/home/prowler/.aws:ro"). There are several ways to configure credentials for Docker containers. See the Troubleshooting section for more details and examples.

You can find more information in the Troubleshooting section.

From GitHub

Requirements

Commands to run the API

console git clone https://github.com/prowler-cloud/prowler cd prowler/api poetry install eval $(poetry env activate) set -a source .env docker compose up postgres valkey -d cd src/backend python manage.py migrate --database admin gunicorn -c config/guniconf.py config.wsgi:application

[!IMPORTANT] As of Poetry v2.0.0, the poetry shell command has been deprecated. Use poetry env activate instead for environment activation.

If your Poetry version is below v2.0.0, continue using poetry shell to activate your environment. For further guidance, refer to the Poetry Environment Activation Guide https://python-poetry.org/docs/managing-environments/#activating-the-environment.

After completing the setup, access the API documentation at http://localhost:8080/api/v1/docs.

Commands to run the API Worker

console git clone https://github.com/prowler-cloud/prowler cd prowler/api poetry install eval $(poetry env activate) set -a source .env cd src/backend python -m celery -A config.celery worker -l info -E

Commands to run the API Scheduler

console git clone https://github.com/prowler-cloud/prowler cd prowler/api poetry install eval $(poetry env activate) set -a source .env cd src/backend python -m celery -A config.celery beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler

Commands to run the UI

console git clone https://github.com/prowler-cloud/prowler cd prowler/ui npm install npm run build npm start

Once configured, access the Prowler App at http://localhost:3000. Sign up using your email and password to get started.

Prowler CLI

Pip package

Prowler CLI is available as a project in PyPI. Consequently, it can be installed using pip with Python >3.9.1, <3.13:

console pip install prowler prowler -v

For further guidance, refer to https://docs.prowler.com

Containers

Available Versions of Prowler CLI

The following versions of Prowler CLI are available, depending on your requirements:

  • latest: Synchronizes with the master branch. Note that this version is not stable.
  • v4-latest: Synchronizes with the v4 branch. Note that this version is not stable.
  • v3-latest: Synchronizes with the v3 branch. Note that this version is not stable.
  • <x.y.z> (release): Stable releases corresponding to specific versions. You can find the complete list of releases here.
  • stable: Always points to the latest release.
  • v4-stable: Always points to the latest release for v4.
  • v3-stable: Always points to the latest release for v3.

The container images are available here: - Prowler CLI: - DockerHub - AWS Public ECR - Prowler App: - DockerHub - Prowler UI - DockerHub - Prowler API

From GitHub

Python >3.9.1, <3.13 is required with pip and Poetry:

console git clone https://github.com/prowler-cloud/prowler cd prowler eval $(poetry env activate) poetry install python prowler-cli.py -v

[!IMPORTANT] To clone Prowler on Windows, configure Git to support long file paths by running the following command: git config core.longpaths true.

[!IMPORTANT] As of Poetry v2.0.0, the poetry shell command has been deprecated. Use poetry env activate instead for environment activation.

If your Poetry version is below v2.0.0, continue using poetry shell to activate your environment. For further guidance, refer to the Poetry Environment Activation Guide https://python-poetry.org/docs/managing-environments/#activating-the-environment.

✏️ High level architecture

Prowler App

Prowler App is composed of three key components:

  • Prowler UI: A web-based interface, built with Next.js, providing a user-friendly experience for executing Prowler scans and visualizing results.
  • Prowler API: A backend service, developed with Django REST Framework, responsible for running Prowler scans and storing the generated results.
  • Prowler SDK: A Python SDK designed to extend the functionality of the Prowler CLI for advanced capabilities.

Prowler App Architecture

Prowler CLI

Running Prowler

Prowler can be executed across various environments, offering flexibility to meet your needs. It can be run from:

  • Your own workstation

  • A Kubernetes Job

  • Google Compute Engine

  • Azure Virtual Machines (VMs)

  • Amazon EC2 instances

  • AWS Fargate or other container platforms

  • CloudShell

And many more environments.

Architecture

Deprecations from v3

General

  • Allowlist now is called Mutelist.
  • The --quiet option has been deprecated. Use the --status flag to filter findings based on their status: PASS, FAIL, or MANUAL.
  • All findings with an INFO status have been reclassified as MANUAL.
  • The CSV output format is standardized across all providers.

Deprecated Output Formats

The following formats are now deprecated: - Native JSON has been replaced with JSON in [OCSF] v1.1.0 format, which is standardized across all providers (https://schema.ocsf.io/).

AWS

AWS Flag Deprecation

The flag --sts-endpoint-region has been deprecated due to the adoption of AWS STS regional tokens.

Sending FAIL Results to AWS Security Hub

  • To send only FAILS to AWS Security Hub, use one of the following options: --send-sh-only-fails or --security-hub --status FAIL.

📖 Documentation

Documentation Resources

For installation instructions, usage details, tutorials, and the Developer Guide, visit https://docs.prowler.com/

📃 License

Prowler License Information

Prowler is licensed under the Apache License 2.0, as indicated in each file within the repository. Obtaining a Copy of the License

A copy of the License is available at http://www.apache.org/licenses/LICENSE-2.0

Owner

  • Name: Prowler
  • Login: prowler-cloud
  • Kind: organization

Prowler SaaS and Prowler Open Source are as dynamic and adaptable as the environment they’re meant to protect.

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 5,529
  • Total Committers: 312
  • Avg Commits per committer: 17.721
  • Development Distribution Score (DDS): 0.862
Past Year
  • Commits: 2,527
  • Committers: 65
  • Avg Commits per committer: 38.877
  • Development Distribution Score (DDS): 0.804
Top Committers
Name Email Commits
dependabot[bot] 4****] 764
Sergio Garcia 3****r 738
Pepe Fagoaga p****e@v****o 533
Pablo Lara l****j@g****m 496
Toni de la Fuente t****i@b****m 334
Pedro Martín p****3@g****m 261
Toni de la Fuente t****e@a****m 259
Nacho Rivera n****2@g****m 156
Hugo Pereira Brito 1****o 137
Daniel Barranquero 7****o 133
Rubén De la Torre Vico r****2@g****m 129
Víctor Fernández Poyatos v****r@p****m 116
Prowler Bot b****t@p****m 115
Sergio Garcia h****o@m****m 85
github-actions[bot] 4****] 76
Ben Allen b****n@s****g 66
Mario Rodriguez Lopez 1****z 62
gabrielsoltz t****y@g****m 58
Adrián Jesús Peña Rodríguez a****r@g****m 38
Toni de la Fuente c****7@y****m 36
sansns-aws 1****s 31
Julio Delgado Jr d****l@a****m 30
Marc Jay m****y@t****m 29
Kay Agahd k****d 27
Joaquin Rinaudo r****j@a****m 26
Mr. Secure b****b@m****g 25
Nimrod Kor n****r@g****m 24
Sophia Dao s****a@p****m 23
Andoni Alonso 1****f 23
César Arroba 1****a 21
and 282 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 482
  • Total pull requests: 6,851
  • Average time to close issues: 15 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 268
  • Total pull request authors: 136
  • Average comments per issue: 2.44
  • Average comments per pull request: 0.92
  • Merged pull requests: 5,120
  • Bot issues: 23
  • Bot pull requests: 2,022
Past Year
  • Issues: 253
  • Pull requests: 4,627
  • Average time to close issues: 9 days
  • Average time to close pull requests: 4 days
  • Issue authors: 149
  • Pull request authors: 80
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.92
  • Merged pull requests: 3,277
  • Bot issues: 15
  • Bot pull requests: 1,318
Top Authors
Issue Authors
  • dependabot[bot] (21)
  • jfagoagas (20)
  • pedrooot (16)
  • sergargar (11)
  • Fennerr (9)
  • puchy22 (9)
  • jmanduca-psfy (8)
  • christiandavilakoobin (7)
  • garym-krrv (6)
  • ivan-morhun (6)
  • KieranP (6)
  • petrobubka (5)
  • rieck-srlabs (5)
  • kagahd (5)
  • victor-babin-fti (5)
Pull Request Authors
  • dependabot[bot] (1,965)
  • prowler-bot (1,002)
  • jfagoagas (567)
  • sergargar (540)
  • pedrooot (476)
  • HugoPBrito (276)
  • puchy22 (258)
  • danibarranqueroo (242)
  • MrCloudSec (233)
  • paabloLC (218)
  • n4ch04 (128)
  • vicferpoy (120)
  • MarioRgzLpz (97)
  • AdriiiPRodri (68)
  • andoniaf (66)
Top Labels
Issue Labels
bug (270) status/needs-triage (207) provider/aws (110) feature-request (94) severity/medium (56) severity/low (51) status/awaiting-reponse (42) enhancement (28) status/waiting-for-revision (25) severity/high (21) dependencies (20) pip (18) severity/informational (15) provider/gcp (12) v3 (12) provider/kubernetes (9) provider/azure (9) question (8) work-in-progress (7) evaluating (6) github_actions (6) component/ui (5) component/api (4) compliance (4) documentation (4) mutelist (4) need information (4) backport (4) feature (3) new check idea (3)
Pull Request Labels
dependencies (1,924) provider/aws (1,645) pip (1,554) backport (760) v3 (631) github_actions (432) component/ui (404) severity/low (393) status/waiting-for-revision (389) documentation (360) component/api (286) provider/azure (275) was-backported (239) v4 (238) backport-to-v3 (210) provider/gcp (203) backport-v3 (116) provider/kubernetes (105) backport-to-v4.6 (103) no-merge (89) compliance (80) backport-to-v5.4 (77) npm (73) backport-to-v5.0 (71) no-changelog (68) backport-v4 (55) backport-to-v4.3 (54) prowler-4.0 (52) python (46) backport-to-v5.2 (44)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 77,777 last-month
  • Total docker downloads: 1,345
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 273
  • Total maintainers: 1
pypi.org: prowler

Prowler is an Open Source security tool to perform AWS, GCP and Azure security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. 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.

  • Versions: 128
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 75,020 Last month
  • Docker Downloads: 1,180
Rankings
Stargazers count: 0.3%
Downloads: 0.9%
Forks count: 1.2%
Docker downloads count: 4.3%
Average: 6.0%
Dependent packages count: 7.3%
Dependent repos count: 22.1%
Maintainers (1)
Last synced: 6 months ago
pypi.org: prowler-cloud

Prowler is an Open Source security tool to perform AWS, GCP and Azure security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. 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.

  • Versions: 145
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2,757 Last month
  • Docker Downloads: 165
Rankings
Stargazers count: 0.3%
Forks count: 1.2%
Docker downloads count: 2.1%
Downloads: 6.9%
Dependent packages count: 7.3%
Average: 9.8%
Dependent repos count: 40.8%
Maintainers (1)
Last synced: 6 months ago