Skip to main content

Prowler is an Open Source security tool to perform AWS security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains more than 240 controls covering CIS, PCI-DSS, ISO27001, GDPR, HIPAA, FFIEC, SOC2, AWS FTR, ENS and custom security frameworks.

Project description

    See all the things you and your team can do with ProwlerPro at prowler.pro


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

Repo size Issues Version Version Contributors License Twitter

Description

Prowler is an Open Source security tool to perform AWS and Azure 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.

⚙️ Install

pip install prowler-cloud
prowler -v

Prowler container versions

The available versions of Prowler are the following:

  • latest: in sync with master 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.

The container images are available here:

📐✏️ High level architecture

You can run Prowler from your workstation, an EC2 instance, Fargate or any other container, Codebuild, CloudShell and Cloud9.

Architecture

📝 Requirements

Prowler has been written in Python using the AWS SDK (Boto3) and Azure SDK.

AWS

Since Prowler uses AWS Credentials under the hood, you can follow any authentication method as described here. Make sure you have properly configured your AWS-CLI with a valid Access Key and Region or declare AWS variables properly (or instance profile/role):

aws configure

or

export AWS_ACCESS_KEY_ID="ASXXXXXXX"
export AWS_SECRET_ACCESS_KEY="XXXXXXXXX"
export AWS_SESSION_TOKEN="XXXXXXXXX"

Those credentials must be associated to a user or role with proper permissions to do all checks. To make sure, add the following AWS managed policies to the user or role being used:

  • arn:aws:iam::aws:policy/SecurityAudit
  • arn:aws:iam::aws:policy/job-function/ViewOnlyAccess

Moreover, some read-only additional permissions are needed for several checks, make sure you attach also the custom policy prowler-additions-policy.json to the role you are using.

If you want Prowler to send findings to AWS Security Hub, make sure you also attach the custom policy prowler-security-hub.json.

💻 Basic Usage

To run prowler, you will need to specify the provider (e.g aws or azure):

prowler <provider>

Prowler Execution

Running the prowler command without options will use your environment variable credentials.

By default, prowler will generate a CSV and a JSON report, however you could generate an HTML or an JSON-ASFF report with -M or --output-modes:

prowler <provider> -M csv json json-asff html

You can use -l/--list-checks or --list-services to list all available checks or services within the provider.

prowler <provider> --list-checks
prowler <provider> --list-services

For executing specific checks or services you can use options -c/checks or -s/services:

prowler aws --checks s3_bucket_public_access
prowler aws --services s3 ec2

Also, checks and services can be excluded with options -e/--excluded-checks or --excluded-services:

prowler aws --excluded-checks s3_bucket_public_access
prowler aws --excluded-services s3 ec2

You can always use -h/--help to access to the usage information and all the possible options:

prowler -h

AWS

Use a custom AWS profile with -p/--profile and/or AWS regions which you want to audit with -f/--filter-region:

prowler aws --profile custom-profile -f us-east-1 eu-south-2

By default, prowler will scan all AWS regions.

Azure

With Azure you need to specify which auth method is going to be used:

prowler azure [--sp-env-auth, --az-cli-auth, --browser-auth, --managed-identity-auth]

By default, prowler will scan all Azure subscriptions.

🎉 New Features

  • Multi-cloud support!

📖 Documentation

The full documentation can be found here:

https://docs.prowler.cloud

📃 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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prowler-cloud-3.0.0rc1.tar.gz (347.6 kB view hashes)

Uploaded Source

Built Distribution

prowler_cloud-3.0.0rc1-py3-none-any.whl (824.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page