ShiftLeft CLI ツールの使用
ShiftLeft CLI ツールは複数のサービス(ブレード) を提供し、各ブレードは特定の機能を実行します。
ツールとブレードは独自の引数を受け取ることができます。一般に、ツールの引数はブレード名の前にあり、特定のブレードの引数はブレード名の後にあります。
shiftleft --argument_for_tool blade_name --argument_for_blade
CloudGuard でのShiftLeft設定の後、CLI ツールの使用を開始できます。
CLI ツール
引数 | 説明 |
---|---|
-D, | デバッグ出力フラグ |
-d, | 作業ディレクトリ(既定値: |
-e, | CloudGuard ShiftLeft環境 |
-f, | 特定バージョンのブレードを使用する |
-h, | 使用状況を示す |
-t, | timeout (デフォルト:600) |
-u, | auto upgrade/update (デフォルト: |
-V, | バージョンを示す |
例
実行中にツールが更新されないようにするには、次のように入力します。
|
ツールに関するヘルプ情報を取得するには、次のように入力します。
|
特定のブレードに関するヘルプ情報を取得するには、次のように入力します。
|
ShiftLeft Blades
このブレードは、ソースコードのセキュリティとプロジェクトのリスク分析の可視性を提供します。
使用方法: code-scan [OPTIONS] [ -s <source_folder> | -i <image_path> ]
引数 | 説明 |
---|---|
-bd, -BD, | max git blame commit depth (デフォルト:200, -1 は無制限であり、パフォーマンスに影響を与える可能性があります) |
-d, -D, | デバッグ出力 |
-e, -env, | CloudGuard ShiftLeft環境ID |
-h, -H, | ヘルプを示す |
-i,-img、 | dockerイメージtar形式へのパス |
-j, -J, | json出力 |
-nb、-NB、 | スキャンしたファイルにgit blame を使用しない |
-nc、-NC、 | 前回のスキャン結果を取得しない |
-np、-NP、 | プロキシ設定を使用しない |
経口、-PO、 | 印刷スキャン結果テーブルをプレーンテキストとして |
-r, -R, | CloudGuardルールセットID |
-s, -src, | ソースコードディレクトリへのパス |
-sev, -sev-l, | 重大度レベル:不明(デフォルト)、低、中、高、重大 |
-sevt, -sev-t, | severity-level しきい値(デフォルト:0) |
-t, -T, | スキャンタイムアウト(秒単位)(デフォルト:600 (ソースコード)、900 (ドッキングイメージ) |
-v, -V, | バージョンを示す |
-x、-X、 | スキャンから除外するパス( |
例
脆弱性のコードのスキャン
次を実行します:
|
コードの脆弱性を検出します。このコードのディレクトリパスは../dome9_backend/
で、タイムアウトは3600
秒で、ID 366483
のCloudGuardに登録されているルールセットを適用し、その結果を環境ID abcd1234-a1b2-c3d4-ef56-36787784e871
に送信します。スキャンファイルではgit blame (-nb)
は使用されません。評価結果の表示を参照してください。
注 - ブレードに対応するルールセットを選択します。 |
ShiftLeft は、スキャン結果も CLI に出力します。
コードのスキャン
|
/home/project
ディレクトリで脆弱性をスキャンし、tests/*
およびstatic/*
ディレクトリのスキャンから除外します。
このブレードは、セキュリティリスクと脆弱性についてコンテナ(Kubernetes) イメージをスキャンします。
使用方法:
image-scan [OPTIONS] [ -s <source_folder> | -i <image_path> ]
引数 | 説明 |
---|---|
-e, -env, | CloudGuard ShiftLeft環境ID |
-i,-img、 | dockerイメージtar形式へのパス |
-t, -T, | スキャンタイムアウト(秒単位)(デフォルト:600 (ソースコード)、900 (ドッキングイメージ) |
-x、-X、 | スキャンから除外するパス( |
-d, -D, | デバッグ出力 |
-j, -J, | json出力 |
-nc、-NC、 | 前回のスキャン結果を取得しない |
-np、-NP、 | プロキシ設定を使用しない |
経口、-PO、 | 印刷スキャン結果テーブルをプレーンテキストとして |
-v, -V, | バージョンを示す |
-h, -H, | ヘルプを示す |
-r, -R, | CloudGuardルールセットID |
-sev, -sev-l, | 重大度レベル:不明(デフォルト)、低、中、高、重大 |
-sevt, -sev-t, | severity-level しきい値(デフォルト:0) |
例
脆弱性に関するコンテナのtar ファイルのスキャン
次を実行します:
|
ID 366662
のCloudGuardにルールセットが登録されているパス/home/mycontainer.tar
を持つコンテナtar ファイルの脆弱性をスキャンし、ID abcd1234-a1b2-c3d4-ef56-36787784e871
を持つ環境に結果を送信します。評価結果の表示を参照してください。
注 - ブレードに対応するルールセット(コンテナImage Assuranceなど) を選択します。 |
ShiftLeft は、スキャン結果も CLI に出力します。
脆弱性のコンテナイメージのスキャン
脆弱性をスキャンするパスmyrepo/myimage:version
を持つコンテナイメージがあるとします。
次を実行します:
docker save -o my_container.tar myrepo/myimage:version shiftleft image-scan -i my_container.tar |
このブレードは、Infrastructure-as-code テンプレートをスキャンし、安全でない構成を識別できます。評価結果に表示され、スキャンしたコードを明確に識別できる評価識別子を設定できます。同じコードで複数の評価を実行する場合は、同じ識別子を使用します。
IaC-Assessment ブレードでは、次のTerraform およびCloudFormation ファイルを使用できます。
Terraform files:
TFファイルを含む有効なTerraformプロジェクトを含むフォルダ
JSONファイルとして保存された実行計画(Terraformバージョン0.12以降のみ)
バイナリとして保存された実行計画(Terraformバージョン0.11以降のみ)
Best Practice - 複雑なTerraformプロジェクトの場合、実行計画ファイルを作成し、実行計画にはより具体的なデータが含まれているため、Raw TFプロジェクトファイルの代わりにファイルをスキャンします。
例:
terraform plan --out=plan_file ; terraform show --json plan_file > plan_file.json
CloudFormation Templates in JSON, YAML, or YML formats
CloudFormation テンプレートは、AWS S3 バケットでホストされる他のテンプレートへの参照をサポートします。AWS S3 からのフェッチは現在サポートされていません。代わりに、指定されたパスには、AWS S3 -
bucket_name/path_to_object
に保存されるのと同じ階層構造のフォルダが含まれている必要があります。Best Practice -スキャンのフォルダには、テンプレートまたは実行プランのみを含める必要があります。
引数の意味 | 説明 |
---|---|
-a, | アセスメントID は、CLI の実行をCloudGuard ポータルのアセスメント結果にバインドします(オプション)。 |
-f, | 所見フラグを示す(デフォルト: true) |
-i, | インフラストラクチャタイプ(CFT、Terraform) |
-w, | 完全検索行フラグを表示する |
-D, | デバッグ出力フラグ |
-d, | work dir (デフォルト: |
-E, | エントリポイント |
-e, | CloudGuard ShiftLeft環境ID |
-h, | 使用状況を示す |
-l, | 実行するルールロジック(ルールセットIDと組み合わせて使用することはできません) |
-o, | stdout 出力形式(json、junit、junit-gitlab、sarif、human) を指定します(デフォルト: human)。 |
-p, | terraformプロジェクトディレクトリまたは実行プランファイルへのパス(必須) |
-r, | 実行するルールセットID (ルールロジックと組み合わせて使用することはできません) |
-s, | 重大度レベル[Informational, Low, Medium, High, Critical, Info] (デフォルト:低) |
-t, | severity-level しきい値(デフォルト:1) |
-v, | Terraformファイル内で置換される変数 |
-V, | バージョンを示す |
例
Terraformテンプレートのリスクスキャン
次を実行します:
|
この例題では、Users/johndoe/examples
フォルダにvpc.tf
という名前のエントリを持つTerraform 設定があります。このプロジェクトで、Terraform プロジェクトに対応するルールセット番号-64 を実行して、それが準拠しているかどうかをチェックし、結果をID abcd1234-a1b2-c3d4-ef56-36787784e871
で環境に送信します。評価結果の表示を参照してください。
注 - ブレードに対応するルールセット(Terraformなど) を選択します。 |
ShiftLeft は、評価結果もCLI に出力します。
JUNIT 形式での評価出力の定義
|