From fd9ffba7ded57da3dfcf1ab74f514368d6bdf509 Mon Sep 17 00:00:00 2001 From: tccontre Date: Mon, 15 May 2023 09:35:23 +0200 Subject: [PATCH 1/5] Azure_AD_Locking_Playbook --- playbooks/Azure_AD_Locking_Account.json | 277 ++++++++++++++++++++++++ playbooks/Azure_AD_Locking_Account.png | Bin 0 -> 92295 bytes playbooks/Azure_AD_Locking_Account.py | 165 ++++++++++++++ playbooks/Azure_AD_Locking_Account.yml | 24 ++ 4 files changed, 466 insertions(+) create mode 100644 playbooks/Azure_AD_Locking_Account.json create mode 100644 playbooks/Azure_AD_Locking_Account.png create mode 100644 playbooks/Azure_AD_Locking_Account.py create mode 100644 playbooks/Azure_AD_Locking_Account.yml diff --git a/playbooks/Azure_AD_Locking_Account.json b/playbooks/Azure_AD_Locking_Account.json new file mode 100644 index 0000000000..1aea0c43c5 --- /dev/null +++ b/playbooks/Azure_AD_Locking_Account.json @@ -0,0 +1,277 @@ +{ + "blockly": false, + "blockly_xml": "", + "category": "Account Locking", + "coa": { + "data": { + "description": "Accepts user name that needs to be disabled in Azure Active Directory. Generates an observable output based on the status of account locking or disabling.", + "edges": [ + { + "id": "port_0_to_port_2", + "sourceNode": "0", + "sourcePort": "0_out", + "targetNode": "2", + "targetPort": "2_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_2_to_port_3", + "sourceNode": "2", + "sourcePort": "2_out", + "targetNode": "3", + "targetPort": "3_in" + }, + { + "id": "port_4_to_port_1", + "sourceNode": "4", + "sourcePort": "4_out", + "targetNode": "1", + "targetPort": "1_in" + }, + { + "id": "port_3_to_port_5", + "sourceNode": "3", + "sourcePort": "3_out", + "targetNode": "5", + "targetPort": "5_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_5_to_port_4", + "sourceNode": "5", + "sourcePort": "5_out", + "targetNode": "4", + "targetPort": "4_in" + } + ], + "hash": "b96df0d674917e6a8082cd6c447eeeaaf80330a6", + "nodes": { + "0": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_start", + "id": "0", + "type": "start" + }, + "errors": {}, + "id": "0", + "type": "start", + "warnings": {}, + "x": 20, + "y": 0 + }, + "1": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_finish", + "id": "1", + "type": "end" + }, + "errors": {}, + "id": "1", + "type": "end", + "warnings": {}, + "x": 20, + "y": 860 + }, + "2": { + "data": { + "advanced": { + "customName": "user name filter", + "customNameId": 0, + "description": "Filter user name inputs to route inputs to appropriate actions.", + "join": [], + "note": "Filter user name inputs to route inputs to appropriate actions." + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "playbook_input:user_name", + "value": "" + } + ], + "conditionIndex": 0, + "customName": "user_name_check", + "logic": "and" + } + ], + "functionId": 1, + "functionName": "user_name_filter", + "id": "2", + "type": "filter" + }, + "errors": {}, + "id": "2", + "type": "filter", + "warnings": { + "config": [ + "Reconfigure invalid datapath." + ] + }, + "x": 60, + "y": 140 + }, + "3": { + "data": { + "action": "disable user", + "actionType": "generic", + "advanced": { + "customName": "disable user account", + "customNameId": 0, + "description": "Disable the user attributes for filtered playbook inputs.", + "join": [], + "note": "Disable the user attributes for filtered playbook inputs." + }, + "connector": "Azure AD Graph", + "connectorConfigs": [ + "azure active directory" + ], + "connectorId": "c6d3b801-5c26-4abd-9e89-6d8007e2778f", + "connectorVersion": "v1", + "functionId": 1, + "functionName": "disable_user_account", + "id": "3", + "parameters": { + "user_id": "playbook_input:user_name" + }, + "requiredParameters": [ + { + "data_type": "string", + "field": "user_id" + } + ], + "type": "action" + }, + "errors": {}, + "id": "3", + "type": "action", + "warnings": { + "config": [ + "Reconfigure invalid datapath." + ] + }, + "x": 0, + "y": 328 + }, + "4": { + "data": { + "advanced": { + "customName": "username observables", + "customNameId": 0, + "description": "Format a normalized output for each user.", + "join": [], + "note": "Format a normalized output for each user." + }, + "functionId": 1, + "functionName": "username_observables", + "id": "4", + "inputParameters": [ + "disable_user_account:action_result.parameter.user_id", + "disable_user_account:action_result.status", + "disable_user_account:action_result.message" + ], + "outputVariables": [ + "observable_array" + ], + "type": "code" + }, + "errors": {}, + "id": "4", + "type": "code", + "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message):\n user_acc_status = {\n \"account_type\": \"Azure AD Account\",\n \"user\": user_id,\n \"disable_message\": msg,\n \"disable_status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", + "warnings": {}, + "x": 0, + "y": 680 + }, + "5": { + "data": { + "advanced": { + "customName": "filter disable result", + "customNameId": 0, + "description": "filter check if the user is disabled successfully.", + "join": [], + "note": "filter check if the user is disabled successfully." + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "==", + "param": "disable_user_account:action_result.status", + "value": "success" + } + ], + "conditionIndex": 0, + "customName": "disabled_success", + "logic": "and" + } + ], + "functionId": 2, + "functionName": "filter_disable_result", + "id": "5", + "type": "filter" + }, + "errors": {}, + "id": "5", + "type": "filter", + "warnings": {}, + "x": 60, + "y": 500 + } + }, + "notes": "Inputs: users\nInteractions: Azure AD Graph\nActions: Account Locking/Disabling\nOutputs: observables" + }, + "input_spec": [ + { + "contains": [ + "user name" + ], + "description": "A user name provided to be disable - Azure AD", + "name": "user_name" + } + ], + "output_spec": [ + { + "contains": [], + "datapaths": [ + "username_observables:custom_function:observable_array" + ], + "deduplicate": false, + "description": "An array of observable dictionaries ", + "metadata": {}, + "name": "observable" + } + ], + "playbook_type": "data", + "python_version": "3", + "schema": "5.0.9", + "version": "6.0.0.114895" + }, + "create_time": "2023-05-08T15:56:10.320874+00:00", + "draft_mode": false, + "labels": [ + "*" + ], + "tags": [ + "user", + "azure_ad_graph", + "disable_account", + "D3-AL" + ] +} \ No newline at end of file diff --git a/playbooks/Azure_AD_Locking_Account.png b/playbooks/Azure_AD_Locking_Account.png new file mode 100644 index 0000000000000000000000000000000000000000..61329eb1643eac745182b8e45d16bf74f3e515f9 GIT binary patch literal 92295 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

