Built-In Open Source Code Scanners
Software Risk Manager bundled open source code analyzers can analyze C/C++, Objective-C,
Java, JavaScript, JSP, .NET (C#, VB), PHP, Terraform, Docker, Swift, Scala, Python, Ruby
on Rails, and Rust applications. For all supported languages, Software Risk Manager
will analyze the source using open source bundled tools built specifically
for a target language. For applications built with any combination of the supported
languages, Software Risk Manager will run the appropriate checkers on the provided
source.
Note: The Software Risk Manager built-in open-source
code scanners are turned off by default and can be turned on from the Integrations
page. For more information, see the Integrations Overview
section.
For Java applications, Software Risk Manager bundled open source code analyzers supports scanning compiled bytecode. In fact, the preferred approach for Java projects is to upload both source and bytecode to Software Risk Manager in the supported file format described in the bullets below. This yields the best coverage for issue detection.
For .NET applications, Software Risk Manager supports scanning compiled DLLs. It is also
recommended that the source be uploaded. This will provide better source location
information and will allow for viewing the source while looking at finding details.
Note: If you choose to upload an entire Visual Studio solution
folder, there may be duplicates of the build DLLs and third-party DLLs. This will
cause a longer analysis time and possibly incorrect results if some DLLs are stale.
To achieve the best results, upload a zip that contains only the DLLs and PDB files
for the binaries you wish to analyze. Upload the source as a separate
zip.
Accepted zip Archive Formats
Software Risk Manager accepts application inputs in the following zip archive formats for running bundled open source tools:
- C/C++.
.zipcontaining C/C++ source files that will be analyzed by Software Risk Manager bundled tools. Software Risk Manager will scan the.zipfile for.h,.c,.hpp, and.cppfiles. (Note: If your project contains Objective-C source files then.hfiles will be treated as Objective-C rather than C/C++). - Java source.
.zipcontaining Java source files – with a .java extension – to be analyzed by the Software Risk Manager bundled tools. - Java bytecode.
.zipcontaining.classor.jarbytecode files intended for the JVM. - .NET.
.zipcontaining C# or VB.NET source files – with a .cs or .vb extension. - .NET DLLs.
.zipcontaining compiled.dlls. You must also include the PDB files for.dlls you wish to scan. Software Risk Manager will only scan.dlls with corresponding PDB files – unless there are no PDB files, in which case Software Risk Manager will scan all.dlls but source location information may be sub-optimal. - iOS.
.zipcontaining.ipafiles. (Note: This detection is only for associating add-in tools with these files). - Windows UWP.
.zipcontaining.appxfiles. (Note: This detection is only for associating add-in tools with these files). - Ruby on Rails.
.zipcontaining Ruby source files that are inside anapp/directory. - PHP.
.zipcontaining PHP source files. - PL/SQL.
.zipcontaining PL/SQL source files. - Python.
.zipcontaining Python source files. - JavaScript.
.zipcontaining .js files; minified JavaScript will be ignored. - Scala.
.zipcontaining .scala files. - Swift.
.zipcontaining.swiftfiles. - Objective-C.
.zipcontaining.m,.mm,.M,.hfiles. (Note: '.h' will only be detected as Objective-C if there are other Objective-C file types in the '.zip'). - Terraform.
.zipcontaining.tffiles. - Docker.
.zipcontainingDockerfilefiles. Note that this has no extension. - Rust.
.zipcontaining Rust project files. Software Risk Manager will scan the.ziparchive for theCargo.tomlfile (which is the manifest for Rust projects) and.rssource files.
Note: Software Risk Manager enforces a single source .zip archive per
analysis. Although Software Risk Manager supports multiple languages, the
expectation is that they will all be packaged in a single
.ziparchive
to enable consistent path correlation across all the checkers. And while source and
bytecode inputs can be uploaded in separate files, they do not have to be split up. A
single .zip file containing C/C++ source, Java source, Java bytecode,
.NET DLLs, .NET source, PHP source, Scala source, Ruby on Rails source, Python source,
JavaScript source and Rust source is perfectly acceptable.