Skip to main content

Checkmarx SAST

Checkmarx SAST (Static Application Security Testing) is an application security tool that analyzes your source code for potential vulnerabilities. You can bring application, code project, security finding, and more data from Checkmarx SAST into Brinqa to address security issues, thus strengthening your cybersecurity posture.

This document details the information you must provide for the connector to authenticate with Checkmarx SAST and how to obtain that information from Checkmarx. See create a data integration for step-by-step instructions on setting up the integration.

Required connection settings

When setting up a data integration, select Checkmarx SAST from the Connector drop-down. If you cannot find the connector in the drop-down, make sure that you have installed it first. You must provide the following information to authenticate Checkmarx SAST with Brinqa:

  • Server URL: Your organization's Checkmarx SAST account.

  • Username and Password: The username and password associated with the Checkmarx SAST account, which must have permissions to log in to the API server and return data.

    note

    The Checkmarx SAST user must have at least the Reviewer role assigned to them in order to retrieve data from the Checkmarx SAST API, as it is the minimum role required for API access. For additional information on roles and permissions, see Checkmarx SAST documentation.

Additional settings

The Checkmarx SAST connector contains additional options for specific configuration:

  • Page size: The maximum number of records to get per API request. The default setting is 100. It is not recommended to go over 100.

  • Parallel requests: The maximum number of parallel API requests. The default setting is 2.

  • Include project remote setting: Select this option to include Checkmarx SAST project settings that are managed remotely.

  • Skip certificate verification: Select this option to allow for untrusted certificates.

Types of data to retrieve

The Checkmarx SAST connector can retrieve the following types of data from the Checkmarx SAST REST API:

Table 1: Data retrieved from Checkmarx SAST

Connector ObjectRequiredMaps to Data Model
ApplicationNoApplication
AssessmentYesAssessment
Code ProjectYesCode Project
Open Source FindingNoOpen Source Finding
Open Source Finding DefinitionNoOpen Source Finding Definition
PackageNoPackage
Static Code FindingYesStatic Code Finding
Static Code Finding DefinitionYesStatic Code Finding Definition
TeamNoNot mapped
info

For detailed steps on how to view the data retrieved from Checkmarx SAST in the Brinqa Platform, see How to view your data.

Attribute mappings

Expand the sections below to view the mappings between the source and the Brinqa data model attributes.

Application

Table 2: Application attribute mappings

Source Field NameMaps to Attribute
CATEGORIEScategories
NAMEname
UIDuid
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Assessment

Table 3: Assessment attribute mappings

Source Field NameMaps to Attribute
END_TIMElastStopped
NAMEname
PROJECT_IDtargets
PROJECT_NAMELocal variable
SCAN_SCOPELocal variable
SCAN_TYPEcategories
START_TIMElastStarted
STATUSstatus
SYS_IDuid
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Code Project

Table 4: Code Project attribute mappings

Source Field NameMaps to Attribute
BRANCHLocal variable
CX_VERSIONLocal variable
FAILED_LOCLocal variable
FILES_COUNTLocal variable
IS_DEPRECATEDLocal variable
IS_PUBLICLocal variable
LAST_SCANNEDlastSeen
LOCLocal variable
NAMEname
OWNERowner
PATHSLocal variable
SYS_IDuid
TEAM_IDLocal variable
URLurl
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Open Source Finding

Table 5: Open Source Finding attribute mappings

Source Field NameMaps to Attribute
LAST_FOUNDlastFound
LIBRARY_IDtargets
PROJECT_IDTargets/ Local variable
SCAN_IDassessment
SCORELocal variable
SOURCE_FILE_NAMEfileName
STATELocal variable
STATUSstatus, statusCategory
SYS_IDuid
TITLEname, type, cveIds, cveRecords, uid
VULNERABILITY_IDLocal variable
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Open Source Finding Definition

Table 6: Open Source Finding Definition attribute mappings

Source Field NameMaps to Attribute
DATE_PUBLISHEDpublishedDate
DESCRIPTIONdescription
LAST_FOUNDlastFound
NAMEname
RECOMMENDATIONRecommendation
REFERENCESreferences
SEVERITYseverity, sourceSeverity, severityScore
SYS_IDuid
TITLEname, type, cveIds, cveRecords, uid
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Package

Table 7: Package attribute mappings

Source Field NameMaps to Attribute
LICENSESlicenses
LATEST_VERSIONlatestVersion
MATCH_TYPELocal variable
NAMEname
OUT_DATEDoutDated
PROJECTprojects
RELEASE_DATEfirstSeen
SYS_IDuid
VERSIONcurrentVersion
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Static Code Finding

Table 8: Static Code Finding attribute mappings

Source Field NameMaps to Attribute
ASSIGNED_TOLocal variable
CATEGORIEScategories
CODE_SNIPPETcodeSnippet
COMMENTSLocal variable
CWE_IDcweIds, type, uid, weaknesses
DEEP_LINKLocal variable
DESTINATION_COLUMNLocal variable
DESTINATION_FILELocal variable
DESTINATION_LINELocal variable
DESTINATION_METHODLocal variable
FALSE_POSITIVELocal variable
FILE_NAMEfileName
LAST_FOUNDlastFound
LANGUAGELanguages
PATH_NODESLocal variable
PROJECT_IDtargets
PROJECT_NAMELocal variable
QUERY_CATEGORIESLocal variable
QUERY_GROUPLocal variable
QUERY_NAMEname
RISKLocal variable
SCAN_IDassessment
SCAN_TYPELocal variable
SIMILARITY_IDLocal variable
SOURCE_COLUMNLocal variable
SOURCE_FILELocal variable
SOURCE_LINELocal variable
SOURCE_METHODLocal variable
STATELocal variable
STATUSstatus, statusCategory
SYS_IDuid
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Static Code Finding Definition

