diff --git a/advisors/example-advisor/context/CTX_resource-exemption.yaml b/advisors/example-advisor/context/CTX_resource-exemption.yaml index 2bc3bfb..4b6830b 100755 --- a/advisors/example-advisor/context/CTX_resource-exemption.yaml +++ b/advisors/example-advisor/context/CTX_resource-exemption.yaml @@ -1,6 +1,7 @@ sets: - name: resource exemption category: external threat + notes: The adversary may attempt to exhaust resources of the application service by injecting foreign log messages. score: 1.0 min: - amount: 1 diff --git a/advisors/example-advisor/correlation/example.yaml b/advisors/example-advisor/correlation/example.yaml index 73a6afa..2778f40 100755 --- a/advisors/example-advisor/correlation/example.yaml +++ b/advisors/example-advisor/correlation/example.yaml @@ -7,3 +7,4 @@ - Id: log4j-*.jar append: EOL Id: log4j + Additional CPE URIs: cpe:/a:gnu:glibc, cpe:/a:gnu:libc diff --git a/advisors/keycloak-advisor/assessment/.gitkeep b/advisors/keycloak-advisor/assessment/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/advisors/keycloak-advisor/inventory/ae-example-keycloak-25.0.0.xlsx b/advisors/keycloak-advisor/inventory/ae-example-keycloak-25.0.0.xlsx new file mode 100644 index 0000000..af628db Binary files /dev/null and b/advisors/keycloak-advisor/inventory/ae-example-keycloak-25.0.0.xlsx differ diff --git a/advisors/keycloak-advisor/pom.xml b/advisors/keycloak-advisor/pom.xml new file mode 100755 index 0000000..8cd2e52 --- /dev/null +++ b/advisors/keycloak-advisor/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + + org.metaeffekt.example.documentation + ae-advisors + 1.0.0-SNAPSHOT + + + ae-keycloak-advisor + jar + + + ${project.basedir}/inventory/ae-example-keycloak-25.0.0.xlsx + + Keycloak + Vulnerability Assessment Dashboard + Demo Dashboard for Keycloak + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + org.metaeffekt.core + ae-inventory-maven-plugin + + + + com.metaeffekt.artifact.analysis + ae-inventory-enrichment-plugin + + + + + + + org.metaeffekt.example.documentation + ae-inventory-extractor + ${project.version} + provided + + + + diff --git a/advisors/keycloak-contextualized-advisor/assessment/inventory-scope.yaml b/advisors/keycloak-contextualized-advisor/assessment/inventory-scope.yaml new file mode 100644 index 0000000..b5a803a --- /dev/null +++ b/advisors/keycloak-contextualized-advisor/assessment/inventory-scope.yaml @@ -0,0 +1,8 @@ +scope: inventory + +cvssV4: + lower: MAV:A +cvssV3: + lower: MAV:A +cvssV2: + lower: AV:A diff --git a/advisors/keycloak-contextualized-advisor/inventory/ae-example-keycloak-25.0.0.xlsx b/advisors/keycloak-contextualized-advisor/inventory/ae-example-keycloak-25.0.0.xlsx new file mode 100644 index 0000000..85106e4 Binary files /dev/null and b/advisors/keycloak-contextualized-advisor/inventory/ae-example-keycloak-25.0.0.xlsx differ diff --git a/advisors/keycloak-contextualized-advisor/pom.xml b/advisors/keycloak-contextualized-advisor/pom.xml new file mode 100755 index 0000000..d96e4e1 --- /dev/null +++ b/advisors/keycloak-contextualized-advisor/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + + org.metaeffekt.example.documentation + ae-advisors + 1.0.0-SNAPSHOT + + + ae-keycloak-contextualized-advisor + jar + + + ${project.basedir}/inventory/ae-example-keycloak-25.0.0.xlsx + + Keycloak + Vulnerability Assessment Dashboard + Demo Dashboard for Keycloak + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + org.metaeffekt.core + ae-inventory-maven-plugin + + + + com.metaeffekt.artifact.analysis + ae-inventory-enrichment-plugin + + + + + + + org.metaeffekt.example.documentation + ae-inventory-extractor + ${project.version} + provided + + + + diff --git a/advisors/pom.xml b/advisors/pom.xml index d11327f..eaabb30 100755 --- a/advisors/pom.xml +++ b/advisors/pom.xml @@ -15,6 +15,8 @@ example-advisor + keycloak-advisor + keycloak-contextualized-advisor openssl-1.1-advisor openssl-3.0-advisor selected-component-advisor @@ -208,6 +210,7 @@ ${activate.correlation} ${correlation.dir} + /Users/ywittmann/workspace/metaeffekt-vulnerability-correlation/correlation diff --git a/advisors/security-policy-dashboard.json b/advisors/security-policy-dashboard.json index d03afd1..ab25462 100644 --- a/advisors/security-policy-dashboard.json +++ b/advisors/security-policy-dashboard.json @@ -1,11 +1,16 @@ { "insignificantThreshold": 7.0, "includeScoreThreshold": -1.0, - "includeVulnerabilitiesWithAdvisoryProviders": [{"implementation":"all","name":"all"}], - "includeAdvisoryProviders": [{"implementation":"all","name":"all"}], + "includeVulnerabilitiesWithAdvisoryProviders": [ + {"name": "all", "implementation": "all"} + ], + "includeAdvisoryProviders": [ + {"name": "all", "implementation": "all"} + ], "includeAdvisoryTypes": ["all"], "vulnerabilityStatusDisplayMapperName": "abstracted", - "cvssSeverityRanges": "None:pastel-gray:0.0:0.0,Low:strong-yellow:0.1:3.9,Medium:strong-light-orange:4.0:6.9,High:strong-dark-orange:7.0:8.9,Critical:strong-red:9.0:100.0", + "cvssSeverityRanges": "None:pastel-gray::0.0,Low:strong-yellow:0.1:3.9,Medium:strong-light-orange:4.0:6.9,High:strong-dark-orange:7.0:8.9,Critical:strong-red:9.0:", + "priorityScoreSeverityRanges": "escalate:strong-red:9.0:,due:strong-dark-orange:7.0:8.9,elevated:strong-light-orange::6.9", "cvssVersionSelectionPolicy": ["LATEST"], "initialCvssSelector": {"stats":[],"rules":[{"method":"ALL","stats":[],"selector":[{"host":["NVD"],"issuerRole":["CNA"],"issuer":["NVD"]},{"host":["Microsoft Corporation"],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["Microsoft Corporation"]},{"host":["GitHub, Inc."],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["GitHub, Inc."]},{"host":["NVD"],"issuerRole":["*"],"issuer":["*"]},{"host":["CERT-SEI"],"issuerRole":["*"],"issuer":["*"]},{"host":["not:Assessment"],"issuerRole":["*"],"issuer":["*"]}],"vectorEval":[]}],"vectorEval":[]}, "contextCvssSelector": {"stats":[{"comparator":"EQUAL","action":"RETURN_NULL","attribute":"assessment","value":0}],"rules":[{"method":"ALL","stats":[],"selector":[{"host":["NVD"],"issuerRole":["CNA"],"issuer":["NVD"]},{"host":["Microsoft Corporation"],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["Microsoft Corporation"]},{"host":["GitHub, Inc."],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["GitHub, Inc."]},{"host":["NVD"],"issuerRole":["*"],"issuer":["*"]},{"host":["CERT-SEI"],"issuerRole":["*"],"issuer":["*"]},{"host":["not:Assessment"],"issuerRole":["*"],"issuer":["*"]}],"vectorEval":[]},{"method":"ALL","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["all"]}],"vectorEval":[]},{"method":"LOWER","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["lower"]}],"vectorEval":[]},{"method":"HIGHER","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["higher"]}],"vectorEval":[]}],"vectorEval":[{"and":["not:IS_BASE_FULLY_DEFINED"],"action":"RETURN_NULL"}]}, diff --git a/documents/reports/example-report/pom.xml b/documents/reports/example-report/pom.xml index c253642..44940a7 100755 --- a/documents/reports/example-report/pom.xml +++ b/documents/reports/example-report/pom.xml @@ -109,7 +109,9 @@ false false - CERT_SEI + + [ {"name":"CERT_SEI"} ] + diff --git a/documents/reports/keycloak-contextualized-report/pom.xml b/documents/reports/keycloak-contextualized-report/pom.xml new file mode 100755 index 0000000..f8d965b --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/pom.xml @@ -0,0 +1,164 @@ + + + 4.0.0 + + + org.metaeffekt.example.documentation + ae-reports + 1.0.0-SNAPSHOT + + + keycloak-contextualized-report + jar + + + 00.01 + Draft + + Keycloak + Keycloak + ${project.version} + + XXXX-YYY-ZZ-VR + + 0.1 + Preview + vulnerability-report_en + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack-inventories + + unpack-dependencies + + generate-sources + + ${project.build.directory}/inventories + provided + **/*-inventory*.xls + true + + + + unpack-advisor-resource + + unpack-dependencies + + generate-sources + + ${project.basedir}/src/main/dita/${project.artifactId}/gen + provided + **/resources/**/*.* + true + + + + + + + org.metaeffekt.core + ae-inventory-maven-plugin + + + create-report-ae + + create-inventory-report + + process-sources + + ${project.build.directory}/inventories/inventory + ae-keycloak-contextualized-advisor-inventory.xls + ${project.build.directory}/inventories/inventory/ae-keycloak-contextualized-advisor-inventory.xls + ${basedir}/src/main/dita/${project.artifactId}/gen + + + + + + ${project.build.directory}/inventory-base + **/*.xls + + ${project.inventory} + + ${basedir}/src/main/dita/${project.artifactId}/gen + + ${project.basedir}/../../security-policy-report.json + + true + true + + false + false + false + false + false + false + false + false + false + false + false + false + + + [ {"name":"CERT_SEI"} ] + + + + + + + + + + org.metaeffekt.core + ae-inventory-maven-plugin + + + org.apache.maven.plugins + maven-dependency-plugin + + + org.apache.maven.plugins + maven-resources-plugin + + + org.metaeffekt.dita + ae-dita-maven-plugin + + + org.apache.maven.plugins + maven-antrun-plugin + + + org.codehaus.mojo + buildnumber-maven-plugin + + + org.apache.maven.plugins + maven-assembly-plugin + + + + + + + + org.metaeffekt.example.documentation + ae-keycloak-contextualized-advisor + ${project.version} + provided + + + + + diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cpe.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cpe.dita new file mode 100755 index 0000000..22ae384 --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cpe.dita @@ -0,0 +1,23 @@ + + + + Common Product Enumeration + + Common Product Enumeration (CPE) is a scheme used by the to identify + vulnerable products (software and hardware). A CPE has a defined structure consisting of several parts: +

+ cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>: + <language>:<sw_edition>:<target_sw>: + <target_hw>:<other> +

+

+ With a CPE several vulnerabilities () can be associated. +

+
+ + Common Product Enumeration (CPE) + + CPE + + +
\ No newline at end of file diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cve.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cve.dita new file mode 100755 index 0000000..43f467a --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cve.dita @@ -0,0 +1,15 @@ + + + + Common Vulnerability Exposure + + A Common Vulnerability Exposure (CVE) is a public representation of a vulnerability. Each CVE covers + a description and machine-readable information for version matching. + + + Common Vulnerability Exposure (CVE) + + CVE + + + \ No newline at end of file diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cvss.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cvss.dita new file mode 100755 index 0000000..31e55e4 --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_cvss.dita @@ -0,0 +1,16 @@ + + + + Common Vulnerability Scoring System + + The severity of vulnerabilities is commonly measured applying the Common Vulnerability Scoring System (CVSS) + scoring system. + The scheme uses several individual metrics to capture different aspects of a vulnerability. + + + Common Vulnerability Scoring System (CVSS) + + CVSS + + + \ No newline at end of file diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_nist.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_nist.dita new file mode 100755 index 0000000..44e0d8c --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_nist.dita @@ -0,0 +1,15 @@ + + + + National Institute of Standards and Technology + + The National Institute of Standards and Technology (NIST) is a science laboratory and agency of the United State Department of Commerce. + Apart from many other activities the NIST publishes the Cybersecurity Framework guidance on information security and risk management. + + + National Institute of Standards and Technology (NIST) + + NIST + + + \ No newline at end of file diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_nvd.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_nvd.dita new file mode 100755 index 0000000..1f6d204 --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/glossary/en/g_nvd.dita @@ -0,0 +1,17 @@ + + + + National Vulnerability Database + + The National Vulnerability Database (NVD) is a repository of vulnerability related data. + The NVD hosts and + details for retrieving and matching vulnerability information. +

The NVD is managed by the .

+
+ + National Vulnerability Database (NVD) + + NVD + + +
\ No newline at end of file diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/tpc_vulnerability-report-notice.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/tpc_vulnerability-report-notice.dita new file mode 100644 index 0000000..e6f6dd0 --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tmp/tpc_vulnerability-report-notice.dita @@ -0,0 +1,201 @@ + + + + Notice + +
+ Names and Trademarks +

+ All company names, organization names, and product names mentioned in this documentation + are used for identification purposes only. A trademark is explicitly identified as registered or + unregistered trademark only if required by appropriate guidelines or license terms. +

+
+
+ External Vulnerability Materials +

+ Materials - including data, content, and references - covering vulnerability information from external + sources are presented in this documentation 'AS IS'. ${organization.name} does not claim any copyright + on the included external materials nor is ${organization.name} liable for the correctness and completeness + of the presented external materials. Materials from external sources are included herein for informational + purposes only. ${organization.name} is not responsible for the availability and content provided by + external links. +

+
+
+ Third-Party Component Vulnerabilities +

+ The vulnerabilities enlisted within this document are primarily vulnerabilities of third-party software + or hardware components that are included within or integrated with assets of ${organization.name}. The + fact that such a component has a known vulnerability must not necessarily mean that this vulnerability + immediately affects the ${organization.name} assets. Vulnerabilities need to be categorized and assessed + within the context of the asset using the affected components. +

+
+
+ Vulnerability Categories +

+ Vulnerabilities of included or integrated third-party components are categorized in three categories: +

    +
  • Potential Vulnerabilities affect functions or interfaces used by the ${organization.name} + assets and require an individual assessment. Whether a vulnerability imposes a risk on the + availability, integrity and/or confidentiality of data being processed, or functions being + executed by the asset is subject to an individual assessment. +
  • +
  • Not Applicable Vulnerabilities are vulnerabilities that are associated with an included or + integrated third-party component, but only affect functions or interfaces that are not in use + or deactivated. For not applicable vulnerabilities a rationale is provided explaining why the + vulnerability does not affect a given asset. +
  • +
  • Insignificant Vulnerabilities are either vulnerabilities below + a given vulnerability score threshold or have been degraded during an assessment in a given + context. Insignificant vulnerabilities are nevertheless listed to provide a comprehensive view. + A rationale is provided in case a vulnerability was degraded to an insignificant vulnerability + during the vulnerability assessment. +
  • +
+

+
+ +
+ Insignificant Vulnerabilities Threshold +

+

+ +
+ Vulnerability Assessment +

+ Identified vulnerabilities are assessed in four major steps: +

    +
  1. Correlation Verification - The identified components are automatically correlated with vulnerable + products. The correlation may be false, incomplete, or imprecise. In the correlation verification + step the automated mapping is reviewed and improved. Based on a precise vulnerable product + correlation vulnerabilities can be queried more accurately. +
  2. +
  3. + Applicability Check - Queried vulnerabilities are analyzed for applicability. Vulnerabilities that + are not applicable are documented by providing an appropriate rationale. Furthermore, vulnerabilities + can be degraded or escalated within the given categories. +
  4. +
  5. + Avoidance Check - For applicable vulnerabilities alternatives or upgrade options are validated. When + a defect causing the vulnerability is fixed by a newer version of the component, the update or + upgrade options are evaluated within the current development and release timelines. +
  6. +
  7. + Risk Assessment – Applicable vulnerabilities that cannot be addressed by updating, upgrading or + replacements are assessed to determine the imposed security risk. The vulnerability induced risk is + described and counter measures for the asset in operation are evaluated and documented. +
  8. +
+

+
+
+ Vulnerability Severity Metrics +

+ Generally, vulnerability severity is measured using the scoring system. Currently two + versions of the CVSS scoring system are commonly applied. This document uses both the CVSS version 2.0 and the CVSS + version 3.x. +

+

+ For comparison of vulnerabilities the overall CVSS scores Scoremax - the maximum of CVSS overall score + Scorev2 and Scorev3 - is used. +

+

+ + The report uses the default CVSS severity scheme as defined in the CVSS 3.1 specification both to CVSS 2.0 and CVSS 3.x scores: + + CVSS Severity Scheme + + + + + + + Severity Rating + CVSS Score Range + Remarks + + + + + + + + + None + + + 0.0 + In the CVSS 2.0 specification 0.0 is included in severity rating Low. + + + + + + Low + + + 0.1 - 3.9 + In the CVSS 2.0 specification 0.0 is included in severity rating Low. + + + + + + Medium + + + 4.0 - 6.9 + + + + + + + High + + + 7.0 - 8.9 + In the CVSS 2.0 specification the severity rating Critical does not exist. CVSS scores from 7.0 to 10.0 are + all rated as High. + + + + + + + Critical + + + 9.0 - 10.0 + In the CVSS 2.0 specification the severity rating Critical does not exist. CVSS scores from 7.0 to 10.0 are + all rated as High. + + + + +
+

+
+
+ External Vulnerability Sources +

+ The is the primary data source for vulnerability information utilized. A vulnerable + product is represented within NVD as ; an individual vulnerability as + . +

+

+ Advisory information is included from additional sources. These vary dependent on the product domain and target + audience. +

+
+ +
+ Copyright + +
+ +
diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tpc_vulnerabilities.dita b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tpc_vulnerabilities.dita new file mode 100644 index 0000000..622699c --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/ae-keycloak-contextualized-report/tpc_vulnerabilities.dita @@ -0,0 +1,80 @@ + + + + Vulnerability Overview + +

+ For the third-party components contained in ${product.name} vulnerabilities have been queried from + public vulnerability databases. The following sections cover the vulnerabilities for the + software parts included in ${product.name}. +

+ +
+ Overview Charts +

+ A set of charts depicts the vulnerabilities correlated with ${product.name}. The following + illustrations convey insights on the initial vulnerability situation, the assessment status and + the severity of the correlated vulnerabilities in the given context. +

+ + + + + + + +

+ Initial Vulnerability Severity +

+

+ The chart depicts the vulnerability severity distribution without context information. +

+ +
+ +

+ Context Vulnerability Severity +

+

+ The chart provides the distribution of vulnerability severities after evaluation of the + vulnerabilities in the given context. +

+ +
+
+ + +
+ + + Overview Charts + + + + + + +

+ Vulnerability Assessment Status +

+

+ The illustration provides information on the current assessment status. +

+ +
+ +

+ CVSS Severity per Component +

+

+ The chart visualizes the distribution of vulnerabilities on components included in ${product.name}. +

+ +
+
+ + +
+
+ +
diff --git a/documents/reports/keycloak-contextualized-report/src/main/dita/bm_report.ditamap b/documents/reports/keycloak-contextualized-report/src/main/dita/bm_report.ditamap new file mode 100755 index 0000000..577c86a --- /dev/null +++ b/documents/reports/keycloak-contextualized-report/src/main/dita/bm_report.ditamap @@ -0,0 +1,44 @@ + + + + + <ph>${product.name} ${product.version}</ph> + + + Vulnerability Report + + ${document.id} + + + + 2021 + + + ${organization.name} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/reports/keycloak-report/pom.xml b/documents/reports/keycloak-report/pom.xml new file mode 100755 index 0000000..0ecf36d --- /dev/null +++ b/documents/reports/keycloak-report/pom.xml @@ -0,0 +1,164 @@ + + + 4.0.0 + + + org.metaeffekt.example.documentation + ae-reports + 1.0.0-SNAPSHOT + + + ae-keycloak-report + jar + + + 00.01 + Draft + + Keycloak + Keycloak + ${project.version} + + XXXX-YYY-ZZ-VR + + 0.1 + Preview + vulnerability-report_en + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack-inventories + + unpack-dependencies + + generate-sources + + ${project.build.directory}/inventories + provided + **/*-inventory*.xls + true + + + + unpack-advisor-resource + + unpack-dependencies + + generate-sources + + ${project.basedir}/src/main/dita/${project.artifactId}/gen + provided + **/resources/**/*.* + true + + + + + + + org.metaeffekt.core + ae-inventory-maven-plugin + + + create-report-ae + + create-inventory-report + + process-sources + + ${project.build.directory}/inventories/inventory + ae-keycloak-advisor-inventory.xls + ${project.build.directory}/inventories/inventory/ae-keycloak-advisor-inventory.xls + ${basedir}/src/main/dita/${project.artifactId}/gen + + + + + + ${project.build.directory}/inventory-base + **/*.xls + + ${project.inventory} + + ${basedir}/src/main/dita/${project.artifactId}/gen + + ${project.basedir}/../../security-policy-report.json + + true + true + + false + false + false + false + false + false + false + false + false + false + false + false + + + [ {"name":"CERT_SEI"} ] + + + + + + + + + + org.metaeffekt.core + ae-inventory-maven-plugin + + + org.apache.maven.plugins + maven-dependency-plugin + + + org.apache.maven.plugins + maven-resources-plugin + + + org.metaeffekt.dita + ae-dita-maven-plugin + + + org.apache.maven.plugins + maven-antrun-plugin + + + org.codehaus.mojo + buildnumber-maven-plugin + + + org.apache.maven.plugins + maven-assembly-plugin + + + + + + + + org.metaeffekt.example.documentation + ae-keycloak-advisor + ${project.version} + provided + + + + + diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cpe.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cpe.dita new file mode 100755 index 0000000..22ae384 --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cpe.dita @@ -0,0 +1,23 @@ + + + + Common Product Enumeration + + Common Product Enumeration (CPE) is a scheme used by the to identify + vulnerable products (software and hardware). A CPE has a defined structure consisting of several parts: +

+ cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>: + <language>:<sw_edition>:<target_sw>: + <target_hw>:<other> +

+

+ With a CPE several vulnerabilities () can be associated. +

+
+ + Common Product Enumeration (CPE) + + CPE + + +
\ No newline at end of file diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cve.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cve.dita new file mode 100755 index 0000000..43f467a --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cve.dita @@ -0,0 +1,15 @@ + + + + Common Vulnerability Exposure + + A Common Vulnerability Exposure (CVE) is a public representation of a vulnerability. Each CVE covers + a description and machine-readable information for version matching. + + + Common Vulnerability Exposure (CVE) + + CVE + + + \ No newline at end of file diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cvss.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cvss.dita new file mode 100755 index 0000000..31e55e4 --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_cvss.dita @@ -0,0 +1,16 @@ + + + + Common Vulnerability Scoring System + + The severity of vulnerabilities is commonly measured applying the Common Vulnerability Scoring System (CVSS) + scoring system. + The scheme uses several individual metrics to capture different aspects of a vulnerability. + + + Common Vulnerability Scoring System (CVSS) + + CVSS + + + \ No newline at end of file diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_nist.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_nist.dita new file mode 100755 index 0000000..44e0d8c --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_nist.dita @@ -0,0 +1,15 @@ + + + + National Institute of Standards and Technology + + The National Institute of Standards and Technology (NIST) is a science laboratory and agency of the United State Department of Commerce. + Apart from many other activities the NIST publishes the Cybersecurity Framework guidance on information security and risk management. + + + National Institute of Standards and Technology (NIST) + + NIST + + + \ No newline at end of file diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_nvd.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_nvd.dita new file mode 100755 index 0000000..1f6d204 --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/glossary/en/g_nvd.dita @@ -0,0 +1,17 @@ + + + + National Vulnerability Database + + The National Vulnerability Database (NVD) is a repository of vulnerability related data. + The NVD hosts and + details for retrieving and matching vulnerability information. +

The NVD is managed by the .

+
+ + National Vulnerability Database (NVD) + + NVD + + +
\ No newline at end of file diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/tpc_vulnerability-report-notice.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/tpc_vulnerability-report-notice.dita new file mode 100644 index 0000000..e6f6dd0 --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tmp/tpc_vulnerability-report-notice.dita @@ -0,0 +1,201 @@ + + + + Notice + +
+ Names and Trademarks +

+ All company names, organization names, and product names mentioned in this documentation + are used for identification purposes only. A trademark is explicitly identified as registered or + unregistered trademark only if required by appropriate guidelines or license terms. +

+
+
+ External Vulnerability Materials +

+ Materials - including data, content, and references - covering vulnerability information from external + sources are presented in this documentation 'AS IS'. ${organization.name} does not claim any copyright + on the included external materials nor is ${organization.name} liable for the correctness and completeness + of the presented external materials. Materials from external sources are included herein for informational + purposes only. ${organization.name} is not responsible for the availability and content provided by + external links. +

+
+
+ Third-Party Component Vulnerabilities +

+ The vulnerabilities enlisted within this document are primarily vulnerabilities of third-party software + or hardware components that are included within or integrated with assets of ${organization.name}. The + fact that such a component has a known vulnerability must not necessarily mean that this vulnerability + immediately affects the ${organization.name} assets. Vulnerabilities need to be categorized and assessed + within the context of the asset using the affected components. +

+
+
+ Vulnerability Categories +

+ Vulnerabilities of included or integrated third-party components are categorized in three categories: +

    +
  • Potential Vulnerabilities affect functions or interfaces used by the ${organization.name} + assets and require an individual assessment. Whether a vulnerability imposes a risk on the + availability, integrity and/or confidentiality of data being processed, or functions being + executed by the asset is subject to an individual assessment. +
  • +
  • Not Applicable Vulnerabilities are vulnerabilities that are associated with an included or + integrated third-party component, but only affect functions or interfaces that are not in use + or deactivated. For not applicable vulnerabilities a rationale is provided explaining why the + vulnerability does not affect a given asset. +
  • +
  • Insignificant Vulnerabilities are either vulnerabilities below + a given vulnerability score threshold or have been degraded during an assessment in a given + context. Insignificant vulnerabilities are nevertheless listed to provide a comprehensive view. + A rationale is provided in case a vulnerability was degraded to an insignificant vulnerability + during the vulnerability assessment. +
  • +
+

+
+ +
+ Insignificant Vulnerabilities Threshold +

+

+ +
+ Vulnerability Assessment +

+ Identified vulnerabilities are assessed in four major steps: +

    +
  1. Correlation Verification - The identified components are automatically correlated with vulnerable + products. The correlation may be false, incomplete, or imprecise. In the correlation verification + step the automated mapping is reviewed and improved. Based on a precise vulnerable product + correlation vulnerabilities can be queried more accurately. +
  2. +
  3. + Applicability Check - Queried vulnerabilities are analyzed for applicability. Vulnerabilities that + are not applicable are documented by providing an appropriate rationale. Furthermore, vulnerabilities + can be degraded or escalated within the given categories. +
  4. +
  5. + Avoidance Check - For applicable vulnerabilities alternatives or upgrade options are validated. When + a defect causing the vulnerability is fixed by a newer version of the component, the update or + upgrade options are evaluated within the current development and release timelines. +
  6. +
  7. + Risk Assessment – Applicable vulnerabilities that cannot be addressed by updating, upgrading or + replacements are assessed to determine the imposed security risk. The vulnerability induced risk is + described and counter measures for the asset in operation are evaluated and documented. +
  8. +
+

+
+
+ Vulnerability Severity Metrics +

+ Generally, vulnerability severity is measured using the scoring system. Currently two + versions of the CVSS scoring system are commonly applied. This document uses both the CVSS version 2.0 and the CVSS + version 3.x. +

+

+ For comparison of vulnerabilities the overall CVSS scores Scoremax - the maximum of CVSS overall score + Scorev2 and Scorev3 - is used. +

+

+ + The report uses the default CVSS severity scheme as defined in the CVSS 3.1 specification both to CVSS 2.0 and CVSS 3.x scores: + + CVSS Severity Scheme + + + + + + + Severity Rating + CVSS Score Range + Remarks + + + + + + + + + None + + + 0.0 + In the CVSS 2.0 specification 0.0 is included in severity rating Low. + + + + + + Low + + + 0.1 - 3.9 + In the CVSS 2.0 specification 0.0 is included in severity rating Low. + + + + + + Medium + + + 4.0 - 6.9 + + + + + + + High + + + 7.0 - 8.9 + In the CVSS 2.0 specification the severity rating Critical does not exist. CVSS scores from 7.0 to 10.0 are + all rated as High. + + + + + + + Critical + + + 9.0 - 10.0 + In the CVSS 2.0 specification the severity rating Critical does not exist. CVSS scores from 7.0 to 10.0 are + all rated as High. + + + + +
+

+
+
+ External Vulnerability Sources +

+ The is the primary data source for vulnerability information utilized. A vulnerable + product is represented within NVD as ; an individual vulnerability as + . +

+

+ Advisory information is included from additional sources. These vary dependent on the product domain and target + audience. +

+
+ +
+ Copyright + +
+ +
diff --git a/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tpc_vulnerabilities.dita b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tpc_vulnerabilities.dita new file mode 100644 index 0000000..622699c --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/ae-keycloak-report/tpc_vulnerabilities.dita @@ -0,0 +1,80 @@ + + + + Vulnerability Overview + +

+ For the third-party components contained in ${product.name} vulnerabilities have been queried from + public vulnerability databases. The following sections cover the vulnerabilities for the + software parts included in ${product.name}. +

+ +
+ Overview Charts +

+ A set of charts depicts the vulnerabilities correlated with ${product.name}. The following + illustrations convey insights on the initial vulnerability situation, the assessment status and + the severity of the correlated vulnerabilities in the given context. +

+ + + + + + + +

+ Initial Vulnerability Severity +

+

+ The chart depicts the vulnerability severity distribution without context information. +

+ +
+ +

+ Context Vulnerability Severity +

+

+ The chart provides the distribution of vulnerability severities after evaluation of the + vulnerabilities in the given context. +

+ +
+
+ + +
+ + + Overview Charts + + + + + + +

+ Vulnerability Assessment Status +

+

+ The illustration provides information on the current assessment status. +

+ +
+ +

+ CVSS Severity per Component +

+

+ The chart visualizes the distribution of vulnerabilities on components included in ${product.name}. +

+ +
+
+ + +
+
+ +
diff --git a/documents/reports/keycloak-report/src/main/dita/bm_report.ditamap b/documents/reports/keycloak-report/src/main/dita/bm_report.ditamap new file mode 100755 index 0000000..b4d4c02 --- /dev/null +++ b/documents/reports/keycloak-report/src/main/dita/bm_report.ditamap @@ -0,0 +1,44 @@ + + + + + <ph>${product.name} ${product.version}</ph> + + + Vulnerability Report + + ${document.id} + + + + 2021 + + + ${organization.name} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documents/reports/pom.xml b/documents/reports/pom.xml index a045802..d0a400c 100755 --- a/documents/reports/pom.xml +++ b/documents/reports/pom.xml @@ -14,6 +14,8 @@ example-report + keycloak-report + keycloak-contextualized-report diff --git a/documents/security-policy-report.json b/documents/security-policy-report.json index efdb8a2..0d9256e 100644 --- a/documents/security-policy-report.json +++ b/documents/security-policy-report.json @@ -1,12 +1,42 @@ { "insignificantThreshold": 7.0, "includeScoreThreshold": -1.0, - "includeVulnerabilitiesWithAdvisoryProviders": ["all"], - "includeAdvisoryProviders": ["all"], + "includeVulnerabilitiesWithAdvisoryProviders": [ + {"name": "all", "implementation": "all"} + ], + "includeAdvisoryProviders": [ + {"name": "all", "implementation": "all"} + ], "includeAdvisoryTypes": ["all"], "vulnerabilityStatusDisplayMapperName": "unmodified", - "cvssSeverityRanges": "None:pastel-gray:0.0:0.0,Low:strong-yellow:0.1:3.9,Medium:strong-light-orange:4.0:6.9,High:strong-dark-orange:7.0:8.9,Critical:strong-red:9.0:10.0", + "cvssSeverityRanges": "None:pastel-gray::0.0,Low:strong-yellow:0.1:3.9,Medium:strong-light-orange:4.0:6.9,High:strong-dark-orange:7.0:8.9,Critical:strong-red:9.0:", + "priorityScoreSeverityRanges": "escalate:strong-red:9.0:,due:strong-dark-orange:7.0:8.9,elevated:strong-light-orange::6.9", "cvssVersionSelectionPolicy": ["LATEST"], "initialCvssSelector": {"stats":[],"rules":[{"method":"ALL","stats":[],"selector":[{"host":["NVD"],"issuerRole":["CNA"],"issuer":["NVD"]},{"host":["Microsoft Corporation"],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["Microsoft Corporation"]},{"host":["GitHub, Inc."],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["GitHub, Inc."]},{"host":["NVD"],"issuerRole":["*"],"issuer":["*"]},{"host":["CERT-SEI"],"issuerRole":["*"],"issuer":["*"]},{"host":["not:Assessment"],"issuerRole":["*"],"issuer":["*"]}],"vectorEval":[]}],"vectorEval":[]}, - "contextCvssSelector": {"stats":[{"comparator":"EQUAL","action":"RETURN_NULL","attribute":"assessment","value":0}],"rules":[{"method":"ALL","stats":[],"selector":[{"host":["NVD"],"issuerRole":["CNA"],"issuer":["NVD"]},{"host":["Microsoft Corporation"],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["Microsoft Corporation"]},{"host":["GitHub, Inc."],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["GitHub, Inc."]},{"host":["NVD"],"issuerRole":["*"],"issuer":["*"]},{"host":["CERT-SEI"],"issuerRole":["*"],"issuer":["*"]},{"host":["not:Assessment"],"issuerRole":["*"],"issuer":["*"]}],"vectorEval":[]},{"method":"ALL","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["all"]}],"vectorEval":[]},{"method":"LOWER","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["lower"]}],"vectorEval":[]},{"method":"HIGHER","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["higher"]}],"vectorEval":[]}],"vectorEval":[{"and":["not:IS_BASE_FULLY_DEFINED"],"action":"RETURN_NULL"}]} + "contextCvssSelector": {"stats":[{"comparator":"EQUAL","action":"RETURN_NULL","attribute":"assessment","value":0}],"rules":[{"method":"ALL","stats":[],"selector":[{"host":["NVD"],"issuerRole":["CNA"],"issuer":["NVD"]},{"host":["Microsoft Corporation"],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["Microsoft Corporation"]},{"host":["GitHub, Inc."],"issuerRole":["*"],"issuer":["*"]},{"host":["NVD"],"issuerRole":["CNA"],"issuer":["GitHub, Inc."]},{"host":["NVD"],"issuerRole":["*"],"issuer":["*"]},{"host":["CERT-SEI"],"issuerRole":["*"],"issuer":["*"]},{"host":["not:Assessment"],"issuerRole":["*"],"issuer":["*"]}],"vectorEval":[]},{"method":"ALL","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["all"]}],"vectorEval":[]},{"method":"LOWER","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["lower"]}],"vectorEval":[]},{"method":"HIGHER","stats":[{"provider":"PRESENCE","attribute":"assessment","setType":"ADD"}],"selector":[{"host":["Assessment"],"issuerRole":["*"],"issuer":["higher"]}],"vectorEval":[]}],"vectorEval":[{"and":["not:IS_BASE_FULLY_DEFINED"],"action":"RETURN_NULL"}]}, + "priorityScoreConfiguration": { + "eol": { + "noExtendedSupport": { + "supportValid": 0, + "supportEndingSoon": 1, + "supportExpired": 2 + }, + "extendedSupport": { + "supportValid": 0, + "supportEndingSoon": 1, + "extendedSupportValid": 1, + "extendedSupportEndingSoon": 1, + "extendedSupportExpired": 2 + } + }, + "epss": { + "min": 0.5, + "f": 0.5, + "F": 1 + }, + "kev": { + "exploit": 2, + "ransomware": 1 + } + } } \ No newline at end of file