Exemplo n.º 1
0
 def version(self, version):
     typeChecker(type(self).__name__, version, str, "version")
     categoryChecker(
         type(self).__name__, version, ["3.0", "4.0", "4.1"], "version")
     if self.__versions is UNSETVALUE:
         self.__versions = Versions()
     self.__versions.layer = version
Exemplo n.º 2
0
 def score(self, score):
     try:
         typeChecker(type(self).__name__, score, int, "score")
         self.__score = score
     except BadType:
         typeChecker(type(self).__name__, score, float, "score")
         self.__score = int(score)
Exemplo n.º 3
0
 def layer(self, layer):
     typeChecker(type(self).__name__, layer, str, "layer")
     categoryChecker(type(self).__name__, layer, ["3.0", "4.0"], "layer version")
     if layer == '3.0':
         print('[NOTICE] - Forcibly upgrading version from {} to 4.0.'.format(layer))
         layer = "4.0"
     self.__layer = layer
Exemplo n.º 4
0
 def techniqueID(self, techniqueID):
     typeChecker(type(self).__name__, techniqueID, str, "techniqueID")
     if not techniqueID.startswith('T'):
         handler(type(self).__name__, '{} not a valid value for techniqueID'
                 .format(techniqueID))
         raise BadInput
     else:
         self.__techniqueID = techniqueID
Exemplo n.º 5
0
 def domain(self, domain):
     typeChecker(type(self).__name__, domain, str, "domain")
     dom = domain
     if dom.startswith('mitre'):
         dom = dom.split('-')[-1] + '-attack'
     categoryChecker(type(self).__name__, dom, ["enterprise-attack",
                                                   "mobile-attack"],
                     "domain")
     self.__domain = domain
Exemplo n.º 6
0
 def metadata(self, metadata):
     typeChecker(type(self).__name__, metadata, list, "metadata")
     self.__metadata = []
     for entry in metadata:
         try:
             loadChecker(type(self).__name__, entry, ['name', 'value'], "metadata")
             self.__metadata.append(Metadata(entry['name'], entry['value']))
         except MissingParameters as e:
             handler(type(self).__name__, 'Metadata {} is missing parameters: '
                                      '{}. Skipping.'
                 .format(entry, e))
Exemplo n.º 7
0
 def metadata(self, metadata):
     typeChecker(type(self).__name__, metadata, list, "metadata")
     self.__metadata = []
     entry = ""
     try:
         for entry in metadata:
             self.__metadata.append(Metadata(entry['name'], entry['value']))
     except KeyError as e:
         handler(
             type(self).__name__, 'Metadata {} is missing parameters: '
             '{}. Unable to load.'.format(entry, e))
Exemplo n.º 8
0
 def navigator(self, navigator):
     typeChecker(type(self).__name__, navigator, str, "navigator")
     try:
         categoryChecker(
             type(self).__name__, navigator, ["4.0", "4.1"],
             "navigator version")
     except BadInput:
         print(
             f'[WARNING] - unrecognized navigator version {navigator}. Defaulting to the 4.1 schema, '
             f'this may result in unexpected behavior.')
     self.__navigator = navigator
Exemplo n.º 9
0
 def versions(self, versions):
     typeChecker(type(self).__name__, versions, dict, "version")
     attack = UNSETVALUE
     if 'attack' in versions:
         attack = versions['attack']
     try:
         loadChecker(type(self).__name__, versions, ['layer', 'navigator'], "versions")
         self.__versions = Versions(versions['layer'], attack, versions['navigator'])
     except MissingParameters as e:
         handler(type(self).__name__, 'versions {} is missing parameters: '
                                      '{}. Skipping.'
                 .format(versions, e))
Exemplo n.º 10
0
 def legendItems(self, legendItems):
     typeChecker(type(self).__name__, legendItems, list, "legendItems")
     self.__legendItems = []
     for entry in legendItems:
         try:
             loadChecker(type(self).__name__, entry, ['label', 'color'], "legendItem")
             temp = LegendItem(entry['label'], entry['color'])
             self.__legendItems.append(temp)
         except MissingParameters as e:
             handler(type(self).__name__, 'Legend Item {} is missing parameters: '
                                          '{}. Skipping.'
                     .format(entry, e))
Exemplo n.º 11
0
 def legendItems(self, legendItems):
     typeChecker(type(self).__name__, legendItems, list, "legendItems")
     self.__legendItems = []
     entry = ""
     try:
         for entry in legendItems:
             temp = LegendItem(entry['label'], entry['color'])
             self.__legendItems.append(temp)
     except KeyError as e:
         handler(
             type(self).__name__, 'LegendItem {} is missing parameters:'
             ' {}. Unable to load.'.format(entry, e))
