Endpoint for retrieving D3FEND ontology inbound bindings.
GET
/api/ontology/inference/d3fend-full-mappings.csv
Returns
Type | Description |
---|---|
OntologyBindings | 200 - success response - application/json |
The D3FEND REST API is used to populate the views on the D3FEND website. This is an alpha version API, please send feedback to help improve this community resource.
Type | Description |
---|---|
OntologyBindings | 200 - success response - application/json |
export interface OntologyBindings {
message: string;
}
Type | Description |
---|---|
OntologyBindings | 200 - success response - application/json |
export interface OntologyBindings {
message: string;
}
Name | Type | Description |
---|---|---|
subject | string | Single D3FEND object/artifact id |
Type | Description |
---|---|
OntologyBindings | 200 - success response - application/json |
export interface OntologyBindings {
"@id": string;
"@type"?: string[];
"http://www.w3.org/2002/07/owl#onProperty"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://www.w3.org/2002/07/owl#someValuesFrom"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://www.w3.org/2000/01/rdf-schema#subClassOf"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#monitors"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#definition"?: HTTPD3FendMitreOrgOntologiesD3FendOwlDefinitionElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#executes"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#synonym"?: HTTPD3FendMitreOrgOntologiesD3FendOwlDefinitionElement[];
"http://www.w3.org/2000/01/rdf-schema#isDefinedBy"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://www.w3.org/2000/01/rdf-schema#label"?: HTTPD3FendMitreOrgOntologiesD3FendOwlDefinitionElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#analyzes"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#filters"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
"http://d3fend.mitre.org/ontologies/d3fend.owl#invokes"?: HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement[];
}
export interface HTTPD3FendMitreOrgOntologiesD3FendOwlAnalyzeElement {
"@id": string;
}
export interface HTTPD3FendMitreOrgOntologiesD3FendOwlDefinitionElement {
"@value": string;
}
Name | Type | Description |
---|---|---|
subject | string | Single D3FEND object/artifact id |
Type | Description |
---|---|
OntologyBindings | 200 - success response - application/json |
export interface OntologyBindings {
head: Head;
results: Results;
}
export interface Head {
vars: string[];
}
export interface Results {
bindings: Binding[];
}
export interface Binding {
object: Object;
subject: Object;
predicate: Object;
}
export interface Object {
type: Type;
value: string;
}
export enum Type {
Bnode = "bnode",
URI = "uri",
}
Name | Type | Description |
---|---|---|
artifact | string | Name of D3FEND Artifact |
Type | Description |
---|---|
DAOArtifact | 200 - success response - application/json |
export interface DAOArtifact {
da_to_off: DaToOff;
da_to_def: DaToDef;
neighbors: Neighbors;
da_to_weak: Artifactld;
artifactld: Artifactld;
da_graph: DaGraph;
description: Artifactld;
}
export interface Artifactld {
"@context": Context;
"@graph": ArtifactldGraph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface ArtifactldGraph {
"@id": string;
"@type"?: string[];
"d3f:definition"?: string;
"rdfs:label"?: string;
"rdfs:seeAlso"?: RdfsSeeAlso;
"rdfs:subClassOf"?: RdfsSeeAlso;
"skos:altLabel"?: string[];
}
export interface RdfsSeeAlso {
"@id": string;
}
export interface DaGraph {
"@context": Context;
"@graph": DaGraphGraph[];
}
export interface DaGraphGraph {
"@id": string;
"rdfs:hasSubClass"?: RdfsSeeAlso[] | RdfsSeeAlso;
"rdfs:label": string;
}
export interface DaToDef {
head: Head;
results: DaToDefResults;
}
export interface Head {
vars: string[];
}
export interface DaToDefResults {
bindings: Binding[];
}
export interface Binding {
def_tactic_label: DefArtifact;
def_tactic_rel_label: DefArtifact;
def_tech_parent_is_toplevel: DefTechParentIsToplevel;
def_tech_parent_label: DefArtifact;
def_tech_label: DefArtifact;
def_artifact_rel_label: DefArtifact;
def_artifact_label: DefArtifact;
def_tactic: DefArtifact;
def_tactic_rel: DefArtifact;
def_tech: DefArtifact;
def_artifact_rel: DefArtifact;
def_artifact: DefArtifact;
}
export interface DefArtifact {
type: Type;
value: string;
}
export enum Type {
Literal = "literal",
URI = "uri",
}
export interface DefTechParentIsToplevel {
datatype: string;
type: Type;
value: string;
}
export interface DaToOff {
head: Head;
results: DaToOffResults;
}
export interface DaToOffResults {
bindings: { [key: string]: DefArtifact }[];
}
export interface Neighbors {
"@context": Context;
"@graph": NeighborsGraph[];
}
export interface NeighborsGraph {
"@id": string;
"rdfs:label": string[];
"d3f:copies"?: RdfsSeeAlso[];
"d3f:outbound"?: RdfsSeeAlso[];
"d3f:contains"?: RdfsSeeAlso[];
}
Type | Description |
---|---|
ArtifactsGraph | 200 - success response - application/json |
export interface ArtifactsGraph {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"rdfs:hasSubClass"?: RdfsHasSubClass[];
"rdfs:label": string[];
"skos:altLabel"?: string[];
}
export interface RdfsHasSubClass {
"@id": string;
}
Type | Description |
---|---|
Taxonomy | 200 - success response - application/json |
export interface Taxonomy {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"@type"?: string[];
"d3f:d3fend-id"?: string[];
"d3f:definition"?: string[];
"d3f:kb-reference"?: D3FAnalyze[];
"d3f:maps"?: D3FAnalyze[];
"rdfs:label"?: string[];
"rdfs:subClassOf"?: D3FAnalyze[];
"d3f:created"?: D3F[];
"d3f:disables"?: D3FAnalyze[];
"d3f:kb-article"?: string[];
"d3f:may-query"?: D3FAnalyze[];
"d3f:synonym"?: string[];
"owl:disjointWith"?: D3FAnalyze[];
"d3f:analyzes"?: D3FAnalyze[];
"d3f:hardens"?: D3FAnalyze[];
"d3f:children"?: D3FAnalyze[];
"d3f:enables"?: D3FAnalyze[];
"d3f:display-order"?: D3F[];
"d3f:evaluates"?: D3FAnalyze[];
"d3f:identifies"?: D3FAnalyze[];
"d3f:deletes"?: D3FAnalyze[];
"d3f:authenticates"?: D3FAnalyze[];
"d3f:filters"?: D3FAnalyze[];
"d3f:reads"?: D3FAnalyze[];
"d3f:inventories"?: D3FAnalyze[];
"d3f:spoofs"?: D3FAnalyze[];
"d3f:regenerates"?: D3FAnalyze[];
"d3f:restricts"?: D3FAnalyze[];
"rdfs:seeAlso"?: D3FAnalyze[];
"d3f:blocks"?: D3FAnalyze[];
"d3f:may-contain"?: D3FAnalyze[];
"d3f:display-priority"?: D3F[];
"d3f:manages"?: D3FAnalyze[];
"d3f:display-baseurl"?: string[];
"d3f:encrypts"?: D3FAnalyze[];
"d3f:monitors"?: D3FAnalyze[];
"d3f:may-access"?: D3FAnalyze[];
"d3f:isolates"?: D3FAnalyze[];
"d3f:validates"?: D3FAnalyze[];
"d3f:verifies"?: D3FAnalyze[];
"d3f:terminates"?: D3FAnalyze[];
"d3f:queries"?: D3FAnalyze[];
"d3f:use-limits"?: D3FAnalyze[];
"d3f:may-map"?: D3FAnalyze[];
"d3f:neutralizes"?: D3FAnalyze[];
"d3f:suspends"?: D3FAnalyze[];
"d3f:restores"?: D3FAnalyze[];
"d3f:obfuscates"?: D3FAnalyze[];
"d3f:updates"?: D3FAnalyze[];
"d3f:strengthens"?: D3FAnalyze[];
"skos:altLabel"?: string[];
"rdfs:isDefinedBy"?: D3FAnalyze[];
}
export interface D3FAnalyze {
"@id": string;
}
export interface D3F {
"@type": string;
"@value": string;
}
Type | Description |
---|---|
DAOMatrix[] | 200 - success response - application/json |
export interface DAOMatrix {
"@id": string;
children: DAOMatrixChild[];
"d3f:display-order": D3F;
"d3f:display-priority": D3F;
"d3f:type": string;
"rdfs:label": string;
}
export interface DAOMatrixChild {
"@id": string;
children: ChildChild[];
"d3f:d3fend-id": string;
"d3f:definition": string;
"rdfs:label": string;
"d3f:ref-count"?: D3F;
}
export interface ChildChild {
"@id": string;
"d3f:d3fend-id": string;
"d3f:definition": string;
"d3f:ref-count"?: D3F;
"rdfs:label": string;
children?: ChildChild[];
}
export interface D3F {
"@type": string;
"@value": string;
}
Type | Description |
---|---|
ATTACKTechniques | 200 - success response - application/json |
export interface ATTACKTechniques {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"d3f:attack-id": string;
"d3f:definition": string;
"rdfs:label": string;
}
Type | Description |
---|---|
OffensiveTechnique | 200 - success response - application/json |
export interface OffensiveTechnique {
off_to_def: OffToDef;
description: Description;
subtechniques: Description;
}
export interface Description {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"@type": string[];
"d3f:attack-id": string;
"d3f:definition": string;
"d3f:produces": D3FProduces;
"rdfs:label": string;
"rdfs:subClassOf": D3FProduces;
}
export interface D3FProduces {
"@id": string;
}
export interface OffToDef {
head: Head;
results: Results;
}
export interface Head {
vars: string[];
}
export interface Results {
bindings: Binding[];
}
export interface Binding {
sc: DefArtifact;
off_artifact_label: DefArtifact;
off_artifact_rel_label: DefArtifact;
off_tech_label: DefArtifact;
off_tactic_rel_label: DefArtifact;
off_tactic_label: DefArtifact;
off_artifact: DefArtifact;
off_artifact_rel: DefArtifact;
off_tech: DefArtifact;
off_tech_id: DefArtifact;
off_tactic_rel: DefArtifact;
off_tactic: DefArtifact;
def_tactic_label?: DefArtifact;
def_tactic_rel_label?: DefArtifact;
def_tech_parent_is_toplevel?: DefTechParentIsToplevel;
def_tech_parent_label?: DefArtifact;
def_tech_label?: DefArtifact;
def_artifact_rel_label?: DefArtifact;
def_artifact_label?: DefArtifact;
def_tactic?: DefArtifact;
def_tactic_rel?: DefArtifact;
def_tech?: DefArtifact;
def_artifact_rel?: DefArtifact;
def_artifact?: DefArtifact;
}
export interface DefArtifact {
type: Type;
value: string;
}
export enum Type {
Literal = "literal",
URI = "uri",
}
export interface DefTechParentIsToplevel {
datatype: string;
type: Type;
value: string;
}
Name | Type | Description |
---|---|---|
tactic | string | Name of D3FEND tactic Artifact |
Type | Description |
---|---|
Tactic | 200 - success response - application/json |
export interface Tactic {
techniques: Techniques;
group: Group;
}
export interface Group {
"@context": Context;
"@graph": GroupGraph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface GroupGraph {
"@id": string;
"@type": string[];
"d3f:definition": string;
"d3f:display-order": D3FDisplay;
"d3f:display-priority": D3FDisplay;
"rdfs:label": string;
"rdfs:subClassOf": Rdfs;
}
export interface D3FDisplay {
"@type": string;
"@value": string;
}
export interface Rdfs {
"@id": string;
}
export interface Techniques {
"@context": Context;
"@graph": TechniquesGraph[];
}
export interface TechniquesGraph {
"@id": string;
"d3f:d3fend-id": string;
"d3f:definition": string;
"rdfs:label": string;
"rdfs:subClassOf"?: Rdfs;
"d3f:synonym"?: string[] | string;
"d3f:top-level"?: string;
"rdfs:hasSubClass"?: Rdfs[];
}
Type | Description |
---|---|
Tactics | 200 - success response - application/json |
export interface Tactics {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"@type": Type[];
"d3f:definition": string;
"d3f:display-order": D3FDisplay;
"d3f:display-priority": D3FDisplay;
"rdfs:label": string;
"rdfs:subClassOf": RdfsSubClassOf;
}
export enum Type {
D3FDefensiveTactic = "d3f:DefensiveTactic",
OwlClass = "owl:Class",
OwlNamedIndividual = "owl:NamedIndividual",
}
export interface D3FDisplay {
"@type": string;
"@value": string;
}
export interface RdfsSubClassOf {
"@id": Type;
}
Name | Type | Description |
---|---|---|
technique | string | Name of D3FEND technique Artifact |
Type | Description |
---|---|
Technique | 200 - success response - application/json |
export interface Technique {
def_to_off: DefToOff;
description: Description;
digital_artifacts: DigitalArtifacts;
subtechniques: Description;
related_offensive_matrix: RelatedOffensiveMatrix;
references: References;
references_meta: ReferencesMeta;
}
export interface DefToOff {
head: Head;
results: DefToOffResults;
}
export interface Head {
vars: string[];
}
export interface DefToOffResults {
bindings: Binding[];
}
export interface Binding {
query_def_tech_label: DefArtifact;
top_def_tech_label: DefArtifact;
def_tactic_label: DefArtifact;
def_tactic_rel_label: DefArtifact;
def_tech_label: DefArtifact;
def_artifact_rel_label: DefArtifact;
def_artifact_label: DefArtifact;
off_artifact_label: DefArtifact;
off_artifact_rel_label: DefArtifact;
off_tech_label: DefArtifact;
off_tech_id: DefArtifact;
off_tech_parent_label: DefArtifact;
off_tech_parent_is_toplevel: OffTechParentIsToplevel;
off_tactic_rel_label: DefArtifact;
off_tactic_label: DefArtifact;
def_tactic: DefArtifact;
def_tactic_rel: DefArtifact;
def_tech: DefArtifact;
def_artifact_rel: DefArtifact;
def_artifact: DefArtifact;
off_artifact: DefArtifact;
off_artifact_rel: DefArtifact;
off_tech: DefArtifact;
off_tech_parent: DefArtifact;
off_tactic_rel: DefArtifact;
off_tactic: DefArtifact;
}
export interface DefArtifact {
type: Type;
value: string;
}
export enum Type {
Literal = "literal",
URI = "uri",
}
export interface OffTechParentIsToplevel {
datatype: string;
type: Type;
value: string;
}
export interface Description {
"@context": DescriptionContext;
"@graph": DescriptionGraph[];
}
export interface DescriptionContext {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface DescriptionGraph {
"@id": string;
"@type": string[];
"d3f:d3fend-id": string;
"d3f:definition": string;
"d3f:inventories": D3FKBReference[];
"d3f:kb-reference": D3FKBReference;
"d3f:synonym": string[];
"rdfs:label": string;
"rdfs:subClassOf": D3FKBReference;
}
export interface D3FKBReference {
"@id": string;
}
export interface DigitalArtifacts {
head: Head;
results: DigitalArtifactsResults;
}
export interface DigitalArtifactsResults {
bindings: { [key: string]: DefArtifact }[];
}
export interface References {
"@context": ReferencesContext;
"@graph": ReferencesGraph[];
}
export interface ReferencesContext {
rdfs: string;
d3f: string;
}
export interface ReferencesGraph {
"@id": string;
"@type": string[];
"d3f:has-link": D3FHasLink;
"d3f:kb-abstract": string;
"d3f:kb-author": string;
"d3f:kb-organization": string;
"d3f:kb-reference-of": D3FKBReference;
"d3f:kb-reference-title": string;
"d3f:reference-type-label": string;
"rdfs:label": string;
}
export interface D3FHasLink {
"@type": string;
"@value": string;
}
export interface ReferencesMeta {
Patent: number;
}
export interface RelatedOffensiveMatrix {
"Defense Evasion": Array<Array<Binding[] | string>>;
"Credential Access": Array<Array<Binding[] | string>>;
Discovery: Array<Array<Binding[] | string>>;
"Lateral Movement": Array<Array<Binding[] | string>>;
Collection: Array<Array<Binding[] | string>>;
"Privilege Escalation": Array<Array<Binding[] | string>>;
Execution: Array<Array<Binding[] | string>>;
"Initial Access": Array<Array<Binding[] | string>>;
Persistence: Array<Array<Binding[] | string>>;
}
Type | Description |
---|---|
Techniques | 200 - success response - application/json |
export interface Techniques {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"@type": Type;
"d3f:d3fend-id": string;
"rdfs:label": string;
"d3f:synonym"?: string[] | string;
}
export enum Type {
OwlClass = "owl:Class",
}
Type | Description |
---|---|
VersionData | 200 - success response - application/json |
export interface VersionData {
version: string;
release_date: Date;
}
Type | Description |
---|---|
Weaknesses | 200 - success response - application/json |
export interface Weaknesses {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"@type": TypeElement[] | TypeElement;
"d3f:cwe-id": string[];
"rdfs:label": string[];
"rdfs:subClassOf": SsOf[];
"d3f:weakness-of"?: SsOf[];
"d3f:may-be-weakness-of"?: SsOf[];
"rdfs:comment"?: string[];
}
export enum TypeElement {
OwlClass = "owl:Class",
OwlNamedIndividual = "owl:NamedIndividual",
}
export interface SsOf {
"@id": string;
}
Name | Type | Description |
---|---|---|
weakness_id | string | CWE Identifier |
Type | Description |
---|---|
Weakness | 200 - success response - application/json |
export interface Weakness {
weak_to_def: WeakToDef;
description: Description;
}
export interface Description {
"@context": Context;
"@graph": Graph[];
}
export interface Context {
rdfs: string;
owl: string;
d3f: string;
skos: string;
}
export interface Graph {
"@id": string;
"@type": string[];
"d3f:cwe-id": string;
"d3f:may-be-weakness-of": SsOf[];
"rdfs:label": string;
"rdfs:subClassOf": SsOf;
}
export interface SsOf {
"@id": string;
}
export interface WeakToDef {
head: Head;
results: Results;
}
export interface Head {
vars: string[];
}
export interface Results {
bindings: Binding[];
}
export interface Binding {
sc: DefArtifact;
weak_artifact_label: DefArtifact;
weak_artifact_rel_label: DefArtifact;
weak_label: DefArtifact;
weak_artifact: DefArtifact;
weak_artifact_rel: DefArtifact;
weak: DefArtifact;
weak_id: DefArtifact;
def_tactic_label?: DefArtifact;
def_tactic_rel_label?: DefArtifact;
def_tech_parent_is_toplevel?: DefTechParentIsToplevel;
def_tech_parent_label?: DefArtifact;
def_tech_label?: DefArtifact;
def_artifact_rel_label?: DefArtifact;
def_artifact_label?: DefArtifact;
def_tactic?: DefArtifact;
def_tactic_rel?: DefArtifact;
def_tech?: DefArtifact;
def_artifact_rel?: DefArtifact;
def_artifact?: DefArtifact;
}
export interface DefArtifact {
type: Type;
value: string;
}
export enum Type {
Literal = "literal",
URI = "uri",
}
export interface DefTechParentIsToplevel {
datatype: string;
type: Type;
value: string;
}