prowler - Prowlerは、クラウドセキュリティのベストプラクティスの評価、監査、インシデント対応、継続的な監視、強化、フォレンジックの準備を実行するためのオープンソースセキュリティツールです。これには、CIS、PCI-DSS、ISO27001、GDPR、HIPAA、FFIEC、SOC2、AWS FTR、ENS、およびカスタムセキュリティフレームワークをカバーする何百ものコントロールが含まれています。

(Prowler is an Open Source Security tool to perform Cloud 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.)

Created at: 2016-08-24 23:12:24
Language: Python
License: Apache-2.0

あなたとあなたのチームがProwlerProでできることをすべてご覧ください prowler.pro


スラックシールド パイソンのバージョン パイソンのバージョン ドッカープル 港湾労働者 港湾労働者 AWS ECR ギャラリー

リポジトリのサイズ 問題 バージョン バージョン 貢献 ライセンス 囀る 囀る

形容

Prowler
は、AWSおよびAzureのセキュリティベストプラクティスの評価、監査、インシデント対応、継続的な監視、強化、フォレンジックの準備を実行するためのオープンソースのセキュリティツールです。

これには、CIS、PCI-DSS、ISO27001、GDPR、HIPAA、FFIEC、SOC2、AWS FTR、ENS、およびカスタムセキュリティフレームワークをカバーする何百ものコントロールが含まれています。

プラウラーv2のドキュメントをお探しですか?

Prowler v2 のドキュメントについては、https://github.com/prowler-cloud/prowler/tree/2.12.1 を参照してください。

⚙️取り付ける

ピップパッケージ

プラウラーはPyPIのプロジェクトとして利用できるため、Python >= 3.9でpipを使用してインストールできます。

pip install prowler-cloud
prowler -v

コンテナー

プラウラーの利用可能なバージョンは次のとおりです。

  • latest
    :マスターブランチと同期しています(安定バージョンではないことに注意してください)
  • <x.y.z>
    (リリース):あなたはここでリリースを見つけることができます、それらは安定したリリースです。
  • stable
    : このタグは常に最新リリースを指します。

コンテナー イメージは、次の場所から入手できます。

ギットハブから

Python >= 3.9 は pip と pipenv で必要です。

git clone https://github.com/prowler-cloud/prowler
cd prowler
pipenv shell
pipenv install
python prowler.py -v

📖ドキュメンテーション

完全なドキュメントは現在、https://docs.prowler.cloud にあります。

📐✏️ 高レベルのアーキテクチャ

Prowler は、ワークステーション、EC2 インスタンス、Fargate、またはその他のコンテナ、Codebuild、CloudShell、Cloud9 から実行できます。

建築

📝必要条件

Prowler は AWS SDK (Boto3)Azure SDK を使って Python で書かれています。

ティッカー

Prowler は内部で AWS 認証情報を使用するため、ここで説明するように任意の認証方法に従うことができます。 有効なアクセスキーとリージョンを使用して AWS-CLI を適切に設定しているか、AWS 変数 (またはインスタンスプロファイル/ロール) を適切に宣言していることを確認してください。

aws configure

又は

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

これらの認証情報は、すべてのチェックを実行するための適切な権限を持つユーザーまたはロールに関連付けられている必要があります。確認するには、次の AWS 管理ポリシーを、使用するユーザーまたはロールに追加します。

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

さらに、いくつかのチェックにはいくつかの読み取り専用の追加アクセス許可が必要なので、使用しているロールにカスタムポリシーprowler-additions-policy.jsonもアタッチしてください。

Prowler から AWS Security Hub に結果を送信する場合は、カスタムポリシー prowler-security-hub.json もアタッチしてください。

紺碧

Azure 用プラウラーでは、次の認証の種類がサポートされています。

  • 環境変数によるサービス プリンシパル認証 (エンタープライズ アプリケーション)
  • 現在の az cli credentials stored
  • 対話型ブラウザ認証
  • マネージド ID 認証

サービス プリンシパル認証

