Skip to content

Commit fc40b64

Browse files
authored
StaticSecurity Audit - Vul count check (hygieia#95)
1 parent 5d93881 commit fc40b64

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<artifactId>api-audit</artifactId>
55
<packaging>jar</packaging>
66
<name>${project.groupId}:${project.artifactId}</name>
7-
<version>3.6.4-SNAPSHOT</version>
7+
<version>3.6.5-SNAPSHOT</version>
88
<description>Hygieia Audit Rest API Layer</description>
99
<url>https://github.com/Hygieia/${repository.name}</url>
1010

src/main/java/com/capitalone/dashboard/evaluator/StaticSecurityAnalysisEvaluator.java

+14-5
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ private SecurityReviewAuditResponse getStaticSecurityScanResponse(CollectorItem
7979
CodeQuality returnQuality = codeQualities.get(0);
8080

8181
/*
82-
* audit on scan type
83-
* */
82+
* audit on scan type
83+
* */
8484
List<String> approvedScanTypes = settings.getValidStaticSecurityScanTypes();
8585
if(CollectionUtils.isNotEmpty(approvedScanTypes) && Objects.nonNull(returnQuality)) {
8686
String scanType = returnQuality.getScanType();
@@ -93,18 +93,27 @@ private SecurityReviewAuditResponse getStaticSecurityScanResponse(CollectorItem
9393
securityReviewAuditResponse.setLastExecutionTime(returnQuality.getTimestamp());
9494
Set<CodeQualityMetric> metrics = returnQuality.getMetrics();
9595

96-
if (metrics.stream().anyMatch(metric -> metric.getName().equalsIgnoreCase(STR_CRITICAL))){
96+
if (metrics.stream().anyMatch(metric -> metric.getName().equalsIgnoreCase(STR_CRITICAL)) && findSeverityCount(metrics, STR_CRITICAL) > 0){
9797
securityReviewAuditResponse.addAuditStatus(CodeQualityAuditStatus.STATIC_SECURITY_SCAN_FOUND_CRITICAL);
9898
securityReviewAuditResponse.addAuditStatus(CodeQualityAuditStatus.STATIC_SECURITY_SCAN_FAIL);
99-
}else if (metrics.stream().anyMatch(metric -> metric.getName().equalsIgnoreCase(STR_HIGH))){
99+
}else if (metrics.stream().anyMatch(metric -> metric.getName().equalsIgnoreCase(STR_HIGH)) && findSeverityCount(metrics, STR_HIGH) > 0){
100100
securityReviewAuditResponse.addAuditStatus(CodeQualityAuditStatus.STATIC_SECURITY_SCAN_FOUND_HIGH);
101101
securityReviewAuditResponse.addAuditStatus(CodeQualityAuditStatus.STATIC_SECURITY_SCAN_FAIL);
102102
}else{
103-
securityReviewAuditResponse.addAuditStatus(CodeQualityAuditStatus.STATIC_SECURITY_SCAN_OK);
103+
securityReviewAuditResponse.addAuditStatus(CodeQualityAuditStatus.STATIC_SECURITY_SCAN_OK);
104104
}
105105
return securityReviewAuditResponse;
106106
}
107107

108+
private int findSeverityCount(Set<CodeQualityMetric> metrics, String severity){
109+
if(CollectionUtils.isNotEmpty(metrics)){
110+
CodeQualityMetric codeQualityMetric = metrics.stream().filter(metric -> severity.equalsIgnoreCase(metric.getName())).filter(Objects::nonNull).findFirst().get();
111+
return StringUtils.isNotEmpty(codeQualityMetric.getValue())?Integer.parseInt(codeQualityMetric.getValue()) : 0;
112+
}
113+
return 0;
114+
}
115+
116+
108117
public void setSettings(ApiSettings settings) {
109118
this.settings = settings;
110119
}

src/test/java/com/capitalone/dashboard/evaluator/StaticSecurityAnalysisEvaluatorTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void testEvaluate_StaticSecurityMissing(){
4848
@Test
4949
public void testEvaluate_StaticSecurityCritical(){
5050

51-
List<CodeQuality> codeQualitiesCritical = getSecurityCodeQualityData("Critical", CodeQualityMetricStatus.Alert, "");
51+
List<CodeQuality> codeQualitiesCritical = getSecurityCodeQualityData("Critical", CodeQualityMetricStatus.Alert, "1");
5252
when(codeQualityRepository.findByCollectorItemIdAndTimestampIsBetweenOrderByTimestampDesc(any(ObjectId.class),any(Long.class),any(Long.class))).thenReturn(codeQualitiesCritical);
5353
CollectorItem collectorItem = new CollectorItem();
5454
collectorItem.getOptions().put("reportUrl", "");
@@ -59,7 +59,7 @@ public void testEvaluate_StaticSecurityCritical(){
5959
@Test
6060
public void testEvaluate_StaticSecurityHigh(){
6161

62-
List<CodeQuality> codeQualitiesCritical = getSecurityCodeQualityData("High", CodeQualityMetricStatus.Alert, "");
62+
List<CodeQuality> codeQualitiesCritical = getSecurityCodeQualityData("High", CodeQualityMetricStatus.Alert, "1");
6363
when(codeQualityRepository.findByCollectorItemIdAndTimestampIsBetweenOrderByTimestampDesc(any(ObjectId.class),any(Long.class),any(Long.class))).thenReturn(codeQualitiesCritical);
6464
CollectorItem collectorItem = new CollectorItem();
6565
collectorItem.getOptions().put("reportUrl", "");

0 commit comments

Comments
 (0)