diff --git a/detections/endpoint/disable_defender_antivirus_registry.yml b/detections/endpoint/disable_defender_antivirus_registry.yml index 64c22443d4..bc365d77ff 100644 --- a/detections/endpoint/disable_defender_antivirus_registry.yml +++ b/detections/endpoint/disable_defender_antivirus_registry.yml @@ -12,11 +12,11 @@ description: This particular behavior is typically executed when an adversaries task modifications will occur. During triage, review parallel processes and identify any further file modifications. Endpoint should be isolated. search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) - as lastTime from datamodel=Endpoint.Registry where Registry.registry_path = "*\\Policies\\Microsoft\\Windows - Defender*" Registry.registry_value_name = DisableAntiVirus Registry.registry_value_data - = 0x00000001 by Registry.dest Registry.user Registry.registry_path Registry.registry_value_name - Registry.registry_value_data | `drop_dm_object_name(Registry)` | `security_content_ctime(lastTime)` - | `security_content_ctime(firstTime)` | `disable_defender_antivirus_registry_filter`' + as lastTime from datamodel=Endpoint.Registry where Registry.registry_path = "*\\Policies\\Microsoft\\Windows Defender*" Registry.registry_key_name = DisableAntiVirus Registry.registry_value_name="DWORD (0x00000001)" by Registry.dest Registry.user Registry.registry_path Registry.registry_value_name Registry.registry_value_data +| `drop_dm_object_name(Registry)` +| `security_content_ctime(lastTime)` +| `security_content_ctime(firstTime)` +| `disable_defender_antivirus_registry_filter`' how_to_implement: To successfully implement this search, you need to be ingesting logs with the registry value name, registry path, and registry value data from your endpoints. If you are using Sysmon, you must have at least version 6.0.4 of the diff --git a/detections/experimental/ssa___disable_defender_antivirus_registry.yml b/detections/experimental/ssa___disable_defender_antivirus_registry.yml new file mode 100644 index 0000000000..d63cd977fa --- /dev/null +++ b/detections/experimental/ssa___disable_defender_antivirus_registry.yml @@ -0,0 +1,75 @@ +name: Disable Defender AntiVirus Registry +id: aa4f115a-3024-11ec-9987-acde48001122 +version: 1 +date: '2021-12-08' +author: Bhavin Patel, Splunk +type: TTP +datamodel: +- Endpoint_Registry +description: This particular behavior is typically executed when an adversaries or + malware gains access to an endpoint and beings to perform execution and to evade + detections. Usually, a batch (.bat) will be executed and multiple registry and scheduled + task modifications will occur. During triage, review parallel processes and identify + any further file modifications. Endpoint should be isolated. +search: '| from read_ssa_enriched_events() +| eval timestamp=parse_long(ucast(map_get(input_event,"_time"), + "string", null)), registry_path=lower(ucast(map_get(input_event, "registry_path"), "string", + null)), registry_key_name=lower(ucast(map_get(input_event, "registry_key_name"), "string", + null)), registry_value_data=ucast(map_get(input_event, "registry_value_data"), "string", null), + process_guid=ucast(map_get(input_event, "process_guid"), "string", + null), + event_id=ucast(map_get(input_event, "event_id"), "string", null) +| where like(registry_path, "%\\Policies\\Microsoft\\Windows Defender%") + AND registry_key_name="DisableAntiVirus" AND registry_value_data="(0x00000001)" +| eval start_time=timestamp, + end_time=timestamp, entities=mvappend(ucast(map_get(input_event, "dest_user_id"), + "string", null), ucast(map_get(input_event, "dest_device_id"), "string", null)), + body=create_map( + [ "event_id", event_id, "registry_path", registry_path, "registry_key_name", + registry_key_name, "process_guid", process_guid,"registry_value_data",registry_value_data]) +| into write_ssa_detected_events();' +how_to_implement: To successfully implement this search, you need to be ingesting + logs with the registry value name, registry path, and registry value data from your + endpoints. If you are using Sysmon, you must have at least version 6.0.4 of the + Sysmon TA. +known_false_positives: Admin or user may choose to disable windows defender product +references: +- https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/ +tags: + analytic_story: + - IceID + automated_detection_testing: passed + confidence: 70 + context: + - Source:Endpoint + - Stage:Defense Evasion + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/icedid/disable_av/sysmon.log + impact: 70 + kill_chain_phases: + - Exploitation + message: Modified/added/deleted registry entry $registry_path$ in $dest$ + mitre_attack_id: + - T1562.001 + - T1562 + observable: + - name: dest + type: Hostname + role: + - Victim + - name: user + type: user + role: + - Victim + product: + - Splunk Behavioral Analytics + required_fields: + - _time + - Registry.dest + - Registry.user + - Registry.registry_value_name + - Registry.registry_key_name + - Registry.registry_path + - Registry.registry_value_data + risk_score: 49 + security_domain: endpoint diff --git a/tests/experimental/endpoint/ssa___disable_defender_antivirus_registry.test.yml b/tests/experimental/endpoint/ssa___disable_defender_antivirus_registry.test.yml new file mode 100644 index 0000000000..7c2d37bbf5 --- /dev/null +++ b/tests/experimental/endpoint/ssa___disable_defender_antivirus_registry.test.yml @@ -0,0 +1,15 @@ +name: Disable Defender AntiVirus Registry Unit Test - SSA +tests: + - name: Disable Defender AntiVirus Registry + file: endpoint/ssa___disable_defender_antivirus_registry.yml + pass_condition: '@count_gt(0)' + description: Test for Disable Defender AntiVirus Registry + attack_data: + - file_name: sysmon.log + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/icedid/disable_av/sysmon.log + source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational + sourcetype: xmlwineventlog + + + +