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:
+
+ - 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.
+
+ -
+ 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.
+
+ -
+ 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.
+
+ -
+ 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.
+
+
+
+
+
+ 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
+
+ This documentation is protected by copyright ${document.copyright.year}, ${organization.name}.
+
+
+
+
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 @@
+
+
+
+
+ ${product.name} ${product.version}
+
+
+ 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:
+
+ - 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.
+
+ -
+ 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.
+
+ -
+ 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.
+
+ -
+ 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.
+
+
+
+
+
+ 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
+
+ This documentation is protected by copyright ${document.copyright.year}, ${organization.name}.
+
+
+
+
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 @@
+
+
+
+
+ ${product.name} ${product.version}
+
+
+ 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