Example #1
0
    def run(self, params={}):
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        request_params = dict()
        for item in params:
            if params[item]:
                request_params[item] = params[item]
        response = request.resource_request(url, "get", params=request_params)

        try:
            result = json.loads(response["resource"])
            result = result["data"]
        except json.decoder.JSONDecodeError:
            self.logger.error(f"InsightAppSec response: {response}")
            raise Exception(
                "The response from InsightAppSec was not in JSON format. Contact support for help."
                " See log for more details"
            )

        output = list()
        for item in result:
            temp = {
                "id": item["id"],
                "app_id": item["app"]["id"],
                "scan_config_id": item["scan_config"]["id"],
                "submitter": item["submitter"],
                "submit_time": item["submit_time"],
                "completion_time": item.get("completion_time", ""),
                "status": item["status"],
                "failure_reason": item.get("failure_reason", ""),
                "links": item["links"],
            }
            output.append(temp)
        return {Output.SCANS: output}
    def run(self, params={}):
        request = ResourceHelper(self.connection.session, self.logger)

        url = ScanConfig.scan_config(self.connection.url)

        request_params = dict()
        for item in params:
            if params[item]:
                request_params[item] = params[item]
        response = request.resource_request(url, 'get', params=request_params)
        try:
            result = json.loads(response['resource'])
            result = result['data']
        except json.decoder.JSONDecodeError:
            self.logger.error(f'InsightAppSec response: {response}')
            raise Exception(
                'The response from InsightAppSec was not in JSON format. Contact support for help.'
                ' See log for more details')

        output = list()
        for item in result:
            temp = {
                'id': item['id'],
                'config_name': item['name'],
                'config_description': item.get('description', ''),
                'app_id': item['app']['id'],
                'attack_template_id': item['attack_template']['id'],
                'errors': item.get('errors', list()),
                'links': item['links']
            }
            output.append(temp)
        return {Output.SCAN_CONFIGS: output}
Example #3
0
    def run(self, params={}):
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        request_params = dict()
        for item in params:
            if params[item]:
                request_params[item] = params[item]
        response = request.resource_request(url, 'get', params=request_params)

        try:
            result = json.loads(response['resource'])
            result = result['data']
        except json.decoder.JSONDecodeError:
            self.logger.error(f'InsightAppSec response: {response}')
            raise Exception('The response from InsightAppSec was not in JSON format. Contact support for help.'
                            ' See log for more details')

        output = list()
        for item in result:
            temp = {'id': item['id'], 'app_id': item['app']['id'], 'scan_config_id': item['scan_config']['id'],
                    'submitter': item['submitter'], 'submit_time': item['submit_time'],
                    'completion_time': item.get('completion_time', ''), 'status': item['status'],
                    'failure_reason': item.get('failure_reason', ''), 'links': item['links']}
            output.append(temp)
        return {Output.SCANS: output}
