AppScan 360° 分散環境のセットアップ

AppScan 360° をインストールする前に、最適なデプロイメント環境を設定します。

重要: AppScan 360° 前提条件をインストール・プロセスの一部として検証しません

HCL ID

HCL ID により、アカウントに有効なライセンスと、ソフトウェアおよびサポートへのアクセス権が関連付けられます。HCL ライセンス、ダウンロード・ポータル、HCL Harbor へのアクセスに必要です。

HCL ID の作成とライセンスおよびソフトウェアへのアクセスの詳細については、この資料を参照してください。

Linux システム

デプロイメントを開始するには、Ubuntu Linux システム (バージョン 24.04 以降) が必要です。実際のデプロイメントは、リモート Kubernetes クラスターにデプロイできますが、デプロイメントはこの Linux マシンから開始されます。システムに Bash シェルと openssl がインストールされていて、指定された SQL サーバーに接続できる必要があります。

動的スキャンでは、動的スキャンが実行されるすべてのノードでカーネル内の inotify インスタンスの数を増やします。
  1. fs.inotify.max_user_instances=524288/etc/sysctl.conf に追加します。
  2. ノードをリブートして、変更を有効にします。

ローカル・コンテナー・サービス (Docker)

Docker は、イメージをリモート・レジストリーにプッシュできるローカル・コンテナー・サービスです。これは、HCL ライセンスおよびダウンロード・ポータルからダウンロードしたアーカイブ・ファイルから AppScan 360° プラットフォームおよび AppScan 修復アドバイザリー をインストールする際に必要です。

Kubectl

Kubectl は、リモート Kubernetes クラスターとの通信に使用されます。

Kubectl のインストールおよび構成の詳しい手順については、こちらをご覧ください。

Helm 3

Helm 3 は、Kubernetes アプリケーションを容易に設定および使用できるようにするための一連のリソースです。

Helm CLI のインストールの詳しい手順については、こちらをご覧ください。

注: Helm バージョン 3.14 ~ 3.17 は、AppScan 360° で動作することが確認されています。

Linux とコンポーネント・サービス間の通信を確認する

Kubernetes の接続性を検証するには、次のコマンドのいずれかを実行します。
> kubectl version
または
> kubectl get nodes

Docker 接続を検証するには、次のコマンドを実行します。

> docker version
Helm 接続を検証するには、次のコマンドを実行します。
> helm version

Kubernetes クラスター

このクラスターは、AppScan 360° プラットフォーム・エージェント・コンテナーが存在し、活用される場所です。

ReadWriteMany をサポートするストレージ・プロバイダーが必要です。longhorn のようなカスタム・ストレージ・プロバイダーを使用する場合は、ReadWriteMany をサポートしていることを確認します。

さらに、永続ボリュームにアクセスするポッドの適切なファイル許可とセキュリティーを確保するために、Kubernetes CSI ドライバーに fsGroup セキュリティー・コンテキスト・サポートがあることが必要です。

注: AppScan 360° の使用に IPv6 が必要で、かつその場合のみ、Kubernetes 分散でデュアルスタック IPv4/IPv6 が有効である必要があります。

ingress コントローラー

HTTPS バックエンド・プロトコルをサポートする ingress コントローラーをデプロイします。

推奨される ingress コントローラーは、NGINX (バージョン 1.11.5 または 1.12. 1 以降) です。ただし、適切な ingress コントローラーが既にクラスターに存在する場合、新しいコントローラーをインストールする必要はありません。

コントローラーは、以下の要件を満たしている必要があります。
  • proxy-body-size: 2g

  • proxy-connect-timeout: 3600

  • proxy-read-timeout: 3600

  • proxy-send-timeout: 3600

  • enable-access-log-for-default-backend: true

  • ssl-redirect: true

  • use-http2: true

  • use-forwarded-headers: true

  • compute-full-forwarded-for: true

cert-manager

Cert-manager をインストールして設定します。

メトリック・サーバー

