- Checkmarx Documentation
- Checkmarx One
- Checkmarx One User Guide
- API Security
- API Inventory
API Inventory
The Global API Inventory lists all APIs and risks detected during all the scans in all projects on the platform.
To view the Global Inventory and details on each API, follow the instructions below.
From the main menu, select Resources > API Inventory.
Select the Inventory tab. The Global API Inventory Table appears as illustrated and listed below.
Parameter
Description
Application
The application to which this project belongs. If the project does not belong to any application, this field is marked ----.
Project
The project for which the API in this row was discovered.
Endpoint Path
The end path of the resource URL.
Method
The operation that the endpoint performs on resources.
Total Risk
The number of risks found in the selected API.
Data Origins
Indicates where the API was detected. Currently, two data origins are available: Code and Documentation.
Sensitive Data
The number of sensitive data attributes for all scans in the listed project.
API Discovered
The date when the API was discovered.
Last Updated
The date when the API was updated last.
Doc
Undocumented APIs present a risk because attackers may use them as an undetectable surveillance and reconnaissance channel.
This column shows whether the endpoint is documented or not:
"-" appears when no documentation file was not scanned.
Yes: The endpoint appears in the scanned document and it is documented.
No: The endpoint appears in the scanned document, but it is not documented.
AuthN
Unauthenticated APIs present a risk because they may allow easy access to confidential information.
This column shows whether the endpoint is authenticated or not.
"-" appears when no documentation file was not scanned.
Yes: The endpoint appears in the scanned document and it is authenticated.
No: The endpoint appears in the scanned document, but it is not authenticated.
To view the details on a specific endpoint, click on the corresponding row.
Additional information appears as illustrated and explained below.
Parameter
Description
Risk
Displays the number and severity of risks detected in the selected API.
This pane may include any or all of the following sections:
Total: The total number of risks found for the current endpoint by the API Security (on the left) and SAST (on the right) scanners.
Source Code: The number of source code risks found by the API Security (on the left) and the number of risks found by the SAST scanner (on the right).
API Documentation: The number of API documentation risks found by the API Security (on the left) and the number of risks found by the SAST scanner (on the right).
If the scan did not include SAST queries, this section will show only the number of API documentation risks.
Clicking on a section opens the relevant risks in the Global Risks table.
Parameters
Shows the number of occurrences of sensitive data in the code and documentation. To see a list of the sensitive data in the code, click inside the widget.
Sensitive data is a set of data that Checkmarx defines as sensitive. It is not related to the detected vulnerabilities. It simply provides you with an overview of what is potentially vulnerable to threats.
Sensitive parameters are divided into five categories like Name, Personal Data, etc. Each category has a set of parameters defined.
Name: firstname, surname, familyname, fullname, name
Personal Data: birthday, dob, dateofbirth, phone, mobile, email, socialsecurity, ssn, driverslicense
Address: address, zipcode
Bank: credit, cardnumber, account
Secrets: dcredentials, secret, auth, apikey, pass, pwd, password
If the API was found in both data origins, the API source code and the documentation, this widget shows which warnings appear only in the code, only in the documentation, or in both. The code data origin is iconized as , and the documentation data origin is iconized as .
Data Origins
Displays the details of the API data origins. It can be either the API source code or the Swagger file, or both. It will show when an API is found in a specific source and if not. Also, if it's, check your scan history for previous iterations of the scan where the data origin may have been detected. This may occur if there was a change or deletion in the data.
Project Name: The project name.
Branch: Where the scan was branched.
Last Scanned: The last scanned date.
Location in Files: Location of API in code, or location of the Swagger file.
Latest Changes
Lists the changes on this API since it was discovered. It can be one or several of the following:
Structure: Added or removed Response and Request parameters, for example:
Structure | {Parameter} was removed
Structure | {Parameter} was added
Risk: Detected one or more new risks. Risks are characterized by their risk level (High, Medium, Low, Informal) and grouped in categories, for example:
Risk | {Number} new {Level} found
Sensitive Data: Flagged parameters as sensitive, for example:
Sensitive Data | {Parameter} was found in {Request or Response}
If the API has not changed since its discovery, the corresponding message will appear.
To view the Global Risks Table for all the listed APIs, follow the instructions below.
To view details and classifications for any listed risk and modify classifications for vulnerabilities detected as part of the risk, refer to the instructions above under Viewing a Risk in Detail for risks listed per API in the Global API Inventory.
To view the Global Risk table:
From the main menu, select Resources > API Inventory. The Global API Inventory page appears.
In the Global API Inventory page, select the Risks tab. The Risks Table appears for all scans per Project and Application to which a specific project may belong.
The parameters in the Risks table are listed and explained below.
Parameter
Description
Severity
Indicates the risk severity as follows:
High
Medium
Low
Applications
The application to which this project belongs. If the project does not belong to any application, this field is marked ----.
Project
The project for which the risk was detected.
Risk Name
The name of the risk.
Status
Indicates the status of the risk as follows:
- A newly detected vulnerability.
- The vulnerability has been detected at least once before.
Endpoint Path
The end path of the resource URL.
Method
The operation that the endpoint performs on resources.
Risk Origin
Indicates where the risk was detected. Currently, two risk origins are available: Code and Documentation. To filter the risks by their origin, click on the column header to display a drop-down list, check the required option, and click OK:
Risk Discovered
The date when the risk was detected.
Doc
Undocumented APIs present a risk because attackers may use them as an undetectable surveillance and reconnaissance channel.
This column shows whether the endpoint is documented or not:
"-" appears when no documentation file was not scanned.
Yes: The endpoint appears in the scanned document and it is documented.
No: The endpoint appears in the scanned document, but it is not documented.
AuthN
Unauthenticated APIs present a risk because they may allow easy access to confidential information.
This column shows whether the endpoint is authenticated or not.
"-" appears when no documentation file was not scanned.
Yes: The endpoint appears in the scanned document and it is authenticated.
No: The endpoint appears in the scanned document, but it is not authenticated.
To filter the lists or to display them in ascending or descending order, do the following:
To view list entries in ascending or descending order, point to the relevant header and select Click to sort ascending or Click to sort descending respectively.
To only show specific parameters, for example, a specific status, point to the relevant header, click and then select the desired parameter(s) from the filter options.
You are able to view details and classifications of each vulnerability as explained below. In addition, you are able to modify the classification of one or multiple instances of a detected vulnerability.
To view a risk detected in an API listed in the Global API Risk list:
In the Global API Risks table, click somewhere in the line of the desired API, for example, yev-i62. Details and a link to the risk of the selected API appear.
Click the Risk Bar . The Risks table for this API appears. According to the indicator on the Risks bar, 12Medium , and 16Low Severity risks have been detected.
Click somewhere inside the row of the desired risk. Additional information on the selected risk appears.
Click inside the icons for additional information. Details of the risk and the sensitive data with their location are displayed.
The screen image and the table below illustrate and list the details of an unsafe object binding.
Parameter
Values
Description
Source File
/iast-manager-times-6-total-589252-locjava-354324-loc/manager-servicescopy5/src/main/java/com/checkmarx/iast/manager/rest/ScansResource.java(line:250)
The path and file name of the file with the Unsafe Object Binding.
Status
New
Recurrent. The vulnerability has been detected at least once before
The status of the unsafe object binding
Source Node
The first node (input) of the vulnerable sequence.
The beginning of the attack vector.
To view all the SAST scan results around the Unsafe Object Binding vulnerability:
Under Details, click to view the highlighted code vulnerability in detail.
Click an instance in the table to view a detailed report and its exact location in the code. In this example, the first detected instance of the 42 detected Stored XSS vulnerabilities has been selected.
The table below lists and explains the parameters in the list.
Parameter
Description
(Severity)
The severity of the vulnerability:
High
Medium
Low
Status
Status of the vulnerability:
New
Recurrent. The vulnerability has been detected at least once before.
State
To Verify. The vulnerability has to be verified.
Not Exploitable.
Proposed Not Exploitable
Confirmed. The vulnerability has been verified as a vulnerability.
Urgent. This needs to be urgently addressed.
Source Node
The first node (input) of the vulnerable sequence.
Source File
The file in which the source node is located.
Sink Node
The last node (output) of the vulnerable sequence.
Note
For vulnerabilities that affect a single node, the sink node is identical to the source node.
Sink File
The file in which the sink node is located.
ID
To read the vulnerability ID, point to .
To copy the ID into the clipboard, click .
To view the exact location of an API documentation vulnerability, click on the vulnerability. The relevant code location will be displayed with the problematic line highlighted.
To modify the classification of one or multiple vulnerabilities:
Select the desired vulnerabilities in the list. Options as to what can be modified are illustrated below.
Choose what to modify as outlined below. Explanations for the various options can be found in the table above.
Option
Description
Change Severity
Click to change the severity to one of the following:
- High
- Medium
- Low
- Info.
Change State
Click to change the state to one of the following:
To Verify
Not Exploitable
Proposed Not Exploitable
Confirmed
Urgent
Add Note
Click to add a note (free text).
Clear Selection
Clear all the selected vulnerabilities. When clearing the selection, the options to modify severities are hidden again.
To view all the sensitive data in the code:
Under Parameters, click . All sensitive data parameters in the code appear.
Interface
Description
List of all sensitive parameters in the API with warnings. This section is identical to the list of sensitive data parameters.
List of all parameters in the request to the API. The sensitive parameters are labeled .
List of all parameters in the response by the API. The sensitive parameters are labeled .