
AWS、Azure、GCP、OCIを対象に、設定ミス、コンプライアンス違反(HIPAA、PCI、CIS)、セキュリティリスクを自動化されたプラグインベースのチェックで監査するマルチクラウドセキュリティポスチャスキャナです。
$ git clone https://github.com/aquasecurity/cloudsploit.git
$ cd cloudsploit
$ npm install
$ ./index.js -h
$ git clone https://github.com/aquasecurity/cloudsploit.git
$ cd cloudsploit
$ docker build . -t cloudsploit:0.0.1
$ docker run cloudsploit:0.0.1 -h
$ docker run -e AWS_ACCESS_KEY_ID=XX -e AWS_SECRET_ACCESS_KEY=YY cloudsploit:0.0.1 --compliance=pci
AquaによるCloudSploitは、Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Oracle Cloud Infrastructure (OCI)、GitHubを含むクラウドインフラストラクチャアカウントにおけるセキュリティリスクを検出するためのオープンソースプロジェクトです。これらのスクリプトは、潜在的な設定ミスやセキュリティリスクのシリーズを返すように設計されています。
CloudSploitは2つのデプロイメントオプションを提供します:
以下の手順に従って、オープンソース版のCloudSploitをお使いのマシンに数ステップでデプロイしてください。
Aqua WaveでホスティングされるCloudSploitの商用版です。今すぐAqua Waveをお試しください!
NodeJSがインストールされていることを確認してください。インストールされていない場合は、こちらからインストールしてください。
$ git clone [email protected]:cloudsploit/scans.git
$ npm install
CloudSploitはクラウドアカウントへの読み取り専用アクセスを必要とします。以下のガイドに従ってこのアクセスをプロビジョニングしてください:
AWSの場合、CloudSploitを直接実行すると、デフォルトのAWS認証情報チェーンを使用して認証情報を自動検出します。
CloudSploit構成ファイルを使用すると、以下の方法でクラウドプロバイダの認証情報を渡すことができます:
まず、サンプル構成ファイルをコピーします:
$ cp config_example.js config.js
テストするクラウドプロバイダに関連するセクションのコメントを解除して、構成ファイルを編集します。各クラウドには、credential_fileオプションとインラインオプションの両方があります。例:
azure: {
// オプション1: 認証情報JSONファイルを使用する場合、以下にパスを入力
// credential_file: '/path/to/file.json',
// オプション2: ハードコードされた認証情報を使用する場合、以下に入力
// application_id: process.env.AZURE_APPLICATION_ID || '',
// key_value: process.env.AZURE_KEY_VALUE || '',
// directory_id: process.env.AZURE_DIRECTORY_ID || '',
// subscription_id: process.env.AZURE_SUBSCRIPTION_ID || ''
}
credential_fileオプションを使用する場合、使用するクラウドに適した形式のファイルをファイルシステム上で指定します。
{
"accessKeyId": "YOURACCESSKEY",
"secretAccessKey": "YOURSECRETKEY"
}
{
"ApplicationID": "YOURAZUREAPPLICATIONID",
"KeyValue": "YOURAZUREKEYVALUE",
"DirectoryID": "YOURAZUREDIRECTORYID",
"SubscriptionID": "YOURAZURESUBSCRIPTIONID"
}
注:GCPの場合、GCPコンソールから直接JSONファイルを生成します。編集しないでください。
{
"type": "service_account",
"project": "GCPPROJECTNAME",
"client_email": "GCPCLIENTEMAIL",
"private_key": "GCPPRIVATEKEY"
}
{
"tenancyId": "YOURORACLETENANCYID",
"compartmentId": "YOURORACLECOMPARTMENTID",
"userId": "YOURORACLEUSERID",
"keyFingerprint": "YOURORACLEKEYFINGERPRINT",
"keyValue": "YOURORACLEKEYVALUE",
}
CloudSploitは環境変数の受け渡しをサポートしていますが、まずスキャン対象のクラウドプロバイダに関連するconfig.jsファイルのセクションのコメントを解除する必要があります。
その後、各セクションにリストされている変数を渡すことができます。AWSの例:
{
access_key: process.env.AWS_ACCESS_KEY_ID || '',
secret_access_key: process.env.AWS_SECRET_ACCESS_KEY || '',
session_token: process.env.AWS_SESSION_TOKEN || '',
}
すべての出力と結果を表示する標準スキャンを実行するには、単に以下を実行します:
$ ./index.js
CloudSploitは実行時のカスタマイズのための多くのオプションをサポートしています。一般的なオプションは以下の通りです:
--govcloud--china--collection=file.json--ignore-ok--exit-code
--console=textより多くの出力オプションについては、以下の出力形式を参照してください。
$ ./index.js -h
_____ _ _ _____ _ _ _
/ ____| | | |/ ____| | | (_) |
| | | | ___ _ _ __| | (___ _ __ | | ___ _| |_
| | | |/ _ \| | | |/ _` |\___ \| '_ \| |/ _ \| | __|
| |____| | (_) | |_| | (_| |____) | |_) | | (_) | | |_
\_____|_|\___/ \__,_|\__,_|_____/| .__/|_|\___/|_|\__|
| |
|_|
CloudSploit by Aqua Security, Ltd.
Cloud security auditing for AWS, Azure, GCP, Oracle, and GitHub
usage: index.js [-h] --config CONFIG [--compliance {hipaa,cis,cis1,cis2,pci}] [--plugin PLUGIN] [--govcloud] [--china] [--csv CSV] [--json JSON] [--junit JUNIT]
[--table] [--console {none,text,table}] [--collection COLLECTION] [--ignore-ok] [--exit-code] [--skip-paginate] [--suppress SUPPRESS]