From 7a29357582dd73b00ce48cfc38085dc1892391db Mon Sep 17 00:00:00 2001 From: Tim Frazier Date: Tue, 22 Aug 2017 15:52:37 -0400 Subject: [PATCH 01/80] PAPP-3053 Cisco ISE App - add action --- ciscoise_connector.py | 43 +++++++++++++++++++++++++++++++++++++------ ciscoise_consts.py | 2 ++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 92bdca6..4ff40db 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -49,6 +49,7 @@ def initialize(self): config = self.get_config() self._auth = HTTPBasicAuth(config[phantom.APP_JSON_USERNAME], config[phantom.APP_JSON_PASSWORD]) + self._ers_auth = HTTPBasicAuth(config["ers_user"], config["ers_password"]) self._base_url = 'https://{0}'.format(config[phantom.APP_JSON_DEVICE]) return phantom.APP_SUCCESS @@ -62,11 +63,16 @@ def _call_rest_api(self, endpoint, action_result, schema=None, allow_unknown=Tru config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] - - try: - resp = requests.get(url, verify=verify, auth=self._auth) - except Exception as e: - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) + if endpoint == ERS_ENDPOINT_REST: + try: + resp = requests.get(url, verify=verify, auth=self._ers_auth) + except: + return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) + else: + try: + resp = requests.get(url, verify=verify, auth=self._auth) + except Exception as e: + return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) self.debug_print("status_code", resp.status_code) @@ -74,7 +80,6 @@ def _call_rest_api(self, endpoint, action_result, schema=None, allow_unknown=Tru return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data) action_result.add_debug_data(resp.text) - xml = resp.text try: @@ -147,6 +152,32 @@ def _list_sessions(self, param): return action_result.set_status(phantom.APP_SUCCESS) + def _list_endpoints(self, param): + + ret_val = phantom.APP_SUCCESS + + action_result = self.add_action_result(ActionResult(dict(param))) + + ret_data = None + endpoint = ERS_ENDPOINT_REST + + ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) + + if (phantom.is_fail(ret_val)): + return action_result.get_status() + + action_result.add_data(ret_data) + + if ((failure_type is not None) or (failure_msg is not None)): + action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_ACTION_FAILED, error_code=ret_data['EPS_RESULT']['errorCode']) + if (failure_type is not None): + action_result.append_to_message(failure_type) + if (failure_msg is not None): + action_result.append_to_message(failure_msg) + return action_result.get_status() + + return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_SYSTEM_QUARANTINED) + def _quarantine_system(self, param): ret_val = phantom.APP_SUCCESS diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 95a879c..c9dad9b 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -32,6 +32,7 @@ UNQUARANTINE_MAC_REST = "/ise/eps/UnQuarantineByMAC_S" UNQUARANTINE_IP_REST = "/ise/eps/UnQuarantineByIP_S" MAC_SESSION_DETAILS_REST = "/ise/mnt/Session/MACAddress" +ERS_ENDPOINT_REST = ":9060/ers/config/endpoint" # Error/Success CISCOISE_ERR_TEST_CONNECTIVITY_FAILED = "Test connectivity failed" @@ -54,3 +55,4 @@ QUARANTINE_RESP_SCHEMA = {"EPS_RESULT": {"type": "dict", "schema": {"status": {"type": "string"}, "errorCode": {"type": "string"}}}} MAC_SESSION_RESP_SCHEMA = {"sessionParameters": {"type": "dict", "schema": {"acs_server": {"type": "string"}}}} DISCONNECT_MAC_SESS_RESP_SCHEMA = {"remoteCoA": {"type": "dict", "schema": {"results": {"type": "string"}}}} +ERS_UPDATE_ENDPOINT_SCHEMA = {"updatedField": {"type": "dict", "schema": {"newValue": {"type": "string"}, "oldValue": {"type": "string"}}}} From 463a72b8699ae1a1e61229c79daa75f6af9b6506 Mon Sep 17 00:00:00 2001 From: Tim Frazier Date: Fri, 1 Sep 2017 16:36:04 -0400 Subject: [PATCH 02/80] PAPP-3053 - Adding 3 actions incl. update endpoint --- ciscoise.json | 918 +++++++++++++++++++++++++++++------------- ciscoise_connector.py | 95 ++++- ciscoise_consts.py | 3 + 3 files changed, 731 insertions(+), 285 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 7295fbf..bc7fbd5 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1,300 +1,670 @@ { - "appid" : "85232924-4776-4896-88fa-b982b304af7c", - "name" : "Cisco ISE", - "description" : "This app implements investigative and containment actions like 'quarantine device', 'terminate session' and 'list sessions' etc. on a Cisco ISE device.", + "appid": "85232924-4776-4896-88fa-b982b304af7d", + "name": "Cisco ISE - SLB", + "description": "This app implements investigative and containment actions like 'quarantine device', 'terminate session' and 'list sessions' etc. on a Cisco ISE device.", "publisher": "Phantom", "type": "network access control", - "main_module" : "ciscoise_connector.pyc", + "main_module": "ciscoise_connector.pyc", "app_version": "1.2.14", "utctime_updated": "2017-08-10T00:31:00.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", - "product_name": "Cisco ISE", + "product_name": "Cisco ISE - SLB", "product_version_regex": ".*", "min_phantom_version": "3.0.190", "logo": "cisco.png", "license": "Copyright (c) Phantom Cyber Corporation 2015-2016", "configuration": { - "device": { - "data_type": "string", - "order": 0, - "description": "Device IP/Hostname", - "required": true - }, - "verify_server_cert": { - "data_type": "boolean", - "description": "Verify server certificate", - "required": true, - "order": 1, - "default": true - }, - "username": { - "data_type": "string", - "order": 2, - "description": "Username", - "required": true - }, - "password": { - "data_type": "password", - "order": 3, - "description": "Password", - "required": true - } - }, - "actions": [ - { - "action": "test connectivity", - "description": "Validate the asset configuration for connectivity. This action logs into the device using a REST API call to check the connection and credentials.", - "type": "test", - "identifier": "test_asset_connectivity", - "read_only": true, - "parameters": { - }, - "output": [], - "versions":"EQ(*)" - }, - { - "action": "list sessions", - "description": "List the sessions currently available on the Monitoring node.", - "type": "investigate", - "identifier": "list_sessions", - "read_only": true, - "parameters": { - }, - "render": { - "type": "table", - "width": 12, - "height": 5, - "title": "Sessions" - }, - "output": [ - { - "data_path": "action_result.status", - "data_type": "string" - }, - { - "data_path": "action_result.message", - "data_type": "string" - }, - { - "data_path": "action_result.data.*.calling_station_id", - "data_type": "string", - "column_name": "Mac Address", - "column_order": 0, - "contains": ["mac address"] - }, - { - "data_path": "action_result.data.*.is_quarantined", - "data_type": "string", - "column_name": "Quarantined", - "column_order": 1 - }, - { - "data_path": "action_result.data.*.framed_ip_address", - "data_type": "string", - "column_name": "Endpoint IP", - "column_order": 2, - "contains": ["ip"] - }, - { - "data_path": "action_result.data.*.user_name", - "data_type": "string", - "column_name": "Username", - "column_order": 3, - "contains": ["user name"] - }, - { - "data_path": "action_result.data.*.audit_session_id", - "data_type": "string", - "column_name": "Session id", - "column_order": 4, - "contains": ["ise session id"] - }, - { - "data_path": "action_result.data.*.server", - "data_type": "string", - "column_name": "Server", - "column_order": 5, - "contains": ["ise server"] - }, - { - "data_path": "action_result.data.*.nas_ip_address", - "data_type": "string", - "column_name": "Nas IP", - "column_order": 6, - "contains": ["nas server"] - }, - { - "data_path": "action_result.data.*.acct_session_id", - "data_type": "string" - }, - { - "data_path": "summary.total_objects", - "data_type": "numeric" - }, - { - "data_path": "summary.total_objects_successful", - "data_type": "numeric" - } - ], - "versions":"EQ(*)" - }, - { - "action": "quarantine device", - "description": "Quarantine the device", - "type": "contain", - "identifier": "quarantine_device", - "read_only": false, - "parameters": { - "ip_macaddress": { - "description": "MAC or IP address of device to quarantine", + "device": { "data_type": "string", "order": 0, - "contains": ["mac address", "ip"], - "primary": true, + "description": "Device IP/Hostname", "required": true - } }, - "undo": "unquarantine device", - "render": { - "width": 12, - "title": "Quarantine Device", - "type": "table", - "height": 5 + "verify_server_cert": { + "data_type": "boolean", + "description": "Verify server certificate", + "required": true, + "order": 1, + "default": true }, - "output": [ - { - "data_path": "action_result.status", - "data_type": "string" - }, - { - "data_path": "action_result.parameter.ip_macaddress", + "username": { "data_type": "string", - "column_name": "Device MAC/IP", - "contains": ["mac address", "ip"], - "column_order": 0 - }, - { - "data_path": "action_result.message", - "data_type": "string", - "column_name": "Message", - "column_order": 1 - }, - { - "data_path": "summary.total_objects", - "data_type": "numeric" - }, - { - "data_path": "summary.total_objects_successful", - "data_type": "numeric" - } - ], - "versions":"EQ(*)" - }, - { - "action": "unquarantine device", - "description": "Unquarantine the device", - "type": "correct", - "identifier": "unquarantine_device", - "read_only": false, - "undo": "quarantine device", - "parameters": { - "ip_macaddress": { - "description": "MAC or IP address of device to unquarantine", - "data_type": "string", - "order": 0, - "contains": ["mac address", "ip"], - "primary": true, + "order": 2, + "description": "Username", "required": true - } }, - "render": { - "width": 12, - "title": "Unquarantine Device", - "type": "table", - "height": 5 + "password": { + "data_type": "password", + "order": 3, + "description": "Password", + "required": true }, - "output": [ - { - "data_path": "action_result.status", - "data_type": "string" - }, - { - "data_path": "action_result.parameter.ip_macaddress", - "data_type": "string", - "column_name": "Device MAC/IP", - "contains": ["mac address", "ip"], - "column_order": 0 - }, - { - "data_path": "action_result.message", + "ers_user": { "data_type": "string", - "column_name": "Message", - "column_order": 1 - }, - { - "data_path": "summary.total_objects", - "data_type": "numeric" - }, - { - "data_path": "summary.total_objects_successful", - "data_type": "numeric" - } - ], - "versions":"EQ(*)" - }, - { - "action": "terminate session", - "description": "Terminate sessions", - "type": "contain", - "identifier": "terminate_session", - "read_only": false, - "parameters": { - "macaddress": { - "description": "MAC address of device to terminate sessions of", - "data_type": "string", - "order": 0, - "contains": ["mac address"], - "primary": true, - "required": true - } + "order": 4, + "description": "Username for ERS APIs", + "required": false }, - "render": { - "width": 12, - "title": "Terminate Session", - "type": "table", - "height": 5 + "ers_password": { + "data_type": "password", + "order": 5, + "description": "Password for ERS APIs", + "required": false + } + }, + "actions": [ + { + "action": "test connectivity", + "description": "Validate the asset configuration for connectivity. This action logs into the device using a REST API call to check the connection and credentials.", + "type": "test", + "identifier": "test_asset_connectivity", + "read_only": true, + "parameters": {}, + "output": [], + "versions": "EQ(*)" }, - "output": [ - { - "data_path": "action_result.status", - "data_type": "string" - }, - { - "data_path": "action_result.parameter.macaddress", - "data_type": "string", - "column_name": "Device MAC/IP", - "contains": ["mac address"], - "column_order": 0 - }, - { - "data_path": "action_result.message", - "data_type": "string", - "column_name": "Message", - "column_order": 1 - }, - { - "data_path": "summary.total_objects", - "data_type": "numeric" - }, - { - "data_path": "summary.total_objects_successful", - "data_type": "numeric" - } - ], - "versions":"EQ(*)" - } - - + { + "action": "list endpoints", + "description": "List the endpoints configured on the system", + "type": "investigate", + "identifier": "list_endpoints", + "read_only": true, + "parameters": {}, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Endpoints" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "9 Endpoints found" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.@total", + "data_type": "string", + "example_values": [ + "9" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.@xmlns:ns2", + "data_type": "string", + "example_values": [ + "ers.ise.cisco.com" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.@id", + "data_type": "string", + "column_name": "ISE Endpoint ID", + "column_order": 1, + "example_values": [ + "59985000-712d-11e6-9062-000c29bea319" + ], + "contains": [ + "ise endpoint id" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.@name", + "data_type": "string", + "column_name": "Endpoint Name", + "column_order": 0, + "example_values": [ + "00:0C:29:7B:2A:8F" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.link.@rel", + "data_type": "string", + "example_values": [ + "self" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.link.@href", + "data_type": "string", + "column_name": "Link to ISE Endpoint", + "column_order": 2, + "example_values": [ + "https://10.16.0.120:9060/ers/config/endpoint/59985000-712d-11e6-9062-000c29bea319" + ], + "contains": [ + "url" + ] + }, + { + "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.link.@type", + "data_type": "string", + "example_values": [ + "application/xml" + ] + }, + { + "data_path": "action_result.summary.Endpoints found", + "data_type": "string", + "example_values": [ + "9" + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "versions": "EQ(*)" + }, + { + "action": "get endpoint", + "description": "Get informaton about a specific endpoint", + "type": "investigate", + "identifier": "get_endpoint", + "read_only": true, + "parameters": { + "endpoint_id": { + "description": "ISE Endpoint ID for device", + "data_type": "string", + "order": 0, + "contains": [ + "ise endpoint id" + ], + "primary": true, + "required": true + } + }, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Endpoint Info" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Endpoint found" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.@description", + "data_type": "string", + "example_values": [ + "" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.@name", + "data_type": "string", + "column_name": "Name", + "column_order": 0, + "example_values": [ + "00:0C:29:7B:2A:8F" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.@id", + "data_type": "string", + "column_name": "ISE Endpoint ID", + "column_order": 2, + "example_values": [ + "59985000-712d-11e6-9062-000c29bea319" + ], + "contains": [ + "ise endpoint id" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.@xmlns:ns3", + "data_type": "string", + "example_values": [ + "identity.ers.ise.cisco.com" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.@xmlns:ns2", + "data_type": "string", + "example_values": [ + "ers.ise.cisco.com" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.profileId", + "data_type": "string", + "example_values": [ + "319be2f0-5e4d-11e4-b905-005056bf2f0a" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.staticProfileAssignment", + "data_type": "string", + "example_values": [ + "false" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.mac", + "data_type": "string", + "column_name": "Mac Address", + "column_order": 1, + "example_values": [ + "00:0C:29:7B:2A:8F" + ], + "contains": [ + "mac address" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.link.@rel", + "data_type": "string", + "example_values": [ + "self" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.link.@href", + "data_type": "string", + "column_name": "Link to ISE Endpoint", + "column_order": 3, + "example_values": [ + "https://10.16.0.120:9060/ers/config/endpoint/59985000-712d-11e6-9062-000c29bea319" + ], + "contains": [ + "url" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.link.@type", + "data_type": "string", + "example_values": [ + "application/xml" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.staticGroupAssignment", + "data_type": "string", + "example_values": [ + "true" + ] + }, + { + "data_path": "action_result.data.*.ns3:endpoint.groupId", + "data_type": "string", + "example_values": [ + "c804ca00-5e4c-11e4-b905-005056bf2f0a" + ] + }, + { + "data_path": "action_result.parameter.endpoint_id", + "data_type": "string", + "example_values": [ + "59985000-712d-11e6-9062-000c29bea319" + ], + "contains": [ + "ise endpoint id" + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "versions": "EQ(*)" + }, + { + "action": "update endpoint", + "description": "Update informaton or attributes for a specific endpoint", + "type": "contain", + "identifier": "update_endpoint", + "read_only": false, + "parameters": { + "endpoint_id": { + "description": "ISE Endpoint ID for device", + "data_type": "string", + "order": 0, + "contains": [ + "ise endpoint id" + ], + "primary": true, + "required": true + }, + "attribute": { + "description": "Attribute to update for the Endpoint", + "data_type": "string", + "order": 1, + "required": true + }, + "attribute_value": { + "description": "Value to put in the attribute for the Endpoint", + "data_type": "string", + "order": 2, + "required": true + } + }, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Updated Attribute" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success" + ] + } + ], + "versions": "EQ(*)" + }, + { + "action": "list sessions", + "description": "List the sessions currently available on the Monitoring node.", + "type": "investigate", + "identifier": "list_sessions", + "read_only": true, + "parameters": {}, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Sessions" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string" + }, + { + "data_path": "action_result.message", + "data_type": "string" + }, + { + "data_path": "action_result.data.*.calling_station_id", + "data_type": "string", + "column_name": "Mac Address", + "column_order": 0, + "contains": [ + "mac address" + ] + }, + { + "data_path": "action_result.data.*.is_quarantined", + "data_type": "string", + "column_name": "Quarantined", + "column_order": 1 + }, + { + "data_path": "action_result.data.*.framed_ip_address", + "data_type": "string", + "column_name": "Endpoint IP", + "column_order": 2, + "contains": [ + "ip" + ] + }, + { + "data_path": "action_result.data.*.user_name", + "data_type": "string", + "column_name": "Username", + "column_order": 3, + "contains": [ + "user name" + ] + }, + { + "data_path": "action_result.data.*.audit_session_id", + "data_type": "string", + "column_name": "Session id", + "column_order": 4, + "contains": [ + "ise session id" + ] + }, + { + "data_path": "action_result.data.*.server", + "data_type": "string", + "column_name": "Server", + "column_order": 5, + "contains": [ + "ise server" + ] + }, + { + "data_path": "action_result.data.*.nas_ip_address", + "data_type": "string", + "column_name": "Nas IP", + "column_order": 6, + "contains": [ + "nas server" + ] + }, + { + "data_path": "action_result.data.*.acct_session_id", + "data_type": "string" + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric" + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric" + } + ], + "versions": "EQ(*)" + }, + { + "action": "quarantine device", + "description": "Quarantine the device", + "type": "contain", + "identifier": "quarantine_device", + "read_only": false, + "parameters": { + "ip_macaddress": { + "description": "MAC or IP address of device to quarantine", + "data_type": "string", + "order": 0, + "contains": [ + "mac address", + "ip" + ], + "primary": true, + "required": true + } + }, + "undo": "unquarantine device", + "render": { + "width": 12, + "title": "Quarantine Device", + "type": "table", + "height": 5 + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string" + }, + { + "data_path": "action_result.parameter.ip_macaddress", + "data_type": "string", + "column_name": "Device MAC/IP", + "contains": [ + "mac address", + "ip" + ], + "column_order": 0 + }, + { + "data_path": "action_result.message", + "data_type": "string", + "column_name": "Message", + "column_order": 1 + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric" + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric" + } + ], + "versions": "EQ(*)" + }, + { + "action": "unquarantine device", + "description": "Unquarantine the device", + "type": "correct", + "identifier": "unquarantine_device", + "read_only": false, + "undo": "quarantine device", + "parameters": { + "ip_macaddress": { + "description": "MAC or IP address of device to unquarantine", + "data_type": "string", + "order": 0, + "contains": [ + "mac address", + "ip" + ], + "primary": true, + "required": true + } + }, + "render": { + "width": 12, + "title": "Unquarantine Device", + "type": "table", + "height": 5 + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string" + }, + { + "data_path": "action_result.parameter.ip_macaddress", + "data_type": "string", + "column_name": "Device MAC/IP", + "contains": [ + "mac address", + "ip" + ], + "column_order": 0 + }, + { + "data_path": "action_result.message", + "data_type": "string", + "column_name": "Message", + "column_order": 1 + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric" + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric" + } + ], + "versions": "EQ(*)" + }, + { + "action": "terminate session", + "description": "Terminate sessions", + "type": "contain", + "identifier": "terminate_session", + "read_only": false, + "parameters": { + "macaddress": { + "description": "MAC address of device to terminate sessions of", + "data_type": "string", + "order": 0, + "contains": [ + "mac address" + ], + "primary": true, + "required": true + } + }, + "render": { + "width": 12, + "title": "Terminate Session", + "type": "table", + "height": 5 + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string" + }, + { + "data_path": "action_result.parameter.macaddress", + "data_type": "string", + "column_name": "Device MAC/IP", + "contains": [ + "mac address" + ], + "column_order": 0 + }, + { + "data_path": "action_result.message", + "data_type": "string", + "column_name": "Message", + "column_order": 1 + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric" + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric" + } + ], + "versions": "EQ(*)" + } ] } diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 4ff40db..60a6497 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -35,6 +35,9 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_LOGOFF_SYSTEM = "logoff_system" ACTION_ID_QUARANTINE_SYSTEM = "quarantine_device" ACTION_ID_UNQUARANTINE_SYSTEM = "unquarantine_device" + ACTION_ID_LIST_ENDPOINTS = "list_endpoints" + ACTION_ID_GET_ENDPOINT = "get_endpoint" + ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" def __init__(self): @@ -49,23 +52,30 @@ def initialize(self): config = self.get_config() self._auth = HTTPBasicAuth(config[phantom.APP_JSON_USERNAME], config[phantom.APP_JSON_PASSWORD]) - self._ers_auth = HTTPBasicAuth(config["ers_user"], config["ers_password"]) + ers_user = config.get("ers_user", None) + if ers_user is not None: + self._ers_auth = HTTPBasicAuth(config["ers_user"], config["ers_password"]) self._base_url = 'https://{0}'.format(config[phantom.APP_JSON_DEVICE]) return phantom.APP_SUCCESS - def _call_rest_api(self, endpoint, action_result, schema=None, allow_unknown=True): + def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_unknown=True): url = '{0}{1}'.format(self._base_url, endpoint) ret_data = None - + action = self.get_action_identifier() self.debug_print("REST Endpoint: ", url) config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] - if endpoint == ERS_ENDPOINT_REST: + if (action == self.ACTION_ID_LIST_ENDPOINTS) or (action == self.ACTION_ID_GET_ENDPOINT) or (action == self.ACTION_ID_UPDATE_ENDPOINT): try: - resp = requests.get(url, verify=verify, auth=self._ers_auth) + headers = {"Content-Type": "application/vnd.com.cisco.ise.identity.endpoint.1.0+xml; charset=utf-8", + "ACCEPT": "application/vnd.com.cisco.ise.identity.endpoint.1.0+xml; charset=utf-8"} + if data is not None: + resp = requests.put(url, data=xmltodict.unparse(data, pretty=True), verify=verify, headers=headers, auth=self._ers_auth) + else: + resp = requests.get(url, verify=verify, headers=headers, auth=self._ers_auth) except: return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) else: @@ -166,16 +176,72 @@ def _list_endpoints(self, param): if (phantom.is_fail(ret_val)): return action_result.get_status() + total = ret_data["ns2:searchResult"]["@total"] + action_result.update_summary({"Endpoints found": total}) + action_result.add_data(ret_data) - if ((failure_type is not None) or (failure_msg is not None)): - action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_ACTION_FAILED, error_code=ret_data['EPS_RESULT']['errorCode']) - if (failure_type is not None): - action_result.append_to_message(failure_type) - if (failure_msg is not None): - action_result.append_to_message(failure_msg) + return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_LIST_ENDPOINTS.format(total)) + + def _get_endpoint(self, param): + + ret_val = phantom.APP_SUCCESS + + action_result = self.add_action_result(ActionResult(dict(param))) + + ret_data = None + endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] + + ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) + + if (phantom.is_fail(ret_val)): + return action_result.get_status() + + # total = ret_data["ns2:searchResult"]["@total"] + # action_result.update_summary({"Endpoints found": total}) + + action_result.add_data(ret_data) + + return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_GET_ENDPOINT) + + def _update_endpoint(self, param): + + ret_val = phantom.APP_SUCCESS + + action_result = self.add_action_result(ActionResult(dict(param))) + + ret_data = None + endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] + + ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) + + if (phantom.is_fail(ret_val)): return action_result.get_status() + attribute_dict = ret_data + + attribute_dict["ns3:endpoint"]["customAttributes"] = { + "customAttributes": { + "entry": { + "key": param["attribute"], + "value": param["attribute_value"] + } + } + } + + ret_data = None + endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] + + ret_val, ret_data = self._call_rest_api(endpoint, action_result, schema=QUARANTINE_RESP_SCHEMA, data=attribute_dict) + + if (phantom.is_fail(ret_val)): + return action_result.get_status() + + # total = ret_data["ns2:searchResult"]["@total"] + # action_result.update_summary({"Endpoints found": total}) + + action_result.add_data(ret_data) + return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_SYSTEM_QUARANTINED) def _quarantine_system(self, param): @@ -385,9 +451,16 @@ def handle_action(self, param): result = self._quarantine_system(param) elif (action == self.ACTION_ID_UNQUARANTINE_SYSTEM): result = self._unquarantine_system(param) + elif (action == self.ACTION_ID_LIST_ENDPOINTS): + result = self._list_endpoints(param) + elif (action == self.ACTION_ID_GET_ENDPOINT): + result = self._get_endpoint(param) + elif (action == self.ACTION_ID_UPDATE_ENDPOINT): + result = self._update_endpoint(param) return result + if __name__ == '__main__': import sys diff --git a/ciscoise_consts.py b/ciscoise_consts.py index c9dad9b..261589c 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -49,6 +49,9 @@ CISCOISE_ERR_ACTION_FAILED = "Action failed with error code: {error_code}" CISCOISE_SUCC_SYSTEM_QUARANTINED = "System Quarantined" CISCOISE_SUCC_SYSTEM_UNQUARANTINED = "System unquarantined" +CISCOISE_SUCC_LIST_ENDPOINTS = "{0} Endpoints found" +CISCOISE_SUCC_GET_ENDPOINT = "Endpoint found" +CISCOISE_SUCC_UPDATE_ENDPOINT = "Endpoint updated" # Json reply schema IS_MAC_QUARAN_RESP_SCHEMA = {"EPS_RESULT": {"type": "dict", "schema": {"status": {"type": "string"}, "userData": {"type": "string"}}}} From b08a24360e032722728f4e45fde525df08232367 Mon Sep 17 00:00:00 2001 From: Tim Frazier Date: Thu, 5 Oct 2017 08:35:29 -0400 Subject: [PATCH 03/80] PAPP-3053 Add actions to ISE --- ciscoise.json | 53 ++++++++++++++++++++++++---------------- ciscoise_connector.py | 57 +++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 34 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index bc7fbd5..d0f3ce8 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -70,7 +70,18 @@ "type": "investigate", "identifier": "list_endpoints", "read_only": true, - "parameters": {}, + "parameters": { + "mac_address": { + "description": "Mac Address to filter on - colon separated", + "data_type": "string", + "order": 0, + "contains": [ + "mac address" + ], + "primary": false, + "required": false + } + }, "render": { "type": "table", "width": 12, @@ -93,21 +104,21 @@ ] }, { - "data_path": "action_result.data.*.ns2:searchResult.@total", + "data_path": "action_result.data.*.ns3:searchResult.@total", "data_type": "string", "example_values": [ "9" ] }, { - "data_path": "action_result.data.*.ns2:searchResult.@xmlns:ns2", + "data_path": "action_result.data.*.ns3:searchResult.@xmlns:ns3", "data_type": "string", "example_values": [ "ers.ise.cisco.com" ] }, { - "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.@id", + "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.@id", "data_type": "string", "column_name": "ISE Endpoint ID", "column_order": 1, @@ -119,7 +130,7 @@ ] }, { - "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.@name", + "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.@name", "data_type": "string", "column_name": "Endpoint Name", "column_order": 0, @@ -128,14 +139,14 @@ ] }, { - "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.link.@rel", + "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.link.@rel", "data_type": "string", "example_values": [ "self" ] }, { - "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.link.@href", + "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.link.@href", "data_type": "string", "column_name": "Link to ISE Endpoint", "column_order": 2, @@ -147,7 +158,7 @@ ] }, { - "data_path": "action_result.data.*.ns2:searchResult.resources.resource.*.link.@type", + "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.link.@type", "data_type": "string", "example_values": [ "application/xml" @@ -217,14 +228,14 @@ ] }, { - "data_path": "action_result.data.*.ns3:endpoint.@description", + "data_path": "action_result.data.*.ns4:endpoint.@description", "data_type": "string", "example_values": [ "" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.@name", + "data_path": "action_result.data.*.ns4:endpoint.@name", "data_type": "string", "column_name": "Name", "column_order": 0, @@ -233,7 +244,7 @@ ] }, { - "data_path": "action_result.data.*.ns3:endpoint.@id", + "data_path": "action_result.data.*.ns4:endpoint.@id", "data_type": "string", "column_name": "ISE Endpoint ID", "column_order": 2, @@ -245,35 +256,35 @@ ] }, { - "data_path": "action_result.data.*.ns3:endpoint.@xmlns:ns3", + "data_path": "action_result.data.*.ns4:endpoint.@xmlns:ns4", "data_type": "string", "example_values": [ "identity.ers.ise.cisco.com" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.@xmlns:ns2", + "data_path": "action_result.data.*.ns4:endpoint.@xmlns:ns4", "data_type": "string", "example_values": [ "ers.ise.cisco.com" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.profileId", + "data_path": "action_result.data.*.ns4:endpoint.profileId", "data_type": "string", "example_values": [ "319be2f0-5e4d-11e4-b905-005056bf2f0a" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.staticProfileAssignment", + "data_path": "action_result.data.*.ns4:endpoint.staticProfileAssignment", "data_type": "string", "example_values": [ "false" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.mac", + "data_path": "action_result.data.*.ns4:endpoint.mac", "data_type": "string", "column_name": "Mac Address", "column_order": 1, @@ -285,14 +296,14 @@ ] }, { - "data_path": "action_result.data.*.ns3:endpoint.link.@rel", + "data_path": "action_result.data.*.ns4:endpoint.link.@rel", "data_type": "string", "example_values": [ "self" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.link.@href", + "data_path": "action_result.data.*.ns4:endpoint.link.@href", "data_type": "string", "column_name": "Link to ISE Endpoint", "column_order": 3, @@ -304,21 +315,21 @@ ] }, { - "data_path": "action_result.data.*.ns3:endpoint.link.@type", + "data_path": "action_result.data.*.ns4:endpoint.link.@type", "data_type": "string", "example_values": [ "application/xml" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.staticGroupAssignment", + "data_path": "action_result.data.*.ns4:endpoint.staticGroupAssignment", "data_type": "string", "example_values": [ "true" ] }, { - "data_path": "action_result.data.*.ns3:endpoint.groupId", + "data_path": "action_result.data.*.ns4:endpoint.groupId", "data_type": "string", "example_values": [ "c804ca00-5e4c-11e4-b905-005056bf2f0a" diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 60a6497..7214c63 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -73,7 +73,9 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ headers = {"Content-Type": "application/vnd.com.cisco.ise.identity.endpoint.1.0+xml; charset=utf-8", "ACCEPT": "application/vnd.com.cisco.ise.identity.endpoint.1.0+xml; charset=utf-8"} if data is not None: - resp = requests.put(url, data=xmltodict.unparse(data, pretty=True), verify=verify, headers=headers, auth=self._ers_auth) + xml_data = xmltodict.unparse(data, pretty=True) + self.debug_print("xml_data: ", xml_data) + resp = requests.put(url, data=xml_data, verify=verify, headers=headers, auth=self._ers_auth) else: resp = requests.get(url, verify=verify, headers=headers, auth=self._ers_auth) except: @@ -171,12 +173,19 @@ def _list_endpoints(self, param): ret_data = None endpoint = ERS_ENDPOINT_REST + mac_filter = param.get("mac_address", None) + if mac_filter is not None: + endpoint = ERS_ENDPOINT_REST + "?filter=mac.EQ." + mac_filter + ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) if (phantom.is_fail(ret_val)): return action_result.get_status() - total = ret_data["ns2:searchResult"]["@total"] + if "ns2:searchResult" in ret_data: + total = ret_data["ns2:searchResult"]["@total"] + elif "ns3:searchResult" in ret_data: + total = ret_data["ns3:searchResult"]["@total"] action_result.update_summary({"Endpoints found": total}) action_result.add_data(ret_data) @@ -218,16 +227,38 @@ def _update_endpoint(self, param): if (phantom.is_fail(ret_val)): return action_result.get_status() - attribute_dict = ret_data - - attribute_dict["ns3:endpoint"]["customAttributes"] = { - "customAttributes": { - "entry": { - "key": param["attribute"], - "value": param["attribute_value"] - } - } - } + if "ns3:endpoint" in ret_data: + attribute_dict = {"ns3:endpoint": + {"@description": "", "@id": ret_data["ns3:endpoint"]["@id"], + "@xmlns:ns3": "identity.ers.ise", "groupId": ret_data["ns3:endpoint"]["groupId"], + "staticGroupAssignment": ret_data["ns3:endpoint"]["staticGroupAssignment"], + "staticProfileAssignment": ret_data["ns3:endpoint"]["staticProfileAssignment"], + "customAttributes": { + "customAttributes": { + "entry": { + "key": param["attribute"], + "value": param["attribute_value"] + } + } + } + } + } + elif "ns4:endpoint" in ret_data: + attribute_dict = {"ns4:endpoint": + {"@description": "", "@id": ret_data["ns4:endpoint"]["@id"], + "@xmlns:ns4": "identity.ers.ise", "groupId": ret_data["ns4:endpoint"]["groupId"], + "staticGroupAssignment": ret_data["ns4:endpoint"]["staticGroupAssignment"], + "staticProfileAssignment": ret_data["ns4:endpoint"]["staticProfileAssignment"], + "customAttributes": { + "customAttributes": { + "entry": { + "key": param["attribute"], + "value": param["attribute_value"] + } + } + } + } + } ret_data = None endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] @@ -242,7 +273,7 @@ def _update_endpoint(self, param): action_result.add_data(ret_data) - return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_SYSTEM_QUARANTINED) + return action_result.set_status(phantom.APP_SUCCESS, "Endpoint Updated") def _quarantine_system(self, param): From bba08a53f23fe243ef890224c70cc472cb6446ef Mon Sep 17 00:00:00 2001 From: Tim Frazier Date: Thu, 5 Oct 2017 11:00:02 -0400 Subject: [PATCH 04/80] PAPP-3053 Add endpoint actions for Cisco ISE --- ciscoise.json | 253 ++++++++++++++++++++++++++++-------------- ciscoise_connector.py | 117 +++++++++---------- 2 files changed, 227 insertions(+), 143 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index d0f3ce8..0c7cf2a 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -10,7 +10,7 @@ "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE - SLB", - "product_version_regex": ".*", + "product_version_regex": "2.2", "min_phantom_version": "3.0.190", "logo": "cisco.png", "license": "Copyright (c) Phantom Cyber Corporation 2015-2016", @@ -100,89 +100,84 @@ "data_path": "action_result.message", "data_type": "string", "example_values": [ - "9 Endpoints found" + "9 Endpoints found", + "1 Endpoints found" ] }, { - "data_path": "action_result.data.*.ns3:searchResult.@total", - "data_type": "string", - "example_values": [ - "9" - ] - }, - { - "data_path": "action_result.data.*.ns3:searchResult.@xmlns:ns3", + "data_path": "action_result.summary.Endpoints found", "data_type": "string", "example_values": [ - "ers.ise.cisco.com" + "9", + 1 ] }, { - "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.@id", - "data_type": "string", - "column_name": "ISE Endpoint ID", - "column_order": 1, + "data_path": "summary.total_objects", + "data_type": "numeric", "example_values": [ - "59985000-712d-11e6-9062-000c29bea319" - ], - "contains": [ - "ise endpoint id" + 1 ] }, { - "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.@name", - "data_type": "string", - "column_name": "Endpoint Name", - "column_order": 0, + "data_path": "summary.total_objects_successful", + "data_type": "numeric", "example_values": [ - "00:0C:29:7B:2A:8F" + 1 ] }, { - "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.link.@rel", - "data_type": "string", + "data_path": "action_result.data.*.SearchResult.total", + "data_type": "numeric", "example_values": [ - "self" + 1 ] }, { - "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.link.@href", + "data_path": "action_result.data.*.SearchResult.resources.*.link.href", "data_type": "string", "column_name": "Link to ISE Endpoint", "column_order": 2, "example_values": [ - "https://10.16.0.120:9060/ers/config/endpoint/59985000-712d-11e6-9062-000c29bea319" + "https://10.16.0.92:9060/ers/config/endpoint/d0337940-a86f-11e7-b6e9-000c29d5f0ea" ], "contains": [ "url" ] }, { - "data_path": "action_result.data.*.ns3:searchResult.resources.resource.*.link.@type", + "data_path": "action_result.data.*.SearchResult.resources.*.link.type", "data_type": "string", "example_values": [ "application/xml" ] }, { - "data_path": "action_result.summary.Endpoints found", + "data_path": "action_result.data.*.SearchResult.resources.*.link.rel", "data_type": "string", "example_values": [ - "9" + "self" ] }, { - "data_path": "summary.total_objects", - "data_type": "numeric", + "data_path": "action_result.data.*.SearchResult.resources.*.id", + "data_type": "string", + "column_name": "ISE Endpoint ID", + "column_order": 1, "example_values": [ - 1 + "d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "ise endpoint id" ] }, { - "data_path": "summary.total_objects_successful", - "data_type": "numeric", + "data_path": "action_result.data.*.SearchResult.resources.*.name", + "data_type": "string", + "column_name": "Endpoint Name", + "column_order": 0, "example_values": [ - 1 + "8C:85:90:17:D6:39" ] } ], @@ -228,135 +223,149 @@ ] }, { - "data_path": "action_result.data.*.ns4:endpoint.@description", + "data_path": "action_result.parameter.endpoint_id", "data_type": "string", "example_values": [ - "" + "59985000-712d-11e6-9062-000c29bea319", + "d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "ise endpoint id" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.@name", - "data_type": "string", - "column_name": "Name", - "column_order": 0, + "data_path": "summary.total_objects", + "data_type": "numeric", "example_values": [ - "00:0C:29:7B:2A:8F" + 1 ] }, { - "data_path": "action_result.data.*.ns4:endpoint.@id", - "data_type": "string", - "column_name": "ISE Endpoint ID", - "column_order": 2, + "data_path": "summary.total_objects_successful", + "data_type": "numeric", "example_values": [ - "59985000-712d-11e6-9062-000c29bea319" - ], - "contains": [ - "ise endpoint id" + 1 ] }, { - "data_path": "action_result.data.*.ns4:endpoint.@xmlns:ns4", + "data_path": "action_result.data.*.ERSEndPoint.name", "data_type": "string", + "column_name": "Name", + "column_order": 0, "example_values": [ - "identity.ers.ise.cisco.com" + "8C:85:90:17:D6:39" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.@xmlns:ns4", + "data_path": "action_result.data.*.ERSEndPoint.description", "data_type": "string", "example_values": [ - "ers.ise.cisco.com" + "description" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.profileId", + "data_path": "action_result.data.*.ERSEndPoint.mac", "data_type": "string", + "column_name": "Mac Address", + "column_order": 1, "example_values": [ - "319be2f0-5e4d-11e4-b905-005056bf2f0a" + "8C:85:90:17:D6:39" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.staticProfileAssignment", + "data_path": "action_result.data.*.ERSEndPoint.profileId", "data_type": "string", "example_values": [ - "false" + "09663280-8c00-11e6-996c-525400b48521" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.mac", - "data_type": "string", - "column_name": "Mac Address", - "column_order": 1, + "data_path": "action_result.data.*.ERSEndPoint.staticProfileAssignment", + "data_type": "boolean", "example_values": [ - "00:0C:29:7B:2A:8F" - ], - "contains": [ - "mac address" + true, + false ] }, { - "data_path": "action_result.data.*.ns4:endpoint.link.@rel", + "data_path": "action_result.data.*.ERSEndPoint.customAttributes.customAttributes.ITSecurityBlock", "data_type": "string", "example_values": [ - "self" + "true" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.link.@href", + "data_path": "action_result.data.*.ERSEndPoint.link.href", "data_type": "string", "column_name": "Link to ISE Endpoint", "column_order": 3, "example_values": [ - "https://10.16.0.120:9060/ers/config/endpoint/59985000-712d-11e6-9062-000c29bea319" + "https://10.16.0.92:9060/ers/config/endpoint/d0337940-a86f-11e7-b6e9-000c29d5f0ea" ], "contains": [ "url" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.link.@type", + "data_path": "action_result.data.*.ERSEndPoint.link.type", "data_type": "string", "example_values": [ "application/xml" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.staticGroupAssignment", + "data_path": "action_result.data.*.ERSEndPoint.link.rel", "data_type": "string", "example_values": [ - "true" + "self" ] }, { - "data_path": "action_result.data.*.ns4:endpoint.groupId", + "data_path": "action_result.data.*.ERSEndPoint.portalUser", "data_type": "string", "example_values": [ - "c804ca00-5e4c-11e4-b905-005056bf2f0a" + "" ] }, { - "data_path": "action_result.parameter.endpoint_id", + "data_path": "action_result.data.*.ERSEndPoint.id", "data_type": "string", + "column_name": "ISE Endpoint ID", + "column_order": 2, "example_values": [ - "59985000-712d-11e6-9062-000c29bea319" + "d0337940-a86f-11e7-b6e9-000c29d5f0ea" ], "contains": [ "ise endpoint id" ] }, { - "data_path": "summary.total_objects", - "data_type": "numeric", + "data_path": "action_result.data.*.ERSEndPoint.staticGroupAssignment", + "data_type": "boolean", "example_values": [ - 1 + true, + false ] }, { - "data_path": "summary.total_objects_successful", - "data_type": "numeric", + "data_path": "action_result.data.*.ERSEndPoint.identityStore", + "data_type": "string", "example_values": [ - 1 + "" + ] + }, + { + "data_path": "action_result.data.*.ERSEndPoint.groupId", + "data_type": "string", + "example_values": [ + "aa10ae00-8bff-11e6-996c-525400b48521" + ] + }, + { + "data_path": "action_result.data.*.ERSEndPoint.identityStoreId", + "data_type": "string", + "example_values": [ + "" ] } ], @@ -405,6 +414,78 @@ "example_values": [ "success" ] + }, + { + "data_path": "action_result.data.*.UpdatedFieldsList.updatedField.*.field", + "data_type": "string", + "column_name": "Updated Field", + "column_order": 0, + "example_values": [ + "customAttributes" + ] + }, + { + "data_path": "action_result.data.*.UpdatedFieldsList.updatedField.*.newValue", + "data_type": "string", + "column_name": "New Value", + "column_order": 1, + "example_values": [ + "{ITSecurityBlock=True}" + ] + }, + { + "data_path": "action_result.data.*.UpdatedFieldsList.updatedField.*.oldValue", + "data_type": "string", + "column_name": "Old Value", + "column_order": 2, + "example_values": [ + "{ITSecurityBlock=False}" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Endpoint Updated" + ] + }, + { + "data_path": "action_result.parameter.attribute", + "data_type": "string", + "example_values": [ + "ITSecurityBlock" + ] + }, + { + "data_path": "action_result.parameter.endpoint_id", + "data_type": "string", + "example_values": [ + "d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "ise endpoint id" + ] + }, + { + "data_path": "action_result.parameter.attribute_value", + "data_type": "string", + "example_values": [ + "True" + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] } ], "versions": "EQ(*)" diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 7214c63..898dd6a 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -59,32 +59,46 @@ def initialize(self): return phantom.APP_SUCCESS + def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True): + + url = '{0}{1}'.format(self._base_url, endpoint) + ret_data = None + self.debug_print("REST Endpoint: ", url) + + config = self.get_config() + verify = config[phantom.APP_JSON_VERIFY] + try: + headers = {"Content-Type": "application/json", + "ACCEPT": "application/json"} + if data is not None: + resp = requests.put(url, json=data, verify=verify, headers=headers, auth=self._ers_auth) + else: + resp = requests.get(url, verify=verify, headers=headers, auth=self._ers_auth) + except: + return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) + + self.debug_print("status_code", resp.status_code) + + if (resp.status_code != 200): + return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data) + + ret_data = resp.json() + + return (phantom.APP_SUCCESS, ret_data) + def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_unknown=True): url = '{0}{1}'.format(self._base_url, endpoint) ret_data = None - action = self.get_action_identifier() self.debug_print("REST Endpoint: ", url) config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] - if (action == self.ACTION_ID_LIST_ENDPOINTS) or (action == self.ACTION_ID_GET_ENDPOINT) or (action == self.ACTION_ID_UPDATE_ENDPOINT): - try: - headers = {"Content-Type": "application/vnd.com.cisco.ise.identity.endpoint.1.0+xml; charset=utf-8", - "ACCEPT": "application/vnd.com.cisco.ise.identity.endpoint.1.0+xml; charset=utf-8"} - if data is not None: - xml_data = xmltodict.unparse(data, pretty=True) - self.debug_print("xml_data: ", xml_data) - resp = requests.put(url, data=xml_data, verify=verify, headers=headers, auth=self._ers_auth) - else: - resp = requests.get(url, verify=verify, headers=headers, auth=self._ers_auth) - except: - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) - else: - try: - resp = requests.get(url, verify=verify, auth=self._auth) - except Exception as e: - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) + + try: + resp = requests.get(url, verify=verify, auth=self._auth) + except Exception as e: + return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) self.debug_print("status_code", resp.status_code) @@ -177,15 +191,13 @@ def _list_endpoints(self, param): if mac_filter is not None: endpoint = ERS_ENDPOINT_REST + "?filter=mac.EQ." + mac_filter - ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) + ret_val, ret_data = self._call_ers_api(endpoint, action_result) if (phantom.is_fail(ret_val)): return action_result.get_status() - if "ns2:searchResult" in ret_data: - total = ret_data["ns2:searchResult"]["@total"] - elif "ns3:searchResult" in ret_data: - total = ret_data["ns3:searchResult"]["@total"] + total = ret_data["SearchResult"]["total"] + action_result.update_summary({"Endpoints found": total}) action_result.add_data(ret_data) @@ -201,7 +213,7 @@ def _get_endpoint(self, param): ret_data = None endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] - ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) + ret_val, ret_data = self._call_ers_api(endpoint, action_result) if (phantom.is_fail(ret_val)): return action_result.get_status() @@ -222,48 +234,39 @@ def _update_endpoint(self, param): ret_data = None endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] - ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) + ret_val, ret_data = self._call_ers_api(endpoint, action_result) if (phantom.is_fail(ret_val)): return action_result.get_status() - if "ns3:endpoint" in ret_data: - attribute_dict = {"ns3:endpoint": - {"@description": "", "@id": ret_data["ns3:endpoint"]["@id"], - "@xmlns:ns3": "identity.ers.ise", "groupId": ret_data["ns3:endpoint"]["groupId"], - "staticGroupAssignment": ret_data["ns3:endpoint"]["staticGroupAssignment"], - "staticProfileAssignment": ret_data["ns3:endpoint"]["staticProfileAssignment"], - "customAttributes": { - "customAttributes": { - "entry": { - "key": param["attribute"], - "value": param["attribute_value"] - } - } - } - } - } - elif "ns4:endpoint" in ret_data: - attribute_dict = {"ns4:endpoint": - {"@description": "", "@id": ret_data["ns4:endpoint"]["@id"], - "@xmlns:ns4": "identity.ers.ise", "groupId": ret_data["ns4:endpoint"]["groupId"], - "staticGroupAssignment": ret_data["ns4:endpoint"]["staticGroupAssignment"], - "staticProfileAssignment": ret_data["ns4:endpoint"]["staticProfileAssignment"], - "customAttributes": { + ''' + endpoint_data = ret_data["ERSEndPoint"] + attribute_dict = { + "ERSEndPoint": { + "id": endpoint_data["id"], + "name": endpoint_data["name"], + "description": endpoint_data["description"], + "mac": endpoint_data["mac"], + "profileId": endpoint_data["profileId"], + "groupId": endpoint_data["groupId"], + "staticProfileAssignment": endpoint_data["staticProfileAssignment"], + "staticGroupAssignment": endpoint_data["staticGroupAssignment"], + "customAttributes": { "customAttributes": { - "entry": { - "key": param["attribute"], - "value": param["attribute_value"] - } - } - } - } - } + param["attribute"]: param["attribute_value"] + } + } + } + } + ''' + attribute_dict = ret_data + attribute_dict["ERSEndPoint"].pop("link") + attribute_dict["ERSEndPoint"]["customAttributes"]["customAttributes"].update({param["attribute"]: param["attribute_value"]}) ret_data = None endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] - ret_val, ret_data = self._call_rest_api(endpoint, action_result, schema=QUARANTINE_RESP_SCHEMA, data=attribute_dict) + ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=attribute_dict) if (phantom.is_fail(ret_val)): return action_result.get_status() From 0539d1f3793038b42805507ef7700b50495785b1 Mon Sep 17 00:00:00 2001 From: Tim Frazier Date: Fri, 1 Dec 2017 09:06:44 -0500 Subject: [PATCH 05/80] PAPP-3053 Add endpoint actions for Cisco ISE --- ciscoise.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 0c7cf2a..073c6ba 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1,7 +1,7 @@ { - "appid": "85232924-4776-4896-88fa-b982b304af7d", - "name": "Cisco ISE - SLB", - "description": "This app implements investigative and containment actions like 'quarantine device', 'terminate session' and 'list sessions' etc. on a Cisco ISE device.", + "appid": "85232924-4776-4896-88fa-b982b304af7c", + "name": "Cisco ISE", + "description": "This app implements investigative and containment actions on a Cisco ISE device.", "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.pyc", @@ -9,7 +9,7 @@ "utctime_updated": "2017-08-10T00:31:00.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", - "product_name": "Cisco ISE - SLB", + "product_name": "Cisco ISE", "product_version_regex": "2.2", "min_phantom_version": "3.0.190", "logo": "cisco.png", @@ -72,7 +72,7 @@ "read_only": true, "parameters": { "mac_address": { - "description": "Mac Address to filter on - colon separated", + "description": "Mac Address to filter on (6 bytes, colon separated)", "data_type": "string", "order": 0, "contains": [ @@ -184,7 +184,7 @@ "versions": "EQ(*)" }, { - "action": "get endpoint", + "action": "get device info", "description": "Get informaton about a specific endpoint", "type": "investigate", "identifier": "get_endpoint", @@ -372,7 +372,7 @@ "versions": "EQ(*)" }, { - "action": "update endpoint", + "action": "update device info", "description": "Update informaton or attributes for a specific endpoint", "type": "contain", "identifier": "update_endpoint", From 11918e610c2231ec2f916b4b026f6584f25cb244 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Wed, 13 Dec 2017 18:54:39 -0800 Subject: [PATCH 06/80] Bumped up the version of ciscoise from 1.2.14 to 1.2.15 --- ciscoise.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 073c6ba..d96b95f 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -5,8 +5,8 @@ "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.pyc", - "app_version": "1.2.14", - "utctime_updated": "2017-08-10T00:31:00.000000Z", + "app_version": "1.2.15", + "utctime_updated": "2017-12-14T02:54:39.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", @@ -759,4 +759,4 @@ "versions": "EQ(*)" } ] -} +} \ No newline at end of file From a60ea230b5c26b36408cf6dabb364f1e8f977110 Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Tue, 19 Dec 2017 15:40:31 -0800 Subject: [PATCH 07/80] Bumped up the version of ciscoise from 1.2.15 to 1.2.16 --- ciscoise.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index d96b95f..a31f4f0 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -5,8 +5,8 @@ "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.pyc", - "app_version": "1.2.15", - "utctime_updated": "2017-12-14T02:54:39.000000Z", + "app_version": "1.2.16", + "utctime_updated": "2017-12-19T23:40:31.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", From 7b8c7d05a5b343040496cdc5d6d4cfb52acb061c Mon Sep 17 00:00:00 2001 From: Atif Mahadik Date: Fri, 23 Mar 2018 14:26:27 -0700 Subject: [PATCH 08/80] PAPP-3777 review updates --- ciscoise.json | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 42edf27..f88fa07 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -62,23 +62,7 @@ "identifier": "test_asset_connectivity", "read_only": true, "parameters": {}, - "output": [ - { - "data_path": "action_result.status", - "example_values": [ - "success" - ], - "data_type": "string" - }, - { - "data_path": "action_result.data", - "data_type": "string" - }, - { - "data_path": "action_result.summary", - "data_type": "string" - } - ], + "output": [], "versions": "EQ(*)" }, { @@ -819,4 +803,4 @@ "versions": "EQ(*)" } ] -} +} \ No newline at end of file From fe605ee9f921ab5c59e91547d71b77e80d93233e Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Thu, 12 Apr 2018 13:14:53 -0700 Subject: [PATCH 09/80] Bumped up the version of ciscoise from 1.2.17 to 1.2.18 --- ciscoise.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index f88fa07..b8baa57 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -5,8 +5,8 @@ "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.pyc", - "app_version": "1.2.17", - "utctime_updated": "2018-01-26T00:47:44.000000Z", + "app_version": "1.2.18", + "utctime_updated": "2018-04-12T20:14:53.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", From fed2cb26387ebd0f4de087adde2c552ae67361a2 Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Thu, 6 Dec 2018 02:27:46 +0000 Subject: [PATCH 10/80] Added file for CI: docker-compose.yml --- docker-compose.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c6a354d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3.2" + +services: + qa-local: + image: repo.splunk.com/splunk/infra/phantom_apps_tester:${IMAGE_TAG:-latest} + environment: + BUILD_USER_ID: ${USER:-localbuild} + test_branch: ${TEST_BRANCH:-master} + WORKSPACE: /build + volumes: + - ..:/build + command: sleep 28800 + secrets: + - artifactory_token + - app_deploy_key + - gitlab_api_token + +secrets: + artifactory_token: + file: ~/.docker/secrets/artifactory_token + build_private_key: + file: ~/.docker/secrets/app_deploy_key + gitlab_api_token: + file: ~/.docker/secrets/gitlab_api_token From 02dee467608267d4abdef92fb1af3a1523d91db3 Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Thu, 6 Dec 2018 02:27:47 +0000 Subject: [PATCH 11/80] Added file for CI: Makefile --- Makefile | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3f29e91 --- /dev/null +++ b/Makefile @@ -0,0 +1,89 @@ +# Makefile for Phantom apps CI +# created oct-2018 by rbraun at splunk +# +# Usage: +# make local - to bring up docker for local dev +# make - pipeline targets build / upload +# make secrets - list any required secret values +# +# Credentials can be passed as environment variables or docker secret files +# under /run/secrets + + +# Variables set by GitLab +WORKSPACE ?= $(shell pwd) +CI_COMMIT_REF_NAME ?= $(shell git branch | grep "\*" | cut -d ' ' -f 2) + +# Git variables +GIT_SERVER ?= cd.splunkdev.com +RELEASE_GROUP ?= phantom +RELEASE_REPO ?= app_release + +# Docker variables +DOCKER_WORK ?= $(shell grep :/build local/docker-compose.yml | cut -d : -f 2) +export IMAGE_TAG ?= $(shell grep ^image: .gitlab-ci.yml | cut -d : -f 3) + +# Variables sent to app_release for test/build/release scripts +export APP_DIR ?= $(WORKSPACE) +export APP_REPO_NAME ?= $(shell basename `pwd`) +export APP_BRANCH ?= $(CI_COMMIT_REF_NAME) +export TEST_BRANCH ?= master + +# Pipeline secrets +SECRETS = artifactory_token gitlab_api_token app_deploy_key +ifneq ($(wildcard /run/secrets/.),) + # Load secrets if specified in filesystem rather than variables + export GITLAB_API_TOKEN ?= $(shell cat /run/secrets/gitlab_api_token) + export ARTIFACTORY_TOKEN := $(shell cat /run/secrets/artifactory_token) + export APP_DEPLOY_KEY := $(shell cat /run/secrets/app_deploy_key) +endif + +.PHONY: checkout test upload build release local secrets list_secrets + +checkout: $(WORKSPACE)/$(RELEASE_REPO) +$(WORKSPACE)/$(RELEASE_REPO): /tmp/ssh-agent + @echo Clone the $(RELEASE_REPO) repo + @git clone git@$(GIT_SERVER):$(RELEASE_GROUP)/$(RELEASE_REPO).git + @echo Checkout the working app branch + @cd $(RELEASE_REPO); git checkout $(TEST_BRANCH) + +test: checkout + @cd $(RELEASE_REPO) && make $@ + +upload: checkout + @cd $(RELEASE_REPO) && make $@ + +build: checkout + @cd $(RELEASE_REPO) && make $@ + +release: checkout + @cd $(RELEASE_REPO) && make $@ + +local: secrets + @echo Setting up local development instance + @echo Make sure you have run: + $(info docker login repo.splunk.com) + (cd local; docker-compose up -d) + @echo Working directory is mapped to $(DOCKER_WORK). To connect: + $(info docker exec -it -w $(DOCKER_WORK) local_qa-local_1 bash) + +/tmp/ssh-agent: + echo Starting ssh agent + @mkdir -p -m 700 ~/.ssh + @ssh-keyscan -p 22 $(GIT_SERVER) >> ~/.ssh/known_hosts + @eval $(shell ssh-agent -s >$@) + @if [ -s /run/secrets/app_deploy_key ]; then \ + cp /run/secrets/app_deploy_key ~/.ssh/id_rsa && \ + /bin/bash -c "source $@ && ssh-add ~/.ssh/id_rsa"; \ + else \ + cp ~/.ssh/app_deploy_key ~/.ssh/id_rsa && \ + chmod 600 ~/.ssh/id_rsa && \ + cat $@ && \ + /bin/bash -c "source $@ && ssh-add ~/.ssh/id_rsa"; \ + fi + +SECRET_FILES = $(foreach I,$(SECRETS),~/.docker/secrets/$I) +secrets: list_secrets $(SECRET_FILES) +list_secrets: + @echo From .docker/secrets these files are loaded: + $(info $(SECRETS)) From b3c5cc1ff93f4cd498b0ff7dfa3867d27f5eed0d Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Thu, 6 Dec 2018 02:27:47 +0000 Subject: [PATCH 12/80] Added file for CI: .gitlab-ci.yml --- .gitlab-ci.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..6382339 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,38 @@ +stages: + - Test And Build App + - Release App + +image: repo.splunk.com/splunk/infra/phantom_apps_tester:latest + +before_script: + - mkdir -p -m 700 ~/.ssh && echo -e $APP_DEPLOY_KEY > ~/.ssh/app_deploy_key + +test: + stage: Test And Build App + script: make test + after_script: + - make upload + artifacts: + name: Test Results + expire_in: 6 mos + when: always + paths: [app_release/results] + +build: + stage: Test And Build App + script: make build + image: repo.splunk.com/splunk/infra/phantom_apps_builder:latest + only: + - next + - /^beta\/.+/ + - master + except: + variables: + - $CI_COMMIT_MESSAGE =~ /^Bumped up the version/ + - $CI_COMMIT_MESSAGE =~ /^\[no-build\]/ + +release: + stage: Release App + script: make release + only: + - master From 9a378030b4d9e3d0950c318be2637e0c10016906 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 6 Dec 2018 02:31:39 +0000 Subject: [PATCH 13/80] Bumped up the version of ciscoise from 1.2.18 to 1.2.19 --- ciscoise.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index b8baa57..12d697a 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -5,8 +5,8 @@ "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.pyc", - "app_version": "1.2.18", - "utctime_updated": "2018-04-12T20:14:53.000000Z", + "app_version": "1.2.19", + "utctime_updated": "2018-12-06T02:31:39.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", From 8a19063eb6f3fd945ab6df967ea58146aa6cae4b Mon Sep 17 00:00:00 2001 From: Jacob Davis Date: Fri, 7 Dec 2018 01:34:04 +0000 Subject: [PATCH 14/80] Deleted .gitlab-ci.yml --- .gitlab-ci.yml | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 6382339..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,38 +0,0 @@ -stages: - - Test And Build App - - Release App - -image: repo.splunk.com/splunk/infra/phantom_apps_tester:latest - -before_script: - - mkdir -p -m 700 ~/.ssh && echo -e $APP_DEPLOY_KEY > ~/.ssh/app_deploy_key - -test: - stage: Test And Build App - script: make test - after_script: - - make upload - artifacts: - name: Test Results - expire_in: 6 mos - when: always - paths: [app_release/results] - -build: - stage: Test And Build App - script: make build - image: repo.splunk.com/splunk/infra/phantom_apps_builder:latest - only: - - next - - /^beta\/.+/ - - master - except: - variables: - - $CI_COMMIT_MESSAGE =~ /^Bumped up the version/ - - $CI_COMMIT_MESSAGE =~ /^\[no-build\]/ - -release: - stage: Release App - script: make release - only: - - master From 128e8290956683480a75b59e7f23c51f7241fd3d Mon Sep 17 00:00:00 2001 From: Jacob Davis Date: Fri, 7 Dec 2018 01:34:05 +0000 Subject: [PATCH 15/80] Updated file Makefile --- Makefile | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 3f29e91..346ffe0 100644 --- a/Makefile +++ b/Makefile @@ -11,64 +11,64 @@ # Variables set by GitLab -WORKSPACE ?= $(shell pwd) -CI_COMMIT_REF_NAME ?= $(shell git branch | grep "\*" | cut -d ' ' -f 2) +WORKSPACE ?= $(shell grep WORKSPACE: docker-compose.yml | cut -d : -f 2) +CI_COMMIT_REF_NAME ?= $(shell git branch | grep "\*" | cut -d ' ' -f 2) # Git variables -GIT_SERVER ?= cd.splunkdev.com -RELEASE_GROUP ?= phantom -RELEASE_REPO ?= app_release +GIT_SERVER ?= cd.splunkdev.com +RELEASE_GROUP ?= phantom +RELEASE_REPO ?= app_release +RELEASE_DIR := $(WORKSPACE)/$(RELEASE_REPO) # Docker variables -DOCKER_WORK ?= $(shell grep :/build local/docker-compose.yml | cut -d : -f 2) export IMAGE_TAG ?= $(shell grep ^image: .gitlab-ci.yml | cut -d : -f 3) # Variables sent to app_release for test/build/release scripts -export APP_DIR ?= $(WORKSPACE) -export APP_REPO_NAME ?= $(shell basename `pwd`) -export APP_BRANCH ?= $(CI_COMMIT_REF_NAME) -export TEST_BRANCH ?= master +export APP_DIR ?= $(shell pwd) +export APP_REPO_NAME ?= $(shell basename $(APP_DIR)) +export APP_BRANCH ?= $(CI_COMMIT_REF_NAME) +export TEST_BRANCH ?= master # Pipeline secrets SECRETS = artifactory_token gitlab_api_token app_deploy_key ifneq ($(wildcard /run/secrets/.),) # Load secrets if specified in filesystem rather than variables export GITLAB_API_TOKEN ?= $(shell cat /run/secrets/gitlab_api_token) - export ARTIFACTORY_TOKEN := $(shell cat /run/secrets/artifactory_token) - export APP_DEPLOY_KEY := $(shell cat /run/secrets/app_deploy_key) + export ARTIFACTORY_TOKEN ?= $(shell cat /run/secrets/artifactory_token) + export APP_DEPLOY_KEY ?= $(shell cat /run/secrets/app_deploy_key) endif .PHONY: checkout test upload build release local secrets list_secrets -checkout: $(WORKSPACE)/$(RELEASE_REPO) -$(WORKSPACE)/$(RELEASE_REPO): /tmp/ssh-agent - @echo Clone the $(RELEASE_REPO) repo - @git clone git@$(GIT_SERVER):$(RELEASE_GROUP)/$(RELEASE_REPO).git - @echo Checkout the working app branch - @cd $(RELEASE_REPO); git checkout $(TEST_BRANCH) +checkout: $(RELEASE_DIR) +$(RELEASE_DIR): /tmp/ssh-agent + $(info Clone the $(RELEASE_REPO) repo into $(RELEASE_DIR)) + @git clone git@$(GIT_SERVER):$(RELEASE_GROUP)/$(RELEASE_REPO).git $(RELEASE_DIR) + $(info Checkout the test branch: $(TEST_BRANCH)) + @cd $(RELEASE_DIR) && git checkout $(TEST_BRANCH) test: checkout - @cd $(RELEASE_REPO) && make $@ + @cd $(RELEASE_DIR) && make $@ upload: checkout - @cd $(RELEASE_REPO) && make $@ + @cd $(RELEASE_DIR) && make $@ build: checkout - @cd $(RELEASE_REPO) && make $@ + @cd $(RELEASE_DIR) && make $@ release: checkout - @cd $(RELEASE_REPO) && make $@ + @cd $(RELEASE_DIR) && make $@ local: secrets - @echo Setting up local development instance - @echo Make sure you have run: + $(info Setting up local development instance) + $(info Make sure you have run:) $(info docker login repo.splunk.com) - (cd local; docker-compose up -d) - @echo Working directory is mapped to $(DOCKER_WORK). To connect: + docker-compose up -d + $(info Working directory is mapped to $(DOCKER_WORK). To connect:) $(info docker exec -it -w $(DOCKER_WORK) local_qa-local_1 bash) /tmp/ssh-agent: - echo Starting ssh agent + $(info Starting ssh agent) @mkdir -p -m 700 ~/.ssh @ssh-keyscan -p 22 $(GIT_SERVER) >> ~/.ssh/known_hosts @eval $(shell ssh-agent -s >$@) @@ -85,5 +85,5 @@ local: secrets SECRET_FILES = $(foreach I,$(SECRETS),~/.docker/secrets/$I) secrets: list_secrets $(SECRET_FILES) list_secrets: - @echo From .docker/secrets these files are loaded: + $(info From .docker/secrets these files are loaded:) $(info $(SECRETS)) From 1c97d56020c851d196d8c57e7519613082ea7dab Mon Sep 17 00:00:00 2001 From: Jacob Davis Date: Fri, 7 Dec 2018 01:34:05 +0000 Subject: [PATCH 16/80] Updated file docker-compose.yml --- docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c6a354d..dda4d21 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,10 +5,10 @@ services: image: repo.splunk.com/splunk/infra/phantom_apps_tester:${IMAGE_TAG:-latest} environment: BUILD_USER_ID: ${USER:-localbuild} - test_branch: ${TEST_BRANCH:-master} - WORKSPACE: /build + TEST_BRANCH: ${TEST_BRANCH:-master} + WORKSPACE: /builds/phantom-apps volumes: - - ..:/build + - ..:/builds/phantom-apps/${APP_REPO_NAME} command: sleep 28800 secrets: - artifactory_token From 80378aa3ce4b42cec7217cf522891a16692e4624 Mon Sep 17 00:00:00 2001 From: Jacob Davis Date: Fri, 7 Dec 2018 01:34:06 +0000 Subject: [PATCH 17/80] Updated file exclude_files.txt --- exclude_files.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/exclude_files.txt b/exclude_files.txt index ae39a98..fe5fb14 100644 --- a/exclude_files.txt +++ b/exclude_files.txt @@ -1,2 +1,5 @@ +docker-compose.yml +.gitlab-ci.yml +Makefile *.py .git* \ No newline at end of file From 2ca29958ebba67eb273be347c982cd39f0719d9b Mon Sep 17 00:00:00 2001 From: Jacob Davis Date: Fri, 7 Dec 2018 01:34:06 +0000 Subject: [PATCH 18/80] Added file to repo: .gitlab-ci.yml --- .gitlab-ci.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..cbfedc1 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,33 @@ +stages: + - Test And Build App + - Release App + +image: repo.splunk.com/splunk/infra/phantom_apps_tester:latest + +before_script: + - mkdir -p -m 700 ~/.ssh && echo -e $APP_DEPLOY_KEY > ~/.ssh/app_deploy_key + +test: + stage: Test And Build App + script: make test + after_script: + - make upload + +build: + stage: Test And Build App + script: make build + image: repo.splunk.com/splunk/infra/phantom_apps_builder:latest + only: + - next + - /^beta\/.+/ + - master + except: + variables: + - $CI_COMMIT_MESSAGE =~ /^Bumped up the version/ + - $CI_COMMIT_MESSAGE =~ /^\[no-build\]/ + +release: + stage: Release App + script: make release + only: + - master From d1f85bdac9d60143b07fd9151372dcb16fbb2dbb Mon Sep 17 00:00:00 2001 From: root Date: Fri, 7 Dec 2018 02:21:36 +0000 Subject: [PATCH 19/80] Bumped up the version of /builds/phantom-apps/ciscoise from 1.2.19 to 1.2.20 --- ciscoise.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 12d697a..fbecc7c 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -5,8 +5,8 @@ "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.pyc", - "app_version": "1.2.19", - "utctime_updated": "2018-12-06T02:31:39.000000Z", + "app_version": "1.2.20", + "utctime_updated": "2018-12-07T02:21:36.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", From a60c9288902d5dbf344a6c6077e96dc1875ceb47 Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Tue, 12 Feb 2019 01:28:44 +0000 Subject: [PATCH 20/80] Deleted .gitlab-ci.yml --- .gitlab-ci.yml | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index cbfedc1..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,33 +0,0 @@ -stages: - - Test And Build App - - Release App - -image: repo.splunk.com/splunk/infra/phantom_apps_tester:latest - -before_script: - - mkdir -p -m 700 ~/.ssh && echo -e $APP_DEPLOY_KEY > ~/.ssh/app_deploy_key - -test: - stage: Test And Build App - script: make test - after_script: - - make upload - -build: - stage: Test And Build App - script: make build - image: repo.splunk.com/splunk/infra/phantom_apps_builder:latest - only: - - next - - /^beta\/.+/ - - master - except: - variables: - - $CI_COMMIT_MESSAGE =~ /^Bumped up the version/ - - $CI_COMMIT_MESSAGE =~ /^\[no-build\]/ - -release: - stage: Release App - script: make release - only: - - master From 38c1a4ec08f47856bdc234f91034a8242dcd2ad5 Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Tue, 12 Feb 2019 01:28:44 +0000 Subject: [PATCH 21/80] Added GitLab yaml [skip ci] --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..38e1594 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,3 @@ +include: + - project: 'phantom/appscript' + file: 'gitlab-ci/.gitlab-ci.yml' From a71042cf8bb8af932b88aea2a13213b5e05da5ad Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Tue, 12 Feb 2019 03:11:15 +0000 Subject: [PATCH 22/80] Updated file Makefile [skip ci] --- Makefile | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 346ffe0..7af3212 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Makefile for Phantom apps CI -# created oct-2018 by rbraun at splunk +# created oct-2018 by michellel & jacobd at splunk # # Usage: # make local - to bring up docker for local dev @@ -30,15 +30,16 @@ export APP_BRANCH ?= $(CI_COMMIT_REF_NAME) export TEST_BRANCH ?= master # Pipeline secrets -SECRETS = artifactory_token gitlab_api_token app_deploy_key +SECRETS = app_artf_token gitlab_api_token app_deploy_key ifneq ($(wildcard /run/secrets/.),) # Load secrets if specified in filesystem rather than variables export GITLAB_API_TOKEN ?= $(shell cat /run/secrets/gitlab_api_token) - export ARTIFACTORY_TOKEN ?= $(shell cat /run/secrets/artifactory_token) + export APP_ARTF_TOKEN ?= $(shell cat /run/secrets/app_artf_token) export APP_DEPLOY_KEY ?= $(shell cat /run/secrets/app_deploy_key) endif -.PHONY: checkout test upload build release local secrets list_secrets +APP_RELEASE_TARGETS = test upload build release +.PHONY: checkout local secrets list_secrets $(APP_RELEASE_TARGETS) checkout: $(RELEASE_DIR) $(RELEASE_DIR): /tmp/ssh-agent @@ -47,16 +48,7 @@ $(RELEASE_DIR): /tmp/ssh-agent $(info Checkout the test branch: $(TEST_BRANCH)) @cd $(RELEASE_DIR) && git checkout $(TEST_BRANCH) -test: checkout - @cd $(RELEASE_DIR) && make $@ - -upload: checkout - @cd $(RELEASE_DIR) && make $@ - -build: checkout - @cd $(RELEASE_DIR) && make $@ - -release: checkout +$(APP_RELEASE_TARGETS): checkout @cd $(RELEASE_DIR) && make $@ local: secrets @@ -74,12 +66,12 @@ local: secrets @eval $(shell ssh-agent -s >$@) @if [ -s /run/secrets/app_deploy_key ]; then \ cp /run/secrets/app_deploy_key ~/.ssh/id_rsa && \ - /bin/bash -c "source $@ && ssh-add ~/.ssh/id_rsa"; \ + source $@ && ssh-add ~/.ssh/id_rsa; \ else \ cp ~/.ssh/app_deploy_key ~/.ssh/id_rsa && \ chmod 600 ~/.ssh/id_rsa && \ cat $@ && \ - /bin/bash -c "source $@ && ssh-add ~/.ssh/id_rsa"; \ + source $@ && ssh-add ~/.ssh/id_rsa; \ fi SECRET_FILES = $(foreach I,$(SECRETS),~/.docker/secrets/$I) From e1bef7208f0724f138a2f56e87975262e2957285 Mon Sep 17 00:00:00 2001 From: Michelle Ly Date: Tue, 12 Feb 2019 03:11:15 +0000 Subject: [PATCH 23/80] Updated file docker-compose.yml [skip ci] --- docker-compose.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index dda4d21..6150455 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,24 +1,24 @@ version: "3.2" services: - qa-local: + app_tester: image: repo.splunk.com/splunk/infra/phantom_apps_tester:${IMAGE_TAG:-latest} environment: BUILD_USER_ID: ${USER:-localbuild} TEST_BRANCH: ${TEST_BRANCH:-master} WORKSPACE: /builds/phantom-apps volumes: - - ..:/builds/phantom-apps/${APP_REPO_NAME} + - .:/builds/phantom-apps/${APP_REPO_NAME} command: sleep 28800 secrets: - - artifactory_token + - app_artf_token - app_deploy_key - gitlab_api_token secrets: - artifactory_token: - file: ~/.docker/secrets/artifactory_token - build_private_key: + app_artf_token: + file: ~/.docker/secrets/app_artf_token + app_deploy_key: file: ~/.docker/secrets/app_deploy_key gitlab_api_token: file: ~/.docker/secrets/gitlab_api_token From dfc0440a4c9ecda7ae61284c8d4b2aabd8df4096 Mon Sep 17 00:00:00 2001 From: Ricardo Munoz Date: Thu, 12 Nov 2020 22:30:08 +0000 Subject: [PATCH 24/80] Adding whitesource-results to exclude_files.txt [skip ci] --- exclude_files.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/exclude_files.txt b/exclude_files.txt index fe5fb14..217116b 100644 --- a/exclude_files.txt +++ b/exclude_files.txt @@ -1,5 +1,6 @@ docker-compose.yml -.gitlab-ci.yml Makefile +.git* +.gitlab-ci.yml *.py -.git* \ No newline at end of file +whitesource-results \ No newline at end of file From 92ed4061bc3a3187e1b20674e2eb7dfe417da8e9 Mon Sep 17 00:00:00 2001 From: Jay Patel Date: Mon, 23 Nov 2020 05:24:02 +0000 Subject: [PATCH 25/80] Adding ciscoise requirements.txt for prodsec --- requirements.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 From fdca5fe3f09fda99b189fd4e032c2eaefe633079 Mon Sep 17 00:00:00 2001 From: Jay Patel Date: Mon, 23 Nov 2020 10:02:18 +0000 Subject: [PATCH 26/80] Updated file requirements.txt From 65bcb8f6cd610c7719fa2d6f3e733a12767694f7 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Fri, 13 Aug 2021 15:20:40 +0530 Subject: [PATCH 27/80] initial conversion --- ciscoise.json | 18 +++- ciscoise_connector.py | 138 +++++++++++-------------- ciscoise_consts.py | 3 - exclude_files.txt | 1 - requirements.txt | 0 wheels/Cerberus-1.3.4-py3-none-any.whl | Bin 0 -> 58196 bytes 6 files changed, 73 insertions(+), 87 deletions(-) delete mode 100644 requirements.txt create mode 100644 wheels/Cerberus-1.3.4-py3-none-any.whl diff --git a/ciscoise.json b/ciscoise.json index fbecc7c..0e8d624 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -4,17 +4,29 @@ "description": "This app implements investigative and containment actions on a Cisco ISE device.", "publisher": "Phantom", "type": "network access control", - "main_module": "ciscoise_connector.pyc", - "app_version": "1.2.20", + "main_module": "ciscoise_connector.py", + "app_version": "2.0.0", "utctime_updated": "2018-12-07T02:21:36.000000Z", "package_name": "phantom_ciscoise", "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", "product_version_regex": "2.2", - "min_phantom_version": "3.0.190", + "min_phantom_version": "4.9.39220", "logo": "logo_cisco.svg", "logo_dark": "logo_cisco_dark.svg", "license": "Copyright (c) Phantom Cyber Corporation, 2014-2018", + "python_version": "3", + "latest_tested_version": [ + "TODO" + ], + "pip_dependencies": { + "wheel": [ + { + "module" : "Cerberus", + "input_file": "wheels/Cerberus-1.3.4-py3-none-any.whl" + } + ] + }, "configuration": { "device": { "data_type": "string", diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 0d7a1bc..67684e2 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -68,23 +68,22 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True): config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] try: - headers = {"Content-Type": "application/json", - "ACCEPT": "application/json"} + headers = {"Content-Type": "application/json", "ACCEPT": "application/json"} if data is not None: resp = requests.put(url, json=data, verify=verify, headers=headers, auth=self._ers_auth) else: resp = requests.get(url, verify=verify, headers=headers, auth=self._ers_auth) except Exception as e: - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data self.debug_print("status_code", resp.status_code) - if (resp.status_code != 200): - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data) + if resp.status_code != 200: + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data ret_data = resp.json() - return (phantom.APP_SUCCESS, ret_data) + return phantom.APP_SUCCESS, ret_data def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_unknown=True): @@ -98,12 +97,12 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ try: resp = requests.get(url, verify=verify, auth=self._auth) except Exception as e: - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data) + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data self.debug_print("status_code", resp.status_code) - if (resp.status_code != 200): - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data) + if resp.status_code != 200: + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data action_result.add_debug_data(resp.text) xml = resp.text @@ -111,18 +110,18 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ try: response_dict = xmltodict.parse(xml) except Exception as e: - return (action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_UNABLE_TO_PARSE_REPLY, e), ret_data) + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_UNABLE_TO_PARSE_REPLY, e), ret_data ret_data = response_dict - if (schema is not None): + if schema is not None: v = Validator(schema, allow_unknown=allow_unknown) - if (v.validate(ret_data) is False): + if v.validate(ret_data) is False: action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_UNABLE_TO_PARSE_REPLY) action_result.append_to_message(v.errors) - return (action_result.get_status(), ret_data) + return action_result.get_status(), ret_data - return (phantom.APP_SUCCESS, ret_data) + return phantom.APP_SUCCESS, ret_data def _list_sessions(self, param): @@ -136,21 +135,21 @@ def _list_sessions(self, param): ret_val, ret_data = self._call_rest_api(ACTIVE_LIST_REST, action_result) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() self.debug_print("ret_data", ret_data) - if ('activeList' not in ret_data): + if 'activeList' not in ret_data: return action_result.set_status(phantom.APP_SUCCESS) active_sessions = ret_data['activeList'].get('activeSession') - if (active_sessions is None): + if active_sessions is None: return action_result.set_status(phantom.APP_SUCCESS) # Convert the dict into list, so the rest of the code is the same - if (isinstance(active_sessions, dict)): + if isinstance(active_sessions, dict): act_sess_list = [] act_sess_list.append(active_sessions) active_sessions = act_sess_list @@ -167,7 +166,7 @@ def _list_sessions(self, param): ret_val, ret_data = self._call_rest_api(is_quarantined_rest, action_result, IS_MAC_QUARAN_RESP_SCHEMA) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): continue # Can safely access the members of ret_data, since they have been parsed as by the rules of @@ -193,7 +192,7 @@ def _list_endpoints(self, param): ret_val, ret_data = self._call_ers_api(endpoint, action_result) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() total = ret_data["SearchResult"]["total"] @@ -215,7 +214,7 @@ def _get_endpoint(self, param): ret_val, ret_data = self._call_ers_api(endpoint, action_result) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() # total = ret_data["ns2:searchResult"]["@total"] @@ -236,29 +235,9 @@ def _update_endpoint(self, param): ret_val, ret_data = self._call_ers_api(endpoint, action_result) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() - ''' - endpoint_data = ret_data["ERSEndPoint"] - attribute_dict = { - "ERSEndPoint": { - "id": endpoint_data["id"], - "name": endpoint_data["name"], - "description": endpoint_data["description"], - "mac": endpoint_data["mac"], - "profileId": endpoint_data["profileId"], - "groupId": endpoint_data["groupId"], - "staticProfileAssignment": endpoint_data["staticProfileAssignment"], - "staticGroupAssignment": endpoint_data["staticGroupAssignment"], - "customAttributes": { - "customAttributes": { - param["attribute"]: param["attribute_value"] - } - } - } - } - ''' attribute_dict = ret_data attribute_dict["ERSEndPoint"].pop("link") attribute_dict["ERSEndPoint"]["customAttributes"]["customAttributes"].update({param["attribute"]: param["attribute_value"]}) @@ -268,7 +247,7 @@ def _update_endpoint(self, param): ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=attribute_dict) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() # total = ret_data["ns2:searchResult"]["@total"] @@ -288,16 +267,16 @@ def _quarantine_system(self, param): mac_ip_address = param[phantom.APP_JSON_IP_MACADDRESS] - if (phantom.is_mac(mac_ip_address)): + if phantom.is_mac(mac_ip_address): endpoint = '{0}/{1}'.format(QUARANTINE_MAC_REST, mac_ip_address) - elif (phantom.is_ip(mac_ip_address)): + elif phantom.is_ip(mac_ip_address): endpoint = '{0}/{1}'.format(QUARANTINE_IP_REST, mac_ip_address) else: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_MAC_AND_IP_NOT_SPECIFIED) ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() action_result.add_data(ret_data) @@ -306,7 +285,7 @@ def _quarantine_system(self, param): # QUARANTINE_RESP_SCHEMA status = ret_data['EPS_RESULT']["status"] - if (status == "Failure"): + if status == "Failure": return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_ACTION_FAILED, error_code=ret_data['EPS_RESULT']['errorCode']) # In cases where the radius authentication failed, the status is STILL set to success, @@ -314,11 +293,11 @@ def _quarantine_system(self, param): failure_type = phantom.get_value(ret_data['EPS_RESULT'], 'failureType') failure_msg = phantom.get_value(ret_data['EPS_RESULT'], 'failureMessage') - if ((failure_type is not None) or (failure_msg is not None)): + if (failure_type is not None) or (failure_msg is not None): action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_ACTION_FAILED, error_code=ret_data['EPS_RESULT']['errorCode']) - if (failure_type is not None): + if failure_type is not None: action_result.append_to_message(failure_type) - if (failure_msg is not None): + if failure_msg is not None: action_result.append_to_message(failure_msg) return action_result.get_status() @@ -334,23 +313,23 @@ def _unquarantine_system(self, param): mac_ip_address = param[phantom.APP_JSON_IP_MACADDRESS] - if (phantom.is_mac(mac_ip_address)): + if phantom.is_mac(mac_ip_address): endpoint = '{0}/{1}'.format(UNQUARANTINE_MAC_REST, mac_ip_address) - elif (phantom.is_ip(mac_ip_address)): + elif phantom.is_ip(mac_ip_address): endpoint = '{0}/{1}'.format(UNQUARANTINE_IP_REST, mac_ip_address) else: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_MAC_AND_IP_NOT_SPECIFIED) ret_val, ret_data = self._call_rest_api(endpoint, action_result, QUARANTINE_RESP_SCHEMA) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() action_result.add_data(ret_data) status = ret_data['EPS_RESULT']["status"] - if (status == "Failure"): + if status == "Failure": return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_ACTION_FAILED, error_code=ret_data['EPS_RESULT']['errorCode']) # In cases where the radius authentication failed, the status is STILL set to success, @@ -358,11 +337,11 @@ def _unquarantine_system(self, param): failure_type = phantom.get_value(ret_data['EPS_RESULT'], 'failureType') failure_msg = phantom.get_value(ret_data['EPS_RESULT'], 'failureMessage') - if ((failure_type is not None) or (failure_msg is not None)): + if (failure_type is not None) or (failure_msg is not None): action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_ACTION_FAILED, error_code=ret_data['EPS_RESULT']['errorCode']) - if (failure_type is not None): + if failure_type is not None: action_result.append_to_message(failure_type) - if (failure_msg is not None): + if failure_msg is not None: action_result.append_to_message(failure_msg) return action_result.get_status() @@ -384,22 +363,22 @@ def _logoff_system(self, param): ret_val, ret_data = self._call_rest_api(endpoint, action_result) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() action_result.add_data(ret_data) remote_coa = ret_data.get('remoteCoA') - if (remote_coa is None): + if remote_coa is None: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_PARSE_REPLY) result = remote_coa.get('results') - if (result is None): + if result is None: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_PARSE_REPLY) - if (result == "false"): + if result == "false": return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_LOGOFF_SYSTEM) return action_result.set_status(phantom.APP_SUCCESS) @@ -420,7 +399,7 @@ def _terminate_session(self, param): ret_val, ret_data = self._call_rest_api(endpoint, action_result, MAC_SESSION_RESP_SCHEMA) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() acs_server = ret_data['sessionParameters']['acs_server'] @@ -430,20 +409,20 @@ def _terminate_session(self, param): ret_val, ret_data = self._call_rest_api(endpoint, action_result) - if (phantom.is_fail(ret_val)): + if phantom.is_fail(ret_val): return action_result.get_status() remote_coa = ret_data.get('remoteCoA') - if (remote_coa is None): + if remote_coa is None: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_PARSE_REPLY) result = remote_coa.get('results') - if (result is None): + if result is None: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_PARSE_REPLY) - if (result == "false"): + if result == "false": return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_TERMINATE_SESSION) return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_SESSION_TERMINATED) @@ -455,7 +434,6 @@ def _test_connectivity(self, param): config = self.get_config() self.save_progress(phantom.APP_PROG_CONNECTING_TO_ELLIPSES, config[phantom.APP_JSON_DEVICE]) - verify = config[phantom.APP_JSON_VERIFY] try: @@ -463,7 +441,7 @@ def _test_connectivity(self, param): except Exception as e: return self.set_status(phantom.APP_ERROR, CISCOISE_ERR_TEST_CONNECTIVITY_FAILED, e) - if (resp.status_code != 200): + if resp.status_code != 200: return self.set_status(phantom.APP_ERROR, CISCOISE_ERR_TEST_CONNECTIVITY_FAILED_ERR_CODE, code=resp.status_code) return self.set_status_save_progress(phantom.APP_SUCCESS, CISCOISE_SUCC_TEST_CONNECTIVITY_PASSED) @@ -473,23 +451,23 @@ def handle_action(self, param): result = None action = self.get_action_identifier() - if (action == phantom.ACTION_ID_TEST_ASSET_CONNECTIVITY): + if action == phantom.ACTION_ID_TEST_ASSET_CONNECTIVITY: result = self._test_connectivity(param) - elif (action == self.ACTION_ID_LIST_SESSIONS): + elif action == self.ACTION_ID_LIST_SESSIONS: result = self._list_sessions(param) - elif (action == self.ACTION_ID_TERMINATE_SESSION): + elif action == self.ACTION_ID_TERMINATE_SESSION: result = self._terminate_session(param) - elif (action == self.ACTION_ID_LOGOFF_SYSTEM): + elif action == self.ACTION_ID_LOGOFF_SYSTEM: result = self._logoff_system(param) - elif (action == self.ACTION_ID_QUARANTINE_SYSTEM): + elif action == self.ACTION_ID_QUARANTINE_SYSTEM: result = self._quarantine_system(param) - elif (action == self.ACTION_ID_UNQUARANTINE_SYSTEM): + elif action == self.ACTION_ID_UNQUARANTINE_SYSTEM: result = self._unquarantine_system(param) - elif (action == self.ACTION_ID_LIST_ENDPOINTS): + elif action == self.ACTION_ID_LIST_ENDPOINTS: result = self._list_endpoints(param) - elif (action == self.ACTION_ID_GET_ENDPOINT): + elif action == self.ACTION_ID_GET_ENDPOINT: result = self._get_endpoint(param) - elif (action == self.ACTION_ID_UPDATE_ENDPOINT): + elif action == self.ACTION_ID_UPDATE_ENDPOINT: result = self._update_endpoint(param) return result @@ -502,8 +480,8 @@ def handle_action(self, param): import pudb pudb.set_trace() - if (len(sys.argv) < 2): - print "No test json specified as input" + if len(sys.argv) < 2: + print("No test json specified as input") exit(0) with open(sys.argv[1]) as f: @@ -514,6 +492,6 @@ def handle_action(self, param): connector = CiscoISEConnector() connector.print_progress_message = True ret_val = connector._handle_action(json.dumps(in_json), None) - print json.dumps(json.loads(ret_val), indent=4) + print(json.dumps(json.loads(ret_val), indent=4)) exit(0) diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 521b760..d6d5500 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -13,12 +13,9 @@ # -- # Jsons -CISCOISE_JSON_TYPE = "type" CISCOISE_JSON_SERVER = "server" CISCOISE_JSON_MACADDR = "mac_address" CISCOISE_JSON_TOTAL_SESSIONS = "sessions_found" -CISCOISE_JSON_ENDPOINT_IP = "endpoint_ip" -CISCOISE_JSON_NAS_IP = "nas_ip" # REST endpoint Consts ACTIVE_COUNT_REST_ENDPOINT = "/admin/API/mnt/Session/ActiveCount" diff --git a/exclude_files.txt b/exclude_files.txt index 217116b..4c81ebc 100644 --- a/exclude_files.txt +++ b/exclude_files.txt @@ -2,5 +2,4 @@ docker-compose.yml Makefile .git* .gitlab-ci.yml -*.py whitesource-results \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/wheels/Cerberus-1.3.4-py3-none-any.whl b/wheels/Cerberus-1.3.4-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..ed93046fc7b4023022e325655073a12bc7f4f57b GIT binary patch literal 58196 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

