バンドル・ツールによる入力と解析について
組込のコード・スキャナへの入力 (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 は、入力されたファイルを調べて、既知の脆弱性がないかを確認します。対象言語と、対象ファイルは下表の通りです。(依存性スキャナ)
言語 | 解析対象ファイル |
Java | in Java projects, .jar and .war files |
.NET | .NET projects, .exe and .dll files |
JavaScript | JavaScript 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 archives | zip 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. |
Java | Java source zip archives | Java source zip archives – zip archives containing Java source files – with a .java extension – to be analyzed by Code Dx’s bundled tools. |
Java | Java bytecode zip archives | Java bytecode zip archives – zip archives containing .class or .jar bytecode files intended for the JVM. |
.NET | .NET source zip archives | zip archives containing C# or VB.NET source files – with a .cs or .vb extension. |
.NET | .NET DLLs | zip 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. |
Ruby | Ruby on Rails archives | zip archives containing Ruby source files that are inside an app/ directory. |
PHP | PHP zip archives | zip archives containing PHP source files. |
Python | Python zip archives | zip archives containing Python source files. |
Python | JavaScript zip archives | zip archives containing .js files. Minified JavaScript will be ignored. |
Scal | Scala zip archives | zip archives containing .scala files. |
Go | Go source zip archives | zip 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 ソースコード等をまとめて入れれば良いのです。