Kubernetes 組み込み自動スケーリング・パイプライン用コンテナー・リソース・メトリックの拡張性があり効率的なソース。

MSSQL

MSSQL は、リレーショナル・データベース管理システムです。

SSO (LDAP Active Directory/Open ID Connect)

Active Directory は、ネットワーク内のすべてのユーザーとコンピューターを認証および承認し、ネットワーク・アクセスのセキュリティー・ポリシーを割り当てて適用します。

Open ID Connect は、OAuth 2.0 の上位にある認証層であり、クライアントは認証サーバーによって実行された認証に基づいてエンドユーザーの ID を検証し、さらに相互運用可能で REST のような方法でエンドユーザーに関する基本的なプロファイル情報を取得できます。

重要: AppScan 360° バージョン 1.1.0 以前からアップグレードする場合、LDAP の構成をそのまま再利用はできません。インストールの前に、すべての LDAP パラメーターが現在/更新済み AppScan 360° の要件を満たしていることを確認する必要があります。

ネットワーク

ネットワークは暗号化され、ネットワーク・ポリシーをサポートする必要があります。

重要: クライアントと AppScan 360° の間の通信用にインストールされた証明書を信頼できる証明書にすることを強く推奨します。信頼できる証明書がない場合、クライアントと AppScan 360° の間の通信は信頼できません。クライアントは証明書をクライアントの JRE キーストアにインポートできます。ただし、AppScan 360° から Static Analyzer コマンド行ユーティリティー (SAClientUtil) を自動的にダウンロードする静的分析クライアント (Azure プラグインなど) では、このオプションは機能しない場合があります。

ストレージ

AppScan 360° は、2 種類のストレージを使用します。必要なストレージ・スペースは、スキャンの回数とスキャン対象のアプリケーションのサイズによって異なります。ガイドラインとして、1 回のスキャン実行に必要なストレージの平均サイズは、以下のとおりです。

  • MSSQL サーバー DB ストレージ: 150 KB
  • ファイル・ストレージ: 10 MB
スキャン実行数あたりの推定ストレージ:
スキャン実行数 1,000 100,000 1,000,000
MSSQL サーバー・ストレージ 150 MB 15 GB 150 GB
ファイル保管 10 GB 1 TB 10 TB
一時的なログ格納のためにデータベースとファイル・ストレージの両方に推奨される最小ストレージ・サイズは、それぞれ 200 GB です。
注: ストレージは、ポッド間で暗号化、冗長化、共有可能で、RWX (ReadWriteMany) アクセス・モードをサポートしている必要があります。

古いスキャンを手動で削除すると、スペースを節約できます。

CPU とメモリー

CPU とメモリーの要件は、ユーザー数と予想されるワークロードによって異なります。

デフォルトでは、Kubernetes ジョブはスキャンごとに最小リソースを割り当てます。場合によっては、ユーザーのアクティブな状態、使用する自動化の程度、アプリケーションのサイズ、スキャンの頻度などの要因により、スキャンを正しく実行するためにさらに多くのリソースが必要になることがあります。リソースが利用可能であると仮定すると、ポッドは定義された最大リソースまでのスケールアップを試みます。スケールアップするのに十分なリソースがない場合、一部のスキャンが失敗する可能性があります。

成功を最大限に高めるには、必要に応じてシステムを拡張できる十分なリソースを提供します。リソースの割り当ては、同時スキャンの数に基づいて行われます。

AppScan 360° プラットフォーム・リソース

AppScan 360° プラットフォームのみを実行している場合:
メモリー CPU (vCore)
ASCP
最小 42 GB 10
最大 48 GB 12
注: AppScan 360° プラットフォーム・リソースは一定で、スキャンに必要なリソースに追加されます。

リソースのスキャン中

スキャンを実行する場合のその他のリソース:

