Java IAST エージェントの配置

Java、.NET、Node.js または PHP ベースのアプリケーションをサポートするアプリケーション・サーバーに IAST エージェントを配置できます。このセクションでは、Web サーバーに Java エージェント・タイプを作成する方法について説明します。

始める前に

IAST を使用する最も簡単で効果的な方法は、Web サーバーに WAR ファイル・サーブレットとして配置することです。これが不可能な場合、例えば、Quarkus フレームワークで IAST を実行する場合は、JAR ファイルを使用して、IAST エージェントを Java エージェントとしてインストールできます。
サポート: JRE/JDK 1.8 以上を実行する Web アプリケーション・サーバーのみがサポートされています。
  1. IAST が実行されているサーバーがプロキシーの背後にある場合:
    • 透過プロキシーの場合、サーバーの実行時に次の Java プロパティーのいずれかを使用します:
      • 標準 Java プロパティー:
        -Dhttps.proxyHost={proxy_ip} -Dhttps.proxyPort={proxy_port}
      • カスタム Java プロパティー:
        -DIast.proxyHost={proxy_ip} -DIast.proxyPort={proxy_port}
      • 環境変数:
        IAST_PROXY_HOST={proxy_ip} IAST_PROXY_PORT={proxy_port}
    • 外部と通信するために証明書が必要な場合 (例えば、透過プロキシーを通過する場合)、有効な証明書を指定し、次のコマンドを実行して鍵ストアにインポートします。
      注: JRE をデフォルト設定でインストールした場合、鍵ストア名は cacerts となり、パスワード changeit によって保護されます。それ以外の場合は、-storepass-keystore、および -file に独自の値を指定します。
      keytool.exe -import 
                                              -storepass "changeit" 
                                              -keystore "C:\Program Files (x86)\Java\jre1.8.0_144\lib\security\cacerts" 
                                              -alias certificate.cer 
                                              -file "C:\certificate.cer" 
                                              -noprompt
                                          
  2. IAST エージェント・バージョン 1.14.2 より前のバージョンで、コンパイル時間およびランタイム Java バージョンがどちらも 9 以降である場合は、Java 実行コマンドに次のフラグを追加します:
    –Djava.lang.invoke.stringConcat=BC_SB

手順

  1. ここで説明されているように、ASoC Java IAST エージェントをダウンロードします。
  2. ZIP ファイルの内容を解凍します。
  3. IAST エージェントを WAR サーブレットまたは JAR ファイルとしてデプロイします。
    WAR サーブレットとしてデプロイ:
    1. 解凍した ZIP ファイルのルートで Secagent.war を見つけます。
    2. サーバーの手順に従ってください:
      • Tomcat サーバー/Jetty サーバー: Secagent.warwebapps フォルダーにコピーするか、他の WAR サーブレットと同様に配置します。
      • WebSphere サーバー: Secagent.war を、他の WAR サーブレットと同様に配置します。
        注: 次の点を確認します:
        1. エンタープライズ・アプリケーションではなく、Web アプリケーションとしてエージェントを配置します
        2. コンテキスト・ルートとして /Secagent を選択します。
      • WebSphere Liberty サーバー/Open Liberty サーバー: Secagent.wardropins フォルダーにコピーするか、他の WAR サーブレットと同様に配置します。
      • JBoss/WildFly サーバー/JBoss EAP サーバー: Secagent.wardeployments フォルダーにコピーするか、他の WAR サーブレットと同様に配置します。
      • Weblogic: Secagent.war を、他の WAR サーブレットと同様に配置します。
    3. 配置を確認するには、ブラウザーを開いて次を参照します:
      http://<server address>/Secagent
      Secagent ページを開くと、エージェントが無事にロードされています。アプリケーションを使用またはテストすると (機能テストの実行、動的スキャンの実行、またはアプリのマニュアル探査)、IAST エージェントによって要求が送信時に監視され、検出されたセキュリティー問題が報告されます。
    JAR ファイルとしてデプロイ:

    IAST エージェントを WAR ファイルとしてデプロイできない場合は、このデプロイメント方式を使用します。例えば、Quarkus フレームワークで IAST を実行している場合などです。このデプロイメント方式では、IAST エージェントは Java エージェントとして実行されます。

    1. jar_deployment フォルダー内で secagent.jar を見つけます。
    2. 以下のフラグをアプリのコマンド行に追加します。
      -Djavaagent:<path to secagent.jar>
    3. 配置を検証するには、stdout で「[IAST Secagent]」で始まるメッセージを確認してください。
    エージェントがインストールされます。アプリケーションを使用またはテスト (機能テストの実行、動的スキャン、またはアプリケーションの手動探査) を実行すると、IAST エージェントによって要求が監視され、検出されたセキュリティー問題がレポートされます。

セキュリティー・マネージャーを使用した Java エージェントの実行

このタスクについて

Java エージェントは、次のようにセキュリティー・マネージャーを使用して実行できます。

  • Tomcat の WAR ファイルとして、または
  • Tomcat 以外のサーバーの jar ファイルとして。指導については、AppScan サポート・チームにお問い合わせください。

セキュリティー・マネージャーを Tomcat の WAR として使用して Java エージェントを実行するには、次の手順を実行します。

手順

  1. catalina.policy ファイルを見つけます。
    catalina.policy ファイルは通常、Tomcat のインストール構成ディレクトリーにあります。正確なパスは、オペレーティング・システムと Tomcat のバージョンによって異なる場合があります。
  2. catalina.policy ファイルをテキスト・エディターで開きます。
  3. 「grant」ブロックを探します。

    キーワード「grant」から始まり、1 つ以上の「permission」ステートメントが続くブロックを探します。

  4. 必要な許可を以下のように追加します。
    1. 「grant」ブロック内に、次の許可を追加します。
      permission java.lang.RuntimePermission "net.bytebuddy.*";
    2. ファイルの最後に、次の許可を追加します。
      grant codeBase "file:${catalina.base}/webapps/Secagent/-" {
                                          permission java.security.AllPermission;
                                          };
  5. catalina.policy ファイルを保存します。
  6. Tomcat サーバーを再起動して、変更内容を適用します。