Prowler がサービス プリンシパル ID を引き受けてスキャンを開始できるようにするには、次の環境変数を構成する必要があります。

export AZURE_CLIENT_ID="XXXXXXXXX"
export AZURE_TENANT_ID="XXXXXXXXX"
export AZURE_CLIENT_SECRET="XXXXXXX"

フラグを指定して Prowler を実行しようとしたときに、それらの変数が空であるかエクスポートされていない場合、実行は失敗します。

--sp-env-auth

AZ CLI / ブラウザ / マネージドアイデンティティ認証

他の 3 つのケースは追加の構成を必要とせず、自動化されたオプションであり、ユーザーが既定のブラウザーを使用して認証してスキャンを開始する必要があります。

--az-cli-auth
--managed-identity-auth
--browser-auth

権限

それぞれを使用するには、実行に適切なフラグを渡す必要があります。Azure の Prowler は、次の 2 種類のアクセス許可スコープを処理します。

  • Azure Active Directory のアクセス許可: Prowler によって想定される ID と将来の AAD チェックからメタデータを取得するために使用されます (ツールを実行するためのアクセス権は必須ではありません)
  • サブスクリプション スコープのアクセス許可: リソースに対するチェックを起動するために必要であり、ツールを起動するために必須です。

Azure Active Directory スコープ

このツールに必要な Azure Active Directory (AAD) のアクセス許可は次のとおりです。

  • Directory.Read.All
  • Policy.Read.All

サブスクリプションのスコープ

サブスクリプション スコープに関しては、Prowler は既定で一覧表示できるすべてのサブスクリプションをスキャンするため、ツールによって引き継がれるエンティティにサブスクリプションごとに次の RBAC 組み込みロールを追加する必要があります。

  • Security Reader
  • Reader

💻基本的な使い方

prowlerを実行するには、プロバイダー(awsやazureなど)を指定する必要があります。

prowler <provider>

プラウラー処刑

オプションを指定せずにコマンドを実行すると、環境変数の資格情報が使用されます。

prowler

デフォルトでは、プラウラーはCSV、JSON、およびHTMLレポートを生成しますが、JSON-ASFF(AWS Security Hubのみ)レポートを生成することができます。

-M
--output-modes

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

htmlレポートは、他のファイルと同様にディレクトリに配置され、次のようになります。

output

プラウラー処刑

/またはを使用して、プロバイダー内で使用可能なすべてのチェックまたはサービスを一覧表示できます。

-l
--list-checks
--list-services

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

特定のチェックまたはサービスを実行するには、オプション / または / を使用できます。

-c
--checks
-s
--services

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

また、チェックとサービスはオプション/またはで除外できます。

-e
--excluded-checks
--excluded-services

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

いつでも/を使用して、使用状況情報とすべての可能なオプションにアクセスできます。

-h
--help

prowler -h

構成の確認

いくつかのProwlerのチェックには、共通の構成ファイルで変更できるユーザー設定可能な変数があります。 このファイルは、次のパスにあります。

prowler/config/config.yaml

AWS

/ で監査する / または AWS リージョンを持つカスタム AWS プロファイルを使用します。

-p
--profile
-f
--filter-region

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

デフォルトでは、すべての AWS リージョンをスキャンします。

prowler

紺碧

Azure では、使用する認証方法を指定する必要があります。

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

既定では、すべての Azure サブスクリプションがスキャンされます。

prowler

🎉新機能

  • Python:私たちはすべてのbashを取り除き、今ではすべてPythonになっています。
  • より速く:パフォーマンスが大幅に向上しました(同じアカウントが2.5時間から4分に)。
  • 開発者とコミュニティ: 新しいチェックと新しいコンプライアンス フレームワークで貢献しやすくなりました。単体テストも含めました。
  • マルチクラウド:AWSに加えて、Azureを追加し、GCPとOCIをまもなく含める予定です。

📃ライセンス

Prowlerは、各ファイルで指定されているように、Apacheライセンス2.0としてライセンスされています。ライセンスのコピーは、http://www.apache.org/licenses/LICENSE-2.0 で入手できます。