メモリー CPU (vCore)
動的分析スキャン: シングル・スキャン
最小 3 GB 2
推奨 4 GB 3
動的分析スキャン: 5 件の同時スキャン
最小 15 GB 10
推奨 20 GB 15
動的分析スキャン: 10 件の同時スキャン
最小 30 GB 20
推奨 40 GB 30
静的分析スキャン: シングル・スキャン
最小 16 GB 2
最大 28 GB 4
静的分析スキャン: 5 件の同時スキャン
最小 80 GB 10
最大 140 GB 20
静的分析スキャン: 10 件の同時スキャン
最小 160 GB 20
最大 280 GB 40
ソフトウェア・コンポジション分析 (SCA) スキャン: 単一スキャン
最小 10 GB 4
推奨 20 GB 10
ソフトウェア・コンポジション分析 (SCA) スキャン: 5 件の同時スキャン
最小 50 GB 20
推奨 100 GB 50
ソフトウェア・コンポジション分析 (SCA) スキャン: 10 件の同時スキャン
最小 100 GB 40
推奨 200Gb 100
追加の同時実行を実現するには、次のような十分な追加リソースを使用できる必要があります。
  • 上記のシングル・スキャンに必要なスキャン・リソースを、予想される同時スキャンの数で掛け、その結果を AppScan 360° プラットフォーム・リソースに足してください。
    例:
    • 5 件の同時スキャンの最小リソースは、122GB メモリーと 20 CPU です (AppScan 360° プラットフォーム用に 42GB + スキャン用に 80GB および AppScan 360° プラットフォーム用に 10 CPU + スキャン用に 10 CPU)。
    • 12 件の同時スキャンの最小リソースは、234GB メモリーと 34 CPU です (AppScan 360° プラットフォーム用に 42GB + スキャン用に 192GB および AppScan 360° プラットフォーム用に 10 CPU + スキャン用に 24 CPU)。
  • AppScan 360° プラットフォームのインストール中に発行された AppScan 360° ライセンスの数が十分であることを確認します。
  • 複数のスキャンを同時に稼働させることができる Kubernetes の設定とリソースの可用性を定義します。
  • 25 件を超える同時スキャンはお勧めしません。

各サービスの最大数は、予想されるピーク・スキャン・ロード・プロファイル、つまり、送信されるスキャンのピーク数、ソース・コード/バイナリーのスキャンの比率、および IRX のスキャンの比率によって異なります。これらが不明なために、最初のデプロイメントでは最適な設定を定義できない場合があります。HCL AppScan 360° 設定は実際のスキャン負荷に基づいて調整できます。

注: スキャンを実行するには、1 つのノードでスキャンに必要なリソースを使用できる必要があります。静的スキャンに推奨されるノードには、少なくとも 28 GB の RAM と 4 つのコアが必要です。動的スキャンに推奨されるノードには、ログを一時的に保存するために少なくとも 4 GB の RAM、3 つのコア、200 GB のディスク領域が必要です。

データベース

  • データベースのインストール、管理、バックアップ、メンテナンス、およびライセンスは、ユーザーの責任です。
  • MSSQL Server 2019 以降がサポートされています。
  • HCL AppScan 360° をインストールする前に、1 人のユーザーに db_creator 許可を設定してください。

ブラウザー

AppScan 360° は、以下のブラウザーの最新バージョンをサポートしています。
  • Chrome
  • Safari
  • Edge
  • Firefox

認証プロバイダー

インストール・プロセス中に 2 人のローカル・ユーザーが作成されます。
管理者 アプリケーション・マネージャー
ユーザー名 Admin User
パスワード Admin12! User123!

追加のユーザーをオンボーディングするには、HCL AppScan 360°Microsoft Active Directory が必要です。

画面解像度

HCL AppScan 360° の推奨画面解像度は、1920 x 1080 です。

アクセス・ポイント

コンポーネント Ingress URL
ユーザー・ポータル https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>
ユーザー API https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>/api
ユーザー API (Swagger) https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>/swagger
注: DNS サーバーで ingress 指定 IP を使用して ingress FQDN を公開する必要があります。