Java アプリケーションの並列処理
Java 分析で、並列分析手法を使用するようになりました。これにより IRX ファイルの生成にかかる時間が大幅に短縮されます。また、分析に対するこの手法の改訂により、変換されたクラス・ファイルがクライアント・システムで分析形式にキャッシュされ、分析が実行されるたびに再構築するのではなく、保存されたコピーを使用して分析が行われます。
並列処理によりコードが細かく分割され、各部分を分析用として簡単にスキャンできます。分割されたコードの細かい各部は同時にスキャンが可能です。これによりメモリの消費や CPU の領域を節約できるため動作が早くなります。
並列処理の一般的なプロパティー
appscan prepare
を実行しているクライアントにプロパティーを設定するには、プロパティーの前に -D
を付加します。プロパティ | 値 | 説明 |
---|---|---|
USE_SLICER |
true|false デフォルト: true |
true に設定すると、並列処理を使用できるようになります。 |
IRX_MINOR_CACHE_HOME |
$user.home/.appscan/irx_cache |
ファイル・キャッシュの場所を指定します。ここではマッピングされた Windows と、UNC ドライブまたは Linux マウントを使用できます。 |
DISABLE_CACHE |
True デフォルト: 未設定 |
キャッシュを使用しないようにします。これにより、キャッシュ・エントリーがある場合でも、各クラス・ファイルで IR 生成プロセスが強制的に再実行されます。 |
例
$user.home/.appscan/irx_cache
に保存されているファイル・システム・キャッシュを使用して実行します。- CLI
$ appscan.sh prepare
- Gradle
gradle appscan-prepare
- Maven
mvn com.hcl.security:appscan-maven-plugin:prepare
- CLI
$ appscan.sh prepare -DDISABLE_CACHE=true
- Gradle
gradle appscan-prepare -DDISABLE_CACHE=true
- Maven
mvn com.hcl.security:appscan-maven-plugin:prepare -DDISABLE_CACHE=true
s:
の irx_cache
ディレクトリーで使用するようにファイル・キャッシュを設定します。- CLI
> appscan.bat prepare -DIRX_MINOR_CACHE_HOME=s:\\irx_cache
- Gradle
gradle appscan-prepare -DIRX_MINOR_CACHE_HOME=s:\\irx_cache
- Maven
mvn com.hcl.security:appscan-maven-plugin:prepare -DIRX_MINOR_CACHE_HOME=s:\\irx_cache
- CLI
$ appscan.sh prepare -DUSE_SLICER=fals
- Gradle
gradle appscan-prepare -DUSE_SLICER=fals
- Maven
mvn com.hcl.security:appscan-maven-plugin:prepare -DUSE_SLICER=fals
ログ
- scan.manifest : このファイルは、IRX ファイル生成の一部として生成され、検出されたすべての項目がリストされます。各言語用にスキャンされた言語および成果物のリストが提供されます。デフォルトでは、サード・パーティーの成果物が除外されています。
- scan.mainfest.json: 解析しやすいように、scan.manifest file と同じ情報が JSON 形式で格納されています。
-
StaticAnalyzer-Errors.slice.log: IRX ファイルが正常に生成されなかった場合にスライスで発生した可能性のあるエラーが提供されます。各スライスのスライス番号と対応するエラー・メッセージがリストされます。このファイルが空の場合は、スライスに IRX ファイル生成に関連するエラー・メッセージはありません。
- stage.stats.json: Java 分析中のパッケージ、ステージングされた
zip
形式のファイル (ear
、jar
、war
、rar
)、およびそれぞれの大容量のzip
形式ファイルを解凍するのに要したメモリー・フットプリントの概要を示します。 - slice.prepare.stats.json: 各クラス・ファイルとその関連バケットが、キャッシュから取得されたかどうかという情報とともに含まれています。キャッシュから取得されなかった場合、スライス IPVA ファイルの生成にかかった時間が示されます。
バケット
各バケットには、スライス・ディレクトリーの下にフォルダー名として番号が付いたフォルダーが含まれています。slices/<language>/<bucket_number>/logs ディレクトリー内にある各スライスの logs ディレクトリーには、そのバケットに存在する成果物と言語がリストされた scan.manifest
ファイルがあります。
または、slice.prepare.stats.json
ファイルに、分析中の各クラス・ファイルのバケットの関連付け情報が含まれている場合もあります。
結果
新しいプログラム・スライス・メカニズムでは、一部の検出結果のシグニチャーが変更され、以前と若干異なっています。そのため、既にトリアージされた検出結果と類似した検出結果が生成される場合があります。これは、以前のスキャン・メカニズムの検出結果が既に存在するアプリケーションに対して、初めてプログラム・スライス分析を実行する場合にのみ発生します。また、一部の検出結果を新しいものと見なして、以前と同様にトリアージする必要がある場合があります。