Example #1
0
class DBManager_django(object):
    def __init__(self):
        self.cache = DBCache_django()

    def default_filter_state(self, filter_id, apk_name):
        return {"status": "UNKNOWN", "count": 0, "description": {}}

    def pick_dynamic_test_with_status_unknown(self, vm_client_id):
        dynamic_test = DynamicTestResults.objects.filter(
            status__exact='UNKNOWN').order_by('?').first()
        package_name = dynamic_test.vuln.app.package_name
        vulnerability_type = dynamic_test.vuln.name
        if (dynamic_test.vuln.dynamic_test_params is not None):
            dynamic_test_params = json.loads(
                dynamic_test.vuln.dynamic_test_params)
        else:
            dynamic_test_params = {}
        dynamic_test_params['count'] = dynamic_test.count
        download_url = settings.DOWNLOAD_APK_SITE + '%d' % dynamic_test.vuln.app.id + '/apk/?'
        self.cache.cache_dynamic_test_for_vm(vm_client_id, dynamic_test)
        print(vulnerability_type, package_name, download_url,
              dynamic_test_params)
        return (vulnerability_type, package_name, download_url,
                dynamic_test_params)

    def update_success(self, vm_client_id, description):
        dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id)
        for vuln_type in description.keys():
            if vuln_type == dynamic_test.vuln.name:
                dynamic_test.status = "SUCCESS"
                dynamic_test.count += 1
                dynamic_test.description = {vuln_type: description[vuln_type]}
                dynamic_test.save()
            else:
                for vulnerability in description[vuln_type]:
                    #its one of the dynamic only tested vulnerabilities, create a new vulnerability with its
                    #description
                    vulnerability = VulnerabilityResult(
                        name=vuln_type,
                        description=vulnerability,
                        confidence=1,
                        dynamicTest=False,
                        dynamic_test_params=None,
                        app=dynamic_test.vuln.app)
                    vulnerability.save()

    def log_failure(self, vm_client_id, status, extras):
        dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id)
        dynamic_test.status = status
        dynamic_test.count += 1
        dynamic_test.description = extras
        dynamic_test.save()
class DBManager_django(object):

	def __init__(self):
		self.cache = DBCache_django()

	def default_filter_state(self, filter_id, apk_name):
		return {"status":"UNKNOWN", "count":0, "description":{}}

	def pick_dynamic_test_with_status_unknown(self,vm_client_id):
		dynamic_test = DynamicTestResults.objects.filter(status__exact='UNKNOWN').order_by('?').first()
		package_name = dynamic_test.vuln.app.package_name
		vulnerability_type = dynamic_test.vuln.name
		if(dynamic_test.vuln.dynamic_test_params is not None):
			dynamic_test_params = json.loads(dynamic_test.vuln.dynamic_test_params)
		else:
			dynamic_test_params = {}
		dynamic_test_params['count'] = dynamic_test.count
		download_url = settings.DOWNLOAD_APK_SITE + '%d'%dynamic_test.vuln.app.id + '/apk/?'
		self.cache.cache_dynamic_test_for_vm(vm_client_id,dynamic_test)
		print (vulnerability_type, package_name, download_url, dynamic_test_params)
		return (vulnerability_type, package_name, download_url, dynamic_test_params)

	def update_success(self,vm_client_id,description):
		dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id)
		for vuln_type in description.keys():
			if vuln_type == dynamic_test.vuln.name:
				dynamic_test.status = "SUCCESS"
				dynamic_test.count +=1
				dynamic_test.description = {vuln_type : description[vuln_type]}
				dynamic_test.save()
			else:
				for vulnerability in description[vuln_type]:
					#its one of the dynamic only tested vulnerabilities, create a new vulnerability with its
					#description
					vulnerability = VulnerabilityResult(name = vuln_type,
											 description = vulnerability,
											 confidence = 1,
											 dynamicTest = False,
											 dynamic_test_params = None,
											 app = dynamic_test.vuln.app)
					vulnerability.save()


	def log_failure(self,vm_client_id,status,extras):
		dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id)
		dynamic_test.status = status
		dynamic_test.count +=1
		dynamic_test.description = extras
		dynamic_test.save()
Example #3
0
 def __init__(self):
     self.cache = DBCache_django()
	def __init__(self):
		self.cache = DBCache_django()