l!zTHY 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 OfGGpOzy!|ReEL5bna3so literal 0 HcmV?d00001 From de960f1fd1565948e536fa3b400da2c12e3bc0be Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Mon, 16 Aug 2021 15:19:22 +0530 Subject: [PATCH 28/80] update enpoint fixed --- ciscoise.json | 21 +++++++++++++++++---- ciscoise_connector.py | 31 +++++++++++++------------------ 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 0e8d624..b42e628 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -412,17 +412,30 @@ "primary": true, "required": true }, + "ph_0": { + "description": "Placeholder", + "data_type": "ph", + "order": 1 + }, "attribute": { "description": "Attribute to update for the Endpoint", "data_type": "string", - "order": 1, - "required": true + "order": 2 }, "attribute_value": { "description": "Value to put in the attribute for the Endpoint", "data_type": "string", - "order": 2, - "required": true + "order": 3 + }, + "custom_attribute": { + "description": "Custom attribute to update for the Endpoint", + "data_type": "string", + "order": 4 + }, + "custom_attribute_value": { + "description": "Value to put in the custom attribute for the Endpoint", + "data_type": "string", + "order": 5 } }, "render": { diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 67684e2..723c8eb 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -82,6 +82,7 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True): return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data ret_data = resp.json() + self.debug_print(ret_data) return phantom.APP_SUCCESS, ret_data @@ -226,35 +227,29 @@ def _get_endpoint(self, param): def _update_endpoint(self, param): - ret_val = phantom.APP_SUCCESS - action_result = self.add_action_result(ActionResult(dict(param))) - ret_data = None endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] + attribute = param.get('attribute', None) + attribute_value = param.get('attribute_value', None) + custom_attribute = param.get('custom_attribute', None) + custom_attribute_value = param.get('custom_attribute_value', None) - ret_val, ret_data = self._call_ers_api(endpoint, action_result) + final_data = {"ERSEndPoint": {}} - if phantom.is_fail(ret_val): - return action_result.get_status() + if attribute is not None and attribute_value is not None: + final_data['ERSEndPoint'][attribute] = attribute_value - attribute_dict = ret_data - attribute_dict["ERSEndPoint"].pop("link") - attribute_dict["ERSEndPoint"]["customAttributes"]["customAttributes"].update({param["attribute"]: param["attribute_value"]}) + if custom_attribute is not None and custom_attribute_value is not None: + custom_attribute_dict = {"customAttributes": {custom_attribute: custom_attribute_value}} + final_data["ERSEndPoint"]["customAttributes"] = custom_attribute_dict - ret_data = None - endpoint = ERS_ENDPOINT_REST + "/" + param["endpoint_id"] - - ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=attribute_dict) + ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=final_data) + action_result.add_data(ret_data) if phantom.is_fail(ret_val): return action_result.get_status() - # total = ret_data["ns2:searchResult"]["@total"] - # action_result.update_summary({"Endpoints found": total}) - - action_result.add_data(ret_data) - return action_result.set_status(phantom.APP_SUCCESS, "Endpoint Updated") def _quarantine_system(self, param): From a42819d3e4132ea3fd9b752c2a754dd848900ee9 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Mon, 16 Aug 2021 18:24:31 +0530 Subject: [PATCH 29/80] list resources, requests call parameter change --- ciscoise.json | 143 ++++++++++++++++++++++++++++++++++++++++++ ciscoise_connector.py | 91 ++++++++++++++++++++++++--- ciscoise_consts.py | 15 +++++ 3 files changed, 239 insertions(+), 10 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index b42e628..77b6719 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -826,6 +826,149 @@ } ], "versions": "EQ(*)" + }, + { + "action": "list resources", + "description": "Lists all the resources configured on the system of a particular resource", + "type": "investigate", + "identifier": "list_resources", + "read_only": true, + "parameters": { + "resource": { + "description": "Resources of the resource to be fetched", + "data_type": "string", + "order": 0, + "required": true, + "value_list": [ + "Endpoints", + "Endpoint identity groups", + "Guest users", + "User identity groups", + "Internal users", + "Portals", + "Network devices", + "Network device groups", + "Security groups" + ] + }, + "max_results": { + "description": "Total number of observables to return", + "data_type": "numeric", + "required": false, + "default": 1000, + "order": 1 + } + }, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Results" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success", + "failed" + ] + }, + { + "data_path": "action_result.data.*.link.href", + "data_type": "string", + "example_values": [ + "https://10.1.16.169:9060/ers/config/portal/40963c00-2e02-11e8-ba71-005056872c7f" + ], + "contains": [ + "url" + ] + }, + { + "data_path": "action_result.data.*.link.type", + "data_type": "string", + "example_values": [ + "application/xml" + ] + }, + { + "data_path": "action_result.data.*.link.rel", + "data_type": "string", + "example_values": [ + "self" + ] + }, + { + "data_path": "action_result.data.*.description", + "data_type": "string", + "example_values": [ + "Default portal used by sponsors to create and manage accounts for authorized visitors to securely access the network" + ], + "column_name": "Resource Description", + "column_order": 2 + }, + { + "data_path": "action_result.data.*.name", + "data_type": "string", + "example_values": [ + "Sponsor Portal (default)" + ], + "column_name": "Resource Name", + "column_order": 1 + }, + { + "data_path": "action_result.data.*.id", + "data_type": "string", + "example_values": [ + "40963c00-2e02-11e8-ba71-005056872c7f" + ], + "column_name": "Resource ID", + "column_order": 0 + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Resources returned: 5" + ] + }, + { + "data_path": "action_result.parameter.max_results", + "data_type": "numeric", + "example_values": [ + 2 + ] + }, + { + "data_path": "action_result.parameter.resource", + "data_type": "string", + "example_values": [ + "Portals" + ] + }, + { + "data_path": "action_result.summary.resources_returned", + "data_type": "numeric", + "example_values": [ + 5 + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "versions": "EQ(*)" } ] } \ No newline at end of file diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 723c8eb..5820cb0 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -38,6 +38,8 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_LIST_ENDPOINTS = "list_endpoints" ACTION_ID_GET_ENDPOINT = "get_endpoint" ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" + ACTION_ID_LIST_RESOURCES = "list_resources" + def __init__(self): @@ -59,7 +61,7 @@ def initialize(self): return phantom.APP_SUCCESS - def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True): + def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, method="get"): url = '{0}{1}'.format(self._base_url, endpoint) ret_data = None @@ -67,12 +69,13 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True): config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] + try: + request_func = getattr(requests, method) + except AttributeError as e: + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data try: headers = {"Content-Type": "application/json", "ACCEPT": "application/json"} - if data is not None: - resp = requests.put(url, json=data, verify=verify, headers=headers, auth=self._ers_auth) - else: - resp = requests.get(url, verify=verify, headers=headers, auth=self._ers_auth) + resp = request_func(url, json=data, verify=verify, headers=headers, auth=self._ers_auth) except Exception as e: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data @@ -82,7 +85,6 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True): return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data ret_data = resp.json() - self.debug_print(ret_data) return phantom.APP_SUCCESS, ret_data @@ -218,9 +220,6 @@ def _get_endpoint(self, param): if phantom.is_fail(ret_val): return action_result.get_status() - # total = ret_data["ns2:searchResult"]["@total"] - # action_result.update_summary({"Endpoints found": total}) - action_result.add_data(ret_data) return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_GET_ENDPOINT) @@ -244,7 +243,7 @@ def _update_endpoint(self, param): custom_attribute_dict = {"customAttributes": {custom_attribute: custom_attribute_value}} final_data["ERSEndPoint"]["customAttributes"] = custom_attribute_dict - ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=final_data) + ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=final_data, method="put") action_result.add_data(ret_data) if phantom.is_fail(ret_val): @@ -422,6 +421,76 @@ def _terminate_session(self, param): return action_result.set_status(phantom.APP_SUCCESS, CISCOISE_SUCC_SESSION_TERMINATED) + def _paginator(self, endpoint, action_result, payload=None, limit=None): + + items_list = list() + f = open("/tmp/paginator_check_1.txt", "w") + f.write("hello \n") + f.write(str(items_list)) + + if not payload: + payload = {} + + page = 1 + payload['size'] = DEFAULT_MAX_RESULTS + payload['page'] = page + + f.write("\n") + f.write(str(payload)) + f.close() + + while True: + ret_val, items = self._call_ers_api(endpoint, action_result, data=payload) + + if phantom.is_fail(ret_val): + return None + + items_list.extend(items.get("SearchResult", {}).get("resources")) + + if limit and len(items_list) >= limit: + return items_list[:limit] + + if len(items.get("SearchResult", {}).get("resources")) < DEFAULT_MAX_RESULTS: + break + + if len(items_list) == items.get("SearchResult", {}).get("total"): + break + + page = page + 1 + payload['page'] = page + + return items_list + + def _list_resources(self, param): + + action_result = self.add_action_result(ActionResult(dict(param))) + + resource = MAP_RESOURCE[param["resource"]][0] + max_result = param.get("max_results") + endpoint = ERS_RESOURCE_REST.format(resource=resource) + + try: + if max_result: + max_result = int(max_result) + except ValueError: + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_INVALID_PARAM.format(param="max_result")) + + if max_result is not None and max_result <= 0: + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_INVALID_PARAM.format(param="max_result")) + + resources = self._paginator(endpoint, action_result, limit=max_result) + + if resources is None: + return action_result.get_status() + + for resource in resources: + action_result.add_data(resource) + + summary = action_result.update_summary({}) + summary['resources_returned'] = action_result.get_data_size() + + return action_result.set_status(phantom.APP_SUCCESS) + def _test_connectivity(self, param): rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) @@ -464,6 +533,8 @@ def handle_action(self, param): result = self._get_endpoint(param) elif action == self.ACTION_ID_UPDATE_ENDPOINT: result = self._update_endpoint(param) + elif action == self.ACTION_ID_LIST_RESOURCES: + result = self._list_resources(param) return result diff --git a/ciscoise_consts.py b/ciscoise_consts.py index d6d5500..a702744 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -30,6 +30,7 @@ UNQUARANTINE_IP_REST = "/ise/eps/UnQuarantineByIP_S" MAC_SESSION_DETAILS_REST = "/ise/mnt/Session/MACAddress" ERS_ENDPOINT_REST = ":9060/ers/config/endpoint" +ERS_RESOURCE_REST = ":9060/ers/config/{resource}" # Error/Success CISCOISE_ERR_TEST_CONNECTIVITY_FAILED = "Test connectivity failed" @@ -49,6 +50,8 @@ CISCOISE_SUCC_LIST_ENDPOINTS = "{0} Endpoints found" CISCOISE_SUCC_GET_ENDPOINT = "Endpoint found" CISCOISE_SUCC_UPDATE_ENDPOINT = "Endpoint updated" +CISCOISE_ERR_INVALID_PARAM = "Please provide non-zero positive integer in {param}" +DEFAULT_MAX_RESULTS = 7 # Json reply schema IS_MAC_QUARAN_RESP_SCHEMA = {"EPS_RESULT": {"type": "dict", "schema": {"status": {"type": "string"}, "userData": {"type": "string"}}}} @@ -56,3 +59,15 @@ MAC_SESSION_RESP_SCHEMA = {"sessionParameters": {"type": "dict", "schema": {"acs_server": {"type": "string"}}}} DISCONNECT_MAC_SESS_RESP_SCHEMA = {"remoteCoA": {"type": "dict", "schema": {"results": {"type": "string"}}}} ERS_UPDATE_ENDPOINT_SCHEMA = {"updatedField": {"type": "dict", "schema": {"newValue": {"type": "string"}, "oldValue": {"type": "string"}}}} + +MAP_RESOURCE = { + "Endpoints": ["endpoint", "ERSEndPoint"], + "Endpoint identity groups": ["endpointgroup", "ERSEndPoint"], + "Guest users": ["guestuser", ""], + "User identity groups": ["identitygroup", "IdentityGroup"], + "Internal users": ["internaluser", "InternalUser"], + "Portals": ["portal", "ERSPortal"], + "Network devices": ["networkdevice", "NetworkDevice"], + "Network device groups": ["networkdevicegroup", "NetworkDeviceGroup"], + "Security groups": ["sgt", "Sgt"] +} From 600afd04be4da3332124d620b52604e65b0b7f5a Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Tue, 17 Aug 2021 12:51:16 +0530 Subject: [PATCH 30/80] get resource --- ciscoise.json | 226 ++++++++++++++++++++++++++++++++++++++++++ ciscoise_connector.py | 65 +++++++++++- 2 files changed, 290 insertions(+), 1 deletion(-) diff --git a/ciscoise.json b/ciscoise.json index 77b6719..c856f81 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -969,6 +969,232 @@ } ], "versions": "EQ(*)" + }, + { + "action": "get resource", + "description": "Get details of a resource", + "type": "investigate", + "identifier": "get_resource", + "read_only": true, + "parameters": { + "resource": { + "description": "Resources of the resource to be fetched", + "data_type": "string", + "order": 0, + "required": true, + "value_list": [ + "Endpoints", + "Endpoint identity groups", + "Guest users", + "User identity groups", + "Internal users", + "Portals", + "Network devices", + "Network device groups", + "Security groups" + ] + }, + "resource_id": { + "description": "Resource ID", + "data_type": "string", + "required": false, + "order": 1 + }, + "key": { + "description": "Comma-separated keys", + "data_type": "string", + "required": false, + "order": 2 + }, + "value": { + "description": "Comma-separated values", + "data_type": "string", + "required": false, + "order": 3 + } + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success", + "failed" + ] + }, + { + "data_path": "action_result.data.*.name", + "data_type": "string", + "example_values": [ + "00:00:00:00:00:00" + ], + "column_name": "Name", + "column_order": 1 + }, + { + "data_path": "action_result.data.*.description", + "data_type": "string", + "example_values": [ + "This endpoint for test" + ], + "column_name": "Description", + "column_order": 2 + }, + { + "data_path": "action_result.data.*.profileId", + "data_type": "string", + "example_values": [ + "44031480-8c00-11e6-996c-525400b48521" + ] + }, + { + "data_path": "action_result.data.*.staticProfileAssignment", + "data_type": "boolean", + "example_values": [ + true, + false + ] + }, + { + "data_path": "action_result.data.*.mac", + "data_type": "string", + "example_values": [ + "00:00:00:00:00:00" + ] + }, + { + "data_path": "action_result.data.*.link.href", + "data_type": "string", + "example_values": [ + "https://10.1.16.169:9060/ers/config/endpoint/d335f970-10e0-11ea-8f06-ce112ec9f8fa" + ], + "contains": [ + "url" + ] + }, + { + "data_path": "action_result.data.*.link.type", + "data_type": "string", + "example_values": [ + "application/xml" + ] + }, + { + "data_path": "action_result.data.*.link.rel", + "data_type": "string", + "example_values": [ + "self" + ] + }, + { + "data_path": "action_result.data.*.portalUser", + "data_type": "string", + "example_values": [ + "" + ] + }, + { + "data_path": "action_result.data.*.id", + "data_type": "string", + "example_values": [ + "d335f970-10e0-11ea-8f06-ce112ec9f8fa" + ], + "column_name": "ID", + "column_order": 0 + }, + { + "data_path": "action_result.data.*.staticGroupAssignment", + "data_type": "boolean", + "example_values": [ + true, + false + ] + }, + { + "data_path": "action_result.data.*.identityStore", + "data_type": "string", + "example_values": [ + "" + ] + }, + { + "data_path": "action_result.data.*.groupId", + "data_type": "string", + "example_values": [ + "aa10ae00-8bff-11e6-996c-525400b48521" + ] + }, + { + "data_path": "action_result.data.*.identityStoreId", + "data_type": "string", + "example_values": [ + "" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Resource id: d335f970-10e0-11ea-8f06-ce112ec9f8fa" + ] + }, + { + "data_path": "action_result.parameter.key", + "data_type": "string", + "example_values": [ + "mac, profileId" + ] + }, + { + "data_path": "action_result.parameter.resource", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + }, + { + "data_path": "action_result.parameter.resource_id", + "data_type": "string", + "example_values": [ + "2e9cf1c0-30b6-11ea-8f06-ce112ec9f8fa" + ] + }, + { + "data_path": "action_result.parameter.value", + "data_type": "string", + "example_values": [ + "00:00:00:00:00:00, 44031480-8c00-11e6-996c-525400b48521" + ] + }, + { + "data_path": "action_result.summary.resource_id", + "data_type": "string", + "example_values": [ + "d335f970-10e0-11ea-8f06-ce112ec9f8fa" + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Results" + }, + "versions": "EQ(*)" } ] } \ No newline at end of file diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 5820cb0..ad0ccd0 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -39,7 +39,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_GET_ENDPOINT = "get_endpoint" ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" ACTION_ID_LIST_RESOURCES = "list_resources" - + ACTION_ID_GET_RESOURCE = "get_resource" def __init__(self): @@ -491,6 +491,67 @@ def _list_resources(self, param): return action_result.set_status(phantom.APP_SUCCESS) + def _get_resource(self, param): + + action_result = self.add_action_result(ActionResult(dict(param))) + + resource = MAP_RESOURCE[param["resource"]][0] + resource_id = param.get("resource_id") + keys = param.get("key", []) + values = param.get("value", []) + + if keys: + keys = [x.strip() for x in keys.split(',')] + keys = list(filter(None, keys)) + + if values: + values = [x.strip() for x in values.split(',')] + values = list(filter(None, values)) + + if not resource_id and not (keys and values): + return action_result.set_status(phantom.APP_ERROR, "Please enter either 'resource id' or 'key' and 'value' to get the details of a particular resource") + + if not resource_id and (keys and values): + + if len(keys) != len(values): + return action_result.set_status(phantom.APP_ERROR, "Length of keys and values should be same") + + filter_param = [] + + for i, v in enumerate(keys): + temp_filter = "filter={0}.EQ.{1}".format(keys[i], values[i]) + filter_param.append(temp_filter) + + endpoint = "{0}?{1}".format(ERS_RESOURCE_REST.format(resource=resource), "&".join(filter_param)) + + ret_val, resp = self._call_ers_api(endpoint, action_result) + + if phantom.is_fail(ret_val): + return action_result.get_status() + + num_results = resp.get("SearchResult", {}).get("total") + + if num_results == 0: + return action_result.set_status(phantom.APP_ERROR, "No resource found for provided keys and values") + + if num_results > 1: + return action_result.set_status(phantom.APP_ERROR, "More than one resource found for the provided keys and values") + + resource_id = resp.get("SearchResult", {}).get("resources")[0].get("id") + + endpoint = "{0}/{1}".format(ERS_RESOURCE_REST.format(resource=resource), resource_id) + + ret_val, resp = self._call_ers_api(endpoint, action_result) + if phantom.is_fail(ret_val): + return action_result.get_status() + + summary = action_result.update_summary({}) + summary['resource_id'] = resource_id + + action_result.add_data(resp.get(MAP_RESOURCE[param["resource"]][1])) + + return action_result.set_status(phantom.APP_SUCCESS) + def _test_connectivity(self, param): rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) @@ -535,6 +596,8 @@ def handle_action(self, param): result = self._update_endpoint(param) elif action == self.ACTION_ID_LIST_RESOURCES: result = self._list_resources(param) + elif action == self.ACTION_ID_GET_RESOURCE: + result = self._get_resource(param) return result From 3e83ead1be3c6ac73c09c185c0c0f6bffd63dc3b Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Tue, 17 Aug 2021 16:59:14 +0530 Subject: [PATCH 31/80] delete resource --- ciscoise.json | 92 +++++++++++++++++++++++++++++++++++++++++++ ciscoise_connector.py | 18 +++++++++ 2 files changed, 110 insertions(+) diff --git a/ciscoise.json b/ciscoise.json index c856f81..6e8a2e3 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1195,6 +1195,98 @@ "title": "Results" }, "versions": "EQ(*)" + }, + { + "action": "delete resource", + "description": "Delete a resource", + "type": "generic", + "identifier": "delete_resource", + "read_only": false, + "parameters": { + "resource": { + "description": "Resources of the resource to be deleted", + "data_type": "string", + "order": 0, + "required": true, + "value_list": [ + "Endpoints", + "Endpoint identity groups", + "Guest users", + "User identity groups", + "Internal users", + "Portals", + "Network devices", + "Network device groups", + "Security groups" + ] + }, + "resource_id": { + "description": "Resource ID", + "data_type": "string", + "required": true, + "order": 1 + } + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success", + "failed" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Resource deleted successfully" + ] + }, + { + "data_path": "action_result.parameter.resource", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + }, + { + "data_path": "action_result.parameter.resource_id", + "data_type": "string", + "example_values": [ + "2e9cf1c0-30b6-11ea-8f06-ce112ec9f8fa" + ] + }, + { + "data_path": "action_result.data", + "data_type": "string" + }, + { + "data_path": "action_result.summary", + "data_type": "string" + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Results" + }, + "versions": "EQ(*)" } ] } \ No newline at end of file diff --git a/ciscoise_connector.py b/ciscoise_connector.py index ad0ccd0..278ae4d 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -40,6 +40,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" ACTION_ID_LIST_RESOURCES = "list_resources" ACTION_ID_GET_RESOURCE = "get_resource" + ACTION_ID_DELETE_RESOURCE = "delete_resource" def __init__(self): @@ -552,6 +553,21 @@ def _get_resource(self, param): return action_result.set_status(phantom.APP_SUCCESS) + def _delete_resource(self, param): + + action_result = self.add_action_result(ActionResult(dict(param))) + + resource = MAP_RESOURCE[param["resource"]][0] + resource_id = param["resource_id"] + + endpoint = "{0}/{1}".format(ERS_RESOURCE_REST.format(resource=resource), resource_id) + + ret_val, resp = self._call_ers_api(endpoint, action_result, method="delete") + if phantom.is_fail(ret_val): + return action_result.get_status() + + return action_result.set_status(phantom.APP_SUCCESS, "Resource deleted successfully") + def _test_connectivity(self, param): rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) @@ -598,6 +614,8 @@ def handle_action(self, param): result = self._list_resources(param) elif action == self.ACTION_ID_GET_RESOURCE: result = self._get_resource(param) + elif action == self.ACTION_ID_DELETE_RESOURCE: + result = self._delete_resource(param) return result From 24c4429514cdd341240a092e53c865da9791359e Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Wed, 18 Aug 2021 12:29:28 +0530 Subject: [PATCH 32/80] create resource --- ciscoise.json | 81 +++++++++++++++++++++++++++++++++++++++++++ ciscoise_connector.py | 26 ++++++++++++-- ciscoise_consts.py | 4 +-- 3 files changed, 107 insertions(+), 4 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 6e8a2e3..f708b07 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1287,6 +1287,87 @@ "title": "Results" }, "versions": "EQ(*)" + }, + { + "action": "create resource", + "description": "Create a resource", + "type": "generic", + "identifier": "create_resource", + "read_only": false, + "parameters": { + "resource": { + "description": "Resources of the resource to be created", + "data_type": "string", + "order": 0, + "required": true, + "value_list": [ + "Endpoints", + "Endpoint identity groups", + "Guest users", + "User identity groups", + "Internal users", + "Portals", + "Network devices", + "Network device groups", + "Security groups" + ] + }, + "resource_json": { + "description": "JSON which contains all values needed to create a resource", + "data_type": "string", + "required": true, + "order": 1 + } + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success", + "failed" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Resource created successfully" + ] + }, + { + "data_path": "action_result.data", + "data_type": "string" + }, + { + "data_path": "action_result.summary", + "data_type": "string", + "example_values": [ + "Resource created successfully" + ] + }, + { + "data_path": "action_result.parameter.resource", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + }, + { + "data_path": "action_result.parameter.resource_json", + "data_type": "string", + "example_values": [ + "{}" + ] + } + ], + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Results" + }, + "versions": "EQ(*)" } ] } \ No newline at end of file diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 278ae4d..c7cb3ac 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -22,6 +22,7 @@ from ciscoise_consts import * from cerberus import Validator +import json import xmltodict import requests from requests.auth import HTTPBasicAuth @@ -41,6 +42,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_LIST_RESOURCES = "list_resources" ACTION_ID_GET_RESOURCE = "get_resource" ACTION_ID_DELETE_RESOURCE = "delete_resource" + ACTION_ID_CREATE_RESOURCE = "create_resource" def __init__(self): @@ -82,10 +84,13 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, self.debug_print("status_code", resp.status_code) - if resp.status_code != 200: + if not (200 <= resp.status_code < 399): return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data - ret_data = resp.json() + if not resp.text: + return action_result.set_status(phantom.APP_SUCCESS, "Empty response and no information in the header"), None + + ret_data = json.loads(resp.text) return phantom.APP_SUCCESS, ret_data @@ -568,6 +573,21 @@ def _delete_resource(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Resource deleted successfully") + def _create_resource(self, param): + + action_result = self.add_action_result(ActionResult(dict(param))) + + resource = MAP_RESOURCE[param["resource"]][0] + resource_json = json.loads(param["resource_json"]) + + endpoint = "{0}".format(ERS_RESOURCE_REST.format(resource=resource)) + + ret_val, resp = self._call_ers_api(endpoint, action_result, data=resource_json, method="post") + if phantom.is_fail(ret_val): + return action_result.get_status() + + return action_result.set_status(phantom.APP_SUCCESS, "Resource created successfully") + def _test_connectivity(self, param): rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) @@ -616,6 +636,8 @@ def handle_action(self, param): result = self._get_resource(param) elif action == self.ACTION_ID_DELETE_RESOURCE: result = self._delete_resource(param) + elif action == self.ACTION_ID_CREATE_RESOURCE: + result = self._create_resource(param) return result diff --git a/ciscoise_consts.py b/ciscoise_consts.py index a702744..13069dc 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -62,8 +62,8 @@ MAP_RESOURCE = { "Endpoints": ["endpoint", "ERSEndPoint"], - "Endpoint identity groups": ["endpointgroup", "ERSEndPoint"], - "Guest users": ["guestuser", ""], + "Endpoint identity groups": ["endpointgroup", "EndPointGroup"], + "Guest users": ["guestuser", "GuestUser"], "User identity groups": ["identitygroup", "IdentityGroup"], "Internal users": ["internaluser", "InternalUser"], "Portals": ["portal", "ERSPortal"], From 482e8bd97b44d7aa3a644a4013040b93a6ced071 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Wed, 18 Aug 2021 15:30:46 +0530 Subject: [PATCH 33/80] update resource --- ciscoise.json | 109 ++++++++++++++++++++++++++++++++++++++++-- ciscoise_connector.py | 23 +++++++++ ciscoise_consts.py | 1 - 3 files changed, 129 insertions(+), 4 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index f708b07..8d63ae6 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -988,7 +988,6 @@ "Guest users", "User identity groups", "Internal users", - "Portals", "Network devices", "Network device groups", "Security groups" @@ -1214,7 +1213,6 @@ "Guest users", "User identity groups", "Internal users", - "Portals", "Network devices", "Network device groups", "Security groups" @@ -1306,7 +1304,6 @@ "Guest users", "User identity groups", "Internal users", - "Portals", "Network devices", "Network device groups", "Security groups" @@ -1368,6 +1365,112 @@ "title": "Results" }, "versions": "EQ(*)" + }, + { + "action": "update resource", + "description": "Update a resource", + "type": "generic", + "identifier": "update_resource", + "read_only": false, + "parameters": { + "resource": { + "description": "Resources of the resource to be created", + "data_type": "string", + "order": 0, + "required": true, + "value_list": [ + "Endpoints", + "Endpoint identity groups", + "Guest users", + "User identity groups", + "Internal users", + "Network devices", + "Network device groups", + "Security groups" + ] + }, + "resource_id": { + "description": "ID of resource", + "data_type": "string", + "required": true, + "order": 1 + }, + "key": { + "description": "Key of resource which needs to be updated", + "data_type": "string", + "required": true, + "order": 2 + }, + "value": { + "description": "New value of key", + "data_type": "string", + "required": true, + "order": 3 + } + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success", + "failed" + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "Resource created successfully" + ] + }, + { + "data_path": "action_result.data", + "data_type": "string" + }, + { + "data_path": "action_result.summary", + "data_type": "string", + "example_values": [ + "Resource created successfully" + ] + }, + { + "data_path": "action_result.parameter.resource", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + }, + { + "data_path": "action_result.parameter.resource_id", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + }, + { + "data_path": "action_result.parameter.key", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + }, + { + "data_path": "action_result.parameter.value", + "data_type": "string", + "example_values": [ + "Endpoints" + ] + } + ], + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Results" + }, + "versions": "EQ(*)" } ] } \ No newline at end of file diff --git a/ciscoise_connector.py b/ciscoise_connector.py index c7cb3ac..61a408f 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -43,6 +43,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_GET_RESOURCE = "get_resource" ACTION_ID_DELETE_RESOURCE = "delete_resource" ACTION_ID_CREATE_RESOURCE = "create_resource" + ACTION_ID_UPDATE_RESOURCE = "update_resource" def __init__(self): @@ -588,6 +589,26 @@ def _create_resource(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Resource created successfully") + def _update_resource(self, param): + + action_result = self.add_action_result(ActionResult(dict(param))) + + resource = MAP_RESOURCE[param["resource"]][0] + resource_key = MAP_RESOURCE[param["resource"]][1] + resource_id = param['resource_id'] + key = param['key'] + value = param['value'] + + endpoint = "{0}/{1}".format(ERS_RESOURCE_REST.format(resource=resource), resource_id) + + data_dict = {resource_key: {}} + data_dict[resource_key][key] = value + ret_val, resp = self._call_ers_api(endpoint, action_result, data=data_dict, method="put") + if phantom.is_fail(ret_val): + return action_result.get_status() + + return action_result.set_status(phantom.APP_SUCCESS, "Resource updated successfully") + def _test_connectivity(self, param): rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) @@ -638,6 +659,8 @@ def handle_action(self, param): result = self._delete_resource(param) elif action == self.ACTION_ID_CREATE_RESOURCE: result = self._create_resource(param) + elif action == self.ACTION_ID_UPDATE_RESOURCE: + result = self._update_resource(param) return result diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 13069dc..914e073 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -66,7 +66,6 @@ "Guest users": ["guestuser", "GuestUser"], "User identity groups": ["identitygroup", "IdentityGroup"], "Internal users": ["internaluser", "InternalUser"], - "Portals": ["portal", "ERSPortal"], "Network devices": ["networkdevice", "NetworkDevice"], "Network device groups": ["networkdevicegroup", "NetworkDeviceGroup"], "Security groups": ["sgt", "Sgt"] From 18dfa76cbf2f5934c3d13ecbbf29dc8862cd0350 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Wed, 18 Aug 2021 17:55:01 +0530 Subject: [PATCH 34/80] describe resource change --- ciscoise.json | 18 +- ciscoise_connector.py | 54 +-- logo_cisco.svg | 805 ++++++++++++++++++++++++++++++++++- logo_cisco_dark.svg | 945 +++++++++++++++++++++++++++++++++++++++++- 4 files changed, 1780 insertions(+), 42 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 8d63ae6..f8e4e31 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -466,6 +466,20 @@ "True" ] }, + { + "data_path": "action_result.parameter.custom_attribute", + "data_type": "string", + "example_values": [ + "True" + ] + }, + { + "data_path": "action_result.parameter.custom_attribute_value", + "data_type": "string", + "example_values": [ + "True" + ] + }, { "data_path": "action_result.parameter.endpoint_id", "data_type": "string", @@ -971,10 +985,10 @@ "versions": "EQ(*)" }, { - "action": "get resource", + "action": "describe resource", "description": "Get details of a resource", "type": "investigate", - "identifier": "get_resource", + "identifier": "describe_resource", "read_only": true, "parameters": { "resource": { diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 61a408f..59307fb 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -40,7 +40,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_GET_ENDPOINT = "get_endpoint" ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" ACTION_ID_LIST_RESOURCES = "list_resources" - ACTION_ID_GET_RESOURCE = "get_resource" + ACTION_ID_DESCRIBE_RESOURCE = "describe_resource" ACTION_ID_DELETE_RESOURCE = "delete_resource" ACTION_ID_CREATE_RESOURCE = "create_resource" ACTION_ID_UPDATE_RESOURCE = "update_resource" @@ -498,53 +498,31 @@ def _list_resources(self, param): return action_result.set_status(phantom.APP_SUCCESS) - def _get_resource(self, param): + def _describe_resource(self, param): action_result = self.add_action_result(ActionResult(dict(param))) resource = MAP_RESOURCE[param["resource"]][0] resource_id = param.get("resource_id") - keys = param.get("key", []) - values = param.get("value", []) + key = param.get("key") + value = param.get("value") - if keys: - keys = [x.strip() for x in keys.split(',')] - keys = list(filter(None, keys)) - - if values: - values = [x.strip() for x in values.split(',')] - values = list(filter(None, values)) - - if not resource_id and not (keys and values): + if not resource_id and not (key and value): return action_result.set_status(phantom.APP_ERROR, "Please enter either 'resource id' or 'key' and 'value' to get the details of a particular resource") - if not resource_id and (keys and values): - - if len(keys) != len(values): - return action_result.set_status(phantom.APP_ERROR, "Length of keys and values should be same") - - filter_param = [] - - for i, v in enumerate(keys): - temp_filter = "filter={0}.EQ.{1}".format(keys[i], values[i]) - filter_param.append(temp_filter) + if not resource_id and (key and value): + resource_filter = "filter={0}.EQ.{1}".format(key, value) + endpoint = "{0}?{1}".format(ERS_RESOURCE_REST.format(resource=resource), resource_filter) - endpoint = "{0}?{1}".format(ERS_RESOURCE_REST.format(resource=resource), "&".join(filter_param)) + resources = self._paginator(endpoint, action_result) - ret_val, resp = self._call_ers_api(endpoint, action_result) + for resource in resources: + action_result.add_data(resource) - if phantom.is_fail(ret_val): - return action_result.get_status() - - num_results = resp.get("SearchResult", {}).get("total") - - if num_results == 0: - return action_result.set_status(phantom.APP_ERROR, "No resource found for provided keys and values") + summary = action_result.update_summary({}) + summary['resources_returned'] = len(resources) - if num_results > 1: - return action_result.set_status(phantom.APP_ERROR, "More than one resource found for the provided keys and values") - - resource_id = resp.get("SearchResult", {}).get("resources")[0].get("id") + return action_result.set_status(phantom.APP_SUCCESS) endpoint = "{0}/{1}".format(ERS_RESOURCE_REST.format(resource=resource), resource_id) @@ -653,8 +631,8 @@ def handle_action(self, param): result = self._update_endpoint(param) elif action == self.ACTION_ID_LIST_RESOURCES: result = self._list_resources(param) - elif action == self.ACTION_ID_GET_RESOURCE: - result = self._get_resource(param) + elif action == self.ACTION_ID_DESCRIBE_RESOURCE: + result = self._describe_resource(param) elif action == self.ACTION_ID_DELETE_RESOURCE: result = self._delete_resource(param) elif action == self.ACTION_ID_CREATE_RESOURCE: diff --git a/logo_cisco.svg b/logo_cisco.svg index b3f4ca7..a8bc26a 100644 --- a/logo_cisco.svg +++ b/logo_cisco.svg @@ -1 +1,804 @@ -Asset 1 \ No newline at end of file + + + + \ No newline at end of file diff --git a/logo_cisco_dark.svg b/logo_cisco_dark.svg index 01fd866..0c1c240 100644 --- a/logo_cisco_dark.svg +++ b/logo_cisco_dark.svg @@ -1 +1,944 @@ -Asset 2 \ No newline at end of file + + + + \ No newline at end of file From efc02cc4b587923372e57249a9595110ef046696 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Wed, 18 Aug 2021 18:06:44 +0530 Subject: [PATCH 35/80] describe resource name change --- ciscoise.json | 6 +++--- ciscoise_connector.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index f8e4e31..9ce1d8d 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -985,10 +985,10 @@ "versions": "EQ(*)" }, { - "action": "describe resource", - "description": "Get details of a resource", + "action": "Get resources", + "description": "Search for resources", "type": "investigate", - "identifier": "describe_resource", + "identifier": "get_resources", "read_only": true, "parameters": { "resource": { diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 59307fb..b0f57e1 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -40,7 +40,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_GET_ENDPOINT = "get_endpoint" ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" ACTION_ID_LIST_RESOURCES = "list_resources" - ACTION_ID_DESCRIBE_RESOURCE = "describe_resource" + ACTION_ID_GET_RESOURCES = "get_resources" ACTION_ID_DELETE_RESOURCE = "delete_resource" ACTION_ID_CREATE_RESOURCE = "create_resource" ACTION_ID_UPDATE_RESOURCE = "update_resource" @@ -498,7 +498,7 @@ def _list_resources(self, param): return action_result.set_status(phantom.APP_SUCCESS) - def _describe_resource(self, param): + def _get_resources(self, param): action_result = self.add_action_result(ActionResult(dict(param))) @@ -631,8 +631,8 @@ def handle_action(self, param): result = self._update_endpoint(param) elif action == self.ACTION_ID_LIST_RESOURCES: result = self._list_resources(param) - elif action == self.ACTION_ID_DESCRIBE_RESOURCE: - result = self._describe_resource(param) + elif action == self.ACTION_ID_GET_RESOURCES: + result = self._get_resources(param) elif action == self.ACTION_ID_DELETE_RESOURCE: result = self._delete_resource(param) elif action == self.ACTION_ID_CREATE_RESOURCE: From 53ed1848ab17fed6c9cda68a4e8f312e97dbf0b2 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Thu, 19 Aug 2021 15:41:38 +0530 Subject: [PATCH 36/80] name change and error handle --- ciscoise.json | 2 +- ciscoise_connector.py | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 9ce1d8d..e265eeb 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -985,7 +985,7 @@ "versions": "EQ(*)" }, { - "action": "Get resources", + "action": "get resources", "description": "Search for resources", "type": "investigate", "identifier": "get_resources", diff --git a/ciscoise_connector.py b/ciscoise_connector.py index b0f57e1..18de9b8 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -65,6 +65,12 @@ def initialize(self): return phantom.APP_SUCCESS + def _process_json_response(self, resp, action_result): + pass + + def _process_json_response(self, resp, action_result): + pass + def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, method="get"): url = '{0}{1}'.format(self._base_url, endpoint) @@ -83,10 +89,13 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, except Exception as e: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data - self.debug_print("status_code", resp.status_code) - if not (200 <= resp.status_code < 399): - return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data + error_message = resp.text + if resp.status_code == 401: + error_message = "The request has not been applied because it lacks valid authentication credentials for the target resource." + elif resp.status_code == 404: + error_message = "Resource not found" + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=error_message), ret_data if not resp.text: return action_result.set_status(phantom.APP_SUCCESS, "Empty response and no information in the header"), None From 1f37976112282338e7824a5e78486c9c1c9d997e Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Thu, 19 Aug 2021 16:02:43 +0530 Subject: [PATCH 37/80] lisence change --- __init__.py | 13 +++---------- ciscoise.json | 2 +- ciscoise_connector.py | 14 +++----------- ciscoise_consts.py | 13 +++---------- 4 files changed, 10 insertions(+), 32 deletions(-) diff --git a/__init__.py b/__init__.py index d5722e0..9fc5e8d 100644 --- a/__init__.py +++ b/__init__.py @@ -1,13 +1,6 @@ # -- # File: __init__.py +# Copyright (c) 2019-2021 Splunk Inc. # -# Copyright (c) Phantom Cyber Corporation, 2014-2018 -# -# This unpublished material is proprietary to Phantom Cyber. -# All rights reserved. The methods and -# techniques described herein are considered trade secrets -# and/or confidential. Reproduction or distribution, in whole -# or in part, is forbidden except by express written permission -# of Phantom Cyber. -# -# -- +# SPLUNK CONFIDENTIAL - Use or disclosure of this material in whole or in part +# without a valid written license from Splunk Inc. is PROHIBITED. diff --git a/ciscoise.json b/ciscoise.json index e265eeb..36b00d2 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -14,7 +14,7 @@ "min_phantom_version": "4.9.39220", "logo": "logo_cisco.svg", "logo_dark": "logo_cisco_dark.svg", - "license": "Copyright (c) Phantom Cyber Corporation, 2014-2018", + "license": "Copyright (c) 2019-2021 Splunk Inc.", "python_version": "3", "latest_tested_version": [ "TODO" diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 18de9b8..1419f4b 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -1,17 +1,9 @@ # -- # File: ciscoise_connector.py +# Copyright (c) 2019-2021 Splunk Inc. # -# Copyright (c) Phantom Cyber Corporation, 2014-2018 -# -# This unpublished material is proprietary to Phantom Cyber. -# All rights reserved. The methods and -# techniques described herein are considered trade secrets -# and/or confidential. Reproduction or distribution, in whole -# or in part, is forbidden except by express written permission -# of Phantom Cyber. -# -# -- - +# SPLUNK CONFIDENTIAL - Use or disclosure of this material in whole or in part +# without a valid written license from Splunk Inc. is PROHIBITED. # Phantom imports import phantom.app as phantom diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 914e073..a8b4cda 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -1,16 +1,9 @@ # -- # File: ciscoise_consts.py +# Copyright (c) 2019-2021 Splunk Inc. # -# Copyright (c) Phantom Cyber Corporation, 2014-2018 -# -# This unpublished material is proprietary to Phantom Cyber. -# All rights reserved. The methods and -# techniques described herein are considered trade secrets -# and/or confidential. Reproduction or distribution, in whole -# or in part, is forbidden except by express written permission -# of Phantom Cyber. -# -# -- +# SPLUNK CONFIDENTIAL - Use or disclosure of this material in whole or in part +# without a valid written license from Splunk Inc. is PROHIBITED. # Jsons CISCOISE_JSON_SERVER = "server" From 64a4663eabe99bb6cfa79fc0ff9427f6c057f123 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Thu, 19 Aug 2021 16:27:30 +0530 Subject: [PATCH 38/80] pipline fixes --- __init__.py | 2 +- ciscoise.json | 10 +++++----- ciscoise_connector.py | 15 +-------------- ciscoise_consts.py | 2 +- 4 files changed, 8 insertions(+), 21 deletions(-) diff --git a/__init__.py b/__init__.py index 9fc5e8d..b15d56c 100644 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,6 @@ # -- # File: __init__.py -# Copyright (c) 2019-2021 Splunk Inc. +# Copyright (c) 2016-2021 Splunk Inc. # # SPLUNK CONFIDENTIAL - Use or disclosure of this material in whole or in part # without a valid written license from Splunk Inc. is PROHIBITED. diff --git a/ciscoise.json b/ciscoise.json index 36b00d2..4ea2002 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -14,7 +14,7 @@ "min_phantom_version": "4.9.39220", "logo": "logo_cisco.svg", "logo_dark": "logo_cisco_dark.svg", - "license": "Copyright (c) 2019-2021 Splunk Inc.", + "license": "Copyright (c) 2016-2021 Splunk Inc.", "python_version": "3", "latest_tested_version": [ "TODO" @@ -57,19 +57,19 @@ "data_type": "string", "order": 4, "description": "Username for ERS APIs", - "required": false + "required": true }, "ers_password": { "data_type": "password", "order": 5, "description": "Password for ERS APIs", - "required": false + "required": true } }, "actions": [ { "action": "test connectivity", - "description": "Validate the asset configuration for connectivity. This action logs into the device using a REST API call to check the connection and credentials.", + "description": "Validate the asset configuration for connectivity. This action logs into the device using a REST API call to check the connection and credentials", "type": "test", "identifier": "test_asset_connectivity", "read_only": true, @@ -547,7 +547,7 @@ }, { "action": "list sessions", - "description": "List the sessions currently available on the Monitoring node.", + "description": "List the sessions currently available on the Monitoring node", "type": "investigate", "identifier": "list_sessions", "read_only": true, diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 1419f4b..d344cb3 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -1,6 +1,6 @@ # -- # File: ciscoise_connector.py -# Copyright (c) 2019-2021 Splunk Inc. +# Copyright (c) 2016-2021 Splunk Inc. # # SPLUNK CONFIDENTIAL - Use or disclosure of this material in whole or in part # without a valid written license from Splunk Inc. is PROHIBITED. @@ -57,12 +57,6 @@ def initialize(self): return phantom.APP_SUCCESS - def _process_json_response(self, resp, action_result): - pass - - def _process_json_response(self, resp, action_result): - pass - def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, method="get"): url = '{0}{1}'.format(self._base_url, endpoint) @@ -432,9 +426,6 @@ def _terminate_session(self, param): def _paginator(self, endpoint, action_result, payload=None, limit=None): items_list = list() - f = open("/tmp/paginator_check_1.txt", "w") - f.write("hello \n") - f.write(str(items_list)) if not payload: payload = {} @@ -443,10 +434,6 @@ def _paginator(self, endpoint, action_result, payload=None, limit=None): payload['size'] = DEFAULT_MAX_RESULTS payload['page'] = page - f.write("\n") - f.write(str(payload)) - f.close() - while True: ret_val, items = self._call_ers_api(endpoint, action_result, data=payload) diff --git a/ciscoise_consts.py b/ciscoise_consts.py index a8b4cda..137fb29 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -1,6 +1,6 @@ # -- # File: ciscoise_consts.py -# Copyright (c) 2019-2021 Splunk Inc. +# Copyright (c) 2016-2021 Splunk Inc. # # SPLUNK CONFIDENTIAL - Use or disclosure of this material in whole or in part # without a valid written license from Splunk Inc. is PROHIBITED. From 0dbdbf627176e4d8b650824288f70876d6f4390f Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Thu, 19 Aug 2021 17:59:43 +0530 Subject: [PATCH 39/80] readme file added --- ciscoise_connector.py | 1 - readme.html | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 readme.html diff --git a/ciscoise_connector.py b/ciscoise_connector.py index d344cb3..498d7be 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -634,7 +634,6 @@ def handle_action(self, param): if __name__ == '__main__': import sys - import json import pudb pudb.set_trace() diff --git a/readme.html b/readme.html new file mode 100644 index 0000000..d929324 --- /dev/null +++ b/readme.html @@ -0,0 +1,22 @@ + + +

