コード例 #1
0
    def __init__(self):

        UpdateReactMapping()

        response_actions = []
        for ra_id, ra_name in ra_mapping.items():
            ra_color = ""
            category_score = int(ra_id[3:6])
            ra_category = ATCutils.get_ra_category(ra_id)

            for category_name, category_color in category_colors.items():
                if ra_category == category_name:
                    ra_color = category_color
                    break

            response_actions.append({
                "techniqueID": ra_id,
                "color": ra_color,
                "score": category_score,  # for sorting
            })

        NAVIGATOR_TEMPLATE['techniques'] = response_actions

        with open(directory + '/' + filename, 'w') as fp:
            json.dump(NAVIGATOR_TEMPLATE, fp)
        print(f'[+] Created {filename}')
コード例 #2
0
    def render_template(self, template_type):
        """Description
        template_type:
            - "markdown"
        """

        if template_type not in ["markdown"]:
            raise Exception("Bad template_type. Available values:" +
                            " [\"markdown\"]")

        template = env.get_template('markdown_responseaction_template.md.j2')

        self.ra_parsed_file.update(
            {'description': self.ra_parsed_file.get('description').strip()})

        self.ra_parsed_file.update({
            'title':
            ATCutils.normalize_react_title(self.ra_parsed_file.get('title'))
        })

        stage_list = []
        stage = self.ra_parsed_file.get('stage')

        for rs_id, rs_name in rs_mapping.items():
            if ATCutils.normalize_rs_name(stage) == rs_name:
                stage_list.append((rs_id, rs_name))

        self.ra_parsed_file.update({'stage': stage_list})

        self.ra_parsed_file.update({
            'category':
            ATCutils.get_ra_category(self.ra_parsed_file.get('id'))
        })

        self.content = template.render(self.ra_parsed_file)