From c14ae2c8d76f9625d06dd6776335719ed2a465af Mon Sep 17 00:00:00 2001 From: anuj-metron Date: Tue, 31 Dec 2024 15:01:42 +0530 Subject: [PATCH] Updated the Doppel Package with Additional Requirements --- Packs/Doppel/Integrations/Doppel/Doppel.py | 312 +++++- Packs/Doppel/Integrations/Doppel/Doppel.yml | 281 +++--- .../Doppel/Integrations/Doppel/Doppel_test.py | 12 +- Packs/Doppel/Integrations/Doppel/README.md | 17 +- ...classifier-Doppel_Incident_Classifier.json | 42 + .../classifier-Doppel_Incoming_Mapper.json | 423 ++++++++ .../classifier-Doppel_Outgoing_Mapper.json | 49 + .../incidentfield-Doppel_Alert_ID.json | 63 ++ .../incidentfield-Doppel_Audit_Logs.json | 136 +++ .../incidentfield-Doppel_Brand.json | 63 ++ .../incidentfield-Doppel_Created_At.json | 63 ++ .../incidentfield-Doppel_Entity.json | 63 ++ .../incidentfield-Doppel_Entity_Content.json | 173 ++++ .../incidentfield-Doppel_Entity_State.json | 68 ++ .../incidentfield-Doppel_Link.json | 63 ++ .../incidentfield-Doppel_Notes.json | 63 ++ .../incidentfield-Doppel_Platform.json | 63 ++ .../incidentfield-Doppel_Product.json | 72 ++ .../incidentfield-Doppel_Queue_State.json | 71 ++ .../incidentfield-Doppel_Severity.json | 63 ++ .../incidentfield-Doppel_Source.json | 63 ++ .../incidentfield-Doppel_Tags.json | 63 ++ .../incidentfield-Doppel_Uploaded_By.json | 63 ++ .../incidenttype-Doppel_Alert_Crypto.json | 38 + .../incidenttype-Doppel_Alert_Domains.json | 38 + .../incidenttype-Doppel_Alert_Ecommerce.json | 38 + .../incidenttype-Doppel_Alert_Email.json | 38 + ...incidenttype-Doppel_Alert_Mobile_Apps.json | 38 + .../incidenttype-Doppel_Alert_Paid_Ads.json | 38 + ...ncidenttype-Doppel_Alert_Social_Media.json | 38 + ...youtscontainer-Doppel_Incident_Layout.json | 902 ++++++++++++++++++ 31 files changed, 3343 insertions(+), 174 deletions(-) create mode 100644 Packs/Doppel/classifier/classifier-Doppel_Incident_Classifier.json create mode 100644 Packs/Doppel/classifier/classifier-Doppel_Incoming_Mapper.json create mode 100644 Packs/Doppel/classifier/classifier-Doppel_Outgoing_Mapper.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Alert_ID.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Audit_Logs.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Brand.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Created_At.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Entity.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_Content.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_State.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Link.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Notes.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Platform.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Product.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Queue_State.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Severity.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Source.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Tags.json create mode 100644 Packs/Doppel/incidentfield/incidentfield-Doppel_Uploaded_By.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Crypto.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Domains.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Ecommerce.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Email.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Mobile_Apps.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Paid_Ads.json create mode 100644 Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Social_Media.json create mode 100644 Packs/Doppel/layoutscontainer/layoutscontainer-Doppel_Incident_Layout.json diff --git a/Packs/Doppel/Integrations/Doppel/Doppel.py b/Packs/Doppel/Integrations/Doppel/Doppel.py index 93eaeeba52ee..db14bcf0e4c1 100644 --- a/Packs/Doppel/Integrations/Doppel/Doppel.py +++ b/Packs/Doppel/Integrations/Doppel/Doppel.py @@ -1,20 +1,33 @@ import demistomock as demisto # noqa: F401 from CommonServerPython import * # noqa: F401 +from CommonServerUserPython import * # noqa + import json +from datetime import datetime, timedelta """Doppel for Cortex XSOAR (aka Demisto) This integration contains features to mirror the alerts from Doppel to create incidents in XSOAR and the commands to perform different updates on the alerts """ -from CommonServerUserPython import * # noqa - import urllib3 from typing import Dict, Any # Disable insecure warnings urllib3.disable_warnings() +''' CONSTANTS ''' +XSOAR_DATE_FORMAT = '%Y-%m-%dT%H:%M:%SZ' +DOPPEL_API_DATE_FORMAT = '%Y-%m-%dT%H:%M:%S' +DOPPEL_PAYLOAD_DATE_FORMAT = '%Y-%m-%dT%H:%M:%S.%f' +MIRROR_DIRECTION = { + "None": None, + "Incoming": "In", + "Outgoing": "Out", + "Incoming And Outgoing": "Both", +} +DOPPEL_ALERT = 'Doppel Alert' +DOPPEL_INCIDENT = 'Doppel Incident' ''' CLIENT CLASS ''' @@ -67,6 +80,7 @@ def update_alert( entity_state: str, alert_id: Optional[str] = None, entity: Optional[str] = None, + comment: Optional[str] = None, ) -> Dict[str, Any]: """ Updates an existing alert using either the alert ID or the entity. @@ -85,7 +99,7 @@ def update_alert( api_name = "alert" api_url = f"{self._base_url}/{api_name}" params = {"id": alert_id} if alert_id else {"entity": entity} - payload = {"queue_state": queue_state, "entity_state": entity_state} + payload = {"queue_state": queue_state, "entity_state": entity_state, "comment" :comment} response_content = self._http_request( method="PUT", # Changed to PUT as per reference @@ -95,7 +109,7 @@ def update_alert( ) return response_content - def get_alerts(self, params: Dict[str, Any]) -> List[Dict[str, Any]]: + def get_alerts(self, params: Dict[str, Any]) -> Dict[str, Any]: """ Fetches multiple alerts based on query parameters. @@ -141,12 +155,85 @@ def create_abuse_alert(self, entity: str) -> Dict[str, Any]: ''' HELPER FUNCTIONS ''' -# TODO: ADD HERE ANY HELPER FUNCTION YOU MIGHT NEED (if any) +def _get_remote_updated_incident_data_with_entry(client: Client, doppel_alert_id: str, last_update_str: str): + # Truncate to microseconds since Python's datetime only supports up to 6 digits + last_update_str = last_update_str[:26] + "Z" + last_update = datetime.strptime(last_update_str, "%Y-%m-%dT%H:%M:%S.%fZ") + demisto.debug(f'Getting Remote Data for {doppel_alert_id} which was last updated on: {last_update}') + updated_doppel_alert = client.get_alert(id=doppel_alert_id, entity=None) + demisto.debug(f'Received alert data for {doppel_alert_id}') + audit_logs = updated_doppel_alert['audit_logs'] + demisto.debug(f'The alert contains {len(audit_logs)} audit logs') + + most_recent_audit_log = max(audit_logs, key=lambda audit_log: audit_log['timestamp']) + demisto.debug(f'Most recent audit log is {most_recent_audit_log}') + recent_audit_log_datetime_str = most_recent_audit_log['timestamp'] + recent_audit_log_datetime = datetime.strptime(recent_audit_log_datetime_str, DOPPEL_PAYLOAD_DATE_FORMAT) + demisto.debug(f'The event was modified recently on {recent_audit_log_datetime}') + if recent_audit_log_datetime > last_update: + updated_doppel_alert['id'] = doppel_alert_id + entries: list = [{ + "Type": EntryType.NOTE, + "Contents": most_recent_audit_log, + "ContentsFormat": EntryFormat.JSON, + }] + demisto.debug(f'Successfully returning the updated alert and entries: {updated_doppel_alert, entries}') + return updated_doppel_alert, entries + + return None, [] + +def _get_mirroring_fields(): + """ + Get tickets mirroring. + """ + mirror_direction: str = demisto.params().get('mirror_direction', None) + return { + "mirror_direction": MIRROR_DIRECTION.get(mirror_direction), + "mirror_instance": demisto.integrationInstance(), + "incident_type": "Doppel_Incident_Test", + } + +def _get_last_fetch_datetime(): + # Fetch the last run (time of the last fetch) + last_run = demisto.getLastRun() + last_fetch = last_run.get("last_fetch", None) + last_fetch_datetime: datetime = datetime.now() + if last_fetch and isinstance(last_fetch, float): + last_fetch_datetime = datetime.fromtimestamp(last_fetch) + demisto.debug(f"Alerts were fetch last on: {last_fetch_datetime}") + else: + # If no last run is found + historical_days: int = 1 + historical_days_str: str = demisto.params().get('historical_days', None) + if historical_days_str: + try: + historical_days = int(historical_days_str) + except ValueError: + demisto.error(f'{historical_days} is not an int value. We will use the default historical value as {historical_days} day') + demisto.info(f'Fetching alerts created in last {historical_days} days') + last_fetch_datetime = datetime.now() - timedelta(days=historical_days) + demisto.debug(f"This is the first time we are fetching the incidents. This time fetching it from: {last_fetch_datetime}") + + return last_fetch_datetime + +def _paginated_call_to_get_alerts(client, page, last_fetch_datetime): + # Set the query parameters + last_fetch_str: str = last_fetch_datetime.strftime(DOPPEL_API_DATE_FORMAT) + query_params = { + 'created_after': last_fetch_str, # Fetch alerts after the last_fetch, + 'sort_type': 'date_sourced', + 'sort_order': 'asc', + 'page': page, + } + get_alerts_response = client.get_alerts(params=query_params) + alerts = get_alerts_response.get('alerts', None) + return alerts + ''' COMMAND FUNCTIONS ''' -def test_module(client: Client) -> str: +def test_module(client: Client, args: Dict[str, Any]) -> str: """Tests API connectivity and authentication' Returning 'ok' indicates that the integration works like it is supposed to. @@ -160,21 +247,27 @@ def test_module(client: Client) -> str: :rtype: ``str`` """ - message: str = '' try: - # TODO: ADD HERE some code to test connectivity and authentication to your service. - # This should validate all the inputs given in the integration configuration panel, - # either manually or by using an API that uses them. - message = 'ok' + # Using the same dates so that we do not fetch any data for testing, + # but still get the response as 200 + current_datetime_str = datetime.now().strftime(DOPPEL_API_DATE_FORMAT) + query_params = { + 'created_before': current_datetime_str, + 'created_after': current_datetime_str + } + + # Call the client's `get_alerts` method to test the connection + results = client.get_alerts(params=query_params) + message: str = 'ok' + except DemistoException as e: - if 'Forbidden' in str(e) or 'Authorization' in str(e): # TODO: make sure you capture authentication errors + if 'Forbidden' in str(e) or 'Authorization' in str(e): message = 'Authorization Error: make sure API Key is correctly set' else: raise e return message - -def get_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: +def doppel_get_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: id: str = args.get('id', None) entity: str = args.get('entity', None) @@ -191,7 +284,7 @@ def get_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: outputs=result, ) -def update_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: +def doppel_update_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: """ Executes the update alert command. @@ -203,13 +296,14 @@ def update_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults entity = args.get('entity') queue_state = args.get('queue_state') entity_state = args.get('entity_state') + comment = args.get('comment') if alert_id and entity: raise ValueError("Only one of 'alert_id' or 'entity' can be specified.") if not queue_state or not entity_state: raise ValueError("Both 'queue_state' and 'entity_state' must be specified.") - result = client.update_alert(queue_state=queue_state, entity_state=entity_state, alert_id=alert_id, entity=entity) + result = client.update_alert(queue_state=queue_state, entity_state=entity_state, alert_id=alert_id, entity=entity , comment=comment) return CommandResults( outputs_prefix='Doppel.UpdatedAlert', @@ -217,7 +311,7 @@ def update_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults outputs=result, ) -def get_alerts_command(client: Client, args: Dict[str, Any]) -> CommandResults: +def doppel_get_alerts_command(client: Client, args: Dict[str, Any]) -> CommandResults: """ Command to fetch multiple alerts based on query parameters. @@ -248,17 +342,7 @@ def get_alerts_command(client: Client, args: Dict[str, Any]) -> CommandResults: if not results: raise ValueError("No alerts were found with the given parameters.") - # Prepare the readable JSON response - readable_output = json.dumps(results, indent=4) - - return CommandResults( - outputs_prefix="Doppel.GetAlerts", - outputs_key_field="id", - outputs=results, - readable_output=readable_output - ) - -def create_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: +def doppel_create_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: entity = args.get('entity') if not entity: raise ValueError("Entity must be specified to create an alert.") @@ -271,7 +355,7 @@ def create_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults outputs=result, ) -def create_abuse_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: +def doppel_create_abuse_alert_command(client: Client, args: Dict[str, Any]) -> CommandResults: entity = args.get('entity') if not entity: @@ -285,6 +369,136 @@ def create_abuse_alert_command(client: Client, args: Dict[str, Any]) -> CommandR outputs=result, ) +def fetch_incidents_command(client: Client, args: Dict[str, Any]) -> None: + """ + Fetch incidents from Doppel alerts, map fields to custom XSOAR fields, and create incidents. + This function fetches alerts directly from Doppel + """ + demisto.debug("Fetching alerts from Doppel.") + # Fetch the last run (time of the last fetch) + last_fetch_datetime: datetime = _get_last_fetch_datetime() + + # Fetch alerts + page: int = 0 + incidents = [] + while True: + alerts = _paginated_call_to_get_alerts(client, page, last_fetch_datetime) + if not alerts: + demisto.info("No new alerts fetched from Doppel. Exiting fetch_incidents.") + break + last_fetch = last_fetch_datetime.timestamp() + new_last_fetch = last_fetch # Initialize with the existing last fetch timestamp + for alert in alerts: + # Building the incident structure + created_at_str = alert.get("created_at") + created_at_datetime = datetime.strptime(created_at_str, DOPPEL_PAYLOAD_DATE_FORMAT) + new_last_fetch = created_at_datetime.timestamp() + if new_last_fetch > last_fetch: + alert.update(_get_mirroring_fields()) + incident = { + 'name': DOPPEL_INCIDENT, + 'type': DOPPEL_ALERT, + 'occurred': created_at_datetime.strftime(XSOAR_DATE_FORMAT), + 'dbotMirrorId': str(alert.get("id")), + 'rawJSON': json.dumps(alert), + } + incidents.append(incident) + # Update last run with the new_last_fetch value + demisto.setLastRun({"last_fetch": new_last_fetch}) + demisto.debug(f"Updated last_fetch to: {new_last_fetch}") + demisto.info(f'Fetched Doppel alerts from page {page} Successfully.') + page = page+1 + # Create incidents in XSOAR + if incidents and len(incidents) > 0: + try: + demisto.incidents(incidents) + demisto.info(f"Successfully created {len(incidents)} incidents in XSOAR.") + except Exception as e: + raise ValueError(f"Incident creation failed due to: {str(e)}") + else: + demisto.incidents([]) + demisto.info("No incidents to create. Exiting fetch_incidents_command.") + +def get_modified_remote_data_command(client: Client, args: Dict[str, Any]): + demisto.debug('Command get-modified-remote-data is not implemented') + raise NotImplementedError('The command "get-modified-remote-data" is not implemented, \ + as Doppel does provide the API to fetch updated alerts.') + +def get_remote_data_command(client: Client, args: Dict[str, Any]) -> GetRemoteDataResponse: + try: + demisto.debug(f'Calling the "get-remote-data" for {args["id"]}') + parsed_args = GetRemoteDataArgs(args) + remote_updated_incident_data, parsed_entries = _get_remote_updated_incident_data_with_entry(client, parsed_args.remote_incident_id, parsed_args.last_update) + if remote_updated_incident_data: + demisto.debug(f'Found updates in the alert with id: {args["id"]}') + return GetRemoteDataResponse(remote_updated_incident_data, parsed_entries) + else: + demisto.debug(f'Nothing new in the incident {parsed_args.remote_incident_id}') + return GetRemoteDataResponse(mirrored_object={}, entries=[{}]) + + except Exception as e: + demisto.error(f'Error while running get_remote_data_command: {e}') + if "Rate limit exceeded" in str(e): + return_error("API rate limit") + +def update_remote_system_command(client: Client, args: Dict[str, Any]) -> str: + + """update-remote-system command: pushes local changes to the remote system + + :type client: ``Client`` + :param client: XSOAR client to use + + :type args: ``Dict[str, Any]`` + :param args: + all command arguments, usually passed from ``demisto.args()``. + ``args['data']`` the data to send to the remote system + ``args['entries']`` the entries to send to the remote system + ``args['incidentChanged']`` boolean telling us if the local incident indeed changed or not + ``args['remoteId']`` the remote incident id + + :return: + ``str`` containing the remote incident id - really important if the incident is newly created remotely + + :rtype: ``str`` + """ + demisto.debug(f'Arguments for the update-remote-system is: {args}') + parsed_args = UpdateRemoteSystemArgs(args) + new_incident_id: str = parsed_args.remote_incident_id + # We will Update the Doppel Alert only if the XSOAR Incident is closed + if parsed_args.delta and parsed_args.delta.get('closeReason'): + demisto.debug(f'Sending incident with remote ID [{parsed_args.remote_incident_id}] to remote system') + if not parsed_args.remote_incident_id or parsed_args.incident_changed: + if parsed_args.remote_incident_id: + # First, get the incident as we need the version + old_incident = client.get_alert(id=parsed_args.remote_incident_id, entity=None) + for changed_key in parsed_args.delta.keys(): + old_incident[changed_key] = parsed_args.delta[changed_key] # type: ignore + parsed_args.data = old_incident + else: + parsed_args.data['createInvestigation'] = True + + # Update the queue_state value in the Doppel alert, if already not same + current_queue_state = parsed_args.data.get('queue_state') + target_queue_state = 'archived' + if current_queue_state != target_queue_state: + client.update_alert( + queue_state=target_queue_state, + entity_state=old_incident['entity_state'], # Keep the old entity_state + alert_id=new_incident_id + ) + else: + demisto.debug(f'Skipping updating remote incident fields [{parsed_args.remote_incident_id}] as it is ' + f'not new nor changed.') + else: + demisto.debug(f'The incident changed, but it is not closed. Hence will not update the Doppel alert at this time') + + return new_incident_id + +def get_mapping_fields_command(client: Client, args: Dict[str, Any]): + xdr_incident_type_scheme = SchemeTypeMapping(type_name=DOPPEL_ALERT) + xdr_incident_type_scheme.add_field(name='queue_state', description='Queue State of the Doppel Alert') + return GetMappingFieldsResponse(xdr_incident_type_scheme) + ''' MAIN FUNCTION ''' @@ -300,27 +514,35 @@ def main() -> None: # get the service API url base_url = urljoin(demisto.params()['url'], '/v1') - demisto.debug(f'Command being called is {demisto.command()}') + supported_commands = { + 'test-module': test_module, + 'fetch-incidents': fetch_incidents_command, + 'get-modified-remote-data:': get_modified_remote_data_command, + 'get-remote-data': get_remote_data_command, + 'update-remote-system': update_remote_system_command, + 'get-mapping-fields': get_mapping_fields_command, + + # Doppel Specific alerts + 'doppel-get-alert': doppel_get_alert_command, + 'doppel-update-alert': doppel_update_alert_command, + 'doppel-get-alerts': doppel_get_alerts_command, + 'doppel-create-alert': doppel_create_alert_command, + 'doppel-create-abuse-alert': doppel_create_abuse_alert_command, + } + + demisto.info(f'Command being called is {demisto.command()}') try: client = Client( base_url=base_url, api_key=api_key) current_command: str = demisto.command() - if current_command == 'test-module': - # This is the call made when pressing the integration Test button. - result = test_module(client) - return_results(result) - elif current_command == 'get-alert': - return_results(get_alert_command(client, demisto.args())) - elif current_command == 'update-alert': - return_results(update_alert_command(client, demisto.args())) - elif current_command == 'get-alerts': - return_results(get_alerts_command(client, demisto.args())) - elif current_command == 'create-alert': - return_results(create_alert_command(client, demisto.args())) - elif current_command == 'create-abuse-alert': - return_results(create_abuse_alert_command(client, demisto.args())) + if current_command in supported_commands: + demisto.info(f'Command run successful: {demisto.command()}') + return_results(supported_commands[current_command](client, demisto.args())) + else: + demisto.error(f'Command is not implemented: {demisto.command()}') + raise NotImplementedError(f'The {current_command} command is not supported') # Log exceptions and return errors except Exception as e: @@ -331,4 +553,4 @@ def main() -> None: if __name__ in ('__main__', '__builtin__', 'builtins'): - main() + main() \ No newline at end of file diff --git a/Packs/Doppel/Integrations/Doppel/Doppel.yml b/Packs/Doppel/Integrations/Doppel/Doppel.yml index dc7345c4fa10..fc504a858bcf 100644 --- a/Packs/Doppel/Integrations/Doppel/Doppel.yml +++ b/Packs/Doppel/Integrations/Doppel/Doppel.yml @@ -3,45 +3,160 @@ commonfields: id: Doppel version: -1 configuration: -- defaultvalue: https://.com/ - display: Doppel tenant URL +- additionalinfo: The Doppel server URL that will be used for calling the APIs + defaultvalue: https://.com/ + display: Doppel Tenant URL name: url required: true type: 0 -- displaypassword: API Key - additionalinfo: The API Key to use for connection with Doppel +- additionalinfo: The API Key to use for connection with Doppel + display: "" + displaypassword: API Key + hiddenusername: true name: credentials required: true - hiddenusername: true type: 9 -description: 'Doppel is a Modern Digital Risk Protection Solution, that detects the phishing and brand cyber attacks on the emerging channels. Doppel scans millions of channels online which includes, social media, domains, paid ads, dark web, emerging channels, etc. Doppel can identify the malicious content and cyber threats, and enables their customers to take down the digital risks proactively. The XSOAR pack for Doppel provides mirrors the alerts created by Doppel as XSOAR incidents. The pack also contains the commands to perform different operations on Doppel alerts.' +- display: Fetch incidents + name: isFetch + required: false + type: 8 +- additionalinfo: The interval specifies the cadence with which the Doppel alerts + be fetched + defaultvalue: "1" + display: Incidents Fetch Interval + name: incidentFetchInterval + required: true + type: 19 +- display: Incident type + name: incidentType + required: false + type: 13 +- additionalinfo: 'Choose the direction to mirror the incident: None (No mirroring), + Incoming (from Doppel to XSOAR), Outgoing (from XSOAR to Doppel), Incoming and + Outgoing (from/to Cortex and Doppel)' + defaultvalue: Incoming And Outgoing + display: Mirror Direction + name: mirror_direction + options: + - Incoming + - Outgoing + - Incoming And Outgoing + required: false + type: 15 +- additionalinfo: For the first time fetch (or on reset of "Last Run" timestamp), + fetch alerts created in the mentioned historical days + defaultvalue: "1" + display: Historical Days + name: historical_days + required: false + type: 0 +contentitemexportablefields: + contentitemfields: + definitionid: "" + fromServerVersion: "" + itemVersion: "" + packID: 82a5f67a-7fbd-4e4b-8c20-1677bbb400ac + packName: Doppel + prevname: "" + propagationLabels: + - all + toServerVersion: "" +description: |- + Doppel is a Modern Digital Risk Protection Solution, that detects the phishing and brand cyber attacks on the emerging channels. Doppel scans millions of channels online which includes, social media, domains, paid ads, dark web, emerging channels, etc. Doppel can identify the malicious content and cyber threats, and enables their customers to take down the digital risks proactively. + The XSOAR pack for Doppel mirrors the alerts created by Doppel as XSOAR incidents. The pack also contains the commands to perform different operations on Doppel alerts. +detaileddescription: |- + ### Get Started + + To use the app you need the following: + + 1. Doppel Tenant URL that you can use for calling the [Doppel APIs](https://doppel.readme.io/reference/create_alert). eg. *https://api.doppel.com/* + 2. API Key for calling Doppel + + Please reach out to Doppel to get access to above. + + Once you have the URL and API Key, use the same for configuring the Doppel-XSOAR integration instance. display: Doppel +image: data:image/png;base64,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 name: Doppel script: commands: - - name: get-alert - description: 'Retrieves the alert details by ID or entity. Must include exactly one of either id or entity' - arguments: - - name: id - description: 'The ID of the alert to retrieve details for' - required: false - - name: entity - description: 'The alerted entity to retrieve details for' - required: false + - arguments: + - description: The ID of the alert to retrieve details for + name: id + - description: The alerted entity to retrieve details for + name: entity + description: Retrieves the alert details by ID or entity. Must include exactly + one of either id or entity. + name: doppel-get-alert outputs: - contextPath: Doppel.doppel_link - description: 'Link to the alert in the Doppel portal' + description: Link to the alert in the Doppel portal type: String - - - name: get-alerts - description: Retrieves multiple alerts based on the query parameters provided. - It includes metadata and details about each alert. - arguments: - - name: search_key - description: Currently only supports search by url + - arguments: + - description: The entity for which the alert should be created. + name: entity + required: true + description: Creates an alert for a specified entity. This command requires the + entity to be provided in the arguments. + name: doppel-create-alert + outputs: + - contextPath: Doppel.CreatedAlert + description: The details of the created alert, including its unique ID and other + relevant metadata. + type: string + - arguments: + - description: The id of the alert to update + name: alert_id + - description: The entity of the alert to update + name: entity + type: unknown + - auto: PREDEFINED + description: Status of which queue the alert is in. + name: queue_state + predefined: + - doppel_review + - actioned + - needs_confirmation + - monitoring + - taken_down + - archived + type: textArea + - auto: PREDEFINED + description: State of the alert. + name: entity_state + predefined: + - active + - down + - parked + type: textArea + - name: comment + type: textArea + description: Updates an alert in the Doppel platform. + name: doppel-update-alert + outputs: + - contextPath: Doppel.UpdatedAlert + description: Provides details of the updated alert after modifying its queue_state + and entity_state. The result confirms the success and updates made. + type: unknown + - arguments: + - description: The entity for which the abuse alert should be created. + name: entity + required: true + description: Create an alert for the provided value to abuse box. Will fail if + the alert value is invalid or is protected. + name: doppel-create-abuse-alert + outputs: + - contextPath: Doppel.AbuseAlert + description: The details of the created abuse alert, including its unique ID + and other relevant metadata. + type: string + - arguments: + - description: Currently only supports search by url + name: search_key type: textArea - - name: queue_state - auto: PREDEFINED + - auto: PREDEFINED + description: New queue status to update alert with (id required) + name: queue_state predefined: - actioned - needs_confirmation @@ -49,9 +164,9 @@ script: - monitoring - taken_down - archived - description: New queue status to update alert with (id required) - - name: product - auto: PREDEFINED + - auto: PREDEFINED + description: Product category the report belongs to. + name: product predefined: - domains - social_media @@ -60,106 +175,46 @@ script: - crypto - emails - paid_adds - description: Product category the report belongs to. - - name: created_before - description: Filter alerts created before this date. '2024-01-05T13:45:30' -- + - description: Filter alerts created before this date. '2024-01-05T13:45:30' -- Represents the 5th of January 2024, at 1:45:30 PM + name: created_before type: textArea - - name: created_after - description: Filter alerts created after this date. '2024-01-05T13:45:30' -- + - description: Filter alerts created after this date. '2024-01-05T13:45:30' -- Represents the 5th of January 2024, at 1:45:30 PM + name: created_after type: textArea - - name: sort_type - auto: PREDEFINED + - auto: PREDEFINED + description: The field to sort the reports by. Defaults to date_sourced. + name: sort_type predefined: - date_sourced - date_last_actioned - description: The field to sort the reports by. Defaults to date_sourced. type: textArea - - name: sort_order - auto: PREDEFINED + - auto: PREDEFINED + description: The order to sort the reports by. Defaults to desc. + name: sort_order predefined: - asc - desc - description: The order to sort the reports by. Defaults to desc. type: textArea - - name: page - description: Page number for pagination; defaults to 0 + - description: Page number for pagination; defaults to 0 + name: page type: textArea - - name: tags - description: List of tags to filter alerts + - description: List of tags to filter alerts isArray: true + name: tags type: textArea + description: Retrieves a list of alerts. The result can be filtered by provided + parameters. + name: doppel-get-alerts outputs: - contextPath: Doppel.GetAlerts - - - - name: create-alert - description: Creates an alert for a specified entity. This command requires the - entity to be provided in the arguments. - arguments: - - name: entity - required: true - description: The entity for which the alert should be created. - outputs: - - contextPath: Doppel.CreatedAlert - description: The details of the created alert, including its unique ID and other - relevant metadata. - type: string - - - name: create-abuse-alert - description: Create an alert for the provided value to abuse box. Will fail if - the alert value is invalid or is protected - arguments: - - name: entity - required: true - description: The entity for which the abuse alert should be created. - outputs: - - contextPath: Doppel.AbuseAlert - description: The details of the created abuse alert, including its unique ID - and other relevant metadata. - type: string - - - - - name: update-alert - description: Updates a alert in the system with certain parameters. - arguments: - - name: alert_id - description: The id of the alert to update - - name: entity - description: The entity of the alert to update - type: unknown - - name: queue_state - auto: PREDEFINED - predefined: - - doppel_review - - actioned - - needs_confirmation - - monitoring - - taken_down - - archived - description: Status of which queue the alert is in. - type: textArea - - name: entity_state - auto: PREDEFINED - predefined: - - active - - down - - parked - description: State of the alert. - type: textArea - outputs: - - contextPath: Doppel.UpdatedAlert - description: Provides details of the updated alert after modifying its queue_state - and entity_state. The result confirms the success and updates made. + description: Retrieves multiple alerts based on the query parameters provided. + It includes metadata and details about each alert. type: unknown - - runonce: false - script: '-' - type: python - subtype: python3 - dockerimage: demisto/python3:3.12.7.117934 -fromversion: 5.5.0 -tests: -- No tests (auto formatted) + dockerimage: demisto/python3:3.10.14.100715 + isFetchSamples: true + isfetch: true + isremotesyncin: true + isremotesyncout: true + runonce: false \ No newline at end of file diff --git a/Packs/Doppel/Integrations/Doppel/Doppel_test.py b/Packs/Doppel/Integrations/Doppel/Doppel_test.py index d8c9166b2c4c..3d8dc4dbd72c 100644 --- a/Packs/Doppel/Integrations/Doppel/Doppel_test.py +++ b/Packs/Doppel/Integrations/Doppel/Doppel_test.py @@ -19,7 +19,7 @@ def util_load_json(path): @pytest.mark.parametrize("command, args, api_path, api_response", [ - ("get-alert", + ("doppel-get-alert", {"id": "TST-31222"}, "https://api.doppel.com/v1/alert?id=TST-31222", util_load_json('test_data/get-alert-success-200.json')) @@ -46,12 +46,12 @@ def test_command_success(mocker, requests_mock, command, args, api_path, api_res @pytest.mark.parametrize("command, args, api_path, status_code, api_response", [ - ("get-alert", + ("doppel-get-alert", {"entity": "123"}, "https://api.doppel.com/v1/alert?entity=123", 400, util_load_json('test_data/get-alert-failure-400-invalid-entity.json')), - ("get-alert", + ("doppel-get-alert", {"id": "1234"}, "https://api.doppel.com/v1/alert?id=1234", 400, @@ -81,12 +81,12 @@ def test_command_failure(mocker, requests_mock, command, args, api_path, status_ @pytest.mark.parametrize("command, args, api_path, status_code, exception_message", [ - ("get-alert", + ("doppel-get-alert", {"id": "TST-31", "entity": "http://dummyrul.com"}, "https://api.doppel.com/v1/alert?id=TST-31&entity=http://dummyrul.com", 400, - "Failed to execute get-alert command.\nError:\nBoth id and entity is specified. We need exactly single input for this command") + "Failed to execute doppel-get-alert command.\nError:\nBoth id and entity is specified. We need exactly single input for this command") ] ) def test_command_exception(mocker, requests_mock, command, args, api_path, status_code, exception_message): @@ -108,4 +108,4 @@ def test_command_exception(mocker, requests_mock, command, args, api_path, statu # Notice that the API was not called, but the app itself has raised an exception before making the API call assert adapter.call_count == 0 assert results_checker.call_args.args[0].get('Contents') == exception_message - + \ No newline at end of file diff --git a/Packs/Doppel/Integrations/Doppel/README.md b/Packs/Doppel/Integrations/Doppel/README.md index 5e9c90cb5b74..f56ee847e1f4 100644 --- a/Packs/Doppel/Integrations/Doppel/README.md +++ b/Packs/Doppel/Integrations/Doppel/README.md @@ -1,13 +1,10 @@ -# Doppel XSOAR Pack +### Get Started -## Overview -Doppel is a Modern Digital Risk Protection Solution, that detects the phishing and brand cyber attacks on the emerging channels. Doppel scans millions of channels online which includes, social media, domains, paid ads, dark web, emerging channels, etc. Doppel can identify the malicious content and cyber threats, and enables their customers to take down the digital risks proactively. +To use the app you need the following: -## Features supported by the Doppel XSOAR pack +1. Doppel Tenant URL that you can use for calling the [Doppel APIs](https://doppel.readme.io/reference/create_alert). eg. *https://api.doppel.com/* +2. API Key for calling Doppel -1. Mirror Incidents : Alerts from Doppel are mirrored as per the configured schedule. -2. Command: create-alert : Command to create an alert in Doppel. -3. Command: get-alert : Command to fetch alert details from Doppel. -4. Command: get-alerts : Command to fetch list of alerts from Doppel. -5. Command: update-alert : Command to update alert details from Doppel. -6. Command: create-abuse-alert : Command to create abuse alert details from Doppel. \ No newline at end of file +Please reach out to Doppel to get access to above. + +Once you have the URL and API Key, use the same for configuring the Doppel-XSOAR integration instance. \ No newline at end of file diff --git a/Packs/Doppel/classifier/classifier-Doppel_Incident_Classifier.json b/Packs/Doppel/classifier/classifier-Doppel_Incident_Classifier.json new file mode 100644 index 000000000000..a16812e17d4c --- /dev/null +++ b/Packs/Doppel/classifier/classifier-Doppel_Incident_Classifier.json @@ -0,0 +1,42 @@ +{ + "brands": null, + "cacheVersn": 0, + "defaultIncidentType": "", + "definitionId": "", + "description": "Doppel-XSOAR integration classifier to classify the fetched incidents to Doppel_Incident_Test.", + "feed": false, + "fromServerVersion": "", + "id": "607dc952-f37f-44d9-899f-16b0946230dd", + "incidentSamples": null, + "indicatorSamples": null, + "instanceIds": null, + "itemVersion": "", + "keyTypeMap": { + "crypto": "Doppel Alert Crypto", + "domains": "Doppel Alert Domains", + "ecommerce": "Doppel Alert Ecommerce", + "email": "Doppel Alert Email", + "mobile_apps": "Doppel Alert Mobile_Apps", + "paid_ads": "Doppel Alert Paid_Ads", + "social_media": "Doppel Alert Social_Media" + }, + "locked": false, + "logicalVersion": 6, + "mapping": null, + "name": "Doppel_Incident_Classifier", + "nameRaw": "Doppel_Incident_Classifier", + "packID": "", + "packName": "", + "propagationLabels": [ + "all" + ], + "sourceClassifierId": "", + "system": false, + "toServerVersion": "", + "transformer": { + "simple": "product" + }, + "type": "classification", + "unclassifiedCases": null, + "version": -1 +} \ No newline at end of file diff --git a/Packs/Doppel/classifier/classifier-Doppel_Incoming_Mapper.json b/Packs/Doppel/classifier/classifier-Doppel_Incoming_Mapper.json new file mode 100644 index 000000000000..bda79cf996a3 --- /dev/null +++ b/Packs/Doppel/classifier/classifier-Doppel_Incoming_Mapper.json @@ -0,0 +1,423 @@ +{ + "brands": null, + "cacheVersn": 0, + "defaultIncidentType": "", + "definitionId": "", + "description": "", + "feed": false, + "fromServerVersion": "", + "id": "c1af4cac-ec08-426f-880d-9fefee0fc672", + "incidentSamples": null, + "indicatorSamples": null, + "instanceIds": null, + "itemVersion": "1.0.0", + "keyTypeMap": {}, + "locked": false, + "logicalVersion": 21, + "mapping": { + "Doppel Alert": { + "dontMapEventToLabels": false, + "internalMapping": { + "Additional Indicators": { + "simple": "entity" + }, + "Alert ID": { + "simple": "id" + }, + "Alert Source": { + "simple": "source" + }, + "Alert tags": { + "simple": "tags" + }, + "Audit Log History": { + "simple": "audit_logs" + }, + "Block Indicators Status": { + "simple": "entity_state" + }, + "External Link": { + "simple": "doppel_link" + }, + "External Severity": { + "simple": "severity" + }, + "Selected Indicators": { + "simple": "entity" + }, + "Source Created By": { + "simple": "uploaded_by" + }, + "State": { + "simple": "queue_state" + }, + "Vulnerable Product": { + "simple": "brand" + }, + "created_at": { + "simple": "created_at" + }, + "entity": { + "simple": "entity" + }, + "entity_content.root_domain.contact_email": { + "simple": "entity_content.root_domain.contact_email" + }, + "entity_content.root_domain.country_code": { + "simple": "entity_content.root_domain.country_code" + }, + "entity_content.root_domain.domain": { + "simple": "entity_content.root_domain.domain" + }, + "entity_content.root_domain.hosting_provider": { + "simple": "entity_content.root_domain.hosting_provider" + }, + "entity_content.root_domain.ip_address": { + "simple": "entity_content.root_domain.ip_address" + }, + "entity_content.root_domain.mx_records": { + "simple": "mx_records" + }, + "entity_content.root_domain.nameservers\t": { + "simple": "nameservers" + }, + "entity_content.root_domain.registrar\t": { + "simple": "entity_content.root_domain.registrar" + }, + "entity_state": { + "simple": "entity_state" + }, + "notes": { + "simple": "notes" + }, + "platform": { + "simple": "platform" + }, + "product": { + "simple": "product" + }, + "queue_state": { + "simple": "queue_state" + }, + "severity": { + "simple": "severity" + }, + "source": { + "simple": "source" + }, + "sourceBrand": { + "simple": "brand" + }, + "uploaded_by": { + "simple": "uploaded_by" + } + } + }, + "Doppel Alert Test": { + "dontMapEventToLabels": false, + "internalMapping": { + "Additional Indicators": { + "simple": "entity" + }, + "Alert ID": { + "simple": "id" + }, + "Alert Source": { + "simple": "source" + }, + "Alert tags": { + "simple": "tags" + }, + "Audit Log History": { + "simple": "audit_logs" + }, + "Block Indicators Status": { + "simple": "entity_state" + }, + "External Link": { + "simple": "doppel_link" + }, + "External Severity": { + "simple": "severity" + }, + "Selected Indicators": { + "simple": "entity" + }, + "Source Created By": { + "simple": "uploaded_by" + }, + "State": { + "simple": "queue_state" + }, + "Vulnerable Product": { + "simple": "brand" + }, + "created_at": { + "simple": "created_at" + }, + "entity": { + "simple": "entity" + }, + "entity_content.root_domain.contact_email": { + "simple": "entity_content.root_domain.contact_email" + }, + "entity_content.root_domain.country_code": { + "simple": "entity_content.root_domain.country_code" + }, + "entity_content.root_domain.domain": { + "simple": "entity_content.root_domain.domain" + }, + "entity_content.root_domain.hosting_provider": { + "simple": "entity_content.root_domain.hosting_provider" + }, + "entity_content.root_domain.ip_address": { + "simple": "entity_content.root_domain.ip_address" + }, + "entity_content.root_domain.mx_records": { + "simple": "mx_records" + }, + "entity_content.root_domain.nameservers\t": { + "simple": "nameservers" + }, + "entity_content.root_domain.registrar\t": { + "simple": "entity_content.root_domain.registrar" + }, + "entity_state": { + "simple": "entity_state" + }, + "notes": { + "simple": "notes" + }, + "platform": { + "simple": "platform" + }, + "product": { + "simple": "product" + }, + "queue_state": { + "simple": "queue_state" + }, + "severity": { + "simple": "severity" + }, + "source": { + "simple": "source" + }, + "sourceBrand": { + "simple": "brand" + }, + "uploaded_by": { + "simple": "uploaded_by" + } + } + }, + "dbot_classification_incident_type_all": { + "dontMapEventToLabels": true, + "internalMapping": { + "Additional Indicators": { + "simple": "entity" + }, + "Audit Logs": { + "simple": "audit_logs.[]." + }, + "Audit_logs_History": { + "simple": "audit_logs.[]" + }, + "Audit_logs_info": { + "simple": "audit_logs.[]" + }, + "Block Indicators Status": { + "simple": "entity_state" + }, + "Created At": { + "simple": "created_at" + }, + "Doppel Alert Brand": { + "simple": "brand" + }, + "Doppel Alert ID": { + "simple": "id" + }, + "Doppel Audit Logs": { + "simple": "audit_logs.[]." + }, + "Doppel Brand": { + "simple": "brand" + }, + "Doppel Created At": { + "simple": "created_at" + }, + "Doppel Entity": { + "simple": "entity" + }, + "Doppel Entity Content": { + "simple": "entity_content.root_domain" + }, + "Doppel Entity Content Contact Email": { + "simple": "entity_content.root_domain.contact_email" + }, + "Doppel Entity Content Country Code": { + "simple": "entity_content.root_domain.country_code" + }, + "Doppel Entity Content Domain": { + "simple": "entity_content.root_domain.domain" + }, + "Doppel Entity Content Hosting Provider": { + "simple": "entity_content.root_domain.hosting_provider" + }, + "Doppel Entity Content IP Address": { + "simple": "entity_content.root_domain.ip_address" + }, + "Doppel Entity Content MX Records": { + "simple": "entity_content.root_domain.mx_records.[]." + }, + "Doppel Entity Content Name Servers": { + "simple": "entity_content.root_domain.nameservers.[]." + }, + "Doppel Entity Content Registrar": { + "simple": "entity_content.root_domain.registrar" + }, + "Doppel Entity State": { + "simple": "entity_state" + }, + "Doppel Link": { + "simple": "doppel_link" + }, + "Doppel Notes": { + "simple": "notes" + }, + "Doppel Platform": { + "simple": "platform" + }, + "Doppel Product": { + "simple": "product" + }, + "Doppel Queue State": { + "simple": "queue_state" + }, + "Doppel Severity": { + "simple": "severity" + }, + "Doppel Source": { + "simple": "source" + }, + "Doppel Tags": { + "simple": "tags" + }, + "Doppel Uploaded By": { + "simple": "uploaded_by" + }, + "Entity": { + "simple": "entity" + }, + "Entity Content": { + "simple": "entity_content" + }, + "Entity State": { + "simple": "entity_state" + }, + "External Link": { + "simple": "doppel_link" + }, + "External Severity": { + "simple": "severity" + }, + "Notes": { + "simple": "notes" + }, + "Platform": { + "simple": "platform" + }, + "Product": { + "simple": "product" + }, + "Queue State": { + "simple": "queue_state" + }, + "Selected Indicators": { + "simple": "entity" + }, + "Source Created By": { + "simple": "uploaded_by" + }, + "State": { + "simple": "queue_state" + }, + "Tags": { + "simple": "tags" + }, + "Test Entity Content": { + "simple": "entity_content.root_domain" + }, + "Uploaded By": { + "simple": "uploaded_by" + }, + "Vulnerable Product": { + "simple": "brand" + }, + "created_at": { + "simple": "created_at" + }, + "dbotMirrorDirection": { + "simple": "mirror_direction" + }, + "dbotMirrorId": { + "simple": "id" + }, + "dbotMirrorInstance": { + "simple": "mirror_instance" + }, + "entity": { + "simple": "entity" + }, + "entity_content.root_domain.registrar\t": { + "simple": "entity_content.root_domain.registrar" + }, + "entity_state": { + "simple": "entity_state" + }, + "notes": { + "simple": "notes" + }, + "occurred": { + "simple": "created_at" + }, + "platform": { + "simple": "platform" + }, + "product": { + "simple": "product" + }, + "queue_state": { + "simple": "queue_state" + }, + "severity": { + "simple": "severity" + }, + "source": { + "simple": "source" + }, + "sourceBrand": { + "simple": "brand" + }, + "uploaded_by": { + "simple": "uploaded_by" + } + } + } + }, + "name": "Doppel Incoming_Mapper", + "nameRaw": "Doppel Incoming_Mapper", + "packID": "", + "packName": "Doppel", + "propagationLabels": [ + "all" + ], + "sourceClassifierId": "d1d1bfa4-c898-4eae-8a72-1e36d11ebbf2", + "system": false, + "toServerVersion": "", + "transformer": {}, + "type": "mapping-incoming", + "unclassifiedCases": null, + "version": -1 +} \ No newline at end of file diff --git a/Packs/Doppel/classifier/classifier-Doppel_Outgoing_Mapper.json b/Packs/Doppel/classifier/classifier-Doppel_Outgoing_Mapper.json new file mode 100644 index 000000000000..9d62cdae7907 --- /dev/null +++ b/Packs/Doppel/classifier/classifier-Doppel_Outgoing_Mapper.json @@ -0,0 +1,49 @@ +{ + "brands": null, + "cacheVersn": 0, + "defaultIncidentType": "", + "definitionId": "", + "description": "", + "feed": false, + "fromServerVersion": "", + "id": "e0e1f85a-55c1-46f8-8cba-f27c9b438322", + "incidentSamples": null, + "indicatorSamples": null, + "instanceIds": null, + "itemVersion": "1.0.0", + "keyTypeMap": {}, + "locked": false, + "logicalVersion": 2, + "mapping": { + "Doppel Alert": { + "dontMapEventToLabels": false, + "internalMapping": { + "queue_state": { + "simple": "queuestate" + } + } + }, + "dbot_classification_incident_type_all": { + "dontMapEventToLabels": false, + "internalMapping": { + "Queue State": { + "simple": "labels.queue_state" + } + } + } + }, + "name": "Doppel Outgoing_Mapper", + "nameRaw": "Doppel Outgoing_Mapper", + "packID": "", + "packName": "Doppel", + "propagationLabels": [ + "all" + ], + "sourceClassifierId": "602a520c-d5d3-45c8-8cd8-5fbbaa6e93ed", + "system": false, + "toServerVersion": "", + "transformer": {}, + "type": "mapping-outgoing", + "unclassifiedCases": null, + "version": -1 +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Alert_ID.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Alert_ID.json new file mode 100644 index 000000000000..279899577437 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Alert_ID.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelalertid", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelalertid", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Alert ID", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Audit_Logs.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Audit_Logs.json new file mode 100644 index 000000000000..02f4f5a878ee --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Audit_Logs.json @@ -0,0 +1,136 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": [], + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelauditlogs", + "closeForm": false, + "columns": [ + { + "displayName": "changed_by", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "changed_by", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "timestamp", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "timestamp", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "type", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "type", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "value", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "value", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "metadata", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "metadata", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + } + ], + "content": false, + "defaultRows": [ + {}, + {}, + {} + ], + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelauditlogs", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Audit Logs", + "neverSetAsRequired": false, + "openEnded": true, + "orgType": "grid", + "ownerOnly": false, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "placeholder": "", + "pretty_name": "Doppel Audit Logs", + "propagationLabels": [ + "all" + ], + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "grid", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Brand.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Brand.json new file mode 100644 index 000000000000..8baaa1a4d0fc --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Brand.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": [], + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelbrand", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelbrand", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Brand", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "shortText", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "Doppel Brand", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Created_At.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Created_At.json new file mode 100644 index 000000000000..285a9ac7bec8 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Created_At.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelcreatedat", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelcreatedat", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Created At", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity.json new file mode 100644 index 000000000000..24ab6f94e169 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelentity", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelentity", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Entity", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "url", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_Content.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_Content.json new file mode 100644 index 000000000000..20ad2b470515 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_Content.json @@ -0,0 +1,173 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": [], + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelentitycontent", + "closeForm": false, + "columns": [ + { + "displayName": "domain", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "domain", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "registrar", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "registrar", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "ip_address", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "ip_address", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "contact_email", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "contact_email", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "country_code", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "country_code", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "hosting_provider", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "hosting_provider", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "mx_records", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "mx_records", + "orgType": "", + "required": false, + "script": "", + "selectValues": [], + "type": "longText", + "width": 150 + }, + { + "displayName": "nameservers", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "nameservers", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "longText", + "width": 150 + } + ], + "content": false, + "defaultRows": [ + {} + ], + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelentitycontent", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Entity Content", + "neverSetAsRequired": false, + "openEnded": true, + "orgType": "grid", + "ownerOnly": false, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "placeholder": "", + "pretty_name": "Doppel Entity Content", + "propagationLabels": [ + "all" + ], + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "grid", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_State.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_State.json new file mode 100644 index 000000000000..a502d8b81194 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Entity_State.json @@ -0,0 +1,68 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": [], + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelentitystate", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelentitystate", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Entity State", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "singleSelect", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "Doppel Entity State", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": [ + "", + "active", + "parked", + "down" + ], + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "singleSelect", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Link.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Link.json new file mode 100644 index 000000000000..611996069f0f --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Link.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppellink", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppellink", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Link", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "url", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Notes.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Notes.json new file mode 100644 index 000000000000..9a95515487b7 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Notes.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelnotes", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelnotes", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Notes", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "shortText", + "ownerOnly": true, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "ce08360d623c7147d2e224b52c30bf2e", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Platform.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Platform.json new file mode 100644 index 000000000000..88534a30af60 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Platform.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelplatform", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelplatform", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Platform", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Product.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Product.json new file mode 100644 index 000000000000..3e13068fb11f --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Product.json @@ -0,0 +1,72 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": [], + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelproduct", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelproduct", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Product", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "singleSelect", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "Doppel Product", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": [ + "", + "domains", + "social_media", + "mobile_apps", + "ecommerce", + "crypto", + "email", + "paid_ads" + ], + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "singleSelect", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Queue_State.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Queue_State.json new file mode 100644 index 000000000000..20bb352696ef --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Queue_State.json @@ -0,0 +1,71 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelqueuestate", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelqueuestate", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Queue State", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": [ + "", + "doppel_review", + "needs_confirmation", + "actioned", + "archived", + "monitoring", + "taken_down" + ], + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "singleSelect", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Severity.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Severity.json new file mode 100644 index 000000000000..f87389ffdef4 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Severity.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelseverity", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelseverity", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Severity", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Source.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Source.json new file mode 100644 index 000000000000..665df198126f --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Source.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppelsource", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppelsource", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Source", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Tags.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Tags.json new file mode 100644 index 000000000000..24846e11fda8 --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Tags.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppeltags", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppeltags", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Tags", + "neverSetAsRequired": false, + "openEnded": true, + "orgType": "", + "ownerOnly": false, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": [], + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "multiSelect", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidentfield/incidentfield-Doppel_Uploaded_By.json b/Packs/Doppel/incidentfield/incidentfield-Doppel_Uploaded_By.json new file mode 100644 index 000000000000..f3ea72f821ac --- /dev/null +++ b/Packs/Doppel/incidentfield/incidentfield-Doppel_Uploaded_By.json @@ -0,0 +1,63 @@ +{ + "XDRBuiltInField": false, + "XsiamIncidentFieldExtraData": { + "incidentsFilter": null, + "slaGoals": null, + "slaTimer": null, + "timerConditions": null + }, + "aliasTo": "", + "aliases": null, + "associatedToAll": true, + "associatedTypes": null, + "autoCompleteTags": null, + "breachScript": "", + "cacheVersn": 0, + "caseInsensitive": true, + "cliName": "doppeluploadedby", + "closeForm": false, + "columns": null, + "content": false, + "defaultRows": null, + "definitionId": "", + "description": "", + "editForm": true, + "fieldCalcScript": "", + "fromServerVersion": "", + "group": 0, + "hidden": false, + "id": "incident_doppeluploadedby", + "ipVersion": "", + "isReadOnly": false, + "itemVersion": "", + "locked": false, + "mergeStrategy": "", + "name": "Doppel Uploaded By", + "neverSetAsRequired": false, + "openEnded": false, + "orgType": "", + "ownerOnly": true, + "packID": "aba8d875-96b4-472e-8608-84cba2ece652", + "packName": "Incident Fields", + "placeholder": "", + "pretty_name": "", + "required": false, + "runScriptAfterUpdate": false, + "script": "", + "selectValues": null, + "selectValuesMap": null, + "sla": 0, + "system": false, + "systemAssociatedTypes": null, + "template": "", + "threshold": 72, + "toServerVersion": "", + "type": "shortText", + "unmapped": false, + "unsearchable": false, + "useAsKpi": false, + "validatedError": "", + "validationRegex": "", + "version": -1, + "x2_fields": "" +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Crypto.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Crypto.json new file mode 100644 index 000000000000..2cc800c80041 --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Crypto.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#CD034C", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Crypto", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Crypto", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Domains.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Domains.json new file mode 100644 index 000000000000..d1d3675245e9 --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Domains.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#9FA8DA", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Domains", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Domains", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Ecommerce.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Ecommerce.json new file mode 100644 index 000000000000..367052f1c4da --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Ecommerce.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#4B897A", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Ecommerce", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Ecommerce", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Email.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Email.json new file mode 100644 index 000000000000..0c7a8688d05e --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Email.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#7D28A7", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Email", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Email", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Mobile_Apps.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Mobile_Apps.json new file mode 100644 index 000000000000..57cdee98f8ad --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Mobile_Apps.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#3D8EB3", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Mobile_Apps", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Mobile_Apps", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Paid_Ads.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Paid_Ads.json new file mode 100644 index 000000000000..64783f73e9bb --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Paid_Ads.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#E46BCD", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Paid_Ads", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Paid_Ads", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Social_Media.json b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Social_Media.json new file mode 100644 index 000000000000..1e8779b66c9e --- /dev/null +++ b/Packs/Doppel/incidenttype/incidenttype-Doppel_Alert_Social_Media.json @@ -0,0 +1,38 @@ +{ + "autorun": false, + "cacheVersn": 0, + "closureScript": "", + "color": "#EEC1C1", + "days": 0, + "daysR": 0, + "default": false, + "definitionId": "", + "detached": false, + "disabled": false, + "extractSettings": { + "fieldCliNameToExtractSettings": {}, + "mode": "Specific" + }, + "fromServerVersion": "", + "hours": 0, + "hoursR": 0, + "id": "Doppel Alert Social_Media", + "itemVersion": "", + "layout": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "locked": false, + "name": "Doppel Alert Social_Media", + "onChangeRepAlg": 0, + "packID": "248d399d-20e5-4697-8896-6f05664b8187", + "packName": "Doppel_Incident_Classifier Contribution Pack", + "preProcessingScript": "", + "propagationLabels": [ + "all" + ], + "readonly": false, + "reputationCalc": 0, + "system": false, + "toServerVersion": "", + "version": -1, + "weeks": 0, + "weeksR": 0 +} \ No newline at end of file diff --git a/Packs/Doppel/layoutscontainer/layoutscontainer-Doppel_Incident_Layout.json b/Packs/Doppel/layoutscontainer/layoutscontainer-Doppel_Incident_Layout.json new file mode 100644 index 000000000000..540b1bfd852f --- /dev/null +++ b/Packs/Doppel/layoutscontainer/layoutscontainer-Doppel_Incident_Layout.json @@ -0,0 +1,902 @@ +{ + "cacheVersn": 0, + "close": null, + "definitionId": "", + "description": "", + "detached": false, + "details": null, + "detailsV2": { + "TypeName": "", + "tabs": [ + { + "id": "summary", + "name": "Legacy Summary", + "type": "summary" + }, + { + "id": "caseinfoid", + "name": "Incident Info", + "sections": [ + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-fce71720-98b0-11e9-97d7-ed26ef9e46c8", + "isVisible": true, + "items": [ + { + "endCol": 2, + "fieldId": "type", + "height": 26, + "id": "incident-type-field", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "severity", + "height": 26, + "id": "incident-severity-field", + "index": 1, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "owner", + "height": 26, + "id": "incident-owner-field", + "index": 2, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "sourcebrand", + "height": 26, + "id": "incident-sourceBrand-field", + "index": 4, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "sourceinstance", + "height": 26, + "id": "incident-sourceInstance-field", + "index": 5, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "playbookid", + "height": 26, + "id": "incident-playbookId-field", + "index": 6, + "sectionItemType": "field", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Case Details", + "static": false, + "w": 1, + "x": 0, + "y": 0 + }, + { + "h": 2, + "i": "caseinfoid-61263cc0-98b1-11e9-97d7-ed26ef9e46c8", + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Notes", + "static": false, + "type": "notes", + "w": 1, + "x": 2, + "y": 0 + }, + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-6aabad20-98b1-11e9-97d7-ed26ef9e46c8", + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Work Plan", + "static": false, + "type": "workplan", + "w": 1, + "x": 1, + "y": 0 + }, + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-770ec200-98b1-11e9-97d7-ed26ef9e46c8", + "isVisible": true, + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Linked Incidents", + "static": false, + "type": "linkedIncidents", + "w": 1, + "x": 1, + "y": 6 + }, + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-842632c0-98b1-11e9-97d7-ed26ef9e46c8", + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Child Incidents", + "static": false, + "type": "childInv", + "w": 1, + "x": 2, + "y": 4 + }, + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-4a31afa0-98ba-11e9-a519-93a53c759fe0", + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Evidence", + "static": false, + "type": "evidence", + "w": 1, + "x": 2, + "y": 2 + }, + { + "displayType": "ROW", + "h": 2, + "hideName": false, + "i": "caseinfoid-7717e580-9bed-11e9-9a3f-8b4b2158e260", + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Team Members", + "static": false, + "type": "team", + "w": 1, + "x": 2, + "y": 6 + }, + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-7ce69dd0-a07f-11e9-936c-5395a1acf11e", + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Indicators", + "query": "", + "queryType": "input", + "static": false, + "type": "indicators", + "w": 2, + "x": 0, + "y": 4 + }, + { + "displayType": "CARD", + "h": 2, + "i": "caseinfoid-ac32f620-a0b0-11e9-b27f-13ae1773d289", + "items": [ + { + "endCol": 1, + "fieldId": "occurred", + "height": 26, + "id": "incident-occurred-field", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 1, + "fieldId": "dbotmodified", + "height": 26, + "id": "incident-modified-field", + "index": 1, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "dbotduedate", + "height": 26, + "id": "incident-dueDate-field", + "index": 2, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "dbotcreated", + "height": 26, + "id": "incident-created-field", + "index": 0, + "sectionItemType": "field", + "startCol": 1 + }, + { + "endCol": 2, + "fieldId": "dbotclosed", + "height": 26, + "id": "incident-closed-field", + "index": 1, + "sectionItemType": "field", + "startCol": 1 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Timeline Information", + "static": false, + "w": 1, + "x": 0, + "y": 2 + }, + { + "displayType": "ROW", + "h": 2, + "i": "caseinfoid-88e6bf70-a0b1-11e9-b27f-13ae1773d289", + "isVisible": true, + "items": [ + { + "endCol": 2, + "fieldId": "dbotclosed", + "height": 26, + "id": "incident-dbotClosed-field", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "closereason", + "height": 26, + "id": "incident-closeReason-field", + "index": 1, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "closenotes", + "height": 26, + "id": "incident-closeNotes-field", + "index": 2, + "sectionItemType": "field", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Closing Information", + "static": false, + "w": 1, + "x": 0, + "y": 6 + }, + { + "displayType": "CARD", + "h": 2, + "i": "caseinfoid-e54b1770-a0b1-11e9-b27f-13ae1773d289", + "isVisible": true, + "items": [ + { + "endCol": 2, + "fieldId": "details", + "height": 26, + "id": "incident-details-field", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Investigation Data", + "static": false, + "w": 1, + "x": 1, + "y": 2 + } + ], + "type": "custom" + }, + { + "id": "warRoom", + "name": "War Room", + "type": "warRoom" + }, + { + "id": "workPlan", + "name": "Work Plan", + "type": "workPlan" + }, + { + "id": "evidenceBoard", + "name": "Evidence Board", + "type": "evidenceBoard" + }, + { + "id": "canvas", + "name": "Canvas", + "type": "canvas" + }, + { + "hidden": false, + "id": "chtyrfjhpp", + "name": "Doppel Alert Data", + "sections": [ + { + "description": "Details about the alert fetched from the Doppel platform", + "displayType": "ROW", + "h": 4, + "hideName": false, + "i": "chtyrfjhpp-6cccc2bd-1312-44b7-8ab4-2e23aae407a7", + "items": [ + { + "endCol": 2, + "fieldId": "doppelalertid", + "height": 26, + "id": "a6ce5d89-5115-4f48-b430-d33799081c52", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelseverity", + "height": 26, + "id": "2feff9ff-9c80-4aed-8866-abf3892a2fa6", + "index": 1, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelbrand", + "height": 26, + "id": "31921aa2-3b76-4b3a-a6d3-5f1e43968dcb", + "index": 2, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "brand", + "height": 26, + "id": "5f7dc687-7405-4465-a603-fbab6c1e4686", + "index": 3, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "entitystate", + "height": 26, + "id": "dbd066f4-285b-4a9a-9467-50671f5a2915", + "index": 3, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "queuestate", + "height": 26, + "id": "27e8a019-7828-4406-93b9-dbf951f71a7a", + "index": 3, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "product", + "height": 26, + "id": "079c3ec9-f0a9-4673-8aa5-4e4c9e9e79cf", + "index": 3, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "platform", + "height": 26, + "id": "d2ad1638-1c98-4e96-a52e-561c72297fa6", + "index": 3, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppellink", + "height": 26, + "id": "128d659a-5c63-458c-a96b-0240bbeae842", + "index": 3, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelnotes", + "height": 26, + "id": "a144e1c1-b303-4dcb-b56d-d89508e3ccd1", + "index": 4, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelplatform", + "height": 26, + "id": "30e0153f-6343-44eb-b9ca-c4dea0e82161", + "index": 5, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelproduct", + "height": 26, + "id": "edcef656-d794-4f5c-9fed-5b583384d3ea", + "index": 6, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelqueuestate", + "height": 26, + "id": "820d34e6-33ef-4990-9345-865772efc7a1", + "index": 7, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelcreatedat", + "height": 26, + "id": "270e7ec6-6db4-43ce-9f88-6d16e08649f9", + "index": 8, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelsource", + "height": 26, + "id": "bd17abba-3f1f-4159-ab0e-9645d32c3c66", + "index": 10, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppeltags", + "height": 26, + "id": "98baebf3-14e6-445c-ae21-91664a795ade", + "index": 10, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppeluploadedby", + "height": 26, + "id": "baaf1629-2c6e-4f54-9970-16aac380b407", + "index": 11, + "sectionItemType": "field", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Alert Details", + "static": false, + "w": 1, + "x": 0, + "y": 0 + }, + { + "columns": [ + { + "displayName": "domain", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "domain", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 182 + }, + { + "displayName": "registrar", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "registrar", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 124 + }, + { + "displayName": "ip_address", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "ip_address", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 118 + }, + { + "displayName": "contact_email", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "contact_email", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 150 + }, + { + "displayName": "country_code", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "country_code", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 122 + }, + { + "displayName": "hosting_provider", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "hosting_provider", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "shortText", + "width": 151 + }, + { + "displayName": "mx_records", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "mx_records", + "orgType": "", + "required": false, + "script": "", + "selectValues": [], + "type": "longText", + "width": 120 + }, + { + "displayName": "nameservers", + "fieldCalcScript": "", + "isDefault": true, + "isReadOnly": false, + "key": "nameservers", + "orgType": "", + "required": false, + "script": "", + "selectValues": null, + "type": "longText", + "width": 264 + } + ], + "description": "Details about the entity received from Doppel", + "displayType": "ROW", + "h": 3, + "hideName": false, + "i": "chtyrfjhpp-db82b87b-a67c-4e81-8e33-29dae245ea1b", + "items": [ + { + "endCol": 2, + "fieldId": "entitycontentrootdomainregistrar", + "height": 26, + "id": "f9107076-5e95-4c45-83ef-9c014570de24", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelentity", + "height": 26, + "id": "1bfc1bbf-f0cd-4b97-af72-0c2dc7db87e6", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + }, + { + "endCol": 2, + "fieldId": "doppelentitystate", + "height": 26, + "id": "f36bf862-77df-4d6d-be09-9079492ef44c", + "index": 1, + "sectionItemType": "field", + "startCol": 0 + }, + { + "dropEffect": "move", + "endCol": 4, + "fieldId": "doppelentitycontent", + "height": 106, + "id": "4c377f5a-6dcf-4122-8112-4fb557f4642b", + "index": 2, + "listId": "chtyrfjhpp-db82b87b-a67c-4e81-8e33-29dae245ea1b", + "sectionItemType": "field", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Entity Content", + "static": false, + "w": 2, + "x": 1, + "y": 0 + }, + { + "description": "Shows the Audit log history for the particular Alert", + "displayType": "ROW", + "h": 4, + "hideName": false, + "i": "chtyrfjhpp-07b54ffa-28e8-4216-b4d2-1d0590a0affe", + "items": [ + { + "endCol": 4, + "fieldId": "doppelauditlogs", + "height": 106, + "id": "e211b223-1b57-4d29-b3cb-1bd7b7fd6475", + "index": 0, + "sectionItemType": "field", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Audit Log History", + "static": false, + "w": 2, + "x": 1, + "y": 3 + }, + { + "description": "Provides the Action buttons to Modify the Queue_State value with a suitable comment", + "displayType": "ROW", + "h": 3, + "hideName": false, + "i": "chtyrfjhpp-46dd786d-8134-4c56-ab8e-f630302f49ee", + "items": [ + { + "args": { + "alert_id": { + "simple": "${incident.doppelalertid}" + }, + "comment": { + "simple": " ", + "userMarkedRequired": true + }, + "entity_state": { + "simple": "${incident.doppelentitystate}", + "userMarkedRequired": false + }, + "queue_state": { + "simple": "actioned", + "userMarkedRequired": false + }, + "using": { + "simple": "Doppel_Mirroring_Test_instance_1" + } + }, + "endCol": 2, + "fieldId": "", + "height": 44, + "id": "5519ca81-081e-4b00-9d88-fadabc959528", + "index": 0, + "name": "Request Takedown", + "scriptId": "Doppel_Mirroring_Test|||doppel-update-alert", + "sectionItemType": "button", + "startCol": 0 + }, + { + "args": { + "alert_id": { + "simple": "${incident.doppelalertid}" + }, + "comment": { + "simple": "Safelist this Asset, we own it.", + "userMarkedRequired": true + }, + "entity_state": { + "simple": "${incident.doppelentitystate}" + }, + "queue_state": { + "simple": "doppel_review" + }, + "using": { + "simple": "Doppel_Mirroring_Test_instance_1" + } + }, + "dropEffect": "move", + "endCol": 2, + "fieldId": "", + "height": 44, + "id": "5d2778f2-8950-47da-a023-4f81bf3c5d41", + "index": 1, + "listId": "chtyrfjhpp-46dd786d-8134-4c56-ab8e-f630302f49ee", + "name": "Safelist the Asset", + "scriptId": "Doppel_Mirroring_Test|||doppel-update-alert", + "sectionItemType": "button", + "startCol": 0 + }, + { + "args": { + "alert_id": { + "simple": "${incident.doppelalertid}" + }, + "comment": { + "simple": "Throw out this Alert later \nas this is a Noise.", + "userMarkedRequired": true + }, + "entity_state": { + "simple": "${incident.doppelentitystate}", + "userMarkedRequired": false + }, + "queue_state": { + "simple": "doppel_review" + }, + "using": { + "simple": "Doppel_Mirroring_Test_instance_1" + } + }, + "dropEffect": "move", + "endCol": 2, + "fieldId": "", + "height": 44, + "id": "78e9d1ce-d4b5-46bc-908a-200338c3dc97", + "index": 2, + "listId": "chtyrfjhpp-46dd786d-8134-4c56-ab8e-f630302f49ee", + "name": "False Positive", + "scriptId": "Doppel_Mirroring_Test|||doppel-update-alert", + "sectionItemType": "button", + "startCol": 0 + }, + { + "args": { + "alert_id": { + "simple": "${incident.doppelalertid}" + }, + "comment": { + "simple": " ", + "userMarkedRequired": true + }, + "entity_state": { + "simple": "${incident.doppelentitystate}", + "userMarkedRequired": false + }, + "queue_state": { + "simple": "archived" + }, + "using": { + "simple": "Doppel_Mirroring_Test_instance_1" + } + }, + "endCol": 2, + "fieldId": "", + "height": 44, + "id": "1c5f3d2d-8098-42b7-bfb1-d7fb61f3438e", + "index": 3, + "name": "Archive", + "scriptId": "Doppel_Mirroring_Test|||doppel-update-alert", + "sectionItemType": "button", + "startCol": 0 + }, + { + "args": { + "alert_id": { + "simple": "${incident.doppelalertid}" + }, + "comment": { + "simple": " ", + "userMarkedRequired": true + }, + "entity_state": { + "simple": "${incident.doppelentitystate}", + "userMarkedRequired": false + }, + "queue_state": { + "simple": "monitoring" + }, + "using": { + "simple": "Doppel_Mirroring_Test_instance_1" + } + }, + "dropEffect": "move", + "endCol": 2, + "fieldId": "", + "height": 44, + "id": "e4c1e702-00ca-4e8d-8c92-dfc2a2d8bec9", + "index": 4, + "listId": "chtyrfjhpp-46dd786d-8134-4c56-ab8e-f630302f49ee", + "name": "Monitor", + "scriptId": "Doppel_Mirroring_Test|||doppel-update-alert", + "sectionItemType": "button", + "startCol": 0 + } + ], + "maxW": 3, + "minH": 1, + "moved": false, + "name": "Actions", + "static": false, + "w": 1, + "x": 0, + "y": 4 + } + ], + "type": "custom" + } + ] + }, + "edit": null, + "fromServerVersion": "0.0.0", + "group": "incident", + "id": "21fa7f00-205f-4c4d-80c6-c858e09f1e0a", + "indicatorsDetails": null, + "indicatorsQuickView": null, + "itemVersion": "1.0.0", + "locked": false, + "mobile": null, + "name": "Doppel Incident Layout", + "packID": "", + "packName": "Doppel", + "propagationLabels": [ + "all" + ], + "quickView": null, + "quickViewV2": null, + "system": false, + "toServerVersion": "99.99.99", + "version": -1 +} \ No newline at end of file