コード例 #1
0
ファイル: policies.py プロジェクト: stelligent/deep-security
    def get(self,
            intrusion_prevention=True,
            firewall=True,
            integrity_monitoring=True,
            log_inspection=True,
            web_reputation=True,
            application_types=True):
        """
    Get all of the rules from Deep Security
    """
        # determine which rules to get from the Manager()
        rules_to_get = {
            'DPIRuleRetrieveAll': intrusion_prevention,
            'firewallRuleRetrieveAll': firewall,
            'integrityRuleRetrieveAll': integrity_monitoring,
            'logInspectionRuleRetrieveAll': log_inspection,
            'applicationTypeRetrieveAll': application_types,
        }

        for call, get in rules_to_get.items():
            rule_key = translation.Terms.get(call).replace(
                '_retrieve_all', '').replace('_rule', '')
            self[rule_key] = core.CoreDict()

            if get:
                soap_call = self.manager._get_request_format(call=call)
                if call == 'DPIRuleRetrieveAll':
                    self.log(
                        "Calling {}. This may take 15-30 seconds as the call returns a substantial amount of data"
                        .format(call),
                        level='warning')

                response = self.manager._request(soap_call)
                if response and response['status'] == 200:
                    if not type(response['data']) == type([]):
                        response['data'] = [response['data']]
                    for i, rule in enumerate(response['data']):
                        rule_obj = Rule(self.manager,
                                        rule,
                                        self.log,
                                        rule_type=rule_key)
                        if rule_obj:
                            if rule_key == 'intrusion_prevention' and rule_obj.cve_numbers:
                                rule_obj.cve_numbers = rule_obj.cve_numbers.split(
                                    ', ')
                                if type(rule_obj.cve_numbers) == type(''):
                                    rule_obj.cve_numbers = [
                                        rule_obj.cve_numbers
                                    ]

                            rule_id = '{}-{: >10}'.format(rule_key, i)
                            if 'id' in dir(rule_obj): rule_id = rule_obj.id
                            elif 'tbuid' in dir(rule_obj):
                                rule_id = rule_obj.tbuid
                            self[rule_key][rule_id] = rule_obj
                            self.log("Added Rule {} from call {}".format(
                                rule_id, call),
                                     level='debug')

        return len(self)
コード例 #2
0
ファイル: policies.py プロジェクト: spring3b/amazon-inspector
 def __init__(self,
              manager=None,
              api_response=None,
              log_func=None,
              rule_type=None):
     self.manager = manager
     self.rule_type = rule_type
     self.policies = core.CoreDict()
     if api_response: self._set_properties(api_response, log_func)
コード例 #3
0
 def __init__(self, manager=None, api_response=None, log_func=None):
     self.manager = manager
     if api_response: self._set_properties(api_response, log_func)
     self.computers = core.CoreDict()
コード例 #4
0
 def __init__(self, manager=None):
     core.CoreDict.__init__(self)
     self.manager = manager
     self._exempt_from_find.append('computers')
     self.computers = core.CoreDict()
     self.log = self.manager.log if self.manager else None