Kubernetes でのマイクロサービス向け IAST エージェントのデプロイ

AppScan は、Kubernetes クラスターへの IAST エージェントの自動インストールをサポートしています。MutatingAdmissionWebhook を使用すると、IAST エージェントはすべての開始ポッドに自動的にインストールされます。Helm スクリプトまたは Webhook スクリプトを使用して、エージェントをインストールまたは削除できます。

このタスクについて

Kubernetes に IAST エージェントをインストールする手順の図 (Java、.NET、Node.js アプリケーションをサポート)

Kubernetes へのインストールを示す画像

一般的な指示

手順

  1. エージェントのダウンロード:

    ここで説明するように ASoC Kubernetes IAST エージェントをダウンロードし、ZIP ファイルの内容を抽出します。

  2. クラスターに IAST エージェントをインストールする:

    エージェントは、1 つ以上の名前空間にインストールできます。MutatingAdmissionWebhook IAST エージェントが配置され、選択された名前空間で作成されるすべての新しいポッドに自動的にインジェクトされます。名前空間を指定しない場合は、デフォルトの名前空間が使用されます。

  3. 既存のポッドの再起動:

    インストール後、IAST エージェントがインジェクトされるように、ターゲットの名前空間で実行中のポッドを再起動します。

  4. 問題のポッド名の表示:

    報告された問題のポッド名は、 「問題の詳細」タブの「追加情報」で確認できます。

  5. オプション: 以下のオプション機能が使用できます。
    1. カスタムエージェント構成: 特定のポッドを除外する場合に、この機能を使用してください。
    2. IAST アナライザー: 完全なサービスグラフ・ビューが提供され、誤検出が減少します。現在、Node.js.NET で のみサポートされています。

      Kubernetes ポッドでのコマンド・インジェクションの問題を示すサービス・グラフ。

Helm ベースのインストール

このタスクについて

Helm チャートを使用して Kubernetes クラスター内の IAST エージェントをインストールまたはアンインストールするには、次の手順を実行します。

手順

  1. IAST エージェントのインストール:

    以下の説明に従って、IAST エージェントをインストールします。インストール後、ターゲットの名前空間で実行中のポッドを再起動してインストールを完了します。

    1. デフォルトの名前空間にインストールします。

      helm install secagent helm-secagent --wait

    2. 1 つまたは複数の名前空間にインストールします。
      helm install secagent helm-secagent --wait --set 
                          config.namespaceConfig.namespaces={my-namespace,my-second-namespace}
    3. オプション: アナライザーを有効にした状態でインストールします。
      helm install secagent helm-secagent --wait \
                        --set config.namespaceConfig.namespaces={my-namespace} \
                        --set analyzer.enabled=true 
  2. IAST エージェントのアンインストール: 以下のコマンドを実行します。

    helm uninstall secagent

    これにより secagent という名前の Helm リリースが削除されます。実行中のポッドをすべて再起動して、削除を完了します。

    詳細な設定と完全なマニュアルについては helm-secagent/README.md を参照してください。

スクリプトベースのインストール

このタスクについて

スクリプトを使用して Kubernetes クラスター内の IAST エージェントをインストールまたはアンインストールするには、次の手順を実行します。

手順

  1. IAST エージェントのインストール:

    以下の説明に従って、IAST エージェントをインストールします。インストール後、ターゲットの名前空間で実行中のポッドを再起動してインストールを完了します。

    1. デフォルトの名前空間にインストールします。

      ./install-secagent-webhook.sh

    2. 1 つまたは複数の名前空間にインストールします。
      ./install-secagent-webhook.sh -n my-namespace -n my-second-namespace
    3. オプション: アナライザーを有効にした状態でインストールします。
      ./install-secagent-webhook.sh -n my-namespace --with-analyzer
  2. IAST エージェントのアンインストール: 以下のコマンドを実行します。

    ./uninstall-secagent-webhook.sh

    スクリプトの実行が完了したら、実行中のすべてのポッドを再起動して削除を完了します。

POD を IAST インストールから除外する

手順

  1. 含まれている名前空間から特定のポッドを除外します。

    skip-iast-webhook="true" ポッドの YAML 構成にラベルを追加します。

    このラベルを使用して作成された新しいポッドは、IAST mutating webhook では無視されます。
  2. ポッドを再び含めるには、ラベルを削除するか false に設定してから、ポッドを再起動します。