Table 9: Static Code Finding Definition attribute mappings

Source Field NameMaps to Attribute
ASSIGNED_TOLocal variable
CATEGORIEScategories
COMMENTSLocal variable
CWE_IDcweIds, type, uid, weaknesses
DEEP_LINKLocal variable
DESCRIPTIONdescription
DESTINATION_COLUMNLocal variable
DESTINATION_FILELocal variable
DESTINATION_LINELocal variable
DESTINATION_METHODLocal variable
FALSE_POSITIVELocal variable
LANGUAGElanguages
PATH_NODESLocal variable
PROJECT_NAMELocal variable
QUERY_CATEGORIESLocal variable
QUERY_GROUPLocal variable
QUERY_NAMEname
RECOMMENDATIONSrecommendation
RISKLocal variable
SCAN_TYPELocal variable
SEVERITYseverity, sourceSeverity, severityScore
SIMILARITY_IDLocal variable
SOURCE_COLUMNLocal variable
SOURCE_FILELocal variable
SOURCE_LINELocal variable
SOURCE_METHODLocal variable
STATELocal variable
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Operation options

The Checkmarx SAST connector supports the following operation options. See connector operation options for information about how to apply them.

Table 10: Checkmarx SAST connector operation options

Connector ObjectOptionAll Possible ValuesDescriptionExample
ApplicationTransactionIdAny Checkmarx SAST transaction ID.A comma-separated list of transaction IDs. Retrieve applications associated with the specified transaction IDs.Key: TransactionId Value: CxSAST-20230715-123456. This key and value combination only retrieves applications associated with the specified transaction ID.
Open Source Finding DefinitionTransactionIdAny Checkmarx SAST transaction ID.A comma-separated list of transaction IDs. Retrieve open source findings associated with the specified transaction IDs.Key: TransactionId Value: CxSAST-20230715-123456. This key and value combination only retrieves applications associated with the specified transaction ID.
Static Code Finding,
Static Code Finding Definition
severitiesInformation, Low, Medium, HighA comma-separated list of severities. Retrieve static code findings with the specified severity, as determined by Checkmarx SAST.Key: severities Value: Medium,High. This key and value combination only retrieves medium and high issues.
TransactionIdAny Checkmarx SAST transaction IDA comma-separated list of transaction IDs. Retrieve static code findings associated with the specified transaction IDs.Key: TransactionId Value: CxSAST-20230715-123456. This key and value combination only retrieves static code findings associated with the specified transaction ID.
note

The option keys and values are case-sensitive as they are shown in this documentation.

APIs

The Checkmarx SAST connector uses the Checkmarx SAST REST API. Specifically, it uses the following endpoints:

Table 11: Checkmarx SAST REST API Endpoints

Connector ObjectAPI Endpoints
ApplicationGET /cxrestapi/projects
AssessmentGET /cxrestapi/projects
GET /cxrestapi/osa/scans
GET /cxrestapi/sast/scans
Code ProjectGET /cxrestapi/projects
GET /cxrestapi/project/{project.id}/sourceCode/remoteSettings/{sourceType}
GET /cxrestapi/sast/scans
Open Source FindingGET /cxrestapi/projects
GET /cxrestapi/osa/scans
GET /cxrestapi/osa/vulnerabilities
Open Source Finding DefinitionGET /cxrestapi/projects
GET /cxrestapi/sast/scans
GET /cxrestapi/reports/sastScan
GET /cxrestapi/reports/sastScan/%s/status
GET /cxrestapi/reports/sastScan/%s
GET /cxrestapi/osa/vulnerabilities
PackageGET /cxrestapi/osa/libraries
GET /cxrestapi/osa/licenses
GET /cxrestapi/projects
GET /cxrestapi/osa/scans
Static Code FindingGET /cxrestapi/projects
GET /cxrestapi/sast/scans
GET /cxrestapi/reports/sastScan
GET /cxrestapi/reports/sastScan/{reportId}/status
GET /cxrestapi/reports/sastScan/{reportId}
Static Code Finding DefinitionGET /cxrestapi/projects
GET /cxrestapi/sast/scans
GET /cxrestapi/reports/sastScan
GET /cxrestapi/reports/sastScan/{reportId}/status
GET /cxrestapi/reports/sastScan/{reportId}
TeamGET /cxrestapi/auth/teams

Changelog

The Checkmarx SAST connector has undergone the following changes:

3.0.8

  • Fixed an issue where incorrect UIDs were being generated for Static Code Finding Definition objects, resulting in data inconsistencies.

3.0.7

  • Made the Open Source Finding, Open Source Finding Definition, and Package object types optional.

3.0.6

  • Fixed an issue where all SAST Issues were incorrectly being set to "False Positive".

3.0.5

  • No change.

3.0.4

  • Changed the IS_DEPRECATED attribute type on the Code Project object from integer to boolean.

3.0.3