EGv=$=kR3I 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≈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 Date: Mon, 15 May 2023 11:48:34 +0200 Subject: [PATCH 2/5] Azure_AD_Locking_Playbook --- playbooks/Azure_AD_Locking_Account.json | 12 ++++++------ playbooks/Azure_AD_Locking_Account.py | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/playbooks/Azure_AD_Locking_Account.json b/playbooks/Azure_AD_Locking_Account.json index 1aea0c43c5..f8805d358d 100644 --- a/playbooks/Azure_AD_Locking_Account.json +++ b/playbooks/Azure_AD_Locking_Account.json @@ -52,7 +52,7 @@ "targetPort": "4_in" } ], - "hash": "b96df0d674917e6a8082cd6c447eeeaaf80330a6", + "hash": "29d9b93910aa11e2067d4aba25b0bf98bbe04b63", "nodes": { "0": { "data": { @@ -67,8 +67,8 @@ "id": "0", "type": "start", "warnings": {}, - "x": 20, - "y": 0 + "x": 19.999999999999986, + "y": -6.394884621840902e-14 }, "1": { "data": { @@ -83,7 +83,7 @@ "id": "1", "type": "end", "warnings": {}, - "x": 20, + "x": 19.999999999999986, "y": 860 }, "2": { @@ -193,7 +193,7 @@ "errors": {}, "id": "4", "type": "code", - "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message):\n user_acc_status = {\n \"account_type\": \"Azure AD Account\",\n \"user\": user_id,\n \"disable_message\": msg,\n \"disable_status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", + "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message):\n user_acc_status = {\n \"account_type\": \"Azure AD Account\",\n \"user\": user_id,\n \"message\": msg,\n \"status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", "warnings": {}, "x": 0, "y": 680 @@ -263,7 +263,7 @@ "schema": "5.0.9", "version": "6.0.0.114895" }, - "create_time": "2023-05-08T15:56:10.320874+00:00", + "create_time": "2023-05-15T09:45:08.733731+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/Azure_AD_Locking_Account.py b/playbooks/Azure_AD_Locking_Account.py index ea86ab15a9..b681f0812a 100644 --- a/playbooks/Azure_AD_Locking_Account.py +++ b/playbooks/Azure_AD_Locking_Account.py @@ -103,11 +103,11 @@ def username_observables(action=None, success=None, container=None, results=None user_acc_status = { "account_type": "Azure AD Account", "user": user_id, - "disable_message": msg, - "disable_status": status + "message": msg, + "status": status } - username_observables__observable_array.append(user_acc_status) - #phantom.debug(username_observables__observable_array) + username_observables__observable_array.append(user_acc_status) + #phantom.debug(username_observables__observable_array) ################################################################################ ## Custom Code End ################################################################################ From 21f8892645fa6b7352c18828450833d10690dd1a Mon Sep 17 00:00:00 2001 From: tccontre Date: Mon, 15 May 2023 12:10:27 +0200 Subject: [PATCH 3/5] Azure_AD_Locking_Playbook --- playbooks/Azure_AD_Locking_Account.json | 6 +++--- playbooks/Azure_AD_Locking_Account.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/playbooks/Azure_AD_Locking_Account.json b/playbooks/Azure_AD_Locking_Account.json index f8805d358d..20d39a90d9 100644 --- a/playbooks/Azure_AD_Locking_Account.json +++ b/playbooks/Azure_AD_Locking_Account.json @@ -52,7 +52,7 @@ "targetPort": "4_in" } ], - "hash": "29d9b93910aa11e2067d4aba25b0bf98bbe04b63", + "hash": "5c2ddae1fabc493f701b82c48c16d90f0be4c732", "nodes": { "0": { "data": { @@ -193,7 +193,7 @@ "errors": {}, "id": "4", "type": "code", - "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message):\n user_acc_status = {\n \"account_type\": \"Azure AD Account\",\n \"user\": user_id,\n \"message\": msg,\n \"status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", + "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message):\n user_acc_status = {\n \"type\": \"Azure AD Account\",\n \"value\": user_id,\n \"message\": msg,\n \"status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", "warnings": {}, "x": 0, "y": 680 @@ -263,7 +263,7 @@ "schema": "5.0.9", "version": "6.0.0.114895" }, - "create_time": "2023-05-15T09:45:08.733731+00:00", + "create_time": "2023-05-15T10:08:21.105360+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/Azure_AD_Locking_Account.py b/playbooks/Azure_AD_Locking_Account.py index b681f0812a..b45b81b9cb 100644 --- a/playbooks/Azure_AD_Locking_Account.py +++ b/playbooks/Azure_AD_Locking_Account.py @@ -101,8 +101,8 @@ def username_observables(action=None, success=None, container=None, results=None for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message): user_acc_status = { - "account_type": "Azure AD Account", - "user": user_id, + "type": "Azure AD Account", + "value": user_id, "message": msg, "status": status } From 8b59b9e08e061e7026231c0834e2b7e530755155 Mon Sep 17 00:00:00 2001 From: tccontre Date: Thu, 25 May 2023 10:39:23 +0200 Subject: [PATCH 4/5] Azure_AD_Locking_Playbook --- ...unt.json => Azure_AD_Account_Locking.json} | 33 ++++++++---------- ...count.png => Azure_AD_Account_Locking.png} | Bin ...Account.py => Azure_AD_Account_Locking.py} | 22 ++++++------ ...count.yml => Azure_AD_Account_Locking.yml} | 0 4 files changed, 26 insertions(+), 29 deletions(-) rename playbooks/{Azure_AD_Locking_Account.json => Azure_AD_Account_Locking.json} (88%) rename playbooks/{Azure_AD_Locking_Account.png => Azure_AD_Account_Locking.png} (100%) rename playbooks/{Azure_AD_Locking_Account.py => Azure_AD_Account_Locking.py} (82%) rename playbooks/{Azure_AD_Locking_Account.yml => Azure_AD_Account_Locking.yml} (100%) diff --git a/playbooks/Azure_AD_Locking_Account.json b/playbooks/Azure_AD_Account_Locking.json similarity index 88% rename from playbooks/Azure_AD_Locking_Account.json rename to playbooks/Azure_AD_Account_Locking.json index 20d39a90d9..6b9a92df22 100644 --- a/playbooks/Azure_AD_Locking_Account.json +++ b/playbooks/Azure_AD_Account_Locking.json @@ -52,7 +52,7 @@ "targetPort": "4_in" } ], - "hash": "5c2ddae1fabc493f701b82c48c16d90f0be4c732", + "hash": "76828347e693a60201c3b9342e6f493ee5253566", "nodes": { "0": { "data": { @@ -68,7 +68,7 @@ "type": "start", "warnings": {}, "x": 19.999999999999986, - "y": -6.394884621840902e-14 + "y": -3.197442310920451e-13 }, "1": { "data": { @@ -101,7 +101,7 @@ { "conditionIndex": 0, "op": "!=", - "param": "playbook_input:user_name", + "param": "playbook_input:user", "value": "" } ], @@ -139,7 +139,7 @@ }, "connector": "Azure AD Graph", "connectorConfigs": [ - "azure active directory" + "azure_ad_graph" ], "connectorId": "c6d3b801-5c26-4abd-9e89-6d8007e2778f", "connectorVersion": "v1", @@ -147,7 +147,7 @@ "functionName": "disable_user_account", "id": "3", "parameters": { - "user_id": "playbook_input:user_name" + "user_id": "filtered-data:user_name_filter:condition_1:playbook_input:user" }, "requiredParameters": [ { @@ -160,13 +160,9 @@ "errors": {}, "id": "3", "type": "action", - "warnings": { - "config": [ - "Reconfigure invalid datapath." - ] - }, + "warnings": {}, "x": 0, - "y": 328 + "y": 320 }, "4": { "data": { @@ -181,9 +177,9 @@ "functionName": "username_observables", "id": "4", "inputParameters": [ - "disable_user_account:action_result.parameter.user_id", - "disable_user_account:action_result.status", - "disable_user_account:action_result.message" + "filtered-data:filter_disable_result:condition_1:disable_user_account:action_result.parameter.user_id", + "filtered-data:filter_disable_result:condition_1:disable_user_account:action_result.status", + "filtered-data:filter_disable_result:condition_1:disable_user_account:action_result.message" ], "outputVariables": [ "observable_array" @@ -193,7 +189,7 @@ "errors": {}, "id": "4", "type": "code", - "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message):\n user_acc_status = {\n \"type\": \"Azure AD Account\",\n \"value\": user_id,\n \"message\": msg,\n \"status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", + "userCode": "\n # Write your custom code here...\n username_observables__observable_array = []\n \n for user_id, status, msg in zip(filtered_result_0_parameter_user_id, filtered_result_0_status, filtered_result_0_message):\n user_acc_status = {\n \"type\": \"Azure AD Account\",\n \"value\": user_id,\n \"message\": msg,\n \"status\": status\n }\n username_observables__observable_array.append(user_acc_status)\n #phantom.debug(username_observables__observable_array)\n", "warnings": {}, "x": 0, "y": 680 @@ -240,10 +236,11 @@ "input_spec": [ { "contains": [ - "user name" + "user name", + "azure user principal name" ], "description": "A user name provided to be disable - Azure AD", - "name": "user_name" + "name": "user" } ], "output_spec": [ @@ -263,7 +260,7 @@ "schema": "5.0.9", "version": "6.0.0.114895" }, - "create_time": "2023-05-15T10:08:21.105360+00:00", + "create_time": "2023-05-25T07:40:09.337037+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/Azure_AD_Locking_Account.png b/playbooks/Azure_AD_Account_Locking.png similarity index 100% rename from playbooks/Azure_AD_Locking_Account.png rename to playbooks/Azure_AD_Account_Locking.png diff --git a/playbooks/Azure_AD_Locking_Account.py b/playbooks/Azure_AD_Account_Locking.py similarity index 82% rename from playbooks/Azure_AD_Locking_Account.py rename to playbooks/Azure_AD_Account_Locking.py index b45b81b9cb..725e08f17f 100644 --- a/playbooks/Azure_AD_Locking_Account.py +++ b/playbooks/Azure_AD_Account_Locking.py @@ -29,7 +29,7 @@ def user_name_filter(action=None, success=None, container=None, results=None, ha matched_artifacts_1, matched_results_1 = phantom.condition( container=container, conditions=[ - ["playbook_input:user_name", "!=", ""] + ["playbook_input:user", "!=", ""] ], name="user_name_filter:condition_1") @@ -50,15 +50,15 @@ def disable_user_account(action=None, success=None, container=None, results=None # Disable the user attributes for filtered playbook inputs. ################################################################################ - playbook_input_user_name = phantom.collect2(container=container, datapath=["playbook_input:user_name"]) + filtered_input_0_user = phantom.collect2(container=container, datapath=["filtered-data:user_name_filter:condition_1:playbook_input:user"]) parameters = [] # build parameters list for 'disable_user_account' call - for playbook_input_user_name_item in playbook_input_user_name: - if playbook_input_user_name_item[0] is not None: + for filtered_input_0_user_item in filtered_input_0_user: + if filtered_input_0_user_item[0] is not None: parameters.append({ - "user_id": playbook_input_user_name_item[0], + "user_id": filtered_input_0_user_item[0], }) ################################################################################ @@ -71,7 +71,7 @@ def disable_user_account(action=None, success=None, container=None, results=None ## Custom Code End ################################################################################ - phantom.act("disable user", parameters=parameters, name="disable_user_account", assets=["azure active directory"], callback=filter_disable_result) + phantom.act("disable user", parameters=parameters, name="disable_user_account", assets=["azure_ad_graph"], callback=filter_disable_result) return @@ -84,11 +84,11 @@ def username_observables(action=None, success=None, container=None, results=None # Format a normalized output for each user. ################################################################################ - disable_user_account_result_data = phantom.collect2(container=container, datapath=["disable_user_account:action_result.parameter.user_id","disable_user_account:action_result.status","disable_user_account:action_result.message"], action_results=results) + filtered_result_0_data_filter_disable_result = phantom.collect2(container=container, datapath=["filtered-data:filter_disable_result:condition_1:disable_user_account:action_result.parameter.user_id","filtered-data:filter_disable_result:condition_1:disable_user_account:action_result.status","filtered-data:filter_disable_result:condition_1:disable_user_account:action_result.message"]) - disable_user_account_parameter_user_id = [item[0] for item in disable_user_account_result_data] - disable_user_account_result_item_1 = [item[1] for item in disable_user_account_result_data] - disable_user_account_result_message = [item[2] for item in disable_user_account_result_data] + filtered_result_0_parameter_user_id = [item[0] for item in filtered_result_0_data_filter_disable_result] + filtered_result_0_status = [item[1] for item in filtered_result_0_data_filter_disable_result] + filtered_result_0_message = [item[2] for item in filtered_result_0_data_filter_disable_result] username_observables__observable_array = None @@ -99,7 +99,7 @@ def username_observables(action=None, success=None, container=None, results=None # Write your custom code here... username_observables__observable_array = [] - for user_id, status, msg in zip(disable_user_account_parameter_user_id, disable_user_account_result_item_1, disable_user_account_result_message): + for user_id, status, msg in zip(filtered_result_0_parameter_user_id, filtered_result_0_status, filtered_result_0_message): user_acc_status = { "type": "Azure AD Account", "value": user_id, diff --git a/playbooks/Azure_AD_Locking_Account.yml b/playbooks/Azure_AD_Account_Locking.yml similarity index 100% rename from playbooks/Azure_AD_Locking_Account.yml rename to playbooks/Azure_AD_Account_Locking.yml From 1f055e5d6d6d51175d0000f7fdfe3715cfa63635 Mon Sep 17 00:00:00 2001 From: tccontre <26181693+tccontre@users.noreply.github.com> Date: Wed, 31 May 2023 17:58:17 +0200 Subject: [PATCH 5/5] Update Azure_AD_Account_Locking.yml --- playbooks/Azure_AD_Account_Locking.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/Azure_AD_Account_Locking.yml b/playbooks/Azure_AD_Account_Locking.yml index 328fdfd88a..8835daf6c5 100644 --- a/playbooks/Azure_AD_Account_Locking.yml +++ b/playbooks/Azure_AD_Account_Locking.yml @@ -1,5 +1,5 @@ name: Azure AD Locking Account -id: f15e4ab7-b057-4225-86ae-c36ab78b50f2 +id: c3c0157d-7da0-46cb-8b97-327ee92f591c version: 1 date: '2023-05-08' author: Teoderick Contreras, Splunk @@ -21,4 +21,4 @@ tags: vpe_type: Modern playbook_fields: [] product: - - Splunk SOAR \ No newline at end of file + - Splunk SOAR