Exemplo n.º 12
0
    def techniques(self, techniques):
        typeChecker(type(self).__name__, techniques, list, "techniques")
        self.__techniques = []

        for entry in techniques:
            try:
                loadChecker(type(self).__name__, entry, ['techniqueID'], "technique")
                temp = Technique(entry['techniqueID'])
                temp._loader(entry)
                self.__techniques.append(temp)
            except MissingParameters as e:
                handler(type(self).__name__, 'Technique {} is missing parameters: '
                                             '{}. Skipping.'
                        .format(entry, e))
Exemplo n.º 13
0
 def techniques(self, techniques):
     typeChecker(type(self).__name__, techniques, list, "techniques")
     self.__techniques = []
     entry = ""
     try:
         for entry in techniques:
             temp = Technique(entry['techniqueID'])
             temp._loader(entry)
             self.__techniques.append(temp)
     except KeyError as e:
         handler(
             type(self).__name__, "Unable to properly extract "
             "information from technique {}: {}.".format(entry, e))
         raise BadInput
Exemplo n.º 14
0
 def layer(self, layer):
     typeChecker(type(self).__name__, layer, str, "layer")
     try:
         categoryChecker(
             type(self).__name__, layer, ["3.0", "4.0", "4.1"],
             "layer version")
     except BadInput:
         print(
             f'[WARNING] - unrecognized layer version {layer}. Defaulting to the 4.1 schema, this may result in '
             f'unexpected behavior.')
     if layer == '3.0':
         print(
             f'[NOTICE] - Forcibly upgrading version from {layer} to 4.1.')
         layer = "4.1"
     self.__layer = layer
Exemplo n.º 15
0
 def sorting(self, sorting):
     typeChecker(type(self).__name__, sorting, int, "sorting")
     categoryChecker(type(self).__name__, sorting, [0, 1, 2, 3], "sorting")
     self.__sorting = sorting
Exemplo n.º 16
0
 def selectTechniquesAcrossTactics(self, selectTechniquesAcrossTactics):
     typeChecker(
         type(self).__name__, selectTechniquesAcrossTactics, bool,
         "selectTechniqueAcrossTactics")
     self.__selectTechniquesAcrossTactics = selectTechniquesAcrossTactics
Exemplo n.º 17
0
 def selectSubtechniquesWithParent(self, selectSubtechniquesWithParent):
     typeChecker(
         type(self).__name__, selectSubtechniquesWithParent, bool,
         "selectSubtechniquesWithParent")
     self.__selectSubtechniquesWithParent = selectSubtechniquesWithParent
Exemplo n.º 18
0
 def showTacticRowBackground(self, showTacticRowBackground):
     typeChecker(
         type(self).__name__, showTacticRowBackground, bool,
         "showTacticRowBackground")
     self.__showTacticRowBackground = showTacticRowBackground
Exemplo n.º 19
0
 def tacticRowBackground(self, tacticRowBackground):
     typeChecker(
         type(self).__name__, tacticRowBackground, str,
         "tacticRowBackground")
     self.__tacticRowBackground = tacticRowBackground
Exemplo n.º 20
0
 def enabled(self, enabled):
     typeChecker(type(self).__name__, enabled, bool, "enabled")
     self.__enabled = enabled
Exemplo n.º 21
0
 def tactic(self, tactic):
     typeChecker(type(self).__name__, tactic, str, "tactic")
     self.__tactic = tactic
Exemplo n.º 22
0
 def domain(self, domain):
     typeChecker(type(self).__name__, domain, str, "domain")
     categoryChecker(
         type(self).__name__, domain, ["mitre-enterprise", "mitre-mobile"],
         "domain")
     self.__domain = domain
Exemplo n.º 23
0
 def version(self, version):
     typeChecker(type(self).__name__, version, str, "version")
     categoryChecker(type(self).__name__, version, ["3.0"], "version")
     self.__version = version
Exemplo n.º 24
0
 def label(self, label):
     typeChecker(type(self).__name__, label, str, "label")
     self.__label = label
Exemplo n.º 25
0
 def showSubtechniques(self, showSubtechniques):
     typeChecker(
         type(self).__name__, showSubtechniques, bool, "showSubtechniques")
     self.__showSubtechniques = showSubtechniques
Exemplo n.º 26
0
 def color(self, color):
     typeChecker(type(self).__name__, color, str, "color")
     self.__color = color
Exemplo n.º 27
0
 def name(self, name):
     typeChecker(type(self).__name__, name, str, "name")
     self.__name = name
Exemplo n.º 28
0
 def hideDisabled(self, hideDisabled):
     typeChecker(type(self).__name__, hideDisabled, bool, "hideDisabled")
     self.__hideDisabled = hideDisabled
Exemplo n.º 29
0
 def description(self, description):
     typeChecker(type(self).__name__, description, str, "description")
     self.__description = description
Exemplo n.º 30
0
 def comment(self, comment):
     typeChecker(type(self).__name__, comment, str, "comment")
     self.__comment = comment