-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(graph): embed MITRE Attck technique and tactic into edges #312
feat(graph): embed MITRE Attck technique and tactic into edges #312
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! I think some changes were not reflected in some md files, but other than that it looks great!
// Define properties for each edge | ||
mgmt.addProperties(permissionDiscover, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(volumeDiscover, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(volumeAccess, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(hostWrite, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(hostRead, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(hostTraverse, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(sharedPsNamespace, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(containerAttach, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(idAssume, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(idImpersonate, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(roleBind, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(podAttach, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(podCreate, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(podPatch, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(podExec, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(tokenSteal, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(tokenBruteforce, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(tokenList, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(nsenter, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(moduleLoad, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(umhCorePattern, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(privMount, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(sysPtrace, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(varLogSymLink, runID, attckTechniqueID, attckTacticID); | ||
mgmt.addProperties(endpointExploit, runID, attckTechniqueID, attckTacticID); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like something that can be easily forgotten when adding additional edges. Do you think there is a way to test that all defined edges do have a property attached? something like a unit test?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically, you should add entries in this file to declare your new edges and their associated properties. This file is the schema builder for JanusGraph.
I'm not aware of any existing graph schema unit tests, but I can have a look to.
Context
gen-index.py
to support the coverage attribute.Reference(s)