Example #4
0
    def run(self, params={}):
        scan_id = params.get(Input.SCAN_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        url = f'{url}{scan_id}'

        response = request.resource_request(url, 'get')
        try:
            result = json.loads(response['resource'])
        except json.decoder.JSONDecodeError:
            self.logger.error(f'InsightAppSec response: {response}')
            raise Exception(
                'The response from InsightAppSec was not in JSON format. Contact support for help.'
                ' See log for more details')

        try:
            output = {
                'id': result['id'],
                'app_id': result['app']['id'],
                'scan_config_id': result['scan_config']['id'],
                'submitter': result['submitter'],
                'submit_time': result['submit_time'],
                'completion_time': result.get('completion_time', ''),
                'status': result['status'],
                'failure_reason': result.get('failure_reason', ''),
                'links': result['links']
            }
            return {Output.SCAN: output}
        except KeyError:
            self.logger.error(result)
            raise Exception(
                'The response from InsightAppSec was not in the correct format. Contact support for help.'
                ' See log for more details')
Example #5
0
    def run(self, params={}):
        request = ResourceHelper(self.connection.session, self.logger)

        url = ScanConfig.scan_config(self.connection.url)

        request_params = dict()
        for item in params:
            if params[item]:
                request_params[item] = params[item]
        response = request.resource_request(url, "get", params=request_params)
        try:
            result = json.loads(response["resource"])
            result = result["data"]
        except json.decoder.JSONDecodeError:
            self.logger.error(f"InsightAppSec response: {response}")
            raise Exception(
                "The response from InsightAppSec was not in JSON format. Contact support for help."
                " See log for more details")

        output = list()
        for item in result:
            temp = {
                "id": item["id"],
                "config_name": item["name"],
                "config_description": item.get("description", ""),
                "app_id": item["app"]["id"],
                "attack_template_id": item["attack_template"]["id"],
                "errors": item.get("errors", list()),
                "links": item["links"],
            }
            output.append(temp)
        return {Output.SCAN_CONFIGS: output}
Example #6
0
    def run(self, params={}):
        scan_id = params.get(Input.SCAN_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        url = f"{url}{scan_id}"

        response = request.resource_request(url, "get")
        try:
            result = json.loads(response["resource"])
        except json.decoder.JSONDecodeError:
            self.logger.error(f"InsightAppSec response: {response}")
            raise Exception(
                "The response from InsightAppSec was not in JSON format. Contact support for help."
                " See log for more details")

        try:
            output = {
                "id": result["id"],
                "app_id": result["app"]["id"],
                "scan_config_id": result["scan_config"]["id"],
                "submitter": result["submitter"],
                "submit_time": result["submit_time"],
                "completion_time": result.get("completion_time", ""),
                "status": result["status"],
                "failure_reason": result.get("failure_reason", ""),
                "links": result["links"],
            }
            return {Output.SCAN: output}
        except KeyError:
            self.logger.error(result)
            raise Exception(
                "The response from InsightAppSec was not in the correct format. Contact support for help."
                " See log for more details")
Example #7
0
    def run(self, params={}):
        scan_id = params.get(Input.SCAN_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        url = f'{url}{scan_id}'

        response = request.resource_request(url, 'delete')
        return {Output.STATUS: response['status']}
Example #8
0
    def run(self, params={}):
        scan_config_id = params.get(Input.SCAN_CONFIG_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = ScanConfig.scan_config(self.connection.url)
        url = f"{url}{scan_config_id}"

        response = request.resource_request(url, "delete")
        return {Output.STATUS: response["status"]}
Example #9
0
    def run(self, params={}):
        scan_config_id = params.get(Input.SCAN_CONFIG_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        payload = {"scan_config": {"id": scan_config_id}}

        response = request.resource_request(url, "post", payload=payload)

        return {Output.STATUS: response["status"]}
    def run(self, params={}):
        scan_config_id = params.get(Input.SCAN_CONFIG_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scans(self.connection.url)
        payload = {'scan_config': {'id': scan_config_id}}

        response = request.resource_request(url, 'post', payload=payload)

        return {Output.STATUS: response['status']}
Example #11
0
    def run(self, params={}):
        scan_id = params.get(Input.SCAN_ID)
        action = params.get(Input.ACTION)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scan_action(self.connection.url, scan_id)
        payload = {'action': action.upper()}

        response = request.resource_request(url, 'put', payload=payload)

        return {Output.STATUS: response['status']}
Example #12
0
    def run(self, params={}):
        scan_id = params.get(Input.SCAN_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scan_engine_events(self.connection.url, scan_id)
        response = request.resource_request(url, 'get')
        try:
            result = json.loads(response['resource'])
        except json.decoder.JSONDecodeError:
            self.logger.error(f'InsightAppSec response: {response}')
            raise Exception(
                'The response from InsightAppSec was not in JSON format. Contact support for help.'
                ' See log for more details')
        return {Output.EVENTS: result}
    def run(self, params={}):
        config_name = params.get(Input.CONFIG_NAME)
        config_description = params.get(Input.CONFIG_DESCRIPTION)
        app_id = params.get(Input.APP_ID)
        attack_template_id = params.get(Input.ATTACK_TEMPLATE_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = ScanConfig.scan_config(self.connection.url)
        payload = {'name': config_name, 'description': config_description,
                   'app': {'id': app_id}, 'attack_template': {'id': attack_template_id}}

        response = request.resource_request(url, 'post', payload=payload)

        return {Output.STATUS: response['status']}
Example #14
0
    def run(self, params={}):
        scan_id = params.get(Input.SCAN_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = Scans.scan_execution_details(self.connection.url, scan_id)
        response = request.resource_request(url, "get")
        try:
            result = json.loads(response["resource"])
        except json.decoder.JSONDecodeError:
            self.logger.error(f"InsightAppSec response: {response}")
            raise Exception(
                "The response from InsightAppSec was not in JSON format. Contact support for help."
                " See log for more details")
        return {Output.DETAILS: result}
Example #15
0
    def run(self, params={}):
        scan_config_id = params.get(Input.SCAN_CONFIG_ID)
        config_name = params.get(Input.CONFIG_NAME)
        config_description = params.get(Input.CONFIG_DESCRIPTION)
        app_id = params.get(Input.APP_ID)
        attack_template_id = params.get(Input.ATTACK_TEMPLATE_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = ScanConfig.scan_config(self.connection.url)
        url = f"{url}{scan_config_id}"
        payload = {
            "name": config_name,
            "description": config_description,
            "app": {"id": app_id},
            "attack_template": {"id": attack_template_id},
        }

        response = request.resource_request(url, "put", payload=payload)

        return {Output.STATUS: response["status"]}
    def run(self, params={}):
        scan_config_id = params.get(Input.SCAN_CONFIG_ID)
        request = ResourceHelper(self.connection.session, self.logger)

        url = ScanConfig.scan_config(self.connection.url)
        url = f'{url}{scan_config_id}'

        response = request.resource_request(url, 'get')
        try:
            result = json.loads(response['resource'])
        except json.decoder.JSONDecodeError:
            self.logger.error(f'InsightAppSec response: {response}')
            raise Exception('The response from InsightAppSec was not in JSON format. Contact support for help.'
                            ' See log for more details')
        try:
            return {Output.ID: result['id'], Output.CONFIG_NAME: result['name'],
                    Output.CONFIG_DESCRIPTION: result.get('description', ''), Output.APP_ID: result['app']['id'],
                    Output.ATTACK_TEMPLATE_ID: result['attack_template']['id'],
                    Output.ERRORS: result.get('errors', list()), Output.LINKS: result['links']}
        except KeyError:
            self.logger.error(result)
            raise Exception('The response from InsightAppSec was not in the correct format. Contact support for help.'
                            ' See log for more details')