Getting ERS credentials

+
    +
  1. +

    Enable Ers

    +

    ERS uses on HTTPS port 9060 which is by default closed. Clients trying to access this port without enabling ERS first, will face a timeout from the server. + Therefore, the first requirement is to enable ERS from the Cisco ISE admin UI. Go to Administration > Settings > ERS Settings and enable the Enable ERS + for Read/Write radio button

    +
  2. +
  3. +

    Creating ERS Admin

    +

    Go to Administration > Settings > ERS Settings and then from the panel on the left select Admin Users under administrators. + Now add an account by clicking Add > Create an admin user. Then enter name and password and select ERS Admin in Admin Group and then press saves

    +
  4. +
+ From 4cb73c01aac17df4564229c32a961fc948493a5f Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Fri, 20 Aug 2021 11:53:53 +0530 Subject: [PATCH 40/80] log statements and json parse --- ciscoise_connector.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 498d7be..6f1446a 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -61,7 +61,6 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, url = '{0}{1}'.format(self._base_url, endpoint) ret_data = None - self.debug_print("REST Endpoint: ", url) config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] @@ -94,7 +93,6 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ url = '{0}{1}'.format(self._base_url, endpoint) ret_data = None - self.debug_print("REST Endpoint: ", url) config = self.get_config() verify = config[phantom.APP_JSON_VERIFY] @@ -104,8 +102,6 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ except Exception as e: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API, e), ret_data - self.debug_print("status_code", resp.status_code) - if resp.status_code != 200: return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_REST_API_ERR_CODE, code=resp.status_code, message=resp.text), ret_data @@ -143,8 +139,6 @@ def _list_sessions(self, param): if phantom.is_fail(ret_val): return action_result.get_status() - self.debug_print("ret_data", ret_data) - if 'activeList' not in ret_data: return action_result.set_status(phantom.APP_SUCCESS) @@ -545,7 +539,10 @@ def _create_resource(self, param): action_result = self.add_action_result(ActionResult(dict(param))) resource = MAP_RESOURCE[param["resource"]][0] - resource_json = json.loads(param["resource_json"]) + try: + resource_json = json.loads(param["resource_json"]) + except Exception as ex: + return action_result.set_status(phantom.APP_ERROR, "Error parsing json") endpoint = "{0}".format(ERS_RESOURCE_REST.format(resource=resource)) From d9619074aaea93647fb7797b18c32fa4b1a93b5e Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Fri, 20 Aug 2021 17:12:58 +0530 Subject: [PATCH 41/80] minor fixes --- ciscoise.json | 14 ++++++++++---- ciscoise_connector.py | 5 ++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 4ea2002..d539eb6 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1253,7 +1253,9 @@ "data_type": "string", "example_values": [ "Resource deleted successfully" - ] + ], + "column_name": "Status", + "column_order": 0 }, { "data_path": "action_result.parameter.resource", @@ -1344,7 +1346,9 @@ "data_type": "string", "example_values": [ "Resource created successfully" - ] + ], + "column_name": "Status", + "column_order": 0 }, { "data_path": "action_result.data", @@ -1435,8 +1439,10 @@ "data_path": "action_result.message", "data_type": "string", "example_values": [ - "Resource created successfully" - ] + "Resource updated successfully" + ], + "column_name": "Status", + "column_order": 0 }, { "data_path": "action_result.data", diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 6f1446a..64e0f32 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -196,7 +196,7 @@ def _list_endpoints(self, param): total = ret_data["SearchResult"]["total"] - action_result.update_summary({"Endpoints found": total}) + action_result.update_summary({"endpoints_found": total}) action_result.add_data(ret_data) @@ -498,6 +498,9 @@ def _get_resources(self, param): resources = self._paginator(endpoint, action_result) + if resources is None: + return action_result.get_status() + for resource in resources: action_result.add_data(resource) From 9ef1970ddfd4f953ce02c0d80e93f9a4e592c402 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Tue, 24 Aug 2021 18:08:58 +0530 Subject: [PATCH 42/80] small fixes --- ciscoise.json | 5 ++--- ciscoise_connector.py | 10 ++++++++-- readme.html | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index d539eb6..864ee98 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1,7 +1,7 @@ { "appid": "85232924-4776-4896-88fa-b982b304af7c", "name": "Cisco ISE", - "description": "This app implements investigative and containment actions on a Cisco ISE device.", + "description": "This app implements investigative and containment actions on a Cisco ISE device", "publisher": "Phantom", "type": "network access control", "main_module": "ciscoise_connector.py", @@ -859,7 +859,6 @@ "Guest users", "User identity groups", "Internal users", - "Portals", "Network devices", "Network device groups", "Security groups" @@ -957,7 +956,7 @@ "data_path": "action_result.parameter.resource", "data_type": "string", "example_values": [ - "Portals" + "Endpoints" ] }, { diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 64e0f32..007474a 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -124,6 +124,12 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ return phantom.APP_SUCCESS, ret_data + def _map_resource_type(self, resource_type, action_result, *args): + try: + return MAP_RESOURCE[resource_type][0] + except Exception as ex: + return action_result.set_status(phantom.APP_ERROR, 'Invalid resource type') + def _list_sessions(self, param): ret_val = phantom.APP_SUCCESS @@ -453,8 +459,7 @@ def _paginator(self, endpoint, action_result, payload=None, limit=None): def _list_resources(self, param): action_result = self.add_action_result(ActionResult(dict(param))) - - resource = MAP_RESOURCE[param["resource"]][0] + resource = self._map_resource_type(param['resource'], action_result) max_result = param.get("max_results") endpoint = ERS_RESOURCE_REST.format(resource=resource) @@ -545,6 +550,7 @@ def _create_resource(self, param): try: resource_json = json.loads(param["resource_json"]) except Exception as ex: + self.debug_print("Exception in _create_resource: {}".format(ex)) return action_result.set_status(phantom.APP_ERROR, "Error parsing json") endpoint = "{0}".format(ERS_RESOURCE_REST.format(resource=resource)) diff --git a/readme.html b/readme.html index d929324..dc74a76 100644 --- a/readme.html +++ b/readme.html @@ -16,7 +16,7 @@

Enable Ers

  • Creating ERS Admin

    Go to Administration > Settings > ERS Settings and then from the panel on the left select Admin Users under administrators. - Now add an account by clicking Add > Create an admin user. Then enter name and password and select ERS Admin in Admin Group and then press saves

    + Now add an account by clicking Add > Create an admin user. Then enter name and password and select ERS Admin in Admin Group and then press save.

  • From b4163d53da8c72f7b3f47078b41191cc04c9c34f Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Tue, 16 Nov 2021 14:11:17 +0530 Subject: [PATCH 43/80] added clear policy and apply policy --- ciscoise.json | 302 +++++++++++++++++++++++++++++++++++++++++- ciscoise_connector.py | 105 ++++++++++++++- ciscoise_consts.py | 2 + 3 files changed, 401 insertions(+), 8 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 864ee98..419c645 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -11,7 +11,7 @@ "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", "product_version_regex": "2.2", - "min_phantom_version": "4.9.39220", + "min_phantom_version": "4.10.0.40961", "logo": "logo_cisco.svg", "logo_dark": "logo_cisco_dark.svg", "license": "Copyright (c) 2016-2021 Splunk Inc.", @@ -984,10 +984,10 @@ "versions": "EQ(*)" }, { - "action": "get resources", + "action": "describe resource", "description": "Search for resources", "type": "investigate", - "identifier": "get_resources", + "identifier": "describe_resource", "read_only": true, "parameters": { "resource": { @@ -1490,6 +1490,302 @@ "title": "Results" }, "versions": "EQ(*)" + }, + { + "action": "apply policy", + "description": "Apply policy on selected Ip address or MAC address", + "type": "investigate", + "identifier": "apply_policy", + "read_only": false, + "parameters": { + "policy_name": { + "description": "Policy Name", + "data_type": "string", + "order": 0, + "primary": false, + "required": false + }, + "ip_address": { + "description": "IP Address", + "data_type": "string", + "order": 1, + "primary": false, + "required": false + }, + "mac_address": { + "description": "MAC Address", + "data_type": "string", + "order": 2, + "contains": [ + "mac address" + ], + "primary": false, + "required": false + } + }, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Endpoints" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success" + ] + }, + { + "data_path": "action_result.parameter.policy_name", + "data_type": "string" + }, + { + "data_path": "action_result.parameter.ip_address", + "data_type": "string" + }, + { + "data_path": "action_result.parameter.mac_address", + "data_type": "string", + "contains": [ + "mac address" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.id", + "data_type": "string", + "column_name": "ISE Endpoint ID", + "column_order": 1, + "example_values": [ + "d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "ise endpoint id" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.link.href", + "data_type": "string", + "column_name": "Link to ISE Endpoint", + "column_order": 2, + "example_values": [ + "https://10.16.0.92:9060/ers/config/endpoint/d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "url" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.link.rel", + "data_type": "string", + "example_values": [ + "self" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.link.type", + "data_type": "string", + "example_values": [ + "application/xml" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.name", + "data_type": "string", + "column_name": "Endpoint Name", + "column_order": 0, + "example_values": [ + "8C:85:90:17:D6:39" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.total", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "action_result.summary.Endpoints found", + "data_type": "string", + "example_values": [ + "9", + 1 + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "9 Endpoints found", + "1 Endpoints found" + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "versions": "EQ(*)" + }, + { + "action": "clear policy", + "description": "Clear policy on selected Ip address or MAC address", + "type": "investigate", + "identifier": "clear_policy", + "read_only": false, + "parameters": { + "ip_address": { + "description": "IP Address", + "data_type": "string", + "order": 0, + "primary": false, + "required": false + }, + "mac_address": { + "description": "MAC Address", + "data_type": "string", + "order": 1, + "contains": [ + "mac address" + ], + "primary": false, + "required": false + }, + "policy_name": { + "description": "Policy Name", + "data_type": "string", + "order": 0, + "primary": false, + "required": false + } + }, + "render": { + "type": "table", + "width": 12, + "height": 5, + "title": "Endpoints" + }, + "output": [ + { + "data_path": "action_result.status", + "data_type": "string", + "example_values": [ + "success" + ] + }, + { + "data_path": "action_result.parameter.mac_address", + "data_type": "string", + "contains": [ + "mac address" + ] + }, + { + "data_path": "action_result.parameter.ip_address", + "data_type": "string" + }, + { + "data_path": "action_result.parameter.policy_name", + "data_type": "string" + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.id", + "data_type": "string", + "column_name": "ISE Endpoint ID", + "column_order": 1, + "example_values": [ + "d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "ise endpoint id" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.link.href", + "data_type": "string", + "column_name": "Link to ISE Endpoint", + "column_order": 2, + "example_values": [ + "https://10.16.0.92:9060/ers/config/endpoint/d0337940-a86f-11e7-b6e9-000c29d5f0ea" + ], + "contains": [ + "url" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.link.rel", + "data_type": "string", + "example_values": [ + "self" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.link.type", + "data_type": "string", + "example_values": [ + "application/xml" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.resources.*.name", + "data_type": "string", + "column_name": "Endpoint Name", + "column_order": 0, + "example_values": [ + "8C:85:90:17:D6:39" + ] + }, + { + "data_path": "action_result.data.*.SearchResult.total", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "action_result.summary.Endpoints found", + "data_type": "string", + "example_values": [ + "9", + 1 + ] + }, + { + "data_path": "action_result.message", + "data_type": "string", + "example_values": [ + "9 Endpoints found", + "1 Endpoints found" + ] + }, + { + "data_path": "summary.total_objects", + "data_type": "numeric", + "example_values": [ + 1 + ] + }, + { + "data_path": "summary.total_objects_successful", + "data_type": "numeric", + "example_values": [ + 1 + ] + } + ], + "versions": "EQ(*)" } ] } \ No newline at end of file diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 007474a..9cd1a7d 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -32,10 +32,12 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_GET_ENDPOINT = "get_endpoint" ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" ACTION_ID_LIST_RESOURCES = "list_resources" - ACTION_ID_GET_RESOURCES = "get_resources" + ACTION_ID_DESCRIBE_RESOURCE = "describe_resource" ACTION_ID_DELETE_RESOURCE = "delete_resource" ACTION_ID_CREATE_RESOURCE = "create_resource" ACTION_ID_UPDATE_RESOURCE = "update_resource" + ACTION_ID_APPLY_POLICY = "apply_policy" + ACTION_ID_CLEAR_POLICY = "clear_policy" def __init__(self): @@ -485,7 +487,7 @@ def _list_resources(self, param): return action_result.set_status(phantom.APP_SUCCESS) - def _get_resources(self, param): + def _describe_resource(self, param): action_result = self.add_action_result(ActionResult(dict(param))) @@ -550,7 +552,6 @@ def _create_resource(self, param): try: resource_json = json.loads(param["resource_json"]) except Exception as ex: - self.debug_print("Exception in _create_resource: {}".format(ex)) return action_result.set_status(phantom.APP_ERROR, "Error parsing json") endpoint = "{0}".format(ERS_RESOURCE_REST.format(resource=resource)) @@ -581,6 +582,96 @@ def _update_resource(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Resource updated successfully") + def _apply_policy(self, param): + + ret_val = phantom.APP_SUCCESS + + action_result = self.add_action_result(ActionResult(dict(param))) + + ret_data = None + + mac = param.get("mac_address", None) + ip = param.get("ip_address", None) + policy = param.get("policy_name", None) + + payload = { + "OperationAdditionalData": { + "additionalData": [{ + "name": "policyName", + "value": policy + }] + } + } + + if mac: + payload['OperationAdditionalData']['additionalData'].append( + { + "name": "macAddress", + "value": mac + } + ) + if ip: + payload['OperationAdditionalData']['additionalData'].append( + { + "name": "ipAddress", + "value": ip + } + ) + + ret_val, ret_data = self._call_ers_api(ERS_ENDPOINT_ANC_APPLY, action_result, data=payload, method="put") + + if phantom.is_fail(ret_val): + return action_result.get_status() + + action_result.add_data(ret_data) + + return action_result.set_status(phantom.APP_SUCCESS, "Policy applied") + + def _clear_policy(self, param): + + ret_val = phantom.APP_SUCCESS + + action_result = self.add_action_result(ActionResult(dict(param))) + + ret_data = None + + mac = param.get("mac_address", None) + ip = param.get("ip_address", None) + policy = param.get("policy_name", None) + + payload = { + "OperationAdditionalData": { + "additionalData": [{ + "name": "policyName", + "value": policy + }] + } + } + + if mac: + payload['OperationAdditionalData']['additionalData'].append( + { + "name": "macAddress", + "value": mac + } + ) + if ip: + payload['OperationAdditionalData']['additionalData'].append( + { + "name": "ipAddress", + "value": ip + } + ) + + ret_val, ret_data = self._call_ers_api(ERS_ENDPOINT_ANC_CLEAR, action_result, data=payload, method="put") + + if phantom.is_fail(ret_val): + return action_result.get_status() + + action_result.add_data(ret_data) + + return action_result.set_status(phantom.APP_SUCCESS, "Policy cleared") + def _test_connectivity(self, param): rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) @@ -625,14 +716,18 @@ def handle_action(self, param): result = self._update_endpoint(param) elif action == self.ACTION_ID_LIST_RESOURCES: result = self._list_resources(param) - elif action == self.ACTION_ID_GET_RESOURCES: - result = self._get_resources(param) + elif action == self.ACTION_ID_DESCRIBE_RESOURCE: + result = self._describe_resource(param) elif action == self.ACTION_ID_DELETE_RESOURCE: result = self._delete_resource(param) elif action == self.ACTION_ID_CREATE_RESOURCE: result = self._create_resource(param) elif action == self.ACTION_ID_UPDATE_RESOURCE: result = self._update_resource(param) + elif action == self.ACTION_ID_APPLY_POLICY: + result = self._apply_policy(param) + elif action == self.ACTION_ID_CLEAR_POLICY: + result = self._clear_policy(param) return result diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 137fb29..8cdb082 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -24,6 +24,8 @@ MAC_SESSION_DETAILS_REST = "/ise/mnt/Session/MACAddress" ERS_ENDPOINT_REST = ":9060/ers/config/endpoint" ERS_RESOURCE_REST = ":9060/ers/config/{resource}" +ERS_ENDPOINT_ANC_APPLY = ":9060/ers/config/ancendpoint/apply" +ERS_ENDPOINT_ANC_CLEAR = ":9060/ers/config/ancendpoint/clear" # Error/Success CISCOISE_ERR_TEST_CONNECTIVITY_FAILED = "Test connectivity failed" From ec6ed19243b80a8cbf06247cacf236b1526f7870 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Tue, 16 Nov 2021 14:47:34 +0530 Subject: [PATCH 44/80] pipeline fixes --- ciscoise.json | 2 +- ciscoise_connector.py | 4 ++-- requirements.txt | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 requirements.txt diff --git a/ciscoise.json b/ciscoise.json index 419c645..86e436b 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -1666,7 +1666,7 @@ "policy_name": { "description": "Policy Name", "data_type": "string", - "order": 0, + "order": 2, "primary": false, "required": false } diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 9cd1a7d..e3c8e01 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -129,7 +129,7 @@ def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_ def _map_resource_type(self, resource_type, action_result, *args): try: return MAP_RESOURCE[resource_type][0] - except Exception as ex: + except Exception: return action_result.set_status(phantom.APP_ERROR, 'Invalid resource type') def _list_sessions(self, param): @@ -551,7 +551,7 @@ def _create_resource(self, param): resource = MAP_RESOURCE[param["resource"]][0] try: resource_json = json.loads(param["resource_json"]) - except Exception as ex: + except Exception: return action_result.set_status(phantom.APP_ERROR, "Error parsing json") endpoint = "{0}".format(ERS_RESOURCE_REST.format(resource=resource)) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..561c455 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +Cerberus==1.3.4 \ No newline at end of file From 62d8066ae9a000e6171b5c5b643d13e54f2dbb90 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Thu, 25 Nov 2021 11:07:41 +0530 Subject: [PATCH 45/80] policy change, and minor fixes --- ciscoise.json | 69 +++++++++--------------- ciscoise_connector.py | 122 +++++++++++++++++------------------------- ciscoise_consts.py | 1 + 3 files changed, 75 insertions(+), 117 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 86e436b..c6d95a8 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -984,10 +984,10 @@ "versions": "EQ(*)" }, { - "action": "describe resource", + "action": "get resources", "description": "Search for resources", "type": "investigate", - "identifier": "describe_resource", + "identifier": "get_resources", "read_only": true, "parameters": { "resource": { @@ -1496,6 +1496,7 @@ "description": "Apply policy on selected Ip address or MAC address", "type": "investigate", "identifier": "apply_policy", + "undo": "clear policy", "read_only": false, "parameters": { "policy_name": { @@ -1503,24 +1504,17 @@ "data_type": "string", "order": 0, "primary": false, - "required": false + "required": true }, - "ip_address": { - "description": "IP Address", + "ip_mac_address": { + "description": "MAC or IP Address of the device", "data_type": "string", "order": 1, - "primary": false, - "required": false - }, - "mac_address": { - "description": "MAC Address", - "data_type": "string", - "order": 2, + "required": true, "contains": [ - "mac address" - ], - "primary": false, - "required": false + "mac address", + "ip" + ] } }, "render": { @@ -1542,14 +1536,11 @@ "data_type": "string" }, { - "data_path": "action_result.parameter.ip_address", - "data_type": "string" - }, - { - "data_path": "action_result.parameter.mac_address", + "data_path": "action_result.parameter.ip_mac_address", "data_type": "string", "contains": [ - "mac address" + "mac address", + "ip" ] }, { @@ -1646,29 +1637,22 @@ "identifier": "clear_policy", "read_only": false, "parameters": { - "ip_address": { - "description": "IP Address", + "policy_name": { + "description": "Policy Name", "data_type": "string", "order": 0, "primary": false, - "required": false + "required": true }, - "mac_address": { - "description": "MAC Address", + "ip_mac_address": { + "description": "MAC or IP Address of the device", "data_type": "string", "order": 1, + "required": true, "contains": [ - "mac address" - ], - "primary": false, - "required": false - }, - "policy_name": { - "description": "Policy Name", - "data_type": "string", - "order": 2, - "primary": false, - "required": false + "mac address", + "ip" + ] } }, "render": { @@ -1686,16 +1670,13 @@ ] }, { - "data_path": "action_result.parameter.mac_address", + "data_path": "action_result.parameter.ip_mac_address", "data_type": "string", "contains": [ - "mac address" + "mac address", + "ip" ] }, - { - "data_path": "action_result.parameter.ip_address", - "data_type": "string" - }, { "data_path": "action_result.parameter.policy_name", "data_type": "string" diff --git a/ciscoise_connector.py b/ciscoise_connector.py index e3c8e01..661abd6 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -32,7 +32,7 @@ class CiscoISEConnector(BaseConnector): ACTION_ID_GET_ENDPOINT = "get_endpoint" ACTION_ID_UPDATE_ENDPOINT = "update_endpoint" ACTION_ID_LIST_RESOURCES = "list_resources" - ACTION_ID_DESCRIBE_RESOURCE = "describe_resource" + ACTION_ID_GET_RESOURCES = "get_resources" ACTION_ID_DELETE_RESOURCE = "delete_resource" ACTION_ID_CREATE_RESOURCE = "create_resource" ACTION_ID_UPDATE_RESOURCE = "update_resource" @@ -240,12 +240,19 @@ def _update_endpoint(self, param): final_data = {"ERSEndPoint": {}} + if not (attribute or custom_attribute): + return action_result.set_status(phantom.APP_ERROR, "Please specify attribute or custom attribute") + if attribute is not None and attribute_value is not None: final_data['ERSEndPoint'][attribute] = attribute_value + else: + return action_result.set_status(phantom.APP_ERROR, "Please specify both attribute and attribute value") if custom_attribute is not None and custom_attribute_value is not None: custom_attribute_dict = {"customAttributes": {custom_attribute: custom_attribute_value}} final_data["ERSEndPoint"]["customAttributes"] = custom_attribute_dict + else: + return action_result.set_status(phantom.APP_ERROR, "Please specify both custom attribute and custom attribute value") ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=final_data, method="put") action_result.add_data(ret_data) @@ -487,7 +494,7 @@ def _list_resources(self, param): return action_result.set_status(phantom.APP_SUCCESS) - def _describe_resource(self, param): + def _get_resources(self, param): action_result = self.add_action_result(ActionResult(dict(param))) @@ -496,9 +503,10 @@ def _describe_resource(self, param): key = param.get("key") value = param.get("value") - if not resource_id and not (key and value): + if not resource_id and not key: return action_result.set_status(phantom.APP_ERROR, "Please enter either 'resource id' or 'key' and 'value' to get the details of a particular resource") - + elif key and not value: + return action_result.set_status(phantom.APP_ERROR, "Please enter value for the key") if not resource_id and (key and value): resource_filter = "filter={0}.EQ.{1}".format(key, value) endpoint = "{0}?{1}".format(ERS_RESOURCE_REST.format(resource=resource), resource_filter) @@ -582,94 +590,62 @@ def _update_resource(self, param): return action_result.set_status(phantom.APP_SUCCESS, "Resource updated successfully") - def _apply_policy(self, param): - - ret_val = phantom.APP_SUCCESS - - action_result = self.add_action_result(ActionResult(dict(param))) - + def _handle_policy_change(self, action_result, param, change_type="apply"): ret_data = None - - mac = param.get("mac_address", None) - ip = param.get("ip_address", None) - policy = param.get("policy_name", None) + policy_name = param.get("policy_name", None) + ip_mac_address = param.get("ip_mac_address", None) payload = { "OperationAdditionalData": { - "additionalData": [{ - "name": "policyName", - "value": policy - }] + "additionalData": [ + { + "name": "macAddress", + "value": ip_mac_address + }, + { + "name": "policyName", + "value": policy_name + } + ] } } - if mac: - payload['OperationAdditionalData']['additionalData'].append( - { - "name": "macAddress", - "value": mac - } - ) - if ip: - payload['OperationAdditionalData']['additionalData'].append( - { - "name": "ipAddress", - "value": ip - } - ) - - ret_val, ret_data = self._call_ers_api(ERS_ENDPOINT_ANC_APPLY, action_result, data=payload, method="put") - - if phantom.is_fail(ret_val): - return action_result.get_status() + if phantom.is_mac(ip_mac_address): + payload['OperationAdditionalData']['additionalData'][0]["name"] = "macAddress" + elif phantom.is_ip(ip_mac_address): + payload['OperationAdditionalData']['additionalData'][0]["name"] = "ipAddress" + else: + return action_result.set_status(phantom.APP_ERROR, CISCOISE_ERR_MAC_AND_IP_NOT_SPECIFIED), ret_data - action_result.add_data(ret_data) + endpoint = ERS_ENDPOINT_ANC_APPLY + if change_type == "clear": + endpoint = ERS_ENDPOINT_ANC_CLEAR - return action_result.set_status(phantom.APP_SUCCESS, "Policy applied") + ret_val, ret_data = self._call_ers_api(endpoint, action_result, data=payload, method="put") - def _clear_policy(self, param): + if phantom.is_fail(ret_val): + return action_result.get_status(), ret_data - ret_val = phantom.APP_SUCCESS + return action_result.set_status(phantom.APP_SUCCESS), ret_data + def _apply_policy(self, param): action_result = self.add_action_result(ActionResult(dict(param))) + ret_val, ret_data = self._handle_policy_change(action_result, param, "apply") - ret_data = None - - mac = param.get("mac_address", None) - ip = param.get("ip_address", None) - policy = param.get("policy_name", None) + if phantom.is_fail(ret_val): + return action_result.get_status() - payload = { - "OperationAdditionalData": { - "additionalData": [{ - "name": "policyName", - "value": policy - }] - } - } + action_result.add_data(ret_data) + return action_result.set_status(phantom.APP_SUCCESS, "Policy applied") - if mac: - payload['OperationAdditionalData']['additionalData'].append( - { - "name": "macAddress", - "value": mac - } - ) - if ip: - payload['OperationAdditionalData']['additionalData'].append( - { - "name": "ipAddress", - "value": ip - } - ) - - ret_val, ret_data = self._call_ers_api(ERS_ENDPOINT_ANC_CLEAR, action_result, data=payload, method="put") + def _clear_policy(self, param): + action_result = self.add_action_result(ActionResult(dict(param))) + ret_val, ret_data = self._handle_policy_change(action_result, param, "clear") if phantom.is_fail(ret_val): return action_result.get_status() action_result.add_data(ret_data) - return action_result.set_status(phantom.APP_SUCCESS, "Policy cleared") def _test_connectivity(self, param): @@ -716,8 +692,8 @@ def handle_action(self, param): result = self._update_endpoint(param) elif action == self.ACTION_ID_LIST_RESOURCES: result = self._list_resources(param) - elif action == self.ACTION_ID_DESCRIBE_RESOURCE: - result = self._describe_resource(param) + elif action == self.ACTION_ID_GET_RESOURCES: + result = self._get_resources(param) elif action == self.ACTION_ID_DELETE_RESOURCE: result = self._delete_resource(param) elif action == self.ACTION_ID_CREATE_RESOURCE: diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 8cdb082..d2d6d89 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -46,6 +46,7 @@ CISCOISE_SUCC_GET_ENDPOINT = "Endpoint found" CISCOISE_SUCC_UPDATE_ENDPOINT = "Endpoint updated" CISCOISE_ERR_INVALID_PARAM = "Please provide non-zero positive integer in {param}" +CISCOISE_MAP_IP_ABSENT_ERROR = "Please provide either mac address or ip address" DEFAULT_MAX_RESULTS = 7 # Json reply schema From 806432004f4c33b3f202da0e18ec0dc05583fdf8 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Mon, 29 Nov 2021 14:22:02 +0530 Subject: [PATCH 46/80] min phantom version upgrade --- ciscoise.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ciscoise.json b/ciscoise.json index c6d95a8..3919855 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -11,7 +11,7 @@ "product_vendor": "Cisco Systems", "product_name": "Cisco ISE", "product_version_regex": "2.2", - "min_phantom_version": "4.10.0.40961", + "min_phantom_version": "5.0.0", "logo": "logo_cisco.svg", "logo_dark": "logo_cisco_dark.svg", "license": "Copyright (c) 2016-2021 Splunk Inc.", From 8d417316b5801136e6cbb3538062acb37ce2d095 Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Mon, 29 Nov 2021 14:39:23 +0530 Subject: [PATCH 47/80] support for second device --- ciscoise.json | 5 +++++ ciscoise_connector.py | 28 +++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 3919855..33223fa 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -64,6 +64,11 @@ "order": 5, "description": "Password for ERS APIs", "required": true + }, + "secondary_device": { + "data_type": "string", + "order": 0, + "description": "Secondary Device IP/Hostname", } }, "actions": [ diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 661abd6..c9d3a8b 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -46,6 +46,8 @@ def __init__(self): self._base_url = None self._auth = None + self._secondary_device = None + self._ers_auth = None def initialize(self): @@ -53,15 +55,33 @@ def initialize(self): self._auth = HTTPBasicAuth(config[phantom.APP_JSON_USERNAME], config[phantom.APP_JSON_PASSWORD]) ers_user = config.get("ers_user", None) + self._secondary_device = config.get("secondary_device", None) if ers_user is not None: self._ers_auth = HTTPBasicAuth(config["ers_user"], config["ers_password"]) self._base_url = 'https://{0}'.format(config[phantom.APP_JSON_DEVICE]) - return phantom.APP_SUCCESS + if self._secondary_device: + self._secondary_device = 'https://{0}'.format(self._secondary_device) + self._call_ers_api = self._secondary_device_wrapper(self._call_ers_api) + self._call_rest_api = self._secondary_device_wrapper(self._call_rest_api) - def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, method="get"): + return phantom.APP_SUCCESS + def _secondary_device_wrapper(self, func): + def make_another_call(*args, **kwargs): + self.debug_print("Making first call") + ret_val, ret_data = func(*args, **kwargs) + if phantom.is_fail(ret_val) and self._secondary_node: + self.debug_print("Making second call") + ret_val, ret_data = func(try_secondary_device=True, *args, **kwargs) + return ret_val, ret_data + return make_another_call + + def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, method="get", try_secondary_device=False): url = '{0}{1}'.format(self._base_url, endpoint) + if try_secondary_device: + url = '{0}{1}'.format(self._secondary_device, endpoint) + ret_data = None config = self.get_config() @@ -91,9 +111,11 @@ def _call_ers_api(self, endpoint, action_result, data=None, allow_unknown=True, return phantom.APP_SUCCESS, ret_data - def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_unknown=True): + def _call_rest_api(self, endpoint, action_result, schema=None, data=None, allow_unknown=True, try_secondary_device=False): url = '{0}{1}'.format(self._base_url, endpoint) + if try_secondary_device: + url = '{0}{1}'.format(self._secondary_device, endpoint) ret_data = None config = self.get_config() From 08d3a7627abde305f3022c73cf2290929c80c1ea Mon Sep 17 00:00:00 2001 From: pdesai-crest Date: Tue, 30 Nov 2021 16:15:04 +0530 Subject: [PATCH 48/80] test connectivity for secondary device --- ciscoise.json | 2 +- ciscoise_connector.py | 32 +++++++++++++++++++++----------- ciscoise_consts.py | 1 - 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ciscoise.json b/ciscoise.json index 33223fa..eea8ad4 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -68,7 +68,7 @@ "secondary_device": { "data_type": "string", "order": 0, - "description": "Secondary Device IP/Hostname", + "description": "Secondary Device IP/Hostname" } }, "actions": [ diff --git a/ciscoise_connector.py b/ciscoise_connector.py index c9d3a8b..d3c48dc 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -670,24 +670,34 @@ def _clear_policy(self, param): action_result.add_data(ret_data) return action_result.set_status(phantom.APP_SUCCESS, "Policy cleared") - def _test_connectivity(self, param): - - rest_endpoint = '{0}/{1}'.format(self._base_url, ACTIVE_COUNT_REST_ENDPOINT) - - config = self.get_config() - - self.save_progress(phantom.APP_PROG_CONNECTING_TO_ELLIPSES, config[phantom.APP_JSON_DEVICE]) - verify = config[phantom.APP_JSON_VERIFY] - + def _test_connectivity_to_device(self, device_domain, verify=True): try: + rest_endpoint = 'https://{0}{1}'.format(device_domain, ACTIVE_LIST_REST) + self.save_progress(phantom.APP_PROG_CONNECTING_TO_ELLIPSES, device_domain) resp = requests.get(rest_endpoint, auth=self._auth, verify=verify) except Exception as e: return self.set_status(phantom.APP_ERROR, CISCOISE_ERR_TEST_CONNECTIVITY_FAILED, e) - if resp.status_code != 200: + if resp.status_code == 200: + return self.set_status_save_progress(phantom.APP_SUCCESS, CISCOISE_SUCC_TEST_CONNECTIVITY_PASSED) + else: return self.set_status(phantom.APP_ERROR, CISCOISE_ERR_TEST_CONNECTIVITY_FAILED_ERR_CODE, code=resp.status_code) - return self.set_status_save_progress(phantom.APP_SUCCESS, CISCOISE_SUCC_TEST_CONNECTIVITY_PASSED) + def _test_connectivity(self, param): + + config = self.get_config() + + first_device = config[phantom.APP_JSON_DEVICE] + verify = config[phantom.APP_JSON_VERIFY] + self.save_progress("Connecting to first device") + result = self._test_connectivity_to_device(first_device, verify) + + secondary_device = config.get('secondary_device') + if secondary_device: + self.save_progress("Connecting to second device") + result = self._test_connectivity_to_device(secondary_device, verify) + + return result def handle_action(self, param): diff --git a/ciscoise_consts.py b/ciscoise_consts.py index d2d6d89..d9b3484 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -11,7 +11,6 @@ CISCOISE_JSON_TOTAL_SESSIONS = "sessions_found" # REST endpoint Consts -ACTIVE_COUNT_REST_ENDPOINT = "/admin/API/mnt/Session/ActiveCount" ACTIVE_LIST_REST = "/admin/API/mnt/Session/ActiveList" AUTH_LIST_REST_ENDPOINT = "/ise/mnt/Session/AuthList/null/null" DISCONNECT_MAC_REST = "/ise/mnt/CoA/Disconnect" From 0fbcbfe0e44db69ccf0cb1d3a8251149ef98101f Mon Sep 17 00:00:00 2001 From: Peter Date: Thu, 2 Dec 2021 10:30:42 -0800 Subject: [PATCH 49/80] Removing unused files --- .gitlab-ci.yml | 3 -- Makefile | 81 ---------------------------------------------- docker-compose.yml | 24 -------------- 3 files changed, 108 deletions(-) delete mode 100644 .gitlab-ci.yml delete mode 100644 Makefile delete mode 100644 docker-compose.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 38e1594..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,3 +0,0 @@ -include: - - project: 'phantom/appscript' - file: 'gitlab-ci/.gitlab-ci.yml' diff --git a/Makefile b/Makefile deleted file mode 100644 index 7af3212..0000000 --- a/Makefile +++ /dev/null @@ -1,81 +0,0 @@ -# Makefile for Phantom apps CI -# created oct-2018 by michellel & jacobd at splunk -# -# Usage: -# make local - to bring up docker for local dev -# make - pipeline targets build / upload -# make secrets - list any required secret values -# -# Credentials can be passed as environment variables or docker secret files -# under /run/secrets - - -# Variables set by GitLab -WORKSPACE ?= $(shell grep WORKSPACE: docker-compose.yml | cut -d : -f 2) -CI_COMMIT_REF_NAME ?= $(shell git branch | grep "\*" | cut -d ' ' -f 2) - -# Git variables -GIT_SERVER ?= cd.splunkdev.com -RELEASE_GROUP ?= phantom -RELEASE_REPO ?= app_release -RELEASE_DIR := $(WORKSPACE)/$(RELEASE_REPO) - -# Docker variables -export IMAGE_TAG ?= $(shell grep ^image: .gitlab-ci.yml | cut -d : -f 3) - -# Variables sent to app_release for test/build/release scripts -export APP_DIR ?= $(shell pwd) -export APP_REPO_NAME ?= $(shell basename $(APP_DIR)) -export APP_BRANCH ?= $(CI_COMMIT_REF_NAME) -export TEST_BRANCH ?= master - -# Pipeline secrets -SECRETS = app_artf_token gitlab_api_token app_deploy_key -ifneq ($(wildcard /run/secrets/.),) - # Load secrets if specified in filesystem rather than variables - export GITLAB_API_TOKEN ?= $(shell cat /run/secrets/gitlab_api_token) - export APP_ARTF_TOKEN ?= $(shell cat /run/secrets/app_artf_token) - export APP_DEPLOY_KEY ?= $(shell cat /run/secrets/app_deploy_key) -endif - -APP_RELEASE_TARGETS = test upload build release -.PHONY: checkout local secrets list_secrets $(APP_RELEASE_TARGETS) - -checkout: $(RELEASE_DIR) -$(RELEASE_DIR): /tmp/ssh-agent - $(info Clone the $(RELEASE_REPO) repo into $(RELEASE_DIR)) - @git clone git@$(GIT_SERVER):$(RELEASE_GROUP)/$(RELEASE_REPO).git $(RELEASE_DIR) - $(info Checkout the test branch: $(TEST_BRANCH)) - @cd $(RELEASE_DIR) && git checkout $(TEST_BRANCH) - -$(APP_RELEASE_TARGETS): checkout - @cd $(RELEASE_DIR) && make $@ - -local: secrets - $(info Setting up local development instance) - $(info Make sure you have run:) - $(info docker login repo.splunk.com) - docker-compose up -d - $(info Working directory is mapped to $(DOCKER_WORK). To connect:) - $(info docker exec -it -w $(DOCKER_WORK) local_qa-local_1 bash) - -/tmp/ssh-agent: - $(info Starting ssh agent) - @mkdir -p -m 700 ~/.ssh - @ssh-keyscan -p 22 $(GIT_SERVER) >> ~/.ssh/known_hosts - @eval $(shell ssh-agent -s >$@) - @if [ -s /run/secrets/app_deploy_key ]; then \ - cp /run/secrets/app_deploy_key ~/.ssh/id_rsa && \ - source $@ && ssh-add ~/.ssh/id_rsa; \ - else \ - cp ~/.ssh/app_deploy_key ~/.ssh/id_rsa && \ - chmod 600 ~/.ssh/id_rsa && \ - cat $@ && \ - source $@ && ssh-add ~/.ssh/id_rsa; \ - fi - -SECRET_FILES = $(foreach I,$(SECRETS),~/.docker/secrets/$I) -secrets: list_secrets $(SECRET_FILES) -list_secrets: - $(info From .docker/secrets these files are loaded:) - $(info $(SECRETS)) diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 6150455..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: "3.2" - -services: - app_tester: - image: repo.splunk.com/splunk/infra/phantom_apps_tester:${IMAGE_TAG:-latest} - environment: - BUILD_USER_ID: ${USER:-localbuild} - TEST_BRANCH: ${TEST_BRANCH:-master} - WORKSPACE: /builds/phantom-apps - volumes: - - .:/builds/phantom-apps/${APP_REPO_NAME} - command: sleep 28800 - secrets: - - app_artf_token - - app_deploy_key - - gitlab_api_token - -secrets: - app_artf_token: - file: ~/.docker/secrets/app_artf_token - app_deploy_key: - file: ~/.docker/secrets/app_deploy_key - gitlab_api_token: - file: ~/.docker/secrets/gitlab_api_token From d0d4f69b38a9dddd51a1b35087d83d060a279745 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Thu, 2 Dec 2021 10:30:42 -0800 Subject: [PATCH 50/80] Copying converted release notes from app_release --- release_notes/1.2.11.md | 6 ++++++ release_notes/1.2.12.md | 6 ++++++ release_notes/1.2.14.md | 6 ++++++ release_notes/1.2.17.md | 6 ++++++ release_notes/release_notes.html | 18 ++++++++++++++++++ 5 files changed, 42 insertions(+) create mode 100644 release_notes/1.2.11.md create mode 100644 release_notes/1.2.12.md create mode 100644 release_notes/1.2.14.md create mode 100644 release_notes/1.2.17.md create mode 100644 release_notes/release_notes.html diff --git a/release_notes/1.2.11.md b/release_notes/1.2.11.md new file mode 100644 index 0000000..438dbbf --- /dev/null +++ b/release_notes/1.2.11.md @@ -0,0 +1,6 @@ +**Cisco ISE Release Notes - Published by Phantom October 14, 2016** + + +**Version 1.2.11 - Released October 14, 2016** + +* Made improvements to the datapath settings diff --git a/release_notes/1.2.12.md b/release_notes/1.2.12.md new file mode 100644 index 0000000..3e8638d --- /dev/null +++ b/release_notes/1.2.12.md @@ -0,0 +1,6 @@ +**Cisco ISE Release Notes - Published by Phantom July 27, 2017** + + +**Version 1.2.12 - Released July 27, 2017** + +* 3.0 compatibility update release only diff --git a/release_notes/1.2.14.md b/release_notes/1.2.14.md new file mode 100644 index 0000000..0b20d62 --- /dev/null +++ b/release_notes/1.2.14.md @@ -0,0 +1,6 @@ +**Cisco ISE Release Notes - Published by Phantom August 23, 2017** + + +**Version 1.2.14 - Released August 23, 2017** + +* 3.0 compatibility update release only diff --git a/release_notes/1.2.17.md b/release_notes/1.2.17.md new file mode 100644 index 0000000..9ccb843 --- /dev/null +++ b/release_notes/1.2.17.md @@ -0,0 +1,6 @@ +**Cisco ISE Release Notes - Published by Phantom February 07, 2018** + + +**Version 1.2.17 - Released February 07, 2018** + +* App action views and Logo updates diff --git a/release_notes/release_notes.html b/release_notes/release_notes.html new file mode 100644 index 0000000..742341d --- /dev/null +++ b/release_notes/release_notes.html @@ -0,0 +1,18 @@ +Cisco ISE Release Notes - Published by Phantom February 07, 2018 +

    +Version 1.2.17 - Released February 07, 2018 +
      +
    • App action views and Logo updates
    • +
    +Version 1.2.14 - Released August 23, 2017 +
      +
    • 3.0 compatibility update release only
    • +
    +Version 1.2.12 - Released July 27, 2017 +
      +
    • 3.0 compatibility update release only
    • +
    +Version 1.2.11 - Released October 14, 2016 +
      +
    • Made improvements to the datapath settings
    • +
    From c3ebd5e8b2f41010993075a6f11607ed31012ed4 Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Thu, 2 Dec 2021 10:30:42 -0800 Subject: [PATCH 51/80] Updating source files with legal boilerplate --- __init__.py | 19 ++++++++++--------- ciscoise_connector.py | 22 ++++++++++++---------- ciscoise_consts.py | 22 ++++++++++++---------- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/__init__.py b/__init__.py index d5722e0..8354c06 100644 --- a/__init__.py +++ b/__init__.py @@ -1,13 +1,14 @@ -# -- # File: __init__.py # -# Copyright (c) Phantom Cyber Corporation, 2014-2018 +# Copyright (c) 2014-2018 Splunk Inc. # -# This unpublished material is proprietary to Phantom Cyber. -# All rights reserved. The methods and -# techniques described herein are considered trade secrets -# and/or confidential. Reproduction or distribution, in whole -# or in part, is forbidden except by express written permission -# of Phantom Cyber. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# -- +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under +# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific language governing permissions +# and limitations under the License. diff --git a/ciscoise_connector.py b/ciscoise_connector.py index 0d7a1bc..0f45721 100644 --- a/ciscoise_connector.py +++ b/ciscoise_connector.py @@ -1,17 +1,19 @@ -# -- # File: ciscoise_connector.py # -# Copyright (c) Phantom Cyber Corporation, 2014-2018 +# Copyright (c) 2014-2018 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under +# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific language governing permissions +# and limitations under the License. # -# This unpublished material is proprietary to Phantom Cyber. -# All rights reserved. The methods and -# techniques described herein are considered trade secrets -# and/or confidential. Reproduction or distribution, in whole -# or in part, is forbidden except by express written permission -# of Phantom Cyber. # -# -- - # Phantom imports import phantom.app as phantom diff --git a/ciscoise_consts.py b/ciscoise_consts.py index 521b760..0b4f725 100644 --- a/ciscoise_consts.py +++ b/ciscoise_consts.py @@ -1,17 +1,19 @@ -# -- # File: ciscoise_consts.py # -# Copyright (c) Phantom Cyber Corporation, 2014-2018 +# Copyright (c) 2014-2018 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under +# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific language governing permissions +# and limitations under the License. # -# This unpublished material is proprietary to Phantom Cyber. -# All rights reserved. The methods and -# techniques described herein are considered trade secrets -# and/or confidential. Reproduction or distribution, in whole -# or in part, is forbidden except by express written permission -# of Phantom Cyber. # -# -- - # Jsons CISCOISE_JSON_TYPE = "type" CISCOISE_JSON_SERVER = "server" From d23a00856cb5aaeb75cb8b13c31a89c67c383d3e Mon Sep 17 00:00:00 2001 From: splunk-soar-connectors-admin Date: Thu, 2 Dec 2021 10:30:48 -0800 Subject: [PATCH 52/80] Resolving app dependencies --- ciscoise.json | 40 +++++++++++++++++- requirements.txt | 3 ++ wheels/Cerberus-1.3.2-py2-none-any.whl | Bin 0 -> 54336 bytes wheels/certifi-2021.10.8-py2.py3-none-any.whl | Bin 0 -> 149195 bytes wheels/chardet-3.0.4-py2.py3-none-any.whl | Bin 0 -> 133356 bytes wheels/idna-2.10-py2.py3-none-any.whl | Bin 0 -> 58811 bytes wheels/requests-2.25.0-py2.py3-none-any.whl | Bin 0 -> 61132 bytes wheels/setuptools-44.1.1-py2.py3-none-any.whl | Bin 0 -> 583493 bytes wheels/urllib3-1.26.7-py2.py3-none-any.whl | Bin 0 -> 138764 bytes wheels/xmltodict-0.12.0-py2.py3-none-any.whl | Bin 0 -> 9170 bytes 10 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 wheels/Cerberus-1.3.2-py2-none-any.whl create mode 100644 wheels/certifi-2021.10.8-py2.py3-none-any.whl create mode 100644 wheels/chardet-3.0.4-py2.py3-none-any.whl create mode 100644 wheels/idna-2.10-py2.py3-none-any.whl create mode 100644 wheels/requests-2.25.0-py2.py3-none-any.whl create mode 100644 wheels/setuptools-44.1.1-py2.py3-none-any.whl create mode 100644 wheels/urllib3-1.26.7-py2.py3-none-any.whl create mode 100644 wheels/xmltodict-0.12.0-py2.py3-none-any.whl diff --git a/ciscoise.json b/ciscoise.json index fbecc7c..049148b 100644 --- a/ciscoise.json +++ b/ciscoise.json @@ -802,5 +802,41 @@ ], "versions": "EQ(*)" } - ] -} \ No newline at end of file + ], + "pip_dependencies": { + "wheel": [ + { + "module": "Cerberus", + "input_file": "wheels/Cerberus-1.3.2-py2-none-any.whl" + }, + { + "module": "certifi", + "input_file": "wheels/certifi-2021.10.8-py2.py3-none-any.whl" + }, + { + "module": "chardet", + "input_file": "wheels/chardet-3.0.4-py2.py3-none-any.whl" + }, + { + "module": "idna", + "input_file": "wheels/idna-2.10-py2.py3-none-any.whl" + }, + { + "module": "requests", + "input_file": "wheels/requests-2.25.0-py2.py3-none-any.whl" + }, + { + "module": "setuptools", + "input_file": "wheels/setuptools-44.1.1-py2.py3-none-any.whl" + }, + { + "module": "urllib3", + "input_file": "wheels/urllib3-1.26.7-py2.py3-none-any.whl" + }, + { + "module": "xmltodict", + "input_file": "wheels/xmltodict-0.12.0-py2.py3-none-any.whl" + } + ] + } +} diff --git a/requirements.txt b/requirements.txt index e69de29..d1bc00c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,3 @@ +Cerberus==1.3.2 +requests==2.25.0 +xmltodict==0.12.0 diff --git a/wheels/Cerberus-1.3.2-py2-none-any.whl b/wheels/Cerberus-1.3.2-py2-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..7cc5c306eab96b8277c51554bd3636762fb47d01 GIT binary patch literal 54336 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

    KnqNZRP5(OQcGYT*RPS!=&h>!&;sJmR5 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

    0D*p+j{oMYfu9Ov?(W`# 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�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�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

    8PY-t;BQQ*~)Heds;&SxeY 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 literal 0 HcmV?d00001 diff --git a/wheels/setuptools-44.1.1-py2.py3-none-any.whl b/wheels/setuptools-44.1.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..bf28513c99b641da774c09877b977fa5a88518a9 GIT binary patch literal 583493 zcmV)1K+V5UO9KQH000080JaFdP+U*CMQH#40Db@f01p5F0A*owd0%O6b97;BY%Xwl zEzB_vgFp;K(SA>1xq&nsAQEMYv|M0hkwsZ)Z6nqcxjhgu)im!j^RyeqH`7bn?`