The Secure Chain Knowledge Graph is a comprehensive knowledge graph designed to model the relationships between software, hardware, vulnerabilities, and other entities to support secure and transparent management of software supply chains.
In today's increasingly complex technological ecosystem, software has become an integral part of crucial infrastructures. Underlying modern software systems is the supply chain of open-source software components, such as Apache Spark, whose functionalities are reused and integrated into various systems underpinning modern society.
While software supply chains empower the rapid development of software systems, they also increase the risks, since any bugs, vulnerabilities, and unauthorized changes in upstream components can propagate to downstream systems and cause severe consequences. This is evident through many software crises witnessed in recent years, such as the Heartbleed bug, the Equifax data breach, and the NPM left-pad incident that almost broke the Internet.
Therefore, the Secure Chain Ontology is designed to provide a unified knowledge graph ontology that can capture rich, up-to-date information about software components in heterogenous software ecosystems. By extending widely adopted ontologies such as Schema.org and incorporating principles from software description vocabularies, the Secure Chain Ontology facilitates interoperability with existing data sources and standards, making it a powerful tool for security professionals, developers, and researchers.
The ontology supports key use cases such as risk analysis, secure software development lifecycle management, and compliance monitoring, by allowing users to trace dependencies between software and hardware components, identify which versions are affected by certain vulnerabilities, and ensure that all components in the chain are properly licensed. Additionally, the Secure Chain Ontology supports concepts such as vulnerability types and discovery, allowing for more detailed and actionable information when assessing the security posture of a system. As part of its design, the ontology aims to be flexible and extendable, enabling integration with domain-specific ontologies or other metadata vocabularies that may exist in different areas of the supply chain ecosystem.
dc | <http://purl.org/dc/elements/1.1/> |
dcterms | <http://purl.org/dc/terms/> |
owl | <http://www.w3.org/2002/07/owl#> |
rdf | <http://www.w3.org/1999/02/22-rdf-syntax-ns#> |
rdfs | <http://www.w3.org/2000/01/rdf-schema#> |
sc | <https://w3id.org/secure-chain/> |
schema | <http://schema.org/> |
vann | <http://purl.org/vocab/vann/> |
voaf | <http://purl.org/vocommons/voaf#> |
widoco | <https://w3id.org/widoco/vocab#> |
xml | <http://www.w3.org/XML/1998/namespace> |
xsd | <http://www.w3.org/2001/XMLSchema#> |
This ontology has the following classes and properties.
The Secure Chain Ontology builds on top of Schema.org, as shown in the figure below, extending its vocabulary to seamlessly integrate with its metadata properties and enhance interoperability across various systems.
We use sc:Software as a central concept in the Secure Chain Ontology to represent software within secure supply chains, with associated sc:SoftwareVersions capturing the evolution of software over time. These versions are critical for tracking vulnerabilities, compliance, and updates. The ontology models dependencies between software versions and other components, such as hardware, through properties like sc:dependsOn and sc:OperatesOn, which help assess potential risks and identify vulnerabilities. Additionally, sc:License links each software version to its legal aspects, ensuring compliance across the supply chain. The ontology also extends to hardware through sc:Hardware and sc:HardwareVersions, allowing for comprehensive tracking of both digital and physical components. Vulnerabilities are represented through sc:Vulnerability and sc:VulnerabilityType, with links to the entities that discover them, providing a detailed view of security risks across software and hardware versions.
IRI: https://w3id.org/secure-chain/Hardware
IRI: https://w3id.org/secure-chain/HardwareVersion
Represents a specific version of a hardware product within the secure chain.
IRI: https://w3id.org/secure-chain/License
Represents licenses associated with software or hardware products in the secure supply chain.
IRI: http://schema.org/Organization
IRI: http://schema.org/Person
IRI: http://schema.org/Product
IRI: https://w3id.org/secure-chain/Software
Represents software applications that are part of a secure supply chain.
IRI: http://schema.org/SoftwareApplication
IRI: https://w3id.org/secure-chain/SoftwareVersion
Represents a specific version of a software application within the secure chain.
IRI: https://w3id.org/secure-chain/Vulnerability
Represents vulnerabilities that may affect software or hardware components in the secure supply chain.
IRI: https://w3id.org/secure-chain/VulnerabilityType
Represents types or classifications of vulnerabilities affecting secure supply chains.
IRI: http://schema.org/affiliation
IRI: http://schema.org/contributor
IRI: https://w3id.org/secure-chain/dependsOn
Indicates a dependency relationship between two software versions.
IRI: https://w3id.org/secure-chain/discover
Indicates that a person or organization has discovered a vulnerability in a software or hardware component.
IRI: https://w3id.org/secure-chain/hasHardwareVersion
Indicates the relationship between a hardware product and its version.
IRI: https://w3id.org/secure-chain/hasSoftwareVersion
Indicates the relationship between a software product and its version.
IRI: http://schema.org/license
IRI: http://schema.org/manufacturer
IRI: https://w3id.org/secure-chain/operatesOn
Indicates that a particular version of software operates on a particular version of hardware.
IRI: http://schema.org/producer
IRI: https://w3id.org/secure-chain/vulnerabilityType
Associates a vulnerability with its specific type or classification.
IRI: https://w3id.org/secure-chain/vulnerableTo
Indicates that a particular version of software is vulnerable to a specific vulnerability.
IRI: http://schema.org/codeRepository
IRI: http://schema.org/description
IRI: http://schema.org/email
IRI: http://schema.org/familyName
IRI: http://schema.org/givenName
IRI: http://schema.org/identifier
IRI: http://schema.org/name
IRI: http://schema.org/programmingLanguage
IRI: https://w3id.org/secure-chain/versionName
Represents the version name of a software or hardware product.
The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment, which is used for representing the Cross Referencing Section of this document and Daniel Garijo for developing Widoco, the program used to create the template used in this documentation.
Represents hardware products that are part of a secure supply chain.