株式会社イーエルティ

バンドル・ツールによる入力と解析について

組込のコード・スキャナへの入力 (Built-in Code Scanners)

全ての、サポート対象言語について、Code Dx Enterprise は、それぞれのターゲットの言語に対する組込のバンドル・ツールを用いて、ソースコードを解析します。サポート対象の言語を2つ以上組み合わせて構築されたアプリケーションの婆でも、Code Dx Enterpriseは、入力されたソースを読んで、適切な解析ツール(Checker)を選択して実行可能です。

下表に、サポート対象言語の一覧と、言語依存の留意点をまとめます。

サポート対象言語留意点
C, C++
Java

Javaで記述されたアプリケーションの場合、Code Dx はコンパイルされたバイトコードも解析可能です。従って、Javaのプロジェクトにおける、推奨されるアプローチは、ソースコードとバイトコードの両方をCode Dx Enterprise 入力することです。そうすることで、問題点の検出にベストの結果を得ることが出来ます。フォーマットは、後述します。

JavaScript
JSP
.NET(C#, VB)

.NET アプリケーションの場合、Code Dx Enterprise はコンパイルされたDLLも解析可能で、その場合、ソースコードも一緒に入力することを推奨します。そうすることに、問題のソース中のロケーション情報がより性確認なり、問題点の詳細画面において、同時に、ソースコードの該当箇所を参照することが可能②成ります。

PHP
Scala
Python
Ruby on Rails

注)もし、Visual Studio のソリューションフォルダ全体をまとめて入力すると、それに含まれるビルドされたDLLやサードパーティのDLLに重複が発生する場合があります。その場合、解析時間がより長くなってしまう上に、さらに、DLLが古いと解析結果が不正確になる可能性があります。一番良い結果を得るためには、解析対象のバイナリに必要なDLLやPDBファイルだけ(重複したり、余計なバイナリファイルを含まない)を入力します。また、それに対応するソースコードは、別のZipファイルとして、入力します。 

Built-in Dependency Scanners

Code Dx Enterprise は、入力されたファイルを調べて、既知の脆弱性がないかを確認します。対象言語と、対象ファイルは下表の通りです。(依存性スキャナ)

言語解析対象ファイル
Javain Java projects, .jar and .war files
.NET.NET projects, .exe and .dll files
JavaScriptJavaScript files are checked by name or a hash of the file
(minified JavaScript incorporated into a different source file will not be checked)

解析対象言語別の入力形式

Code Dx Enterprise が、バンドル・ツールを用いてサポートする言語と、言語毎のソースコードや必要なファイルを入力する際の形式を下表に示します。

言語入力形式概要
C, C++C/C++ source zip archiveszip files containing C/C++ source files that will be analyzed by Code Dx’s bundled tools. Code Dx will scan the contents of the zip file for any .h, .c, .hpp, and .cpp files.
JavaJava source zip archivesJava source zip archives – zip archives containing Java source files – with a .java extension – to be analyzed by Code Dx’s bundled tools.
JavaJava bytecode zip archivesJava bytecode zip archives – zip archives containing .class or .jar bytecode files intended for the JVM.
.NET.NET source zip archiveszip archives containing C# or VB.NET source files – with a .cs or .vb extension.
.NET.NET DLLszip archives containing compiled DLLs. You must also include the PDB files for DLLs you wish to scan. Code Dx will only scan DLLs with corresponding PDB files – unless there are no PDB files, in which case Code Dx will scan all DLLs but source location information may be sub-optimal.
RubyRuby on Rails archiveszip archives containing Ruby source files that are inside an app/ directory.
PHPPHP zip archiveszip archives containing PHP source files.
PythonPython zip archiveszip archives containing Python source files.
PythonJavaScript zip archiveszip archives containing .js files. Minified JavaScript will be ignored.
ScalScala zip archiveszip archives containing .scala files.
GoGo source zip archiveszip archives containing .go files.

Code Dx Enterprise は、1回の解析に必要なソースコードのファイルは、まとめて一つのZIPにして、入力されることを前提にしています。そのため、一つのプロジェクトが複数の言語で構成されている場合でも、全てのソースファイルは一つのZipファイルにパッケージされて入力される必要があります。これは、解析ツールが一貫してパスを適切に関連付けする為に必須の事です。複数のソースコードやバイトコードのグループを入力する際でも、それぞれ Zip ファイルを分割する必要はありません。(分割して入力した場合、Code Dx Enterprise は入力を受け付けますが、正しい結果が出ない場合があります)

一つのZipファイルに、C/C++ソース、Javaソース、Java バイトコード、.NET DLL、.NETソースコード、PHP ソースコード、Scala ソースコード、Ruby on Rails ソースコード、Python ソースコード、JavaScript ソースコード等をまとめて入れれば良いのです。