diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index bc53fd314e..38fc0d0fae 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -13,8 +13,8 @@ azure-mgmt-core==1.2.2 azure-mgmt-network==17.0.0 azure-mgmt-resource==15.0.0 bcrypt==3.2.0 -boto3==1.16.51 -botocore==1.19.51 +boto3==1.16.55 +botocore==1.19.55 certifi==2020.12.5 cffi==1.14.4 cfgv==2.0.1 @@ -28,7 +28,7 @@ docutils==0.16 execnet==1.7.1 gitdb==4.0.5 GitPython==3.1.12 -identify==1.5.11 +identify==1.5.12 idna==2.8 importlib-metadata==3.3.0 Jinja2==2.10.3 @@ -65,7 +65,7 @@ pywinrm==0.4.1 PyYAML==5.3.1 requests==2.25.1 requests-ntlm==1.1.0 -s3transfer==0.3.3 +s3transfer==0.3.4 six==1.13.0 smmap==3.0.4 splunk-sdk==1.6.14 diff --git a/bin/doc-gen.py b/bin/doc-gen.py index 417aa41eb1..5e83129697 100644 --- a/bin/doc-gen.py +++ b/bin/doc-gen.py @@ -682,6 +682,7 @@ if __name__ == "__main__": stories = load_objects("stories/*.yml") detections = [] detections = load_objects("detections/*/*.yml") + detections.extend(load_objects("detections/*/*/*.yml")) # complete_stories = generate_stories(REPO_PATH, verbose) # complete_detections = generate_detections(REPO_PATH, complete_stories) @@ -698,4 +699,4 @@ if __name__ == "__main__": else: print("--gen_splunk_docs was set to false, not generating splunk documentation") - print("documentation generation for security content completed..") \ No newline at end of file + print("documentation generation for security content completed..") diff --git a/bin/generate.py b/bin/generate.py index f1928fae0a..04c08af580 100644 --- a/bin/generate.py +++ b/bin/generate.py @@ -83,12 +83,11 @@ def generate_savedsearches_conf(detections, response_tasks, baselines, deploymen if data_model: detection['data_model'] = data_model - matched_deployments = get_deployments(detection, deployments) - if len(matched_deployments): - detection['deployment'] = matched_deployments[-1] - nes_fields = get_nes_fields(detection['search'], detection['deployment']) - if len(nes_fields) > 0: - detection['nes_fields'] = nes_fields + matched_deployment = get_deployments(detection, deployments) + detection['deployment'] = matched_deployment + nes_fields = get_nes_fields(detection['search'], detection['deployment']) + if len(nes_fields) > 0: + detection['nes_fields'] = nes_fields keys = ['mitre_attack', 'kill_chain_phases', 'cis20', 'nist'] mappings = {} @@ -129,9 +128,8 @@ def generate_savedsearches_conf(detections, response_tasks, baselines, deploymen if data_model: baseline['data_model'] = data_model - matched_deployments = get_deployments(baseline, deployments) - if len(matched_deployments): - baseline['deployment'] = matched_deployments[-1] + matched_deployment = get_deployments(baseline, deployments) + baseline['deployment'] = matched_deployment for response_task in response_tasks: if 'search' in response_task: @@ -333,12 +331,24 @@ def get_deployments(object, deployments): for deployment in deployments: if 'analytics_story' in deployment['tags']: if type(deployment['tags']['analytics_story']) is str: - tags_all_array = [deployment['tags']['analytics_story']] + if 'analytics_story' in object['tags']: + if deployment['tags']['analytics_story'] == object['tags']['analytics_story'] or deployment['tags']['analytics_story']=='all': + matched_deployments.append(deployment) else: - tags_all_array = deployment['tags']['analytics_story'] - if tags_all_array[0] == 'all': - matched_deployments.append(deployment) - continue + for story in deployment['tags']['analytics_story']: + if story == object['tags']['analytics_story']: + matched_deployments.append(deployment) + continue + + if 'detection_name' in deployment['tags']: + if type(deployment['tags']['detection_name']) is str: + if deployment['tags']['detection_name'] == object['name']: + matched_deployments.append(deployment) + else: + for detection in deployment['tags']['detection_name']: + if detection == object['name']: + matched_deployments.append(deployment) + continue for tag in object['tags'].keys(): if tag in deployment['tags'].keys(): @@ -358,7 +368,32 @@ def get_deployments(object, deployments): matched_deployments.append(deployment) continue - return matched_deployments + if len(matched_deployments) == 0: + default_deployment = {} + default_deployment['scheduling'] = {} + default_deployment['scheduling']['cron_schedule'] = '0 * * * *' + default_deployment['scheduling']['earliest_time'] = '-70m@m' + default_deployment['scheduling']['latest_time'] = '-10m@m' + default_deployment['scheduling']['schedule_window'] = 'auto' + last_deployment = default_deployment + else: + last_deployment = matched_deployments[-1] + last_deployment = replace_vars_in_deployment(last_deployment, object) + + return last_deployment + + +def replace_vars_in_deployment(deployment, object): + if 'alert_action' in deployment: + if 'email' in deployment['alert_action']: + deployment['alert_action']['email']['message']=re.sub(r'%([a-z_]+)%]', lambda x: object[x.group(1)], str(v)) + deployment['alert_action']['email']['subject']=re.sub(r'%([a-z_]+)%]', lambda x: object[x.group(1)], str(v)) + + if 'notable' in deployment: + deployment['alert_action']['notable']['rule_description']=re.sub(r'%([a-z_]+)%]', lambda x: object[x.group(1)], str(v)) + deployment['alert_action']['notable']['rule_title']=re.sub(r'%([a-z_]+)%]', lambda x: object[x.group(1)], str(v)) + + return deployment def get_nes_fields(search, deployment): @@ -482,7 +517,7 @@ def prepare_stories(stories, detections): for cis in detection['tags']['cis20']: sto_to_ciss[story].add(cis) else: - sto_to_ciss[story] = set(detection['tags']['cis20']) + sto_to_ciss[story] = set(detection['tags']['cis20']) if 'nist' in detection['tags']: if story in sto_to_nists.keys(): @@ -562,7 +597,6 @@ def main(args): macros = load_objects("macros/*.yml", VERBOSE, REPO_PATH) lookups = load_objects("lookups/*.yml", VERBOSE, REPO_PATH) baselines = load_objects("baselines/*.yml", VERBOSE, REPO_PATH) - detections = load_objects("detections/*.yml", VERBOSE, REPO_PATH) responses = load_objects("responses/*.yml", VERBOSE, REPO_PATH) response_tasks = load_objects("response_tasks/*.yml", VERBOSE, REPO_PATH) deployments = load_objects("deployments/*.yml", VERBOSE, REPO_PATH) @@ -570,6 +604,7 @@ def main(args): # process all detections detections = [] detections = load_objects("detections/*/*.yml", VERBOSE, REPO_PATH) + detections.extend(load_objects("detections/*/*/*.yml", VERBOSE, REPO_PATH)) try: if VERBOSE: diff --git a/deployments/14_credential_dumping_story.yml b/deployments/14_credential_dumping_story.yml new file mode 100644 index 0000000000..1e11c21ec5 --- /dev/null +++ b/deployments/14_credential_dumping_story.yml @@ -0,0 +1,12 @@ +name: Credential Dumping Story +id: 52f52a7c-078f-4413-84da-388b61ccac26 +date: '2021-01-13' +description: Example for a deployment for a specific Analytics Story +author: Patrick Bareiss +scheduling: + cron_schedule: '0 * * * *' + earliest_time: -40m@m + latest_time: -10m@m + schedule_window: auto +tags: + analytics_story: Credential Dumping diff --git a/deployments/15_detection_access_LSASS_memory_for_dump_creation.yml b/deployments/15_detection_access_LSASS_memory_for_dump_creation.yml new file mode 100644 index 0000000000..33c04ec26d --- /dev/null +++ b/deployments/15_detection_access_LSASS_memory_for_dump_creation.yml @@ -0,0 +1,18 @@ +name: Access LSASS Memory for Dump Creation Deployment +id: 974c422f-db3f-4538-8f2a-ee5bf8eec0fa +date: '2021-01-13' +description: Example for a deployment for a specific Detection +author: Patrick Bareiss +scheduling: + cron_schedule: '0 * * * *' + earliest_time: -30m@m + latest_time: now + schedule_window: auto +alert_action: + notable: + rule_description: '%description%' + rule_title: '%name% Notable' + nes_fields: + - dest +tags: + detection_name: Access LSASS Memory for Dump Creation diff --git a/detections/cloud/abnormally_high_cloud_instances_destroyed.yml b/detections/cloud/abnormally_high_cloud_instances_destroyed.yml index ab1fa4ca06..bc66d71600 100644 --- a/detections/cloud/abnormally_high_cloud_instances_destroyed.yml +++ b/detections/cloud/abnormally_high_cloud_instances_destroyed.yml @@ -4,7 +4,7 @@ version: 1 date: '2020-08-21' description: This search finds for the number successfully destroyed cloud instances for every 4 hour block. This is split up between weekdays and the weekend. It then applies the probability densitiy model - previously created and alerts on any outliers. + previously created and alerts on any outliers. how_to_implement: You must be ingesting your cloud infrastructure logs. You also must run the baseline search `Baseline Of Cloud Instances Destroyed` to create the probability density function. type: ESCU @@ -46,4 +46,3 @@ tags: risk_score: 10 risk_object_type: user risk_object: user - diff --git a/detections/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.yml b/detections/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.yml index 30a9dbadbe..0d70d67878 100644 --- a/detections/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.yml +++ b/detections/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.yml @@ -1,18 +1,27 @@ -author: Rod Soto, Splunk -date: '2020-10-27' -description: This search provides detection of accounts creating KMS with encrypt policy and without using MFA. -how_to_implement: You must install splunk AWS add on and Splunk App for AWS. This search works with cloudtrail logs +author: Rod Soto, Patrick Bareiss Splunk +date: '2021-01-11' +description: This search provides detection of KMS keys which action kms:Encrypt is + accessible for everyone (also outside of your organization). This is an identicator + that your account is compromised and the attacker uses the encryption key to compromise + another company. +how_to_implement: You must install splunk AWS add on and Splunk App for AWS. This + search works with cloudtrail logs id: c79c164f-4b21-4847-98f9-cf6a9f49179e -known_false_positives: Not all KMS key creations are malicious. Particulary look for kms:Encrypt only policy. It is very unusual to create a key to encrypt only and not to decrypt. +known_false_positives: unknown name: AWS Detect Users creating keys with encrypt policy without MFA - references: - - https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/ - - https://github.com/d1vious/git-wild-hunt - - https://www.youtube.com/watch?v=PgzNib37g0M -search: '`cloudtrail` eventName=CreateKey userIdentity.sessionContext.attributes.mfaAuthenticated=false (requestParameters.policy = "*kms:Encrypt*" AND requestParameters.policy != "*kms:Decrypt*") eventSource="kms.amazonaws.com" -| table userIdentity.sessionContext.attributes.creationDate userIdentity.sessionContext.attributes.mfaAuthenticated user user_access_key requestParameters.keyUsage responseElements.keyMetadata.arn - |`aws_detect_users_creating_keys_with_encrypt_policy_without_mfa_filter`' +- https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/ +- https://github.com/d1vious/git-wild-hunt +- https://www.youtube.com/watch?v=PgzNib37g0M +search: '`cloudtrail` eventName=CreateKey OR eventName=PutKeyPolicy | spath input=requestParameters.policy + output=key_policy_statements path=Statement{} | mvexpand key_policy_statements | + spath input=key_policy_statements output=key_policy_action_1 path=Action | spath + input=key_policy_statements output=key_policy_action_2 path=Action{} | eval key_policy_action=mvappend(key_policy_action_1, + key_policy_action_2) | spath input=key_policy_statements output=key_policy_principal + path=Principal.AWS | search key_policy_action="kms:Encrypt" AND key_policy_principal="*" + | stats count min(_time) as firstTime max(_time) as lastTime by eventName eventSource + eventID awsRegion userIdentity.principalId | `security_content_ctime(firstTime)`| + `security_content_ctime(lastTime)` |`aws_detect_users_creating_keys_with_encrypt_policy_without_mfa_filter`' tags: analytics_story: - Ransomware Cloud @@ -20,5 +29,8 @@ tags: mitre_attack_id: - T1486 security_domain: threat + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1486/aws_kms_key/aws_cloudtrail_events.json type: ESCU version: 1 diff --git a/detections/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.yml b/detections/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.yml index 42d42a6cb7..86d3a1d318 100644 --- a/detections/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.yml +++ b/detections/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.yml @@ -1,15 +1,22 @@ -author: Rod Soto, Splunk -date: '2020-10-27' -description: This search provides detection of users with KMS keys performing encryption specifically against S3 buckets. -how_to_implement: You must install splunk AWS add on and Splunk App for AWS. This search works with cloudtrail logs +author: Rod Soto, Patrick Bareiss Splunk +date: '2021-01-11' +description: This search provides detection of users with KMS keys performing encryption + specifically against S3 buckets. +how_to_implement: You must install splunk AWS add on and Splunk App for AWS. This + search works with cloudtrail logs id: 884a5f59-eec7-4f4a-948b-dbde18225fdc -known_false_positives: Not all operations with KMS keys are malicious. It is very unusual to create a key to encrypt only and not to decrypt. This search compliments the creation of KMS keys with encrypt policy. +known_false_positives: bucket with S3 encryption name: AWS Detect Users with KMS keys performing encryption S3 references: - - https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/ - - https://github.com/d1vious/git-wild-hunt - - https://www.youtube.com/watch?v=PgzNib37g0M -search: '`cloudtrail` eventName = CopyObject requestParameters.x-amz-server-side-encryption = "aws:kms" | stats count min(_time) as firstTime max(_time) as lastTime values(bucket_name) values(object_path) by eventName http_user_agent user vendor_region requestParameters.x-amz-server-side-encryption-aws-kms-key-id | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`|`aws_detect_users_with_kms_keys_performing_encryption_s3_filter`' +- https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/ +- https://github.com/d1vious/git-wild-hunt +- https://www.youtube.com/watch?v=PgzNib37g0M +search: '`cloudtrail` eventName=CopyObject requestParameters.x-amz-server-side-encryption="aws:kms" + | rename requestParameters.bucketName AS bucket_name, requestParameters.x-amz-copy-source + AS src_file, requestParameters.key AS dest_file | stats count min(_time) as firstTime + max(_time) as lastTime values(src_file) AS src_file values(dest_file) AS dest_file + values(userAgent) AS userAgent values(region) AS region values(src) AS src by user + | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` |`aws_detect_users_with_kms_keys_performing_encryption_s3_filter`' tags: analytics_story: - Ransomware Cloud @@ -17,5 +24,8 @@ tags: mitre_attack_id: - T1486 security_domain: threat + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1486/s3_file_encryption/aws_cloudtrail_events.json type: ESCU version: 1 diff --git a/detections/cloud/aws_network_access_control_list_created_with_all_open_ports.yml b/detections/cloud/aws_network_access_control_list_created_with_all_open_ports.yml index 479e42da5b..6a0f81f147 100644 --- a/detections/cloud/aws_network_access_control_list_created_with_all_open_ports.yml +++ b/detections/cloud/aws_network_access_control_list_created_with_all_open_ports.yml @@ -1,7 +1,7 @@ name: AWS Network Access Control List Created with All Open Ports id: ada0f478-84a8-4641-a3f1-d82362d6bd75 -version: 1 -date: '2017-01-10' +version: 2 +date: '2021-01-11' description: The search looks for CloudTrail events to detect if any network ACLs were created with all the ports open to a specified CIDR. how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or later) @@ -9,18 +9,25 @@ how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or late inputs. type: ESCU references: [] -author: Bhavin Patel, Splunk -search: '`cloudtrail` eventName=CreateNetworkAclEntry | mvexpand requestParameters - | mvexpand responseElements | search requestParameters.portRange.from=1024 requestParameters.portRange.to=65535 - requestParameters.ruleAction=allow | rename userIdentity.arn as arn | rename requestParameters.networkAclId - as networkAclId | table _time aws_account_id src userName arn networkAclId requestParameters.* - responseElements.* | `aws_network_access_control_list_created_with_all_open_ports_filter`' +author: Bhavin Patel, Patrick Bareiss, Splunk +search: '`cloudtrail` eventName=CreateNetworkAclEntry OR eventName=ReplaceNetworkAclEntry + requestParameters.ruleAction=allow requestParameters.egress=false requestParameters.aclProtocol=-1 + | append [search `cloudtrail` eventName=CreateNetworkAclEntry OR eventName=ReplaceNetworkAclEntry + requestParameters.ruleAction=allow requestParameters.egress=false requestParameters.aclProtocol!=-1 + | eval port_range=''requestParameters.portRange.to'' - ''requestParameters.portRange.from'' + | where port_range>1024] | fillnull | stats count min(_time) as firstTime max(_time) + as lastTime by userName userIdentity.principalId eventName requestParameters.ruleAction + requestParameters.egress requestParameters.aclProtocol requestParameters.portRange.to + requestParameters.portRange.from src userAgent requestParameters.cidrBlock | `security_content_ctime(firstTime)`| + `security_content_ctime(lastTime)` | `aws_network_access_control_list_created_with_all_open_ports_filter`' known_false_positives: It's possible that an admin has created this ACL with all ports open for some legitimate purpose however, this should be scoped and not allowed in production environment. tags: analytics_story: - AWS Network ACL Activity + mitre_attack_id: + - T1562.007 kill_chain_phases: - Actions on Objectives cis20: @@ -33,4 +40,6 @@ tags: risk_score: 10 risk_object_type: user risk_object: userName - + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.007/aws_create_acl/aws_cloudtrail_events.json diff --git a/detections/cloud/aws_network_access_control_list_deleted.yml b/detections/cloud/aws_network_access_control_list_deleted.yml index 550f5e5212..40a9a9a53b 100644 --- a/detections/cloud/aws_network_access_control_list_deleted.yml +++ b/detections/cloud/aws_network_access_control_list_deleted.yml @@ -1,7 +1,7 @@ name: AWS Network Access Control List Deleted id: ada0f478-84a8-4641-a3f1-d82362d6fd75 -version: 1 -date: '2017-01-10' +version: 2 +date: '2021-01-12' description: Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the AWS console by compromising an admin account, they can @@ -12,16 +12,18 @@ how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or late inputs. type: ESCU references: [] -author: Bhavin Patel, Splunk -search: '`cloudtrail` eventName=DeleteNetworkAcl|rename userIdentity.arn as arn | - stats count min(_time) as firstTime max(_time) as lastTime values(errorMessage) - values(errorCode) values(userAgent) values(userIdentity.*) by src userName arn eventName - | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` | `aws_network_access_control_list_deleted_filter`' +author: Bhavin Patel, Patrick Bareiss, Splunk +search: '`cloudtrail` eventName=DeleteNetworkAclEntry requestParameters.egress=false + | fillnull | stats count min(_time) as firstTime max(_time) as lastTime by userName + userIdentity.principalId eventName requestParameters.egress src userAgent | `security_content_ctime(firstTime)`| + `security_content_ctime(lastTime)` | `aws_network_access_control_list_deleted_filter`' known_false_positives: It's possible that a user has legitimately deleted a network ACL. tags: analytics_story: - AWS Network ACL Activity + mitre_attack_id: + - T1562.007 kill_chain_phases: - Actions on Objectives cis20: @@ -34,4 +36,6 @@ tags: risk_score: 5 risk_object_type: user risk_object: userName - + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.007/aws_delete_acl/aws_cloudtrail_events.json diff --git a/detections/cloud/detect_new_open_s3_buckets.yml b/detections/cloud/detect_new_open_s3_buckets.yml index 64c5256bce..660b47d619 100644 --- a/detections/cloud/detect_new_open_s3_buckets.yml +++ b/detections/cloud/detect_new_open_s3_buckets.yml @@ -1,21 +1,22 @@ name: Detect New Open S3 buckets id: 2a9b80d3-6340-4345-b5ad-290bf3d0dac4 -version: 1 -date: '2018-07-25' +version: 2 +date: '2021-01-12' description: This search looks for CloudTrail events where a user has created an open/public S3 bucket. -how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or later) - and Splunk Add-on for AWS (version 4.4.0 or later), and then configure your CloudTrail - inputs. The threshold value should be tuned to your environment. +how_to_implement: You must install the AWS App for Splunk. type: ESCU references: [] -author: Bhavin Patel, Splunk -search: '`cloudtrail` AllUsers eventName=PutBucketAcl | spath output=userIdentityArn - path=userIdentity.arn | spath output=bucketName path=requestParameters.bucketName - | spath output=aclControlList path=requestParameters.AccessControlPolicy.AccessControlList - | spath input=aclControlList output=grantee path=Grant{} | mvexpand grantee | spath - input=grantee | search Grantee.URI=*AllUsers | rename userIdentityArn as user| table - _time, src,awsRegion Permission, Grantee.URI, bucketName, user | `detect_new_open_s3_buckets_filter`' +author: Bhavin Patel, Patrick Bareiss, Splunk +search: '`cloudtrail` eventSource=s3.amazonaws.com eventName=PutBucketAcl | rex field=_raw + "(?{.+})" | spath input=json_field output=grantees path=requestParameters.AccessControlPolicy.AccessControlList.Grant{} + | search grantees=* | mvexpand grantees | spath input=grantees output=uri path=Grantee.URI + | spath input=grantees output=permission path=Permission | search uri IN ("http://acs.amazonaws.com/groups/global/AllUsers","http://acs.amazonaws.com/groups/global/AuthenticatedUsers") + | search permission IN ("READ","READ_ACP","WRITE","WRITE_ACP","FULL_CONTROL") | + rename requestParameters.bucketName AS bucketName | stats count min(_time) as firstTime + max(_time) as lastTime by userName userIdentity.principalId userAgent uri permission + bucketName | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` + | `detect_new_open_s3_buckets_filter` ' known_false_positives: While this search has no known false positives, it is possible that an AWS admin has legitimately created a public bucket for a specific purpose. That said, AWS strongly advises against granting full control to the "All Users" @@ -38,4 +39,6 @@ tags: risk_score: 20 risk_object_type: system risk_object: src - + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1530/aws_s3_public_bucket/aws_cloudtrail_events.json diff --git a/detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml b/detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml new file mode 100644 index 0000000000..c9facc4ed6 --- /dev/null +++ b/detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml @@ -0,0 +1,44 @@ +name: Detect New Open S3 Buckets over AWS CLI +id: 39c61d09-8b30-4154-922b-2d0a694ecc22 +version: 1 +date: '2021-01-12' +description: This search looks for CloudTrail events where a user has created an open/public + S3 bucket over the aws cli. +type: ESCU +references: [] +author: Patrick Bareiss, Splunk +search: '`cloudtrail` eventSource="s3.amazonaws.com" eventName=PutBucketAcl OR requestParameters.accessControlList.x-amz-grant-read-acp + IN ("*AuthenticatedUsers","*AllUsers") OR requestParameters.accessControlList.x-amz-grant-write + IN ("*AuthenticatedUsers","*AllUsers") OR requestParameters.accessControlList.x-amz-grant-write-acp + IN ("*AuthenticatedUsers","*AllUsers") OR requestParameters.accessControlList.x-amz-grant-full-control + IN ("*AuthenticatedUsers","*AllUsers") | rename requestParameters.bucketName AS + bucketName | fillnull | stats count min(_time) as firstTime max(_time) as lastTime + by userName userIdentity.principalId userAgent bucketName requestParameters.accessControlList.x-amz-grant-read + requestParameters.accessControlList.x-amz-grant-read-acp requestParameters.accessControlList.x-amz-grant-write + requestParameters.accessControlList.x-amz-grant-write-acp requestParameters.accessControlList.x-amz-grant-full-control + | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_new_open_s3_buckets_over_aws_cli_filter` ' +known_false_positives: While this search has no known false positives, it is possible + that an AWS admin has legitimately created a public bucket for a specific purpose. + That said, AWS strongly advises against granting full control to the "All Users" + group. +tags: + analytics_story: + - Suspicious AWS S3 Activities + kill_chain_phases: + - Actions on Objectives + mitre_attack_id: + - T1530 + cis20: + - CIS 13 + nist: + - PR.DS + - PR.AC + - DE.CM + security_domain: network + asset_type: S3 Bucket + risk_score: 20 + risk_object_type: system + risk_object: src + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1530/aws_s3_public_bucket/aws_cloudtrail_events.json diff --git a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml new file mode 100644 index 0000000000..f7f7620d2e --- /dev/null +++ b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml @@ -0,0 +1,37 @@ +author: Bhavin Patel, Splunk +date: '2021-01-12' +description: This search detects newly added IP addresses/CIDR blocks to the list + of MFA Trusted IPs to bypass multi factor authentication. Attackers are often known + to use this technique so that they can bypass the MFA system. +how_to_implement: You must install Splunk Microsoft Office 365 add-on. This search + works with o365:management:activity +id: c783dd98-c703-4252-9e8a-f19d9f66949e +known_false_positives: Unless it is a special case, it is uncommon to continually + update Trusted IPs to MFA configuration. +name: O365 Bypass MFA via Trusted IP +references: +- https://i.blackhat.com/USA-20/Thursday/us-20-Bienstock-My-Cloud-Is-APTs-Cloud-Investigating-And-Defending-Office-365.pdf +- https://attack.mitre.org/techniques/T1562/007/ +search: '`o365_management_activity` signature="Set Company Information." ModifiedProperties{}.Name=StrongAuthenticationPolicy + | rex max_match=100 field=ModifiedProperties{}.NewValue "(?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2})" + | rex max_match=100 field=ModifiedProperties{}.OldValue "(?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2})" + | eval ip_addresses_old=if(isnotnull(ip_addresses_old),ip_addresses_old,"0") | mvexpand + ip_addresses_new_added | where isnull(mvfind(ip_addresses_old,ip_addresses_new_added)) + |stats count min(_time) as firstTime max(_time) as lastTime values(ip_addresses_old) + as ip_addresses_old by user ip_addresses_new_added signature vendor_product vendor_account + status user_id action | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| + `o365_bypass_mfa_via_trusted_ip_filter`' +tags: + analytics_story: + - Office 365 Detections + asset_type: Office 365 + kill_chain_phases: + - Actions on Objective + mitre_attack_id: + - T1562.007 + security_domain: threat + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.007/o365_bypass_mfa_via_trusted_ip/o365_bypass_mfa_via_trusted_ip.json +type: ESCU +version: 1 diff --git a/detections/cloud/cloud_network_access_control_list_deleted.yml b/detections/deprecated/cloud_network_access_control_list_deleted.yml similarity index 96% rename from detections/cloud/cloud_network_access_control_list_deleted.yml rename to detections/deprecated/cloud_network_access_control_list_deleted.yml index 89b1dc5615..629964de7e 100644 --- a/detections/cloud/cloud_network_access_control_list_deleted.yml +++ b/detections/deprecated/cloud_network_access_control_list_deleted.yml @@ -7,7 +7,8 @@ description: Enforcing network-access controls is one of the defensive mechanism has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. -how_to_implement: You must be ingesting your cloud infrastructure logs from your + Deprecated because it's a duplicate +how_to_implement: You must be ingesting your cloud infrastructure logs from your cloud provider. You can also provide additional filtering for this search by customizing the `cloud_network_access_control_list_deleted_filter` macro. type: ESCU diff --git a/detections/cloud/detect_api_activity_from_users_without_mfa.yml b/detections/deprecated/detect_api_activity_from_users_without_mfa.yml similarity index 100% rename from detections/cloud/detect_api_activity_from_users_without_mfa.yml rename to detections/deprecated/detect_api_activity_from_users_without_mfa.yml diff --git a/detections/cloud/detect_aws_api_activities_from_unapproved_accounts.yml b/detections/deprecated/detect_aws_api_activities_from_unapproved_accounts.yml similarity index 98% rename from detections/cloud/detect_aws_api_activities_from_unapproved_accounts.yml rename to detections/deprecated/detect_aws_api_activities_from_unapproved_accounts.yml index 5879af756e..89740af552 100644 --- a/detections/cloud/detect_aws_api_activities_from_unapproved_accounts.yml +++ b/detections/deprecated/detect_aws_api_activities_from_unapproved_accounts.yml @@ -6,6 +6,7 @@ description: This search looks for successful CloudTrail activity by user accoun that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. + Deprecated because managing this list can be quite hard. how_to_implement: 'You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. You must also populate the `identity_lookup_expanded` lookup shipped with diff --git a/detections/network/detect_dns_requests_to_phishing_sites_leveraging_evilginx2.yml b/detections/deprecated/detect_dns_requests_to_phishing_sites_leveraging_evilginx2.yml similarity index 100% rename from detections/network/detect_dns_requests_to_phishing_sites_leveraging_evilginx2.yml rename to detections/deprecated/detect_dns_requests_to_phishing_sites_leveraging_evilginx2.yml diff --git a/detections/cloud/detect_new_api_calls_from_user_roles.yml b/detections/deprecated/detect_new_api_calls_from_user_roles.yml similarity index 100% rename from detections/cloud/detect_new_api_calls_from_user_roles.yml rename to detections/deprecated/detect_new_api_calls_from_user_roles.yml diff --git a/detections/cloud/gcp_gcr_container_uploaded.yml b/detections/deprecated/gcp_gcr_container_uploaded.yml similarity index 100% rename from detections/cloud/gcp_gcr_container_uploaded.yml rename to detections/deprecated/gcp_gcr_container_uploaded.yml diff --git a/detections/application/identify_new_user_accounts.yml b/detections/deprecated/identify_new_user_accounts.yml similarity index 100% rename from detections/application/identify_new_user_accounts.yml rename to detections/deprecated/identify_new_user_accounts.yml diff --git a/detections/endpoint/bcdedit_failure_recovery_modification.yml b/detections/endpoint/bcdedit_failure_recovery_modification.yml new file mode 100644 index 0000000000..e0a1fe6c70 --- /dev/null +++ b/detections/endpoint/bcdedit_failure_recovery_modification.yml @@ -0,0 +1,38 @@ +name: BCDEdit Failure Recovery Modification +id: 809b31d2-5462-11eb-ae93-0242ac130002 +version: 1 +date: '2020-12-21' +description: This search looks for flags passed to bcdedit.exe modifications to the + built-in Windows error recovery boot configurations. This is typically used by ransomware + to prevent recovery. +how_to_implement: You must be ingesting endpoint data that tracks process activity, + including parent-child relationships from your endpoints to populate the Endpoint + data model in the Processes node. Tune based on parent process names. +type: ESCU +references: +- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1490/T1490.md#atomic-test-4---windows---disable-windows-recovery-console-repair +author: Michael Haag, Splunk +search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) + as lastTime from datamodel=Endpoint.Processes where Processes.process_name = bcdedit.exe + Processes.process="*recoveryenabled*" (Processes.process="* no*") by Processes.process_name + Processes.process Processes.parent_process_name Processes.dest Processes.user | + `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` + | `bcdedit_failure_recovery_modification_filter`' +known_false_positives: Administrators may modify the boot configuration. +tags: + analytics_story: + - Ryuk Ransomware + - Ransomware + mitre_attack_id: + - T1490 + kill_chain_phases: + - Actions on Objectives + cis20: + - CIS 8 + nist: + - PR.IP + security_domain: endpoint + asset_type: Endpoint + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1490/atomic_red_team/windows-sysmon.log + automated_detection_testing: passed diff --git a/detections/application/detect_new_login_attempts_to_routers.yml b/detections/experimental/application/detect_new_login_attempts_to_routers.yml similarity index 100% rename from detections/application/detect_new_login_attempts_to_routers.yml rename to detections/experimental/application/detect_new_login_attempts_to_routers.yml diff --git a/detections/application/email_attachments_with_lots_of_spaces.yml b/detections/experimental/application/email_attachments_with_lots_of_spaces.yml similarity index 100% rename from detections/application/email_attachments_with_lots_of_spaces.yml rename to detections/experimental/application/email_attachments_with_lots_of_spaces.yml diff --git a/detections/application/email_servers_sending_high_volume_traffic_to_hosts.yml b/detections/experimental/application/email_servers_sending_high_volume_traffic_to_hosts.yml similarity index 100% rename from detections/application/email_servers_sending_high_volume_traffic_to_hosts.yml rename to detections/experimental/application/email_servers_sending_high_volume_traffic_to_hosts.yml diff --git a/detections/application/monitor_email_for_brand_abuse.yml b/detections/experimental/application/monitor_email_for_brand_abuse.yml similarity index 100% rename from detections/application/monitor_email_for_brand_abuse.yml rename to detections/experimental/application/monitor_email_for_brand_abuse.yml diff --git a/detections/application/no_windows_updates_in_a_time_frame.yml b/detections/experimental/application/no_windows_updates_in_a_time_frame.yml similarity index 100% rename from detections/application/no_windows_updates_in_a_time_frame.yml rename to detections/experimental/application/no_windows_updates_in_a_time_frame.yml diff --git a/detections/application/spectre_and_meltdown_vulnerable_systems.yml b/detections/experimental/application/spectre_and_meltdown_vulnerable_systems.yml similarity index 100% rename from detections/application/spectre_and_meltdown_vulnerable_systems.yml rename to detections/experimental/application/spectre_and_meltdown_vulnerable_systems.yml diff --git a/detections/application/suspicious_email___uba_anomaly.yml b/detections/experimental/application/suspicious_email___uba_anomaly.yml similarity index 100% rename from detections/application/suspicious_email___uba_anomaly.yml rename to detections/experimental/application/suspicious_email___uba_anomaly.yml diff --git a/detections/application/suspicious_email_attachment_extensions.yml b/detections/experimental/application/suspicious_email_attachment_extensions.yml similarity index 100% rename from detections/application/suspicious_email_attachment_extensions.yml rename to detections/experimental/application/suspicious_email_attachment_extensions.yml diff --git a/detections/application/suspicious_java_classes.yml b/detections/experimental/application/suspicious_java_classes.yml similarity index 100% rename from detections/application/suspicious_java_classes.yml rename to detections/experimental/application/suspicious_java_classes.yml diff --git a/detections/cloud/amazon_eks_kubernetes_cluster_scan_detection.yml b/detections/experimental/cloud/amazon_eks_kubernetes_cluster_scan_detection.yml similarity index 100% rename from detections/cloud/amazon_eks_kubernetes_cluster_scan_detection.yml rename to detections/experimental/cloud/amazon_eks_kubernetes_cluster_scan_detection.yml diff --git a/detections/cloud/amazon_eks_kubernetes_pod_scan_detection.yml b/detections/experimental/cloud/amazon_eks_kubernetes_pod_scan_detection.yml similarity index 100% rename from detections/cloud/amazon_eks_kubernetes_pod_scan_detection.yml rename to detections/experimental/cloud/amazon_eks_kubernetes_pod_scan_detection.yml diff --git a/detections/cloud/aws_detect_attach_to_role_policy.yml b/detections/experimental/cloud/aws_detect_attach_to_role_policy.yml similarity index 100% rename from detections/cloud/aws_detect_attach_to_role_policy.yml rename to detections/experimental/cloud/aws_detect_attach_to_role_policy.yml diff --git a/detections/cloud/aws_detect_permanent_key_creation.yml b/detections/experimental/cloud/aws_detect_permanent_key_creation.yml similarity index 100% rename from detections/cloud/aws_detect_permanent_key_creation.yml rename to detections/experimental/cloud/aws_detect_permanent_key_creation.yml diff --git a/detections/cloud/aws_detect_role_creation.yml b/detections/experimental/cloud/aws_detect_role_creation.yml similarity index 100% rename from detections/cloud/aws_detect_role_creation.yml rename to detections/experimental/cloud/aws_detect_role_creation.yml diff --git a/detections/cloud/aws_detect_sts_assume_role_abuse.yml b/detections/experimental/cloud/aws_detect_sts_assume_role_abuse.yml similarity index 100% rename from detections/cloud/aws_detect_sts_assume_role_abuse.yml rename to detections/experimental/cloud/aws_detect_sts_assume_role_abuse.yml diff --git a/detections/cloud/aws_detect_sts_get_session_token_abuse.yml b/detections/experimental/cloud/aws_detect_sts_get_session_token_abuse.yml similarity index 100% rename from detections/cloud/aws_detect_sts_get_session_token_abuse.yml rename to detections/experimental/cloud/aws_detect_sts_get_session_token_abuse.yml diff --git a/detections/cloud/gcp_detect_accounts_with_high_risk_roles_by_project.yml b/detections/experimental/cloud/gcp_detect_accounts_with_high_risk_roles_by_project.yml similarity index 100% rename from detections/cloud/gcp_detect_accounts_with_high_risk_roles_by_project.yml rename to detections/experimental/cloud/gcp_detect_accounts_with_high_risk_roles_by_project.yml diff --git a/detections/cloud/gcp_detect_gcploit_framework.yml b/detections/experimental/cloud/gcp_detect_gcploit_framework.yml similarity index 100% rename from detections/cloud/gcp_detect_gcploit_framework.yml rename to detections/experimental/cloud/gcp_detect_gcploit_framework.yml diff --git a/detections/cloud/gcp_detect_high_risk_permissions_by_resource_and_account.yml b/detections/experimental/cloud/gcp_detect_high_risk_permissions_by_resource_and_account.yml similarity index 100% rename from detections/cloud/gcp_detect_high_risk_permissions_by_resource_and_account.yml rename to detections/experimental/cloud/gcp_detect_high_risk_permissions_by_resource_and_account.yml diff --git a/detections/cloud/gcp_detect_oauth_token_abuse.yml b/detections/experimental/cloud/gcp_detect_oauth_token_abuse.yml similarity index 100% rename from detections/cloud/gcp_detect_oauth_token_abuse.yml rename to detections/experimental/cloud/gcp_detect_oauth_token_abuse.yml diff --git a/detections/cloud/gcp_kubernetes_cluster_pod_scan_detection.yml b/detections/experimental/cloud/gcp_kubernetes_cluster_pod_scan_detection.yml similarity index 100% rename from detections/cloud/gcp_kubernetes_cluster_pod_scan_detection.yml rename to detections/experimental/cloud/gcp_kubernetes_cluster_pod_scan_detection.yml diff --git a/detections/cloud/gcp_kubernetes_cluster_scan_detection.yml b/detections/experimental/cloud/gcp_kubernetes_cluster_scan_detection.yml similarity index 100% rename from detections/cloud/gcp_kubernetes_cluster_scan_detection.yml rename to detections/experimental/cloud/gcp_kubernetes_cluster_scan_detection.yml diff --git a/detections/cloud/kubernetes_aws_detect_most_active_service_accounts_by_pod.yml b/detections/experimental/cloud/kubernetes_aws_detect_most_active_service_accounts_by_pod.yml similarity index 100% rename from detections/cloud/kubernetes_aws_detect_most_active_service_accounts_by_pod.yml rename to detections/experimental/cloud/kubernetes_aws_detect_most_active_service_accounts_by_pod.yml diff --git a/detections/cloud/kubernetes_aws_detect_rbac_authorizations_by_account.yml b/detections/experimental/cloud/kubernetes_aws_detect_rbac_authorizations_by_account.yml similarity index 100% rename from detections/cloud/kubernetes_aws_detect_rbac_authorizations_by_account.yml rename to detections/experimental/cloud/kubernetes_aws_detect_rbac_authorizations_by_account.yml diff --git a/detections/cloud/kubernetes_aws_detect_sensitive_object_access.yml b/detections/experimental/cloud/kubernetes_aws_detect_sensitive_object_access.yml similarity index 100% rename from detections/cloud/kubernetes_aws_detect_sensitive_object_access.yml rename to detections/experimental/cloud/kubernetes_aws_detect_sensitive_object_access.yml diff --git a/detections/cloud/kubernetes_aws_detect_sensitive_role_access.yml b/detections/experimental/cloud/kubernetes_aws_detect_sensitive_role_access.yml similarity index 100% rename from detections/cloud/kubernetes_aws_detect_sensitive_role_access.yml rename to detections/experimental/cloud/kubernetes_aws_detect_sensitive_role_access.yml diff --git a/detections/cloud/kubernetes_aws_detect_service_accounts_forbidden_failure_access.yml b/detections/experimental/cloud/kubernetes_aws_detect_service_accounts_forbidden_failure_access.yml similarity index 100% rename from detections/cloud/kubernetes_aws_detect_service_accounts_forbidden_failure_access.yml rename to detections/experimental/cloud/kubernetes_aws_detect_service_accounts_forbidden_failure_access.yml diff --git a/detections/cloud/kubernetes_aws_detect_suspicious_kubectl_calls.yml b/detections/experimental/cloud/kubernetes_aws_detect_suspicious_kubectl_calls.yml similarity index 100% rename from detections/cloud/kubernetes_aws_detect_suspicious_kubectl_calls.yml rename to detections/experimental/cloud/kubernetes_aws_detect_suspicious_kubectl_calls.yml diff --git a/detections/cloud/kubernetes_azure_detect_most_active_service_accounts_by_pod_namespace.yml b/detections/experimental/cloud/kubernetes_azure_detect_most_active_service_accounts_by_pod_namespace.yml similarity index 100% rename from detections/cloud/kubernetes_azure_detect_most_active_service_accounts_by_pod_namespace.yml rename to detections/experimental/cloud/kubernetes_azure_detect_most_active_service_accounts_by_pod_namespace.yml diff --git a/detections/cloud/kubernetes_azure_detect_rbac_authorization_by_account.yml b/detections/experimental/cloud/kubernetes_azure_detect_rbac_authorization_by_account.yml similarity index 100% rename from detections/cloud/kubernetes_azure_detect_rbac_authorization_by_account.yml rename to detections/experimental/cloud/kubernetes_azure_detect_rbac_authorization_by_account.yml diff --git a/detections/cloud/kubernetes_azure_detect_sensitive_object_access.yml b/detections/experimental/cloud/kubernetes_azure_detect_sensitive_object_access.yml similarity index 100% rename from detections/cloud/kubernetes_azure_detect_sensitive_object_access.yml rename to detections/experimental/cloud/kubernetes_azure_detect_sensitive_object_access.yml diff --git a/detections/cloud/kubernetes_azure_detect_sensitive_role_access.yml b/detections/experimental/cloud/kubernetes_azure_detect_sensitive_role_access.yml similarity index 100% rename from detections/cloud/kubernetes_azure_detect_sensitive_role_access.yml rename to detections/experimental/cloud/kubernetes_azure_detect_sensitive_role_access.yml diff --git a/detections/cloud/kubernetes_azure_detect_service_accounts_forbidden_failure_access.yml b/detections/experimental/cloud/kubernetes_azure_detect_service_accounts_forbidden_failure_access.yml similarity index 100% rename from detections/cloud/kubernetes_azure_detect_service_accounts_forbidden_failure_access.yml rename to detections/experimental/cloud/kubernetes_azure_detect_service_accounts_forbidden_failure_access.yml diff --git a/detections/cloud/kubernetes_azure_detect_suspicious_kubectl_calls.yml b/detections/experimental/cloud/kubernetes_azure_detect_suspicious_kubectl_calls.yml similarity index 100% rename from detections/cloud/kubernetes_azure_detect_suspicious_kubectl_calls.yml rename to detections/experimental/cloud/kubernetes_azure_detect_suspicious_kubectl_calls.yml diff --git a/detections/cloud/kubernetes_azure_pod_scan_fingerprint.yml b/detections/experimental/cloud/kubernetes_azure_pod_scan_fingerprint.yml similarity index 100% rename from detections/cloud/kubernetes_azure_pod_scan_fingerprint.yml rename to detections/experimental/cloud/kubernetes_azure_pod_scan_fingerprint.yml diff --git a/detections/cloud/kubernetes_azure_scan_fingerprint.yml b/detections/experimental/cloud/kubernetes_azure_scan_fingerprint.yml similarity index 100% rename from detections/cloud/kubernetes_azure_scan_fingerprint.yml rename to detections/experimental/cloud/kubernetes_azure_scan_fingerprint.yml diff --git a/detections/cloud/kubernetes_gcp_detect_RBAC_authorizations_by_account.yml b/detections/experimental/cloud/kubernetes_gcp_detect_RBAC_authorizations_by_account.yml similarity index 100% rename from detections/cloud/kubernetes_gcp_detect_RBAC_authorizations_by_account.yml rename to detections/experimental/cloud/kubernetes_gcp_detect_RBAC_authorizations_by_account.yml diff --git a/detections/cloud/kubernetes_gcp_detect_most_active_service_accounts_by_pod.yml b/detections/experimental/cloud/kubernetes_gcp_detect_most_active_service_accounts_by_pod.yml similarity index 100% rename from detections/cloud/kubernetes_gcp_detect_most_active_service_accounts_by_pod.yml rename to detections/experimental/cloud/kubernetes_gcp_detect_most_active_service_accounts_by_pod.yml diff --git a/detections/cloud/kubernetes_gcp_detect_sensitive_object_access.yml b/detections/experimental/cloud/kubernetes_gcp_detect_sensitive_object_access.yml similarity index 100% rename from detections/cloud/kubernetes_gcp_detect_sensitive_object_access.yml rename to detections/experimental/cloud/kubernetes_gcp_detect_sensitive_object_access.yml diff --git a/detections/cloud/kubernetes_gcp_detect_sensitive_role_access.yml b/detections/experimental/cloud/kubernetes_gcp_detect_sensitive_role_access.yml similarity index 100% rename from detections/cloud/kubernetes_gcp_detect_sensitive_role_access.yml rename to detections/experimental/cloud/kubernetes_gcp_detect_sensitive_role_access.yml diff --git a/detections/cloud/kubernetes_gcp_detect_service_accounts_forbidden_failure_access.yml b/detections/experimental/cloud/kubernetes_gcp_detect_service_accounts_forbidden_failure_access.yml similarity index 100% rename from detections/cloud/kubernetes_gcp_detect_service_accounts_forbidden_failure_access.yml rename to detections/experimental/cloud/kubernetes_gcp_detect_service_accounts_forbidden_failure_access.yml diff --git a/detections/cloud/kubernetes_gcp_detect_suspicious_kubectl_calls.yml b/detections/experimental/cloud/kubernetes_gcp_detect_suspicious_kubectl_calls.yml similarity index 100% rename from detections/cloud/kubernetes_gcp_detect_suspicious_kubectl_calls.yml rename to detections/experimental/cloud/kubernetes_gcp_detect_suspicious_kubectl_calls.yml diff --git a/detections/web/detect_attackers_scanning_for_vulnerable_jboss_servers.yml b/detections/experimental/web/detect_attackers_scanning_for_vulnerable_jboss_servers.yml similarity index 100% rename from detections/web/detect_attackers_scanning_for_vulnerable_jboss_servers.yml rename to detections/experimental/web/detect_attackers_scanning_for_vulnerable_jboss_servers.yml diff --git a/detections/web/detect_f5_tmui_rct_cve_2020_5902.yml b/detections/experimental/web/detect_f5_tmui_rct_cve_2020_5902.yml similarity index 100% rename from detections/web/detect_f5_tmui_rct_cve_2020_5902.yml rename to detections/experimental/web/detect_f5_tmui_rct_cve_2020_5902.yml diff --git a/detections/web/detect_malicious_requests_to_exploit_jboss_servers.yml b/detections/experimental/web/detect_malicious_requests_to_exploit_jboss_servers.yml similarity index 100% rename from detections/web/detect_malicious_requests_to_exploit_jboss_servers.yml rename to detections/experimental/web/detect_malicious_requests_to_exploit_jboss_servers.yml diff --git a/detections/web/monitor_web_traffic_for_brand_abuse.yml b/detections/experimental/web/monitor_web_traffic_for_brand_abuse.yml similarity index 100% rename from detections/web/monitor_web_traffic_for_brand_abuse.yml rename to detections/experimental/web/monitor_web_traffic_for_brand_abuse.yml diff --git a/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml b/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml index 8c3fcfa8fb..4da49a35fe 100644 --- a/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml +++ b/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml @@ -1,7 +1,7 @@ name: Detect hosts connecting to dynamic domain providers id: c77162d3-f93c-45cc-80c8-22f6v5464g9f -version: 2 -date: '2020-01-16' +version: 3 +date: '2021-01-14' description: Malicious actors often abuse legitimate Dynamic DNS services to host malicious payloads or interactive command and control nodes. Attackers will automate domain resolution changes by routing dynamic domains to countless IP addresses to @@ -36,9 +36,8 @@ how_to_implement: 'First, you''ll need to ingest data from your DNS operations. type: ESCU author: Bhavin Patel, Splunk search: '| tstats `security_content_summariesonly` count values(DNS.answer) as answer - min(_time) as firstTime from datamodel=Network_Resolution by DNS.src, DNS.query - | `drop_dm_object_name("DNS")` | `security_content_ctime(firstTime)` | `dynamic_dns_providers` - | `detect_hosts_connecting_to_dynamic_domain_providers_filter`' + min(_time) as firstTime from datamodel=Network_Resolution by DNS.query host | `drop_dm_object_name("DNS")` + | `security_content_ctime(firstTime)` | `dynamic_dns_providers` | `detect_hosts_connecting_to_dynamic_domain_providers_filter`' known_false_positives: Some users and applications may leverage Dynamic DNS to reach out to some domains on the Internet since dynamic DNS by itself is not malicious, however this activity must be verified. @@ -50,6 +49,8 @@ tags: - Suspicious DNS Traffic - Dynamic DNS - Command and Control + mitre_attack_id: + - T1189 kill_chain_phases: - Command and Control - Actions on Objectives @@ -64,3 +65,6 @@ tags: - DE.CM security_domain: network asset_type: Endpoint + automated_detection_testing: passed + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1189/dyn_dns_site/windows-sysmon.log diff --git a/package/default/analytic_stories.conf b/package/default/analytic_stories.conf index b2b570a073..ed40d35bd2 100644 --- a/package/default/analytic_stories.conf +++ b/package/default/analytic_stories.conf @@ -1,6 +1,6 @@ ############# # Automatically generated by generator.py in splunk/security-content -# On Date: 2021-01-07T20:36:47 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# @@ -16,7 +16,7 @@ version = 1 reference = ["https://aws.amazon.com/blogs/security/aws-cloudtrail-now-tracks-cross-account-activity-to-its-origin/"] detection_searches = ["ESCU - aws detect attach to role policy - Rule", "ESCU - aws detect permanent key creation - Rule", "ESCU - aws detect role creation - Rule", "ESCU - aws detect sts assume role abuse - Rule", "ESCU - aws detect sts get session token abuse - Rule"] mappings = {"kill_chain_phases": ["Lateral Movement"], "mitre_attack": ["T1078", "T1550"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By AccessKeyId", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Notable History", "ESCU - AWS Investigate User Activities By AccessKeyId"] support_searches = ["ESCU - Previously Seen AWS Cross Account Activity"] data_models = [] providing_technologies = none @@ -34,8 +34,8 @@ version = 1 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] detection_searches = ["ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - EC2 Instance Started With Previously Unseen AMI - Rule", "ESCU - EC2 Instance Started With Previously Unseen Instance Type - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - Rule"] mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004", "T1535"], "nist": ["DE.AE", "DE.DP", "ID.AM"]} -investigative_searches = ["ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously Seen EC2 Launches By User", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK", "ESCU - Previously Seen EC2 AMIs", "ESCU - Previously Seen AWS Regions", "ESCU - Previously Seen EC2 Instance Types"] +investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details"] +support_searches = ["ESCU - Previously Seen EC2 Instance Types", "ESCU - Previously Seen EC2 Launches By User", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK", "ESCU - Previously Seen EC2 AMIs", "ESCU - Previously Seen AWS Regions"] data_models = [] providing_technologies = none description = Monitor your AWS EC2 instances for activities related to cryptojacking/cryptomining. New instances that originate from previously unseen regions, users who launch abnormally high numbers of instances, or EC2 instances started by previously unseen users are just a few examples of potentially malicious behavior. @@ -53,7 +53,7 @@ version = 2 reference = ["https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_NACLs.html", "https://aws.amazon.com/blogs/security/how-to-help-prepare-for-ddos-attacks-by-reducing-your-attack-surface/"] detection_searches = ["ESCU - AWS Network Access Control List Created with All Open Ports - Rule", "ESCU - AWS Network Access Control List Deleted - Rule", "ESCU - Detect Spike in Network ACL Activity - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule"] mappings = {"cis20": ["CIS 11", "CIS 12"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1562.007"], "nist": ["DE.AE", "DE.CM", "DE.DP", "PR.AC"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Process Information For Port Activity", "ESCU - AWS Network ACL Details from ID", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio"] support_searches = ["ESCU - Baseline of blocked outbound traffic from AWS", "ESCU - Baseline of Network ACL Activity by ARN"] data_models = [] providing_technologies = none @@ -69,7 +69,7 @@ version = 1 reference = ["https://aws.amazon.com/security-hub/features/"] detection_searches = ["ESCU - Detect Spike in AWS Security Hub Alerts for EC2 Instance - Rule", "ESCU - Detect Spike in AWS Security Hub Alerts for User - Rule"] mappings = {"cis20": ["CIS 13"], "nist": ["DE.AE", "DE.DP"]} -investigative_searches = ["ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId"] +investigative_searches = ["ESCU - Get EC2 Instance Details by instanceId", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details"] support_searches = [] data_models = [] providing_technologies = none @@ -85,7 +85,7 @@ version = 1 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] detection_searches = ["ESCU - AWS Cloud Provisioning From Previously Unseen City - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen Country - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen IP Address - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen Region - Rule"] mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1535"], "nist": ["ID.AM"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From Region", "ESCU - Get All AWS Activity From City"] +investigative_searches = ["ESCU - Get All AWS Activity From City", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get All AWS Activity From Country"] support_searches = ["ESCU - Previously Seen AWS Provisioning Activity Sources"] data_models = [] providing_technologies = none @@ -103,7 +103,7 @@ reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.p detection_searches = ["ESCU - Detect API activity from users without MFA - Rule", "ESCU - Detect AWS API Activities From Unapproved Accounts - Rule", "ESCU - Detect Spike in AWS API Activity - Rule", "ESCU - Detect Spike in Security Group Activity - Rule", "ESCU - Detect new API calls from user roles - Rule"] mappings = {"cis20": ["CIS 1", "CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.CM", "DE.DP", "ID.AM", "PR.AC"]} investigative_searches = ["ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously seen API call per user roles in CloudTrail", "ESCU - Baseline of Security Group Activity by ARN", "ESCU - Baseline of API Calls per User ARN", "ESCU - Create a list of approved AWS service accounts"] +support_searches = ["ESCU - Create a list of approved AWS service accounts", "ESCU - Previously seen API call per user roles in CloudTrail", "ESCU - Baseline of API Calls per User ARN", "ESCU - Baseline of Security Group Activity by ARN"] data_models = [] providing_technologies = none description = Detect and investigate dormant user accounts for your AWS environment that have become active again. Because inactive and ad-hoc accounts are common attack targets, it's critical to enable governance within your environment. @@ -121,7 +121,7 @@ version = 1 reference = ["https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.2/dev/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf"] detection_searches = ["ESCU - Suspicious Java Classes - Rule", "ESCU - Unusually Long Content-Type Length - Rule", "ESCU - Web Servers Executing Suspicious Processes - Rule"] mappings = {"cis20": ["CIS 12", "CIS 18", "CIS 3", "CIS 4", "CIS 7"], "kill_chain_phases": ["Actions on Objectives", "Delivery", "Exploitation"], "mitre_attack": ["T1082"], "nist": ["DE.AE", "DE.CM", "ID.RA", "PR.IP", "PR.MA", "PR.PT", "RS.MI"]} -investigative_searches = ["ESCU - Investigate Suspicious Strings in HTTP Header", "ESCU - Get Notable History", "ESCU - Investigate Web POSTs From src"] +investigative_searches = ["ESCU - Investigate Suspicious Strings in HTTP Header", "ESCU - Investigate Web POSTs From src", "ESCU - Get Notable History"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -150,7 +150,7 @@ version = 1 reference = ["https://www.cisecurity.org/controls/inventory-of-authorized-and-unauthorized-devices/"] detection_searches = ["ESCU - Detect Unauthorized Assets by MAC address - Rule"] mappings = {"cis20": ["CIS 1"], "kill_chain_phases": ["Actions on Objectives", "Delivery", "Reconnaissance"], "nist": ["ID.AM", "PR.DS"]} -investigative_searches = ["ESCU - Get First Occurrence and Last Occurrence of a MAC Address", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Notable History", "ESCU - Get First Occurrence and Last Occurrence of a MAC Address"] support_searches = ["ESCU - Count of assets by category"] data_models = ["Network_Sessions"] providing_technologies = none @@ -166,7 +166,7 @@ version = 1 reference = ["https://www.zerofox.com/blog/what-is-digital-risk-monitoring/", "https://securingtomorrow.mcafee.com/consumer/family-safety/what-is-typosquatting/", "https://blog.malwarebytes.com/cybercrime/2016/06/explained-typosquatting/"] detection_searches = ["ESCU - Monitor DNS For Brand Abuse - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Monitor Web Traffic For Brand Abuse - Rule"] mappings = {"cis20": ["CIS 7"], "kill_chain_phases": ["Actions on Objectives", "Delivery"], "nist": ["PR.IP"]} -investigative_searches = ["ESCU - Get Emails From Specific Sender", "ESCU - Get Email Info", "ESCU - Get Notable History", "ESCU - Get Process Responsible For The DNS Traffic"] +investigative_searches = ["ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Emails From Specific Sender", "ESCU - Get Notable History", "ESCU - Get Email Info"] support_searches = ["ESCU - DNSTwist Domain Names"] data_models = ["Email", "Network_Resolution", "Web"] providing_technologies = none @@ -184,8 +184,8 @@ version = 1 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] detection_searches = ["ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Compute Instance Created By Previously Unseen User - Rule", "ESCU - Cloud Compute Instance Created In Previously Unused Region - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Image - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Instance Type - Rule"] mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004", "T1535"], "nist": ["DE.AE", "DE.DP", "ID.AM"]} -investigative_searches = ["ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously Seen Cloud Compute Instance Types - Update", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Compute Creations By User - Initial", "ESCU - Previously Seen Cloud Compute Instance Types - Initial", "ESCU - Previously Seen Cloud Compute Images - Initial", "ESCU - Previously Seen Cloud Regions - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Update", "ESCU - Baseline Of Cloud Instances Launched", "ESCU - Previously Seen Cloud Compute Images - Update", "ESCU - Previously Seen Cloud Regions - Initial"] +investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details"] +support_searches = ["ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Compute Creations By User - Initial", "ESCU - Previously Seen Cloud Regions - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Update", "ESCU - Previously Seen Cloud Compute Instance Types - Initial", "ESCU - Previously Seen Cloud Compute Images - Initial", "ESCU - Previously Seen Cloud Compute Instance Types - Update", "ESCU - Previously Seen Cloud Regions - Initial", "ESCU - Previously Seen Cloud Compute Images - Update", "ESCU - Baseline Of Cloud Instances Launched"] data_models = ["Change"] providing_technologies = none description = Monitor your cloud compute instances for activities related to cryptojacking/cryptomining. New instances that originate from previously unseen regions, users who launch abnormally high numbers of instances, or compute instances started by previously unseen users are just a few examples of potentially malicious behavior. @@ -201,7 +201,7 @@ modification_date = 2019-01-09 id = bd91a2bc-d20b-4f44-a982-1bea98e86390 version = 1 reference = ["https://www.intego.com/mac-security-blog/osxcoldroot-and-the-rat-invasion/", "https://objective-see.com/blog/blog_0x2A.html", "https://www.bleepingcomputer.com/news/security/coldroot-rat-still-undetectable-despite-being-uploaded-on-github-two-years-ago/"] -detection_searches = ["ESCU - Osquery pack - ColdRoot detection - Rule"] +detection_searches = ["ESCU - Osquery pack - ColdRoot detection - Rule", "ESCU - Processes Tapping Keyboard Events - Rule"] mappings = {"cis20": ["CIS 4", "CIS 8"], "kill_chain_phases": ["Command and Control", "Installation"], "nist": ["DE.CM", "DE.DP", "PR.PT"]} investigative_searches = ["ESCU - Investigate Network Traffic From src ip", "ESCU - Get Notable History"] support_searches = [] @@ -221,7 +221,7 @@ version = 1 reference = ["https://attack.mitre.org/wiki/Collection", "https://attack.mitre.org/wiki/Technique/T1074"] detection_searches = ["ESCU - Email files written outside of the Outlook directory - Rule", "ESCU - Email servers sending high volume traffic to hosts - Rule", "ESCU - Hosts receiving high volume of network traffic from email server - Rule", "ESCU - Suspicious writes to System Volume Information - Rule", "ESCU - Suspicious writes to windows Recycle Bin - Rule"] mappings = {"cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1036", "T1114.001", "T1114.002"], "nist": ["DE.AE", "DE.CM", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint", "Network_Traffic"] providing_technologies = none @@ -239,8 +239,8 @@ version = 1 reference = ["https://attack.mitre.org/wiki/Command_and_Control", "https://searchsecurity.techtarget.com/feature/Command-and-control-servers-The-puppet-masters-that-govern-malware"] detection_searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Detect Large Outbound ICMP Packets - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - TOR Traffic - Rule"] mappings = {"cis20": ["CIS 1", "CIS 11", "CIS 12", "CIS 13", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Delivery"], "mitre_attack": ["T1048", "T1048.003", "T1071.001", "T1071.004", "T1095"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Process Information For Port Activity", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Parent Process Info", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Baseline of blocked outbound traffic from AWS", "ESCU - Baseline of DNS Query Length - MLTK"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Baseline of DNS Query Length - MLTK", "ESCU - Baseline of blocked outbound traffic from AWS"] data_models = ["Network_Resolution", "Network_Traffic"] providing_technologies = none description = Detect and investigate tactics, techniques, and procedures leveraged by attackers to establish and operate command and control channels. Implants installed by attackers on compromised endpoints use these channels to receive instructions and send data back to the malicious operators. @@ -289,7 +289,7 @@ version = 3 reference = ["https://attack.mitre.org/wiki/Technique/T1003", "https://cyberwardog.blogspot.com/2017/03/chronicles-of-threat-hunter-hunting-for.html"] detection_searches = ["ESCU - Access LSASS Memory for Dump Creation - Rule", "ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Attempted Credential Dump From Registry via Reg exe - Rule", "ESCU - Create Remote Thread into LSASS - Rule", "ESCU - Creation of Shadow Copy - Rule", "ESCU - Creation of Shadow Copy with wmic and powershell - Rule", "ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule", "ESCU - Credential Dumping via Symlink to Shadow Copy - Rule", "ESCU - Detect Credential Dumping through LSASS access - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Dump LSASS via comsvcs DLL - Rule", "ESCU - Unsigned Image Loaded by LSASS - Rule"] mappings = {"cis20": ["CIS 16", "CIS 3", "CIS 5", "CIS 6", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Installation"], "mitre_attack": ["T1003.001", "T1003.002", "T1003.003", "T1059.001"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.IP"]} -investigative_searches = ["ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Pass the Hash Attempts", "ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Previous Unseen User"] +investigative_searches = ["ESCU - Investigate Pass the Hash Attempts", "ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Previous Unseen User"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -307,8 +307,8 @@ version = 2 reference = ["https://www.us-cert.gov/ncas/alerts/TA18-074A"] detection_searches = ["ESCU - Create local admin accounts using net exe - Rule", "ESCU - Detect New Local Admin account - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Malicious PowerShell Process - Execution Policy Bypass - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Single Letter Process On Endpoint - Rule", "ESCU - Suspicious Reg exe Process - Rule"] mappings = {"cis20": ["CIS 12", "CIS 16", "CIS 2", "CIS 3", "CIS 5", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "mitre_attack": ["T1021.002", "T1053.005", "T1059.001", "T1059.003", "T1071.002", "T1112", "T1136.001", "T1204.002", "T1543.003", "T1547.001", "T1562.004"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.AT", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Process File Activity"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get Notable History", "ESCU - Get Process File Activity", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Endpoint", "Network_Traffic"] providing_technologies = none description = Monitor for suspicious activities associated with DHS Technical Alert US-CERT TA18-074A. Some of the activities that adversaries used in these compromises included spearfishing attacks, malware, watering-hole domains, many and more. @@ -343,7 +343,7 @@ version = 1 reference = ["https://www.fireeye.com/blog/threat-research/2017/09/apt33-insights-into-iranian-cyber-espionage.html", "https://umbrella.cisco.com/blog/2013/04/15/on-the-trail-of-malicious-dynamic-dns-domains/", "http://www.noip.com/blog/2014/07/11/dynamic-dns-can-use-2/", "https://www.splunk.com/blog/2015/08/04/detecting-dynamic-dns-domains-in-splunk.html"] detection_searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - DNS record changed - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule"] mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1048.003", "T1071.004"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - DNS Hijack Enrichment", "ESCU - Get DNS Server History for a host"] +investigative_searches = ["ESCU - Get DNS Server History for a host", "ESCU - DNS Hijack Enrichment"] support_searches = ["ESCU - Discover DNS records"] data_models = ["Network_Resolution"] providing_technologies = none @@ -383,7 +383,7 @@ version = 1 reference = ["https://www.cisecurity.org/controls/data-protection/", "https://www.sans.org/reading-room/whitepapers/dns/splunk-detect-dns-tunneling-37022", "https://umbrella.cisco.com/blog/2013/04/15/on-the-trail-of-malicious-dynamic-dns-domains/"] detection_searches = ["ESCU - Detect USB device insertion - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detection of DNS Tunnels - Rule"] mappings = {"cis20": ["CIS 12", "CIS 13", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "mitre_attack": ["T1071.004"], "nist": ["DE.AE", "DE.CM", "PR.DS", "PR.PT"]} -investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio"] support_searches = [] data_models = ["Change_Analysis", "Network_Resolution"] providing_technologies = none @@ -415,8 +415,8 @@ version = 2 reference = ["https://attack.mitre.org/wiki/Technique/T1089", "https://blog.malwarebytes.com/cybercrime/2015/11/vonteera-adware-uses-certificates-to-disable-anti-malware/", "https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-Tools-Report.pdf"] detection_searches = ["ESCU - Attempt To Add Certificate To Untrusted Store - Rule", "ESCU - Attempt To Stop Security Service - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Unload Sysmon Filter Driver - Rule"] mappings = {"cis20": ["CIS 3", "CIS 5", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Installation"], "mitre_attack": ["T1112", "T1543.003", "T1553.004", "T1562.001", "T1562.004"], "nist": ["DE.CM", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Endpoint"] providing_technologies = none description = Looks for activities and techniques associated with the disabling of security tools on a Windows system, such as suspicious `reg.exe` processes, processes launching netsh, and many others. @@ -431,7 +431,7 @@ version = 2 reference = ["https://www.fireeye.com/blog/threat-research/2017/09/apt33-insights-into-iranian-cyber-espionage.html", "https://umbrella.cisco.com/blog/2013/04/15/on-the-trail-of-malicious-dynamic-dns-domains/", "http://www.noip.com/blog/2014/07/11/dynamic-dns-can-use-2/", "https://www.splunk.com/blog/2015/08/04/detecting-dynamic-dns-domains-in-splunk.html"] detection_searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detect web traffic to dynamic domain providers - Rule"] mappings = {"cis20": ["CIS 12", "CIS 13", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1071.001"], "nist": ["DE.AE", "DE.CM", "DE.DP", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Responsible For The DNS Traffic"] +investigative_searches = ["ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] support_searches = [] data_models = ["Network_Resolution", "Web"] providing_technologies = none @@ -445,9 +445,9 @@ modification_date = 2020-01-27 id = bb9f5ed2-916e-4364-bb6d-91c310efcf52 version = 1 reference = ["https://www.us-cert.gov/ncas/alerts/TA18-201A", "https://www.first.org/resources/papers/conf2017/Advanced-Incident-Detection-and-Threat-Hunting-using-Sysmon-and-Splunk.pdf", "https://www.vkremez.com/2017/05/emotet-banking-trojan-malware-analysis.html"] -detection_searches = ["ESCU - Detect Rare Executables - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule"] -mappings = {"cis20": ["CIS 12", "CIS 2", "CIS 3", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Delivery", "Exploitation", "Installation"], "mitre_attack": ["T1021.002", "T1059.003", "T1547.001", "T1566.001"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +detection_searches = ["ESCU - Detect Rare Executables - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - Detection of tools built by NirSoft - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule"] +mappings = {"cis20": ["CIS 12", "CIS 2", "CIS 3", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Delivery", "Exploitation", "Installation"], "mitre_attack": ["T1021.002", "T1059.003", "T1072", "T1547.001", "T1566.001"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.DS", "PR.IP", "PR.PT"]} +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = ["ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Email", "Endpoint", "Network_Traffic"] providing_technologies = none @@ -497,10 +497,10 @@ modification_date = 2020-01-22 id = baf7580b-d4b4-4774-8173-7d198e9da335 version = 2 reference = ["https://www.us-cert.gov/HIDDEN-COBRA-North-Korean-Malicious-Cyber-Activity", "https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-Destructive-Malware-Report.pdf"] -detection_searches = ["ESCU - Create or delete windows shares using net exe - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Suspicious File Write - Rule"] +detection_searches = ["ESCU - Create or delete windows shares using net exe - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Suspicious File Write - Rule"] mappings = {"cis20": ["CIS 12", "CIS 16", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1021.001", "T1021.002", "T1059.001", "T1059.003", "T1070.005", "T1071.002", "T1071.004"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get DNS traffic ratio", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments", "ESCU - Baseline of DNS Query Length - MLTK"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Baseline of DNS Query Length - MLTK", "ESCU - Previously seen command line arguments", "ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Endpoint", "Network_Resolution", "Network_Traffic"] providing_technologies = none description = Monitor for and investigate activities, including the creation or deletion of hidden shares and file writes, that may be evidence of infiltration by North Korean government-sponsored cybercriminals. Details of this activity were reported in DHS Report TA-18-149A. @@ -564,7 +564,7 @@ version = 1 reference = ["https://github.com/splunk/cloud-datamodel-security-research"] detection_searches = ["ESCU - Amazon EKS Kubernetes Pod scan detection - Rule", "ESCU - Amazon EKS Kubernetes cluster scan detection - Rule", "ESCU - GCP Kubernetes cluster pod scan detection - Rule", "ESCU - GCP Kubernetes cluster scan detection - Rule", "ESCU - Kubernetes Azure pod scan fingerprint - Rule", "ESCU - Kubernetes Azure scan fingerprint - Rule"] mappings = {"kill_chain_phases": ["Reconnaissance"], "mitre_attack": ["T1526"]} -investigative_searches = ["ESCU - GCP Kubernetes activity by src ip", "ESCU - Get Notable History", "ESCU - Amazon EKS Kubernetes activity by src ip"] +investigative_searches = ["ESCU - Amazon EKS Kubernetes activity by src ip", "ESCU - Get Notable History", "ESCU - GCP Kubernetes activity by src ip"] support_searches = [] data_models = [] providing_technologies = none @@ -610,9 +610,9 @@ modification_date = 2020-02-04 id = 399d65dc-1f08-499b-a259-aad9051f38ad version = 2 reference = ["https://www.fireeye.com/blog/executive-perspective/2015/08/malware_lateral_move.html"] -detection_searches = ["ESCU - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Schtasks scheduling job on remote system - Rule"] +detection_searches = ["ESCU - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - Schtasks scheduling job on remote system - Rule"] mappings = {"cis20": ["CIS 16", "CIS 3", "CIS 5", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1021.001", "T1053.005", "T1550.002", "T1558.003"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint", "Network_Traffic"] providing_technologies = none @@ -632,7 +632,7 @@ version = 4 reference = ["https://blogs.mcafee.com/mcafee-labs/malware-employs-powershell-to-infect-systems/", "https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee/"] detection_searches = ["ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Malicious PowerShell Process - Multiple Suspicious Command-Line Arguments - Rule", "ESCU - Malicious PowerShell Process With Obfuscation Techniques - Rule"] mappings = {"cis20": ["CIS 3", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "mitre_attack": ["T1027", "T1059.001"], "nist": ["DE.CM", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -657,8 +657,8 @@ version = 1 reference = ["https://www.carbonblack.com/2016/03/04/tracking-locky-ransomware-using-carbon-black/"] detection_searches = ["ESCU - Extended Period Without Successful Netbackup Backups - Rule", "ESCU - Unsuccessful Netbackup backups - Rule"] mappings = {"cis20": ["CIS 10"], "nist": ["PR.IP"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - All backup logs for host"] -support_searches = ["ESCU - Monitor Unsuccessful Backups", "ESCU - Monitor Successful Backups"] +investigative_searches = ["ESCU - All backup logs for host", "ESCU - Get Notable History"] +support_searches = ["ESCU - Monitor Successful Backups", "ESCU - Monitor Unsuccessful Backups"] data_models = [] providing_technologies = none description = Address common concerns when monitoring your backup processes. These searches can help you reduce risks from ransomware, device theft, or denial of physical access to a host by backing up data on endpoints. @@ -673,7 +673,7 @@ version = 1 reference = ["https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee/"] detection_searches = ["ESCU - Prohibited Software On Endpoint - Rule"] mappings = {"cis20": ["CIS 2"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "nist": ["ID.AM", "PR.DS"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -708,8 +708,8 @@ version = 1 reference = ["https://docs.microsoft.com/en-us/previous-versions/tn-archive/bb490939(v=technet.10)", "https://htmlpreview.github.io/?https://github.com/MatthewDemaske/blogbackup/blob/master/netshell.html", "http://blog.jpcert.or.jp/2016/01/windows-commands-abused-by-attackers.html"] detection_searches = ["ESCU - Processes created by netsh - Rule", "ESCU - Processes launching netsh - Rule"] mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.004"], "nist": ["DE.CM", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Endpoint"] providing_technologies = none description = Detect activities and various techniques associated with the abuse of `netsh.exe`, which can disable local firewall settings or set up a remote connection to a host from an infected system. @@ -741,8 +741,8 @@ version = 2 reference = ["https://www.symantec.com/blogs/threat-intelligence/orangeworm-targets-healthcare-us-europe-asia", "https://www.infosecurity-magazine.com/news/healthcare-targeted-by-hacker/"] detection_searches = ["ESCU - First Time Seen Running Windows Service - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule"] mappings = {"cis20": ["CIS 2", "CIS 3", "CIS 5", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "mitre_attack": ["T1059.001", "T1059.003", "T1543.003", "T1569.002"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.AT", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Previously Seen Running Windows Services - Initial", "ESCU - Previously Seen Running Windows Services - Update"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously Seen Running Windows Services - Update", "ESCU - Previously seen command line arguments", "ESCU - Previously Seen Running Windows Services - Initial"] data_models = ["Endpoint"] providing_technologies = none description = Detect activities and various techniques associated with the Orangeworm Attack Group, a group that frequently targets the healthcare industry. @@ -759,8 +759,8 @@ modification_date = 2019-04-29 id = 57226b40-94f3-4ce5-b101-a75f67759c27 version = 1 reference = ["https://www.fireeye.com/blog/threat-research/2019/04/spear-phishing-campaign-targets-ukraine-government.html"] -detection_searches = ["ESCU - Suspicious LNK file launching a process - Rule"] -mappings = {"cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Installation"], "mitre_attack": ["T1566.002"], "nist": ["ID.AM", "PR.DS"]} +detection_searches = ["ESCU - Detect Oulook exe writing a zip file - Rule", "ESCU - Suspicious LNK file launching a process - Rule"] +mappings = {"cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Installation"], "mitre_attack": ["T1566.001", "T1566.002"], "nist": ["ID.AM", "PR.DS"]} investigative_searches = ["ESCU - Get Parent Process Info"] support_searches = [] data_models = [] @@ -784,8 +784,8 @@ version = 1 reference = ["https://www.infosecurity-magazine.com/news/scope-of-mudcarp-attacks-highlight-1/", "http://blog.amossys.fr/badflick-is-not-so-bad.html"] detection_searches = ["ESCU - First time seen command line argument - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule"] mappings = {"cis20": ["CIS 3", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1059.001", "T1059.003", "T1547.001"], "nist": ["DE.AE", "DE.CM", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of Command Line Length - MLTK"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Previously seen command line arguments"] data_models = ["Endpoint"] providing_technologies = none description = Monitor your environment for suspicious behaviors that resemble the techniques employed by the MUDCARP threat group. @@ -827,7 +827,7 @@ version = 1 reference = ["http://www.novetta.com/2015/02/advanced-methods-to-detect-advanced-cyber-attacks-protocol-abuse/"] detection_searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - TOR Traffic - Rule"] mappings = {"cis20": ["CIS 12", "CIS 13", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Delivery"], "mitre_attack": ["T1048", "T1048.003", "T1071.001"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.DS", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Information For Port Activity", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Network_Resolution", "Network_Traffic"] providing_technologies = none @@ -841,10 +841,10 @@ modification_date = 2020-02-04 id = cf309d0d-d4aa-4fbb-963d-1e79febd3756 version = 1 reference = ["https://www.carbonblack.com/2017/06/28/carbon-black-threat-research-technical-analysis-petya-notpetya-ransomware/", "https://www.splunk.com/blog/2017/06/27/closing-the-detection-to-mitigation-gap-or-to-petya-or-notpetya-whocares-.html"] -detection_searches = ["ESCU - Common Ransomware Extensions - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - TOR Traffic - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Windows Event Log Cleared - Rule"] +detection_searches = ["ESCU - BCDEdit Failure Recovery Modification - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - TOR Traffic - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Windows Event Log Cleared - Rule"] mappings = {"cis20": ["CIS 10", "CIS 12", "CIS 3", "CIS 5", "CIS 6", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Delivery"], "mitre_attack": ["T1021.002", "T1036.003", "T1047", "T1048", "T1053.005", "T1070", "T1070.001", "T1071.001", "T1485", "T1490", "T1547.001"], "nist": ["DE.AE", "DE.CM", "DE.DP", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Backup Logs For Endpoint", "ESCU - Get Parent Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Baseline of Command Line Length - MLTK"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Process Information For Port Activity", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Endpoint", "Network_Traffic"] providing_technologies = none description = Leverage searches that allow you to detect and investigate unusual activities that might relate to ransomware--spikes in SMB traffic, suspicious wevtutil usage, the presence of common ransomware extensions, and system processes run from unexpected locations, and many others. @@ -890,8 +890,8 @@ modification_date = 2020-11-06 id = 507edc74-13d5-4339-878e-b9744ded1f35 version = 1 reference = ["https://www.splunk.com/en_us/blog/security/detecting-ryuk-using-splunk-attack-range.html", "https://www.crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/", "https://us-cert.cisa.gov/ncas/alerts/aa20-302a"] -detection_searches = ["ESCU - Common Ransomware Notes - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Windows DisableAntiSpyware Registry - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Windows connhost exe started forcefully - Rule"] -mappings = {"cis20": ["CIS 12", "CIS 16", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Delivery", "Reconnaissance"], "mitre_attack": ["T1021.001", "T1059.003", "T1485", "T1486", "T1489", "T1562.001"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.IP", "PR.PT"]} +detection_searches = ["ESCU - BCDEdit Failure Recovery Modification - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Windows DisableAntiSpyware Registry - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Windows connhost exe started forcefully - Rule"] +mappings = {"cis20": ["CIS 12", "CIS 16", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Delivery", "Reconnaissance"], "mitre_attack": ["T1021.001", "T1059.003", "T1485", "T1486", "T1489", "T1490", "T1562.001"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.IP", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = ["Endpoint", "Network_Traffic"] @@ -923,9 +923,9 @@ modification_date = 2018-12-13 id = c4b89506-fbcf-4cb7-bfd6-527e54789604 version = 1 reference = ["https://www.crowdstrike.com/blog/an-in-depth-analysis-of-samsam-ransomware-and-boss-spider/", "https://nakedsecurity.sophos.com/2018/07/31/samsam-the-almost-6-million-ransomware/", "https://thehackernews.com/2018/07/samsam-ransomware-attacks.html"] -detection_searches = ["ESCU - Batch File Write to System32 - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Samsam Test File Write - Rule"] +detection_searches = ["ESCU - Batch File Write to System32 - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Samsam Test File Write - Rule", "ESCU - Spike in File Writes - Rule"] mappings = {"cis20": ["CIS 10", "CIS 12", "CIS 16", "CIS 18", "CIS 2", "CIS 3", "CIS 4", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Delivery", "Installation", "Reconnaissance"], "mitre_attack": ["T1021.001", "T1021.002", "T1082", "T1204.002", "T1485", "T1486", "T1490"], "nist": ["DE.AE", "DE.CM", "ID.AM", "ID.RA", "PR.AC", "PR.DS", "PR.IP", "PR.MA", "PR.PT"]} -investigative_searches = ["ESCU - Get Backup Logs For Endpoint", "ESCU - Get Parent Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Information For Port Activity", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint", "Network_Traffic", "Web"] providing_technologies = none @@ -1004,11 +1004,11 @@ modification_date = 2020-12-14 id = 758196b5-2e21-424f-a50c-6e421ce926c2 version = 1 reference = ["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html", "https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"] -detection_searches = ["ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Windows AdFind Exe - Rule"] -mappings = {"cis20": ["CIS 12", "CIS 2", "CIS 3", "CIS 5", "CIS 6", "CIS 7", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Exploitation", "Installation"], "mitre_attack": ["T1018", "T1027", "T1053.005", "T1059.003", "T1071.001", "T1071.002", "T1203", "T1543.003", "T1569.002"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.AT", "PR.DS", "PR.IP", "PR.PT"]} +detection_searches = ["ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - Supernova Webshell - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Windows AdFind Exe - Rule"] +mappings = {"cis20": ["CIS 12", "CIS 13", "CIS 18", "CIS 2", "CIS 3", "CIS 4", "CIS 5", "CIS 6", "CIS 7", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Exfiltration", "Exploitation", "Installation"], "mitre_attack": ["T1018", "T1027", "T1053.005", "T1059.003", "T1071.001", "T1071.002", "T1203", "T1505.003", "T1543.003", "T1569.002"], "nist": ["DE.AE", "DE.CM", "ID.AM", "ID.RA", "PR.AC", "PR.AT", "PR.DS", "PR.IP", "PR.PT"]} investigative_searches = [] -support_searches = ["ESCU - Previously Seen Running Windows Services - Initial", "ESCU - Previously Seen Running Windows Services - Update"] -data_models = ["Endpoint", "Network_Traffic"] +support_searches = ["ESCU - Previously Seen Running Windows Services - Update", "ESCU - Previously Seen Running Windows Services - Initial"] +data_models = ["Endpoint", "Network_Traffic", "Web"] providing_technologies = none description = Sunburst is a trojanized updates to SolarWinds Orion IT monitoring and management software. It was discovered by FireEye in December 2020. The actors behind this campaign gained access to numerous public and private organizations around the world. narrative = This Analytic Story supports you to detect Tactics, Techniques and Procedures (TTPs) from the Sunburst malware. The threat actor behind sunburst compromised the SolarWinds.Orion.Core.BusinessLayer.dll, is a SolarWinds digitally-signed component of the Orion software framework that contains a backdoor that communicates via HTTP to third party servers. The detections in this Analytic Story are focusing on the dll loading events, file create events and network events to detect This malware. @@ -1022,8 +1022,8 @@ version = 1 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] detection_searches = ["ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - MLTK - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - Rule"] mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004", "T1535"], "nist": ["DE.AE", "DE.DP", "ID.AM"]} -investigative_searches = ["ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously Seen EC2 Launches By User", "ESCU - Previously Seen AWS Regions", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK", "ESCU - Baseline of Excessive AWS Instances Terminated by User - MLTK"] +investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details"] +support_searches = ["ESCU - Previously Seen EC2 Launches By User", "ESCU - Baseline of Excessive AWS Instances Terminated by User - MLTK", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK", "ESCU - Previously Seen AWS Regions"] data_models = [] providing_technologies = none description = Use the searches in this Analytic Story to monitor your AWS EC2 instances for evidence of anomalous activity and suspicious behaviors, such as EC2 instances that originate from unusual locations or those launched by previously unseen users (among others). Included investigative searches will help you probe more deeply, when the information warrants it. @@ -1039,7 +1039,7 @@ reference = ["https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integr detection_searches = ["ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by User from New Region - Rule", "ESCU - Detect new user AWS Console Login - Rule"] mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004", "T1535"], "nist": ["DE.AE", "DE.DP"]} investigative_searches = ["ESCU - AWS Investigate User Activities By ARN"] -support_searches = ["ESCU - Update previously seen users in CloudTrail", "ESCU - Previously seen users in CloudTrail"] +support_searches = ["ESCU - Previously seen users in CloudTrail", "ESCU - Update previously seen users in CloudTrail"] data_models = ["Authentication"] providing_technologies = none description = Monitor your AWS authentication events using your CloudTrail logs. Searches within this Analytic Story will help you stay aware of and investigate suspicious logins. @@ -1052,9 +1052,9 @@ modification_date = 2018-07-24 id = 2e8948a5-5239-406b-b56b-6c50w3168af3 version = 2 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf", "https://www.tripwire.com/state-of-security/security-data-protection/cloud/public-aws-s3-buckets-writable/"] -detection_searches = ["ESCU - Detect New Open S3 buckets - Rule", "ESCU - Detect S3 access from a new IP - Rule", "ESCU - Detect Spike in S3 Bucket deletion - Rule"] +detection_searches = ["ESCU - Detect New Open S3 Buckets over AWS CLI - Rule", "ESCU - Detect New Open S3 buckets - Rule", "ESCU - Detect S3 access from a new IP - Rule", "ESCU - Detect Spike in S3 Bucket deletion - Rule"] mappings = {"cis20": ["CIS 13", "CIS 14"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1530"], "nist": ["DE.CM", "DE.DP", "PR.AC", "PR.DS"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address", "ESCU - Investigate AWS activities via region name", "ESCU - AWS S3 Bucket details via bucketName", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - AWS S3 Bucket details via bucketName", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Investigate AWS activities via region name", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History"] support_searches = ["ESCU - Baseline of S3 Bucket deletion activity by ARN", "ESCU - Previously seen S3 bucket access by remote IP"] data_models = [] providing_technologies = none @@ -1072,7 +1072,7 @@ version = 1 reference = ["https://rhinosecuritylabs.com/aws/hiding-cloudcobalt-strike-beacon-c2-using-amazon-apis/"] detection_searches = ["ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule"] mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "nist": ["DE.AE", "DE.CM", "PR.AC"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Process Information For Port Activity", "ESCU - AWS Network ACL Details from ID", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio"] support_searches = ["ESCU - Baseline of blocked outbound traffic from AWS"] data_models = [] providing_technologies = none @@ -1092,7 +1092,7 @@ reference = ["https://aws.amazon.com/blogs/security/aws-cloudtrail-now-tracks-cr detection_searches = ["ESCU - AWS Cross Account Activity From Previously Unseen Account - Rule", "ESCU - Detect AWS Console Login by New User - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by User from New Region - Rule"] mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1535"], "nist": ["DE.AE", "DE.DP", "PR.AC", "PR.DS"]} investigative_searches = ["ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously Seen AWS Cross Account Activity - Update", "ESCU - Previously Seen Users in CloudTrail - Initial", "ESCU - Previously Seen Users In CloudTrail - Update", "ESCU - Previously Seen AWS Cross Account Activity - Initial"] +support_searches = ["ESCU - Previously Seen AWS Cross Account Activity - Initial", "ESCU - Previously Seen Users in CloudTrail - Initial", "ESCU - Previously Seen AWS Cross Account Activity - Update", "ESCU - Previously Seen Users In CloudTrail - Update"] data_models = ["Authentication"] providing_technologies = none description = Monitor your cloud authentication events. Searches within this Analytic Story leverage the recent cloud updates to the Authentication data model to help you stay aware of and investigate suspicious login activity. @@ -1109,7 +1109,7 @@ reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.p detection_searches = ["ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Instance Modified By Previously Unseen User - Rule"] mappings = {"cis20": ["CIS 1", "CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.AE", "DE.DP", "ID.AM"]} investigative_searches = ["ESCU - Get All AWS Activity From IP Address", "ESCU - AWS Investigate User Activities By ARN"] -support_searches = ["ESCU - Baseline Of Cloud Instances Launched", "ESCU - Previously Seen Cloud Instance Modifications By User - Update", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Instance Modifications By User - Initial"] +support_searches = ["ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Instance Modifications By User - Update", "ESCU - Previously Seen Cloud Instance Modifications By User - Initial", "ESCU - Baseline Of Cloud Instances Launched"] data_models = ["Change"] providing_technologies = none description = Monitor your cloud infrastructure provisioning activities for behaviors originating from unfamiliar or unusual locations. These behaviors may indicate that malicious activities are occurring somewhere within your cloud environment. @@ -1125,7 +1125,7 @@ reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.p detection_searches = ["ESCU - Cloud Provisioning Activity From Previously Unseen City - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Country - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen IP Address - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Region - Rule"] mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1078"], "nist": ["ID.AM"]} investigative_searches = ["ESCU - Get Notable History"] -support_searches = ["ESCU - Previously Seen Cloud Provisioning Activity Sources - Update", "ESCU - Previously Seen Cloud Provisioning Activity Sources - Initial"] +support_searches = ["ESCU - Previously Seen Cloud Provisioning Activity Sources - Initial", "ESCU - Previously Seen Cloud Provisioning Activity Sources - Update"] data_models = ["Change"] providing_technologies = none description = Monitor your cloud infrastructure provisioning activities for behaviors originating from unfamiliar or unusual locations. These behaviors may indicate that malicious activities are occurring somewhere within your cloud environment. @@ -1142,7 +1142,7 @@ reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.p detection_searches = ["ESCU - Abnormally High Number Of Cloud Infrastructure API Calls - Rule", "ESCU - Abnormally High Number Of Cloud Security Group API Calls - Rule", "ESCU - Cloud API Calls From Previously Unseen User Roles - Rule"] mappings = {"cis20": ["CIS 1", "CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078", "T1078.004"], "nist": ["DE.CM", "DE.DP", "ID.AM", "PR.AC"]} investigative_searches = ["ESCU - AWS Investigate User Activities By ARN"] -support_searches = ["ESCU - Previously Seen Cloud API Calls Per User Role - Update", "ESCU - Previously Seen Cloud API Calls Per User Role - Initial", "ESCU - Baseline Of Cloud Infrastructure API Calls Per User", "ESCU - Baseline Of Cloud Security Group API Calls Per User"] +support_searches = ["ESCU - Previously Seen Cloud API Calls Per User Role - Update", "ESCU - Baseline Of Cloud Infrastructure API Calls Per User", "ESCU - Baseline Of Cloud Security Group API Calls Per User", "ESCU - Previously Seen Cloud API Calls Per User Role - Initial"] data_models = ["Change"] providing_technologies = none description = Detect and investigate suspicious activities by users and roles in your cloud environments. @@ -1158,8 +1158,8 @@ version = 2 reference = ["https://attack.mitre.org/wiki/Technique/T1059", "https://www.microsoft.com/en-us/wdsi/threats/macro-malware", "https://www.fireeye.com/content/dam/fireeye-www/services/pdfs/mandiant-apt1-report.pdf"] detection_searches = ["ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule"] mappings = {"cis20": ["CIS 3", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Exploitation"], "mitre_attack": ["T1036.003", "T1059.001", "T1059.003"], "nist": ["DE.CM", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of Command Line Length - MLTK"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Previously seen command line arguments"] data_models = ["Endpoint"] providing_technologies = none description = Leveraging the Windows command-line interface (CLI) is one of the most common attack techniques--one that is also detailed in the MITRE ATT&CK framework. Use this Analytic Story to help you identify unusual or suspicious use of the CLI on Windows systems. @@ -1174,7 +1174,7 @@ version = 1 reference = ["http://blogs.splunk.com/2015/10/01/random-words-on-entropy-and-dns/", "http://www.darkreading.com/analytics/security-monitoring/got-malware-three-signs-revealed-in-dns-traffic/d/d-id/1139680", "https://live.paloaltonetworks.com/t5/Threat-Vulnerability-Articles/What-are-suspicious-DNS-queries/ta-p/71454"] detection_searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Excessive DNS Failures - Rule"] mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1048.003", "T1071.004"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Parent Process Info", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info"] support_searches = ["ESCU - Baseline of DNS Query Length - MLTK"] data_models = ["Network_Resolution"] providing_technologies = none @@ -1190,7 +1190,7 @@ version = 1 reference = ["https://www.splunk.com/blog/2015/06/26/phishing-hits-a-new-level-of-quality/"] detection_searches = ["ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Suspicious Email - UBA Anomaly - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule"] mappings = {"cis20": ["CIS 12", "CIS 3", "CIS 7"], "kill_chain_phases": ["Delivery"], "mitre_attack": ["T1566", "T1566.001"], "nist": ["DE.AE", "PR.IP"]} -investigative_searches = ["ESCU - Get Emails From Specific Sender", "ESCU - Get Email Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Emails From Specific Sender", "ESCU - Get Notable History", "ESCU - Get Email Info"] support_searches = ["ESCU - DNSTwist Domain Names"] data_models = ["Email", "UEBA"] providing_technologies = none @@ -1226,8 +1226,8 @@ version = 1 reference = ["https://redcanary.com/blog/windows-registry-attacks-threat-detection/", "https://medium.com/@mbromileyDFIR/malware-monday-aebb456356c5", "https://attack.mitre.org/wiki/Technique/T1170"] detection_searches = ["ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Detect mshta exe running scripts in command-line arguments - Rule", "ESCU - Registry Keys Used For Persistence - Rule"] mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Exploitation"], "mitre_attack": ["T1059.003", "T1218.005", "T1547.001"], "nist": ["DE.AE", "DE.CM", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of Command Line Length - MLTK"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Previously seen command line arguments"] data_models = ["Endpoint"] providing_technologies = none description = Monitor and detect techniques used by attackers who leverage the mshta.exe process to execute malicious code. @@ -1260,9 +1260,9 @@ modification_date = 2018-10-23 id = c8ddc5be-69bc-4202-b3ab-4010b27d7ad5 version = 2 reference = ["https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf", "https://www.fireeye.com/blog/threat-research/2017/03/wmimplant_a_wmi_ba.html"] -detection_searches = ["ESCU - Process Execution via WMI - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Remote WMI Command Attempt - Rule", "ESCU - Script Execution via WMI - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule"] +detection_searches = ["ESCU - Process Execution via WMI - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Remote WMI Command Attempt - Rule", "ESCU - Script Execution via WMI - Rule", "ESCU - WMI Permanent Event Subscription - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule", "ESCU - WMI Temporary Event Subscription - Rule"] mappings = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047", "T1546.003"], "nist": ["PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1280,7 +1280,7 @@ version = 1 reference = ["https://redcanary.com/blog/windows-registry-attacks-threat-detection/", "https://attack.mitre.org/wiki/Technique/T1112"] detection_searches = ["ESCU - Disabling Remote User Account Control - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Suspicious Changes to File Associations - Rule"] mappings = {"cis20": ["CIS 3", "CIS 5", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1546.001", "T1546.011", "T1546.012", "T1547.001", "T1547.010", "T1548.002", "T1564.001"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1299,7 +1299,7 @@ reference = ["https://blog.rapid7.com/2020/04/02/dispelling-zoom-bugbears-what-y detection_searches = ["ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First Time Seen Child Process of Zoom - Rule"] mappings = {"cis20": ["CIS 3", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Exploitation"], "mitre_attack": ["T1059.003", "T1068"], "nist": ["DE.CM", "PR.IP", "PR.PT"]} investigative_searches = ["ESCU - Get Process File Activity"] -support_searches = ["ESCU - Previously Seen Zoom Child Processes - Initial", "ESCU - Previously Seen Zoom Child Processes - Update"] +support_searches = ["ESCU - Previously Seen Zoom Child Processes - Update", "ESCU - Previously Seen Zoom Child Processes - Initial"] data_models = ["Endpoint"] providing_technologies = none description = Attackers are using Zoom as an vector to increase privileges on a sytems. This story detects new child processes of zoom and provides investigative actions for this detection. @@ -1315,7 +1315,7 @@ version = 1 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] detection_searches = ["ESCU - EC2 Instance Modified With Previously Unseen User - Rule"] mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1078.004"], "nist": ["ID.AM"]} -investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Notable History", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - AWS Investigate User Activities By ARN"] support_searches = ["ESCU - Previously Seen EC2 Modifications By User"] data_models = [] providing_technologies = none @@ -1332,7 +1332,7 @@ version = 2 reference = ["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-two.html", "https://www.splunk.com/pdfs/technical-briefs/advanced-threat-detection-and-response-tech-brief.pdf", "https://www.sans.org/reading-room/whitepapers/logging/detecting-security-incidents-windows-workstation-event-logs-34262"] detection_searches = ["ESCU - Detect Rare Executables - Rule", "ESCU - Detect processes used for System Network Configuration Discovery - Rule", "ESCU - RunDLL Loading DLL By Ordinal - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule"] mappings = {"cis20": ["CIS 2", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "mitre_attack": ["T1016", "T1036.003", "T1204.002", "T1218.011"], "nist": ["DE.CM", "ID.AM", "PR.DS", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = ["ESCU - Baseline of Command Line Length - MLTK"] data_models = ["Endpoint"] providing_technologies = none @@ -1366,7 +1366,7 @@ version = 1 reference = ["https://www.fbi.gov/scams-and-safety/common-fraud-schemes/internet-fraud", "https://www.fbi.gov/news/stories/2017-internet-crime-report-released-050718"] detection_searches = ["ESCU - Web Fraud - Account Harvesting - Rule", "ESCU - Web Fraud - Anomalous User Clickspeed - Rule", "ESCU - Web Fraud - Password Sharing Across Accounts - Rule"] mappings = {"cis20": ["CIS 16", "CIS 6"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078", "T1136"], "nist": ["DE.AE", "DE.CM", "DE.DP"]} -investigative_searches = ["ESCU - Get Emails From Specific Sender", "ESCU - Get Notable History", "ESCU - Get Web Session Information via session id"] +investigative_searches = ["ESCU - Get Web Session Information via session id", "ESCU - Get Notable History", "ESCU - Get Emails From Specific Sender"] support_searches = [] data_models = [] providing_technologies = none @@ -1403,7 +1403,7 @@ version = 1 reference = ["https://attack.mitre.org/wiki/Defense_Evasion"] detection_searches = ["ESCU - Disabling Remote User Account Control - Rule", "ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Suspicious Reg exe Process - Rule"] mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1112", "T1222.001", "T1548.002", "T1564.001"], "nist": ["DE.CM", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1419,7 +1419,7 @@ version = 1 reference = ["https://blog.malwarebytes.com/cybercrime/2013/12/file-extensions-2/", "https://attack.mitre.org/wiki/Technique/T1042"] detection_searches = ["ESCU - Execution of File With Spaces Before Extension - Rule", "ESCU - Execution of File with Multiple Extensions - Rule", "ESCU - Suspicious Changes to File Associations - Rule"] mappings = {"cis20": ["CIS 3", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1036.003", "T1546.001"], "nist": ["DE.CM", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1439,7 +1439,7 @@ version = 2 reference = ["https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee/", "https://zeltser.com/security-incident-log-review-checklist/", "http://journeyintoir.blogspot.com/2013/01/re-introducing-usnjrnl.html"] detection_searches = ["ESCU - Deleting Shadow Copies - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Windows Event Log Cleared - Rule"] mappings = {"cis20": ["CIS 10", "CIS 3", "CIS 5", "CIS 6", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1070", "T1070.001", "T1490"], "nist": ["DE.AE", "DE.CM", "DE.DP", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1456,7 +1456,7 @@ version = 2 reference = ["http://www.fuzzysecurity.com/tutorials/19.html", "https://www.fireeye.com/blog/threat-research/2010/07/malware-persistence-windows-registry.html", "http://resources.infosecinstitute.com/common-malware-persistence-mechanisms/", "https://www.fireeye.com/blog/threat-research/2017/05/fin7-shim-databases-persistence.html", "https://www.youtube.com/watch?v=dq2Hv7J9fvk"] detection_searches = ["ESCU - Detect Path Interception By Creation Of program exe - Rule", "ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Shim Database File Creation - Rule", "ESCU - Shim Database Installation With Suspicious Parameters - Rule"] mappings = {"cis20": ["CIS 3", "CIS 5", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Installation"], "mitre_attack": ["T1053.005", "T1222.001", "T1543.003", "T1546.011", "T1547.001", "T1547.010", "T1564.001", "T1574.009", "T1574.011"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1470,9 +1470,9 @@ modification_date = 2020-02-04 id = 644e22d3-598a-429c-a007-16fdb802cae5 version = 2 reference = ["https://attack.mitre.org/tactics/TA0004/"] -detection_searches = ["ESCU - Overwriting Accessibility Binaries - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Uncommon Processes On Endpoint - Rule"] -mappings = {"cis20": ["CIS 2", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1204.002", "T1546.008", "T1546.012"], "nist": ["DE.CM", "ID.AM", "PR.DS", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +detection_searches = ["ESCU - Child Processes of Spoolsv exe - Rule", "ESCU - Overwriting Accessibility Binaries - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Uncommon Processes On Endpoint - Rule"] +mappings = {"cis20": ["CIS 2", "CIS 5", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Exploitation"], "mitre_attack": ["T1068", "T1204.002", "T1546.008", "T1546.012"], "nist": ["DE.CM", "ID.AM", "PR.AC", "PR.DS", "PR.PT"]} +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1488,8 +1488,8 @@ version = 3 reference = ["https://attack.mitre.org/wiki/Technique/T1050", "https://attack.mitre.org/wiki/Technique/T1031"] detection_searches = ["ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule"] mappings = {"cis20": ["CIS 2", "CIS 3", "CIS 5", "CIS 8", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Installation"], "mitre_attack": ["T1543.003", "T1569.002", "T1574.011"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.AT", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] -support_searches = ["ESCU - Previously Seen Running Windows Services - Initial", "ESCU - Previously Seen Running Windows Services - Update"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously Seen Running Windows Services - Update", "ESCU - Previously Seen Running Windows Services - Initial"] data_models = ["Endpoint"] providing_technologies = none description = Windows services are often used by attackers for persistence and the ability to load drivers or otherwise interact with the Windows kernel. This Analytic Story helps you monitor your environment for indications that Windows services are being modified or created in a suspicious manner. diff --git a/package/default/collections.conf b/package/default/collections.conf index 8b02da9e99..81acd9ec18 100644 --- a/package/default/collections.conf +++ b/package/default/collections.conf @@ -1,6 +1,6 @@ ############# # Automatically generated by generator.py in splunk/security-content -# On Date: 2021-01-07T20:36:47 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# diff --git a/package/default/es_investigations.conf b/package/default/es_investigations.conf index 0f0cdd2663..f574dba0e2 100644 --- a/package/default/es_investigations.conf +++ b/package/default/es_investigations.conf @@ -4,35 +4,35 @@ label = AWS Cross Account Activity description = Track when a user assumes an IAM role in another AWS account to obtain cross-account access to services and resources in that account. Accessing new roles could be an indication of malicious activity. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_accesskeyid", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_investigate_user_activities_by_accesskeyid"] [panel_group://workbench_panel_group_aws_cryptomining] label = AWS Cryptomining description = Monitor your AWS EC2 instances for activities related to cryptojacking/cryptomining. New instances that originate from previously unseen regions, users who launch abnormally high numbers of instances, or EC2 instances started by previously unseen users are just a few examples of potentially malicious behavior. disabled = 0 -panels = ["panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details"] [panel_group://workbench_panel_group_aws_network_acl_activity] label = AWS Network ACL Activity description = Monitor your AWS network infrastructure for bad configurations and malicious activity. Investigative searches help you probe deeper, when the facts warrant it. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio"] [panel_group://workbench_panel_group_aws_security_hub_alerts] label = AWS Security Hub Alerts description = This story is focused around detecting Security Hub alerts generated from AWS disabled = 0 -panels = ["panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] +panels = ["panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_launch_details"] [panel_group://workbench_panel_group_aws_suspicious_provisioning_activities] label = AWS Suspicious Provisioning Activities description = Monitor your AWS provisioning activities for behaviors originating from unfamiliar or unusual locations. These behaviors may indicate that malicious activities are occurring somewhere within your network. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_get_all_aws_activity_from_country", "panel://workbench_panel_get_all_aws_activity_from_region", "panel://workbench_panel_get_all_aws_activity_from_city"] +panels = ["panel://workbench_panel_get_all_aws_activity_from_city", "panel://workbench_panel_get_all_aws_activity_from_region", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_all_aws_activity_from_country"] [panel_group://workbench_panel_group_aws_user_monitoring] label = AWS User Monitoring @@ -46,28 +46,28 @@ label = Apache Struts Vulnerability description = Detect and investigate activities--such as unusually long `Content-Type` length, suspicious java classes and web servers executing suspicious processes--consistent with attempts to exploit Apache Struts vulnerabilities. disabled = 0 -panels = ["panel://workbench_panel_investigate_suspicious_strings_in_http_header", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_investigate_web_posts_from_src"] +panels = ["panel://workbench_panel_investigate_suspicious_strings_in_http_header", "panel://workbench_panel_investigate_web_posts_from_src", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_asset_tracking] label = Asset Tracking description = Keep a careful inventory of every asset on your network to make it easier to detect rogue devices. Unauthorized/unmanaged devices could be an indication of malicious behavior that should be investigated further. disabled = 0 -panels = ["panel://workbench_panel_get_first_occurrence_and_last_occurrence_of_a_mac_address", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_first_occurrence_and_last_occurrence_of_a_mac_address"] [panel_group://workbench_panel_group_brand_monitoring] label = Brand Monitoring description = Detect and investigate activity that may indicate that an adversary is using faux domains to mislead users into interacting with malicious infrastructure. Monitor DNS, email, and web traffic for permutations of your brand name. disabled = 0 -panels = ["panel://workbench_panel_get_emails_from_specific_sender", "panel://workbench_panel_get_email_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic"] +panels = ["panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_emails_from_specific_sender", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_email_info"] [panel_group://workbench_panel_group_cloud_cryptomining] label = Cloud Cryptomining description = Monitor your cloud compute instances for activities related to cryptojacking/cryptomining. New instances that originate from previously unseen regions, users who launch abnormally high numbers of instances, or compute instances started by previously unseen users are just a few examples of potentially malicious behavior. disabled = 0 -panels = ["panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details"] [panel_group://workbench_panel_group_coldroot_macos_rat] label = ColdRoot MacOS RAT @@ -81,14 +81,14 @@ label = Collection and Staging description = Monitor for and investigate activities--such as suspicious writes to the Windows Recycling Bin or email servers sending high amounts of traffic to specific hosts, for example--that may indicate that an adversary is harvesting and exfiltrating sensitive data. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_command_and_control] label = Command and Control description = Detect and investigate tactics, techniques, and procedures leveraged by attackers to establish and operate command and control channels. Implants installed by attackers on compromised endpoints use these channels to receive instructions and send data back to the malicious operators. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_common_phishing_frameworks] label = Common Phishing Frameworks @@ -109,14 +109,14 @@ label = Credential Dumping description = Uncover activity consistent with credential dumping, a technique wherein attackers compromise systems and attempt to obtain and exfiltrate passwords. The threat actors use these pilfered credentials to further escalate privileges and spread throughout a target environment. The included searches in this Analytic Story are designed to identify attempts to credential dumping. disabled = 0 -panels = ["panel://workbench_panel_investigate_failed_logins_for_multiple_destinations", "panel://workbench_panel_investigate_pass_the_hash_attempts", "panel://workbench_panel_investigate_pass_the_ticket_attempts", "panel://workbench_panel_investigate_previous_unseen_user"] +panels = ["panel://workbench_panel_investigate_pass_the_hash_attempts", "panel://workbench_panel_investigate_pass_the_ticket_attempts", "panel://workbench_panel_investigate_failed_logins_for_multiple_destinations", "panel://workbench_panel_investigate_previous_unseen_user"] [panel_group://workbench_panel_group_dhs_report_ta18_074a] label = DHS Report TA18-074A description = Monitor for suspicious activities associated with DHS Technical Alert US-CERT TA18-074A. Some of the activities that adversaries used in these compromises included spearfishing attacks, malware, watering-hole domains, many and more. disabled = 0 -panels = ["panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_file_activity"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_file_activity", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_dns_amplification_attacks] label = DNS Amplification Attacks @@ -130,7 +130,7 @@ label = DNS Hijacking description = Secure your environment against DNS hijacks with searches that help you detect and investigate unauthorized changes to DNS records. disabled = 0 -panels = ["panel://workbench_panel_dns_hijack_enrichment", "panel://workbench_panel_get_dns_server_history_for_a_host"] +panels = ["panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_dns_hijack_enrichment"] [panel_group://workbench_panel_group_data_exfiltration] label = Data Exfiltration @@ -144,7 +144,7 @@ label = Data Protection description = Fortify your data-protection arsenal--while continuing to ensure data confidentiality and integrity--with searches that monitor for and help you investigate possible signs of data exfiltration. disabled = 0 -panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio"] [panel_group://workbench_panel_group_detect_zerologon_attack] label = Detect Zerologon Attack @@ -158,21 +158,21 @@ label = Disabling Security Tools description = Looks for activities and techniques associated with the disabling of security tools on a Windows system, such as suspicious `reg.exe` processes, processes launching netsh, and many others. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_dynamic_dns] label = Dynamic DNS description = Detect and investigate hosts in your environment that may be communicating with dynamic domain providers. Attackers may leverage these services to help them avoid firewall blocks and blacklists. disabled = 0 -panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic"] +panels = ["panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_emotet_malware__dhs_report_ta18_201a_] label = Emotet Malware DHS Report TA18-201A description = Detect rarely used executables, specific registry paths that may confer malware survivability and persistence, instances where cmd.exe is used to launch script interpreters, and other indicators that the Emotet financial malware has compromised your environment. disabled = 0 -panels = ["panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_f5_tmui_rce_cve_2020_5902] label = F5 TMUI RCE CVE-2020-5902 @@ -193,7 +193,7 @@ label = Hidden Cobra Malware description = Monitor for and investigate activities, including the creation or deletion of hidden shares and file writes, that may be evidence of infiltration by North Korean government-sponsored cybercriminals. Details of this activity were reported in DHS Report TA-18-149A. disabled = 0 -panels = ["panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_outbound_emails_to_hidden_cobra_threat_actors", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_outbound_emails_to_hidden_cobra_threat_actors", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_host_redirection] label = Host Redirection @@ -214,7 +214,7 @@ label = Kubernetes Scanning Activity description = This story addresses detection against Kubernetes cluster fingerprint scan and attack by providing information on items such as source ip, user agent, cluster names. disabled = 0 -panels = ["panel://workbench_panel_gcp_kubernetes_activity_by_src_ip", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_amazon_eks_kubernetes_activity_by_src_ip"] +panels = ["panel://workbench_panel_amazon_eks_kubernetes_activity_by_src_ip", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_gcp_kubernetes_activity_by_src_ip"] [panel_group://workbench_panel_group_kubernetes_sensitive_object_access_activity] label = Kubernetes Sensitive Object Access Activity @@ -235,28 +235,28 @@ label = Lateral Movement description = Detect and investigate tactics, techniques, and procedures around how attackers move laterally within the enterprise. Because lateral movement can expose the adversary to detection, it should be an important focus for security analysts. disabled = 0 -panels = ["panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_malicious_powershell] label = Malicious PowerShell description = Attackers are finding stealthy ways "live off the land," leveraging utilities and tools that come standard on the endpoint--such as PowerShell--to achieve their goals without downloading binary files. These searches can help you detect and investigate PowerShell command-line options that may be indicative of malicious intent. disabled = 0 -panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_monitor_backup_solution] label = Monitor Backup Solution description = Address common concerns when monitoring your backup processes. These searches can help you reduce risks from ransomware, device theft, or denial of physical access to a host by backing up data on endpoints. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_all_backup_logs_for_host"] +panels = ["panel://workbench_panel_all_backup_logs_for_host", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_monitor_for_unauthorized_software] label = Monitor for Unauthorized Software description = Identify and investigate prohibited/unauthorized software or processes that may be concealing malicious behavior within your environment. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_monitor_for_updates] label = Monitor for Updates @@ -270,7 +270,7 @@ label = Netsh Abuse description = Detect activities and various techniques associated with the abuse of `netsh.exe`, which can disable local firewall settings or set up a remote connection to a host from an infected system. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_office_365_detections] label = Office 365 Detections @@ -284,7 +284,7 @@ label = Orangeworm Attack Group description = Detect activities and various techniques associated with the Orangeworm Attack Group, a group that frequently targets the healthcare industry. disabled = 0 -panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_phishing_payloads] label = Phishing Payloads @@ -298,21 +298,21 @@ label = Possible Backdoor Activity Associated With MUDCARP Espionage Campaigns description = Monitor your environment for suspicious behaviors that resemble the techniques employed by the MUDCARP threat group. disabled = 0 -panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_prohibited_traffic_allowed_or_protocol_mismatch] label = Prohibited Traffic Allowed or Protocol Mismatch description = Detect instances of prohibited network traffic allowed in the environment, as well as protocols running on non-standard ports. Both of these types of behaviors typically violate policy and can be leveraged by attackers. disabled = 0 -panels = ["panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_ransomware] label = Ransomware description = Leverage searches that allow you to detect and investigate unusual activities that might relate to ransomware--spikes in SMB traffic, suspicious wevtutil usage, the presence of common ransomware extensions, and system processes run from unexpected locations, and many others. disabled = 0 -panels = ["panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_ransomware_cloud] label = Ransomware Cloud @@ -347,7 +347,7 @@ label = SamSam Ransomware description = Leverage searches that allow you to detect and investigate unusual activities that might relate to the SamSam ransomware, including looking for file writes associated with SamSam, RDP brute force attacks, the presence of files with SamSam ransomware extensions, suspicious psexec use, and more. disabled = 0 -panels = ["panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_spectre_and_meltdown_vulnerabilities] label = Spectre And Meltdown Vulnerabilities @@ -382,7 +382,7 @@ label = Suspicious AWS EC2 Activities description = Use the searches in this Analytic Story to monitor your AWS EC2 instances for evidence of anomalous activity and suspicious behaviors, such as EC2 instances that originate from unusual locations or those launched by previously unseen users (among others). Included investigative searches will help you probe more deeply, when the information warrants it. disabled = 0 -panels = ["panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details"] [panel_group://workbench_panel_group_suspicious_aws_login_activities] label = Suspicious AWS Login Activities @@ -396,14 +396,14 @@ label = Suspicious AWS S3 Activities description = Use the searches in this Analytic Story to monitor your AWS S3 buckets for evidence of anomalous activity and suspicious behaviors, such as detecting open S3 buckets and buckets being accessed from a new IP. The contextual and investigative searches will give you more information, when required. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_s3_bucket_details_via_bucketname", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_aws_s3_bucket_details_via_bucketname", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_suspicious_aws_traffic] label = Suspicious AWS Traffic description = Leverage these searches to monitor your AWS network traffic for evidence of anomalous activity and suspicious behaviors, such as a spike in blocked outbound traffic in your virtual private cloud (VPC). disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio"] [panel_group://workbench_panel_group_suspicious_cloud_authentication_activities] label = Suspicious Cloud Authentication Activities @@ -438,21 +438,21 @@ label = Suspicious Command-Line Executions description = Leveraging the Windows command-line interface (CLI) is one of the most common attack techniques--one that is also detailed in the MITRE ATT&CK framework. Use this Analytic Story to help you identify unusual or suspicious use of the CLI on Windows systems. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_suspicious_dns_traffic] label = Suspicious DNS Traffic description = Attackers often attempt to hide within or otherwise abuse the domain name system (DNS). You can thwart attempts to manipulate this omnipresent protocol by monitoring for these types of abuses. disabled = 0 -panels = ["panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_suspicious_emails] label = Suspicious Emails description = Email remains one of the primary means for attackers to gain an initial foothold within the modern enterprise. Detect and investigate suspicious emails in your environment with the help of the searches in this Analytic Story. disabled = 0 -panels = ["panel://workbench_panel_get_emails_from_specific_sender", "panel://workbench_panel_get_email_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_emails_from_specific_sender", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_email_info"] [panel_group://workbench_panel_group_suspicious_gcp_storage_activities] label = Suspicious GCP Storage Activities @@ -466,7 +466,7 @@ label = Suspicious MSHTA Activity description = Monitor and detect techniques used by attackers who leverage the mshta.exe process to execute malicious code. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_suspicious_okta_activity] label = Suspicious Okta Activity @@ -480,14 +480,14 @@ label = Suspicious WMI Use description = Attackers are increasingly abusing Windows Management Instrumentation (WMI), a framework and associated utilities available on all modern Windows operating systems. Because WMI can be leveraged to manage both local and remote systems, it is important to identify the processes executed and the user context within which the activity occurred. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_suspicious_windows_registry_activities] label = Suspicious Windows Registry Activities description = Monitor and detect registry changes initiated from remote locations, which can be a sign that an attacker has infiltrated your system. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_suspicious_zoom_child_processes] label = Suspicious Zoom Child Processes @@ -501,14 +501,14 @@ label = Unusual AWS EC2 Modifications description = Identify unusual changes to your AWS EC2 instances that may indicate malicious activity. Modifications to your EC2 instances by previously unseen users is an example of an activity that may warrant further investigation. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_aws_investigate_user_activities_by_arn"] [panel_group://workbench_panel_group_unusual_processes] label = Unusual Processes description = Quickly identify systems running new or unusual processes in your environment that could be indicators of suspicious activity. Processes run from unusual locations, those with conspicuously long command lines, and rare executables are all examples of activities that may warrant deeper investigation. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_use_of_cleartext_protocols] label = Use of Cleartext Protocols @@ -522,7 +522,7 @@ label = Web Fraud Detection description = Monitor your environment for activity consistent with common attack techniques bad actors use when attempting to compromise web servers or other web-related assets. disabled = 0 -panels = ["panel://workbench_panel_get_emails_from_specific_sender", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_web_session_information_via_session_id"] +panels = ["panel://workbench_panel_get_web_session_information_via_session_id", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_emails_from_specific_sender"] [panel_group://workbench_panel_group_windows_dns_sigred_cve_2020_1350] label = Windows DNS SIGRed CVE-2020-1350 @@ -536,42 +536,42 @@ label = Windows Defense Evasion Tactics description = Detect tactics used by malware to evade defenses on Windows endpoints. A few of these include suspicious `reg.exe` processes, files hidden with `attrib.exe` and disabling user-account control, among many others disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_windows_file_extension_and_association_abuse] label = Windows File Extension and Association Abuse description = Detect and investigate suspected abuse of file extensions and Windows file associations. Some of the malicious behaviors involved may include inserting spaces before file extensions or prepending the file extension with a different one, among other techniques. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_windows_log_manipulation] label = Windows Log Manipulation description = Adversaries often try to cover their tracks by manipulating Windows logs. Use these searches to help you monitor for suspicious activity surrounding log files--an essential component of an effective defense. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_windows_persistence_techniques] label = Windows Persistence Techniques description = Monitor for activities and techniques associated with maintaining persistence on a Windows system--a sign that an adversary may have compromised your environment. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_windows_privilege_escalation] label = Windows Privilege Escalation description = Monitor for and investigate activities that may be associated with a Windows privilege-escalation attack, including unusual processes running on endpoints, modified registry keys, and more. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_windows_service_abuse] label = Windows Service Abuse description = Windows services are often used by attackers for persistence and the ability to load drivers or otherwise interact with the Windows kernel. This Analytic Story helps you monitor your environment for indications that Windows services are being modified or created in a suspicious manner. disabled = 0 -panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history"] +panels = ["panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_parent_process_info"] diff --git a/package/default/macros.conf b/package/default/macros.conf index b153acb450..a1d7cb79b6 100644 --- a/package/default/macros.conf +++ b/package/default/macros.conf @@ -1,6 +1,6 @@ ############# # Automatically generated by generator.py in splunk/security-content -# On Date: 2021-01-07T20:36:47 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# @@ -383,10 +383,18 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[bcdedit_failure_recovery_modification_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [batch_file_write_to_system32_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. +[child_processes_of_spoolsv_exe_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [clients_connecting_to_multiple_dns_servers_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -583,10 +591,18 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[detect_new_open_s3_buckets_over_aws_cli_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [detect_new_open_s3_buckets_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. +[detect_oulook_exe_writing_a__zip_file_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [detect_outbound_smb_traffic_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -719,6 +735,10 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[detection_of_tools_built_by_nirsoft_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [disabling_remote_user_account_control_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -915,6 +935,10 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[macos___re_opened_applications_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [malicious_powershell_process___connect_to_internet_with_hidden_window_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -1015,6 +1039,10 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[processes_tapping_keyboard_events_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [processes_created_by_netsh_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -1067,6 +1095,10 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[remote_desktop_process_running_on_system_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [remote_process_instantiation_via_wmi_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -1147,6 +1179,10 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[spike_in_file_writes_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [splunk_enterprise_information_disclosure_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -1155,6 +1191,10 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[supernova_webshell_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [suspicious_changes_to_file_associations_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. @@ -1239,10 +1279,18 @@ description = Update this macro to limit the output results to filter out false definition = search * description = Update this macro to limit the output results to filter out false positives. +[wmi_permanent_event_subscription_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [wmi_permanent_event_subscription___sysmon_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. +[wmi_temporary_event_subscription_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [web_fraud___account_harvesting_filter] definition = search * description = Update this macro to limit the output results to filter out false positives. diff --git a/package/default/savedsearches.conf b/package/default/savedsearches.conf index a21932fe88..ca92324c8b 100644 --- a/package/default/savedsearches.conf +++ b/package/default/savedsearches.conf @@ -1,6 +1,6 @@ ############# # Automatically generated by generator.py in splunk/security-content -# On Date: 2021-01-07T20:36:47 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# @@ -10,10 +10,10 @@ [ESCU - AWS Cloud Provisioning From Previously Unseen City - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for AWS provisioning activities from previously unseen cities. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. +description = This search looks for AWS provisioning activities from previously unseen cities. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1535"], "nist": ["ID.AM"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen cities. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. +action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen cities. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. This search works best when you run the "Previously Seen AWS Provisioning Activity Sources" support search once to create a history of previously seen locations that have provisioned AWS resources. action.escu.known_false_positives = This is a strictly behavioral search, so we define "false positive" slightly differently. Every time this fires, it will accurately reflect the first occurrence in the time period you're searching within, plus what is stored in the cache feature. But while there are really no "false positives" in a traditional sense, there is definitely lots of noise.\ This search will fire any time a new city is seen in the **GeoIP** database for any kind of provisioning activity. If you typically do all provisioning from tools inside of your city, there should be few false positives. If you are located in countries where the free version of **MaxMind GeoIP** that ships by default with Splunk has weak resolution (particularly small countries in less economically powerful regions), this may be much less valuable to you. @@ -49,10 +49,10 @@ search = `cloudtrail` (eventName=Run* OR eventName=Create*) | iplocation sourceI [ESCU - AWS Cloud Provisioning From Previously Unseen Country - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for AWS provisioning activities from previously unseen countries. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. +description = This search looks for AWS provisioning activities from previously unseen countries. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1535"], "nist": ["ID.AM"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen countries. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. +action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen countries. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. This search works best when you run the "Previously Seen AWS Provisioning Activity Sources" support search once to create a history of previously seen locations that have provisioned AWS resources. action.escu.known_false_positives = This is a strictly behavioral search, so we define "false positive" slightly differently. Every time this fires, it will accurately reflect the first occurrence in the time period you're searching over plus what is stored in the cache feature. But while there are really no "false positives" in a traditional sense, there is definitely lots of noise.\ This search will fire any time a new country is seen in the **GeoIP** database for any kind of provisioning activity. If you typically do all provisioning from tools inside of your country, there should be few false positives. If you are located in countries where the free version of **MaxMind GeoIP** that ships by default with Splunk has weak resolution (particularly small countries in less economically powerful regions), this may be much less valuable to you. @@ -83,10 +83,10 @@ search = `cloudtrail` (eventName=Run* OR eventName=Create*) | iplocation sourceI [ESCU - AWS Cloud Provisioning From Previously Unseen IP Address - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for AWS provisioning activities from previously unseen IP addresses. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. +description = This search looks for AWS provisioning activities from previously unseen IP addresses. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 1"], "nist": ["ID.AM"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen IP addresses. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. +action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen IP addresses. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. This search works best when you run the "Previously Seen AWS Provisioning Activity Sources" support search once to create a history of previously seen locations that have provisioned AWS resources. action.escu.known_false_positives = This is a strictly behavioral search, so we define "false positive" slightly differently. Every time this fires, it will accurately reflect the first occurrence in the time period you're searching within, plus what is stored in the cache feature. But while there are really no "false positives" in a traditional sense, there is definitely lots of noise.\ This search will fire any time a new IP address is seen in the **GeoIP** database for any kind of provisioning activity. If you typically do all provisioning from tools inside of your country, there should be few false positives. If you are located in countries where the free version of **MaxMind GeoIP** that ships by default with Splunk has weak resolution (particularly small countries in less economically powerful regions), this may be much less valuable to you. @@ -189,14 +189,14 @@ search = | tstats min(_time) as firstTime max(_time) as lastTime from datamodel= [ESCU - AWS Detect Users creating keys with encrypt policy without MFA - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search provides detection of accounts creating KMS with encrypt policy and without using MFA. +description = This search provides detection of KMS keys which action kms:Encrypt is accessible for everyone (also outside of your organization). This is an identicator that your account is compromised and the attacker uses the encryption key to compromise another company. action.escu.mappings = {"mitre_attack": ["T1486"]} action.escu.data_models = [] -action.escu.eli5 = This search provides detection of accounts creating KMS with encrypt policy and without using MFA. +action.escu.eli5 = This search provides detection of KMS keys which action kms:Encrypt is accessible for everyone (also outside of your organization). This is an identicator that your account is compromised and the attacker uses the encryption key to compromise another company. action.escu.how_to_implement = You must install splunk AWS add on and Splunk App for AWS. This search works with cloudtrail logs -action.escu.known_false_positives = Not all KMS key creations are malicious. Particulary look for kms:Encrypt only policy. It is very unusual to create a key to encrypt only and not to decrypt. -action.escu.creation_date = 2020-10-27 -action.escu.modification_date = 2020-10-27 +action.escu.known_false_positives = unknown +action.escu.creation_date = 2021-01-11 +action.escu.modification_date = 2021-01-11 action.escu.confidence = high action.escu.full_search_name = ESCU - AWS Detect Users creating keys with encrypt policy without MFA - Rule action.escu.search_type = detection @@ -217,7 +217,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `cloudtrail` eventName=CreateKey userIdentity.sessionContext.attributes.mfaAuthenticated=false (requestParameters.policy = "*kms:Encrypt*" AND requestParameters.policy != "*kms:Decrypt*") eventSource="kms.amazonaws.com" | table userIdentity.sessionContext.attributes.creationDate userIdentity.sessionContext.attributes.mfaAuthenticated user user_access_key requestParameters.keyUsage responseElements.keyMetadata.arn |`aws_detect_users_creating_keys_with_encrypt_policy_without_mfa_filter` +search = `cloudtrail` eventName=CreateKey OR eventName=PutKeyPolicy | spath input=requestParameters.policy output=key_policy_statements path=Statement{} | mvexpand key_policy_statements | spath input=key_policy_statements output=key_policy_action_1 path=Action | spath input=key_policy_statements output=key_policy_action_2 path=Action{} | eval key_policy_action=mvappend(key_policy_action_1, key_policy_action_2) | spath input=key_policy_statements output=key_policy_principal path=Principal.AWS | search key_policy_action="kms:Encrypt" AND key_policy_principal="*" | stats count min(_time) as firstTime max(_time) as lastTime by eventName eventSource eventID awsRegion userIdentity.principalId | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` |`aws_detect_users_creating_keys_with_encrypt_policy_without_mfa_filter` [ESCU - AWS Detect Users with KMS keys performing encryption S3 - Rule] action.escu = 0 @@ -227,9 +227,9 @@ action.escu.mappings = {"mitre_attack": ["T1486"]} action.escu.data_models = [] action.escu.eli5 = This search provides detection of users with KMS keys performing encryption specifically against S3 buckets. action.escu.how_to_implement = You must install splunk AWS add on and Splunk App for AWS. This search works with cloudtrail logs -action.escu.known_false_positives = Not all operations with KMS keys are malicious. It is very unusual to create a key to encrypt only and not to decrypt. This search compliments the creation of KMS keys with encrypt policy. -action.escu.creation_date = 2020-10-27 -action.escu.modification_date = 2020-10-27 +action.escu.known_false_positives = bucket with S3 encryption +action.escu.creation_date = 2021-01-11 +action.escu.modification_date = 2021-01-11 action.escu.confidence = high action.escu.full_search_name = ESCU - AWS Detect Users with KMS keys performing encryption S3 - Rule action.escu.search_type = detection @@ -250,7 +250,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `cloudtrail` eventName = CopyObject requestParameters.x-amz-server-side-encryption = "aws:kms" | stats count min(_time) as firstTime max(_time) as lastTime values(bucket_name) values(object_path) by eventName http_user_agent user vendor_region requestParameters.x-amz-server-side-encryption-aws-kms-key-id | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`|`aws_detect_users_with_kms_keys_performing_encryption_s3_filter` +search = `cloudtrail` eventName=CopyObject requestParameters.x-amz-server-side-encryption="aws:kms" | rename requestParameters.bucketName AS bucket_name, requestParameters.x-amz-copy-source AS src_file, requestParameters.key AS dest_file | stats count min(_time) as firstTime max(_time) as lastTime values(src_file) AS src_file values(dest_file) AS dest_file values(userAgent) AS userAgent values(region) AS region values(src) AS src by user | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` |`aws_detect_users_with_kms_keys_performing_encryption_s3_filter` [ESCU - AWS EKS Kubernetes cluster sensitive object access - Rule] action.escu = 0 @@ -289,13 +289,13 @@ search = `aws_cloudwatchlogs_eks` objectRef.resource=secrets OR configmaps sourc action.escu = 0 action.escu.enabled = 1 description = The search looks for CloudTrail events to detect if any network ACLs were created with all the ports open to a specified CIDR. -action.escu.mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} +action.escu.mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] action.escu.eli5 = The search looks for CloudTrail events to detect if any network ACLs were created with all the ports open to a specified CIDR. action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS, version 4.4.0 or later, and configure your CloudTrail inputs. action.escu.known_false_positives = It's possible that an admin has created this ACL with all ports open for some legitimate purpose however, this should be scoped and not allowed in production environment. -action.escu.creation_date = 2017-01-10 -action.escu.modification_date = 2017-01-10 +action.escu.creation_date = 2021-01-11 +action.escu.modification_date = 2021-01-11 action.escu.confidence = high action.escu.full_search_name = ESCU - AWS Network Access Control List Created with All Open Ports - Rule action.escu.search_type = detection @@ -311,7 +311,7 @@ dispatch.earliest_time = -70m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - AWS Network Access Control List Created with All Open Ports - Rule -action.correlationsearch.annotations = {"analytics_story": ["AWS Network ACL Activity"], "cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} +action.correlationsearch.annotations = {"analytics_story": ["AWS Network ACL Activity"], "cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.AE"]} schedule_window = auto alert.digest_mode = 1 disabled = true @@ -321,19 +321,19 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `cloudtrail` eventName=CreateNetworkAclEntry | mvexpand requestParameters | mvexpand responseElements | search requestParameters.portRange.from=1024 requestParameters.portRange.to=65535 requestParameters.ruleAction=allow | rename userIdentity.arn as arn | rename requestParameters.networkAclId as networkAclId | table _time aws_account_id src userName arn networkAclId requestParameters.* responseElements.* | `aws_network_access_control_list_created_with_all_open_ports_filter` +search = `cloudtrail` eventName=CreateNetworkAclEntry OR eventName=ReplaceNetworkAclEntry requestParameters.ruleAction=allow requestParameters.egress=false requestParameters.aclProtocol=-1 | append [search `cloudtrail` eventName=CreateNetworkAclEntry OR eventName=ReplaceNetworkAclEntry requestParameters.ruleAction=allow requestParameters.egress=false requestParameters.aclProtocol!=-1 | eval port_range='requestParameters.portRange.to' - 'requestParameters.portRange.from' | where port_range>1024] | fillnull | stats count min(_time) as firstTime max(_time) as lastTime by userName userIdentity.principalId eventName requestParameters.ruleAction requestParameters.egress requestParameters.aclProtocol requestParameters.portRange.to requestParameters.portRange.from src userAgent requestParameters.cidrBlock | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `aws_network_access_control_list_created_with_all_open_ports_filter` [ESCU - AWS Network Access Control List Deleted - Rule] action.escu = 0 action.escu.enabled = 1 description = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the AWS console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the CloudTrail logs to detect users deleting network ACLs. -action.escu.mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} +action.escu.mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] action.escu.eli5 = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the AWS console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the CloudTrail logs to detect users deleting network ACLs. action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. action.escu.known_false_positives = It's possible that a user has legitimately deleted a network ACL. -action.escu.creation_date = 2017-01-10 -action.escu.modification_date = 2017-01-10 +action.escu.creation_date = 2021-01-12 +action.escu.modification_date = 2021-01-12 action.escu.confidence = high action.escu.full_search_name = ESCU - AWS Network Access Control List Deleted - Rule action.escu.search_type = detection @@ -349,7 +349,7 @@ dispatch.earliest_time = -70m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - AWS Network Access Control List Deleted - Rule -action.correlationsearch.annotations = {"analytics_story": ["AWS Network ACL Activity"], "cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} +action.correlationsearch.annotations = {"analytics_story": ["AWS Network ACL Activity"], "cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.AE"]} schedule_window = auto alert.digest_mode = 1 disabled = true @@ -359,7 +359,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `cloudtrail` eventName=DeleteNetworkAcl|rename userIdentity.arn as arn | stats count min(_time) as firstTime max(_time) as lastTime values(errorMessage) values(errorCode) values(userAgent) values(userIdentity.*) by src userName arn eventName | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` | `aws_network_access_control_list_deleted_filter` +search = `cloudtrail` eventName=DeleteNetworkAclEntry requestParameters.egress=false | fillnull | stats count min(_time) as firstTime max(_time) as lastTime by userName userIdentity.principalId eventName requestParameters.egress src userAgent | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `aws_network_access_control_list_deleted_filter` [ESCU - Abnormally High AWS Instances Launched by User - Rule] action.escu = 0 @@ -511,7 +511,7 @@ action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on O action.escu.data_models = ["Change"] action.escu.eli5 = This search will detect a spike in the number of API calls made to your cloud infrastructure environment by a user. action.escu.how_to_implement = You must be ingesting your cloud infrastructure logs. You also must run the baseline search `Baseline Of Cloud Infrastructure API Calls Per User` to create the probability density function. -action.escu.known_false_positives = +action.escu.known_false_positives = action.escu.creation_date = 2020-09-07 action.escu.modification_date = 2020-09-07 action.escu.confidence = high @@ -625,7 +625,7 @@ action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on O action.escu.data_models = ["Change"] action.escu.eli5 = This search will detect a spike in the number of API calls made to your cloud infrastructure environment about security groups by a user. action.escu.how_to_implement = You must be ingesting your cloud infrastructure logs. You also must run the baseline search `Baseline Of Cloud Security Group API Calls Per User` to create the probability density function model. -action.escu.known_false_positives = +action.escu.known_false_positives = action.escu.creation_date = 2020-09-07 action.escu.modification_date = 2020-09-07 action.escu.confidence = high @@ -672,12 +672,18 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m -dispatch.latest_time = -10m@m +dispatch.earliest_time = -30m@m +dispatch.latest_time = now action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Access LSASS Memory for Dump Creation - Rule action.correlationsearch.annotations = {"analytics_story": ["Credential Dumping"], "cis20": ["CIS 6", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1003.001"], "nist": ["DE.CM"]} schedule_window = auto +action.notable = 1 +action.notable.param.nes_fields = ['dest'] +action.notable.param.rule_description = Detect memory dumping of the LSASS process. +action.notable.param.rule_title = Access LSASS Memory for Dump Creation Notable +action.notable.param.security_domain = endpoint +action.notable.param.severity = high alert.digest_mode = 1 disabled = true enableSched = 1 @@ -686,7 +692,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `sysmon` EventCode=10 TargetImage=*lsass.exe CallTrace=*dbgcore.dll* OR CallTrace=*dbghelp.dll* | stats count min(_time) as firstTime max(_time) as lastTime by Computer, TargetImage, TargetProcessId, SourceImage, SourceProcessId | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `access_lsass_memory_for_dump_creation_filter` +search = `sysmon` EventCode=10 TargetImage=*lsass.exe CallTrace=*dbgcore.dll* OR CallTrace=*dbghelp.dll* | stats count min(_time) as firstTime max(_time) as lastTime by Computer, TargetImage, TargetProcessId, SourceImage, SourceProcessId | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `access_lsass_memory_for_dump_creation_filter` [ESCU - Amazon EKS Kubernetes Pod scan detection - Rule] action.escu = 0 @@ -719,7 +725,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `aws_cloudwatchlogs_eks` "user.username"="system:anonymous" verb=list objectRef.resource=pods requestURI="/api/v1/pods" | rename source as cluster_name sourceIPs{} as src_ip | stats count min(_time) as firstTime max(_time) as lastTime values(responseStatus.reason) values(responseStatus.code) values(userAgent) values(verb) values(requestURI) by src_ip cluster_name user.username user.groups{} | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` | `amazon_eks_kubernetes_pod_scan_detection_filter` +search = `aws_cloudwatchlogs_eks` "user.username"="system:anonymous" verb=list objectRef.resource=pods requestURI="/api/v1/pods" | rename source as cluster_name sourceIPs{} as src_ip | stats count min(_time) as firstTime max(_time) as lastTime values(responseStatus.reason) values(responseStatus.code) values(userAgent) values(verb) values(requestURI) by src_ip cluster_name user.username user.groups{} | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` | `amazon_eks_kubernetes_pod_scan_detection_filter` [ESCU - Amazon EKS Kubernetes cluster scan detection - Rule] action.escu = 0 @@ -752,7 +758,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `aws_cloudwatchlogs_eks` "user.username"="system:anonymous" userAgent!="AWS Security Scanner" | rename sourceIPs{} as src_ip | stats count min(_time) as firstTime max(_time) as lastTime values(responseStatus.reason) values(source) as cluster_name values(responseStatus.code) values(userAgent) as http_user_agent values(verb) values(requestURI) by src_ip user.username user.groups{} | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` |`amazon_eks_kubernetes_cluster_scan_detection_filter` +search = `aws_cloudwatchlogs_eks` "user.username"="system:anonymous" userAgent!="AWS Security Scanner" | rename sourceIPs{} as src_ip | stats count min(_time) as firstTime max(_time) as lastTime values(responseStatus.reason) values(source) as cluster_name values(responseStatus.code) values(userAgent) as http_user_agent values(verb) values(requestURI) by src_ip user.username user.groups{} | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` |`amazon_eks_kubernetes_cluster_scan_detection_filter` [ESCU - Attempt To Add Certificate To Untrusted Store - Rule] action.escu = 0 @@ -804,7 +810,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Malicious PowerShell", "Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule @@ -870,7 +876,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Attempted Credential Dump From Registry via Reg exe - Rule @@ -886,6 +892,39 @@ realtime_schedule = 0 is_visible = false search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processes.process_name=reg.exe OR Processes.process_name=cmd.exe) Processes.process=*save* (Processes.process=*HKEY_LOCAL_MACHINE\\Security* OR Processes.process=*HKEY_LOCAL_MACHINE\\SAM* OR Processes.process=*HKEY_LOCAL_MACHINE\\System* OR Processes.process=*HKLM\\Security* OR Processes.process=*HKLM\\System* OR Processes.process=*HKLM\\SAM*) by Processes.user Processes.process_name Processes.process Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `attempted_credential_dump_from_registry_via_reg_exe_filter` +[ESCU - BCDEdit Failure Recovery Modification - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for flags passed to bcdedit.exe modifications to the built-in Windows error recovery boot configurations. This is typically used by ransomware to prevent recovery. +action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1490"], "nist": ["PR.IP"]} +action.escu.data_models = ["Endpoint"] +action.escu.eli5 = This search looks for flags passed to bcdedit.exe modifications to the built-in Windows error recovery boot configurations. This is typically used by ransomware to prevent recovery. +action.escu.how_to_implement = You must be ingesting endpoint data that tracks process activity, including parent-child relationships from your endpoints to populate the Endpoint data model in the Processes node. Tune based on parent process names. +action.escu.known_false_positives = Administrators may modify the boot configuration. +action.escu.creation_date = 2020-12-21 +action.escu.modification_date = 2020-12-21 +action.escu.confidence = high +action.escu.full_search_name = ESCU - BCDEdit Failure Recovery Modification - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Ryuk Ransomware", "Ransomware"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - BCDEdit Failure Recovery Modification - Rule +action.correlationsearch.annotations = {"analytics_story": ["Ryuk Ransomware", "Ransomware"], "cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1490"], "nist": ["PR.IP"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name = bcdedit.exe Processes.process="*recoveryenabled*" (Processes.process="* no*") by Processes.process_name Processes.process Processes.parent_process_name Processes.dest Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `bcdedit_failure_recovery_modification_filter` + [ESCU - Batch File Write to System32 - Rule] action.escu = 0 action.escu.enabled = 1 @@ -919,6 +958,39 @@ realtime_schedule = 0 is_visible = false search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime values(Filesystem.dest) as dest values(Filesystem.file_name) as file_name values(Filesystem.user) as user from datamodel=Endpoint.Filesystem by Filesystem.file_path | `drop_dm_object_name(Filesystem)` | `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)`| rex field=file_name "(?\.[^\.]+)$" | search file_path=*system32* AND file_extension=.bat | `batch_file_write_to_system32_filter` +[ESCU - Child Processes of Spoolsv exe - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for child processes of spoolsv.exe. This activity is associated with a POC privilege-escalation exploit associated with CVE-2018-8440. Spoolsv.exe is the process associated with the Print Spooler service in Windows and typically runs as SYSTEM. +action.escu.mappings = {"cis20": ["CIS 5", "CIS 8"], "kill_chain_phases": ["Exploitation"], "mitre_attack": ["T1068"], "nist": ["PR.AC", "PR.PT", "DE.CM"]} +action.escu.data_models = ["Endpoint"] +action.escu.eli5 = This search looks for child processes of spoolsv.exe. This activity is associated with a POC privilege-escalation exploit associated with CVE-2018-8440. Spoolsv.exe is the process associated with the Print Spooler service in Windows and typically runs as SYSTEM. +action.escu.how_to_implement = You must be ingesting endpoint data that tracks process activity, including parent-child relationships from your endpoints to populate the Endpoint data model in the Processes node. The command-line arguments are mapped to the "process" field in the Endpoint data model. Update the `children_of_spoolsv_filter` macro to filter out legitimate child processes spawned by spoolsv.exe. +action.escu.known_false_positives = Some legitimate printer-related processes may show up as children of spoolsv.exe. You should confirm that any activity as legitimate and may be added as exclusions in the search. +action.escu.creation_date = 2020-03-16 +action.escu.modification_date = 2020-03-16 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Child Processes of Spoolsv exe - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Windows Privilege Escalation"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Child Processes of Spoolsv exe - Rule +action.correlationsearch.annotations = {"analytics_story": ["Windows Privilege Escalation"], "cis20": ["CIS 5", "CIS 8"], "kill_chain_phases": ["Exploitation"], "mitre_attack": ["T1068"], "nist": ["PR.AC", "PR.PT", "DE.CM"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count values(Processes.process_name) as process_name values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name=spoolsv.exe AND Processes.process_name!=regsvr32.exe by Processes.dest Processes.parent_process Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `child_processes_of_spoolsv_exe_filter` + [ESCU - Clients Connecting to Multiple DNS Servers - Rule] action.escu = 0 action.escu.enabled = 1 @@ -952,7 +1024,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count, values(DNS.dest) AS dest dc(DNS.dest) as dest_count from datamodel=Network_Resolution where DNS.message_type=QUERY by DNS.src | `drop_dm_object_name("Network_Resolution")` |where dest_count > 5 | `clients_connecting_to_multiple_dns_servers_filter` +search = | tstats `security_content_summariesonly` count, values(DNS.dest) AS dest dc(DNS.dest) as dest_count from datamodel=Network_Resolution where DNS.message_type=QUERY by DNS.src | `drop_dm_object_name("Network_Resolution")` |where dest_count > 5 | `clients_connecting_to_multiple_dns_servers_filter` [ESCU - Cloud API Calls From Previously Unseen User Roles - Rule] action.escu = 0 @@ -1185,10 +1257,10 @@ search = | tstats `security_content_summariesonly` count earliest(_time) as firs [ESCU - Cloud Network Access Control List Deleted - Rule] action.escu = 0 action.escu.enabled = 1 -description = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. +description = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. Deprecated because it's a duplicate action.escu.mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] -action.escu.eli5 = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. +action.escu.eli5 = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. Deprecated because it's a duplicate action.escu.how_to_implement = You must be ingesting your cloud infrastructure logs from your cloud provider. You can also provide additional filtering for this search by customizing the `cloud_network_access_control_list_deleted_filter` macro. action.escu.known_false_positives = It's possible that a user has legitimately deleted a network ACL. action.escu.creation_date = 2020-09-08 @@ -1458,7 +1530,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Create Remote Thread into LSASS - Rule @@ -1505,7 +1577,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Processes.user) as user values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processes.process_name=net.exe OR Processes.process_name=net1.exe) AND (Processes.process=*localgroup* OR Processes.process=*/add* OR Processes.process=*user*) by Processes.process Processes.process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` |`create_local_admin_accounts_using_net_exe_filter` +search = | tstats `security_content_summariesonly` count values(Processes.user) as user values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processes.process_name=net.exe OR Processes.process_name=net1.exe) AND (Processes.process=*localgroup* OR Processes.process=*/add* OR Processes.process=*user*) by Processes.process Processes.process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` |`create_local_admin_accounts_using_net_exe_filter` [ESCU - Create or delete windows shares using net exe - Rule] action.escu = 0 @@ -1538,7 +1610,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Processes.user) as user values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processs.process_name=net.exe OR Processes.process_name=net1.exe) by Processes.process Processes.process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | search process=*share* | `create_or_delete_windows_shares_using_net_exe_filter` +search = | tstats `security_content_summariesonly` count values(Processes.user) as user values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processs.process_name=net.exe OR Processes.process_name=net1.exe) by Processes.process Processes.process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | search process=*share* | `create_or_delete_windows_shares_using_net_exe_filter` [ESCU - Creation of Shadow Copy - Rule] action.escu = 0 @@ -1557,7 +1629,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Creation of Shadow Copy - Rule @@ -1590,7 +1662,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Creation of Shadow Copy with wmic and powershell - Rule @@ -1623,7 +1695,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule @@ -1637,7 +1709,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=cmd.exe (Processes.process=*\\system32\\config\\sam* OR Processes.process=*\\system32\\config\\security* OR Processes.process=*\\system32\\config\\system* OR Processes.process=*\\windows\\ntds\\ntds.dit*) by Processes.dest Processes.user Processes.process_name Processes.process Processes.parent_process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `credential_dumping_via_copy_command_from_shadow_copy_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=cmd.exe (Processes.process=*\\system32\\config\\sam* OR Processes.process=*\\system32\\config\\security* OR Processes.process=*\\system32\\config\\system* OR Processes.process=*\\windows\\ntds\\ntds.dit*) by Processes.dest Processes.user Processes.process_name Processes.process Processes.parent_process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `credential_dumping_via_copy_command_from_shadow_copy_filter` [ESCU - Credential Dumping via Symlink to Shadow Copy - Rule] action.escu = 0 @@ -1656,7 +1728,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Credential Dumping via Symlink to Shadow Copy - Rule @@ -1670,7 +1742,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=cmd.exe Processes.process=*mklink* Processes.process=*HarddiskVolumeShadowCopy* by Processes.dest Processes.user Processes.process_name Processes.process Processes.parent_process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `credential_dumping_via_symlink_to_shadow_copy_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=cmd.exe Processes.process=*mklink* Processes.process=*HarddiskVolumeShadowCopy* by Processes.dest Processes.user Processes.process_name Processes.process Processes.parent_process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `credential_dumping_via_symlink_to_shadow_copy_filter` [ESCU - DNS Query Length Outliers - MLTK - Rule] action.escu = 0 @@ -1709,7 +1781,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as start_time max(_time) as end_time values(DNS.src) as src values(DNS.dest) as dest from datamodel=Network_Resolution by DNS.query DNS.record_type | search DNS.record_type=* | `drop_dm_object_name(DNS)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | eval query_length = len(query) | apply dns_query_pdfmodel threshold=0.01 | rename "IsOutlier(query_length)" as isOutlier | search isOutlier > 0 | sort -query_length | table start_time end_time query record_type count src dest query_length | `dns_query_length_outliers___mltk_filter` +search = | tstats `security_content_summariesonly` count min(_time) as start_time max(_time) as end_time values(DNS.src) as src values(DNS.dest) as dest from datamodel=Network_Resolution by DNS.query DNS.record_type | search DNS.record_type=* | `drop_dm_object_name(DNS)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | eval query_length = len(query) | apply dns_query_pdfmodel threshold=0.01 | rename "IsOutlier(query_length)" as isOutlier | search isOutlier > 0 | sort -query_length | table start_time end_time query record_type count src dest query_length | `dns_query_length_outliers___mltk_filter` [ESCU - DNS Query Length With High Standard Deviation - Rule] action.escu = 0 @@ -1742,7 +1814,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution by DNS.query DNS.record_type | `drop_dm_object_name("DNS")` | eval query_length = len(query) | table query query_length record_type count | eventstats stdev(query_length) AS stdev avg(query_length) AS avg p50(query_length) AS p50| where query_length>(avg+stdev*2) | eval z_score=(query_length-avg)/stdev | `dns_query_length_with_high_standard_deviation_filter` +search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution by DNS.query DNS.record_type | `drop_dm_object_name("DNS")` | eval query_length = len(query) | table query query_length record_type count | eventstats stdev(query_length) AS stdev avg(query_length) AS avg p50(query_length) AS p50| where query_length>(avg+stdev*2) | eval z_score=(query_length-avg)/stdev | `dns_query_length_with_high_standard_deviation_filter` [ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule] action.escu = 0 @@ -1775,7 +1847,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution where DNS.dest_category != dns_server AND DNS.src_category != dns_server by DNS.src DNS.dest | `drop_dm_object_name("DNS")` | `dns_query_requests_resolved_by_unauthorized_dns_servers_filter` +search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution where DNS.dest_category != dns_server AND DNS.src_category != dns_server by DNS.src DNS.dest | `drop_dm_object_name("DNS")` | `dns_query_requests_resolved_by_unauthorized_dns_servers_filter` [ESCU - DNS record changed - Rule] action.escu = 0 @@ -1933,10 +2005,10 @@ search = `cisco_networks` facility="PM" mnemonic="ERR_DISABLE" disable_cause="ar [ESCU - Detect AWS API Activities From Unapproved Accounts - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for successful CloudTrail activity by user accounts that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. +description = This search looks for successful CloudTrail activity by user accounts that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. Deprecated because managing this list can be quite hard. action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.CM", "PR.AC", "ID.AM"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for successful CloudTrail activity by user accounts that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. +action.escu.eli5 = This search looks for successful CloudTrail activity by user accounts that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. Deprecated because managing this list can be quite hard. action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. You must also populate the `identity_lookup_expanded` lookup shipped with the Asset and Identity framework to be able to look up users in your identity table in Enterprise Security (ES). Leverage the support search called "Create a list of approved AWS service accounts": run it once every 30 days to create and validate a list of service accounts.\ This search produces fields (`eventName`,`firstTime`,`lastTime`) that are not yet supported by ES Incident Review and therefore cannot be viewed when a notable event is raised. These fields contribute additional context to the notable. To see the additional metadata, add the following fields, if not already present, to Incident Review - Event Attributes (Configure > Incident Management > Incident Review Settings > Add New Entry):\\n1. **Label:** AWS Event Name, **Field:** eventName\ 1. \ @@ -2157,7 +2229,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `wineventlog_security` EventCode=4624 (Logon_Type=3 Logon_Process=NtLmSsp WorkstationName=WORKSTATION NOT AccountName="ANONYMOUS LOGON") OR (Logon_Type=9 Logon_Process=seclogo) | fillnull | stats count min(_time) as firstTime max(_time) as lastTime by EventCode, Logon_Type, WorkstationName, user, dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_activity_related_to_pass_the_hash_attacks_filter` +search = `wineventlog_security` EventCode=4624 (Logon_Type=3 Logon_Process=NtLmSsp WorkstationName=WORKSTATION NOT AccountName="ANONYMOUS LOGON") OR (Logon_Type=9 Logon_Process=seclogo) | fillnull | stats count min(_time) as firstTime max(_time) as lastTime by EventCode, Logon_Type, WorkstationName, user, dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_activity_related_to_pass_the_hash_attacks_filter` [ESCU - Detect Computer Changed with Anonymous Account - Rule] action.escu = 0 @@ -2209,7 +2281,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping", "Detect Zerologon Attack"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Detect Credential Dumping through LSASS access - Rule @@ -2223,7 +2295,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `sysmon` EventCode=10 TargetImage=*lsass.exe (GrantedAccess=0x1010 OR GrantedAccess=0x1410) | stats count min(_time) as firstTime max(_time) as lastTime by Computer, SourceImage, SourceProcessId, TargetImage, TargetProcessId, EventCode, GrantedAccess | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_credential_dumping_through_lsass_access_filter` +search = `sysmon` EventCode=10 TargetImage=*lsass.exe (GrantedAccess=0x1010 OR GrantedAccess=0x1410) | stats count min(_time) as firstTime max(_time) as lastTime by Computer, SourceImage, SourceProcessId, TargetImage, TargetProcessId, EventCode, GrantedAccess | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_credential_dumping_through_lsass_access_filter` [ESCU - Detect DNS requests to Phishing Sites leveraging EvilGinx2 - Rule] action.escu = 0 @@ -2514,7 +2586,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping", "Detect Zerologon Attack"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Detect Mimikatz Using Loaded Images - Rule @@ -2662,6 +2734,44 @@ realtime_schedule = 0 is_visible = false search = `google_gcp_pubsub_message` data.resource.type=gcs_bucket data.protoPayload.methodName=storage.setIamPermissions | spath output=action path=data.protoPayload.serviceData.policyDelta.bindingDeltas{}.action | spath output=user path=data.protoPayload.authenticationInfo.principalEmail | spath output=location path=data.protoPayload.resourceLocation.currentLocations{} | spath output=src path=data.protoPayload.requestMetadata.callerIp | spath output=bucketName path=data.protoPayload.resourceName | spath output=role path=data.protoPayload.serviceData.policyDelta.bindingDeltas{}.role | spath output=member path=data.protoPayload.serviceData.policyDelta.bindingDeltas{}.member | search (member=allUsers AND action=ADD) | table _time, bucketName, src, user, location, action, role, member | search `detect_new_open_gcp_storage_buckets_filter` +[ESCU - Detect New Open S3 Buckets over AWS CLI - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for CloudTrail events where a user has created an open/public S3 bucket over the aws cli. +action.escu.mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1530"], "nist": ["PR.DS", "PR.AC", "DE.CM"]} +action.escu.data_models = [] +action.escu.eli5 = This search looks for CloudTrail events where a user has created an open/public S3 bucket over the aws cli. +action.escu.how_to_implement = none +action.escu.known_false_positives = While this search has no known false positives, it is possible that an AWS admin has legitimately created a public bucket for a specific purpose. That said, AWS strongly advises against granting full control to the "All Users" group. +action.escu.creation_date = 2021-01-12 +action.escu.modification_date = 2021-01-12 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Detect New Open S3 Buckets over AWS CLI - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Suspicious AWS S3 Activities"] +action.risk = 1 +action.risk.param._risk_object = src +action.risk.param._risk_object_type = system +action.risk.param._risk_score = 20 +action.risk.param.verbose = 0 +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Detect New Open S3 Buckets over AWS CLI - Rule +action.correlationsearch.annotations = {"analytics_story": ["Suspicious AWS S3 Activities"], "cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1530"], "nist": ["PR.DS", "PR.AC", "DE.CM"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = `cloudtrail` eventSource="s3.amazonaws.com" eventName=PutBucketAcl OR requestParameters.accessControlList.x-amz-grant-read-acp IN ("*AuthenticatedUsers","*AllUsers") OR requestParameters.accessControlList.x-amz-grant-write IN ("*AuthenticatedUsers","*AllUsers") OR requestParameters.accessControlList.x-amz-grant-write-acp IN ("*AuthenticatedUsers","*AllUsers") OR requestParameters.accessControlList.x-amz-grant-full-control IN ("*AuthenticatedUsers","*AllUsers") | rename requestParameters.bucketName AS bucketName | fillnull | stats count min(_time) as firstTime max(_time) as lastTime by userName userIdentity.principalId userAgent bucketName requestParameters.accessControlList.x-amz-grant-read requestParameters.accessControlList.x-amz-grant-read-acp requestParameters.accessControlList.x-amz-grant-write requestParameters.accessControlList.x-amz-grant-write-acp requestParameters.accessControlList.x-amz-grant-full-control | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_new_open_s3_buckets_over_aws_cli_filter` + [ESCU - Detect New Open S3 buckets - Rule] action.escu = 0 action.escu.enabled = 1 @@ -2669,10 +2779,10 @@ description = This search looks for CloudTrail events where a user has created a action.escu.mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1530"], "nist": ["PR.DS", "PR.AC", "DE.CM"]} action.escu.data_models = [] action.escu.eli5 = This search looks for CloudTrail events where a user has created an open/public S3 bucket. -action.escu.how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), and then configure your CloudTrail inputs. The threshold value should be tuned to your environment. +action.escu.how_to_implement = You must install the AWS App for Splunk. action.escu.known_false_positives = While this search has no known false positives, it is possible that an AWS admin has legitimately created a public bucket for a specific purpose. That said, AWS strongly advises against granting full control to the "All Users" group. -action.escu.creation_date = 2018-07-25 -action.escu.modification_date = 2018-07-25 +action.escu.creation_date = 2021-01-12 +action.escu.modification_date = 2021-01-12 action.escu.confidence = high action.escu.full_search_name = ESCU - Detect New Open S3 buckets - Rule action.escu.search_type = detection @@ -2698,7 +2808,40 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `cloudtrail` AllUsers eventName=PutBucketAcl | spath output=userIdentityArn path=userIdentity.arn | spath output=bucketName path=requestParameters.bucketName | spath output=aclControlList path=requestParameters.AccessControlPolicy.AccessControlList | spath input=aclControlList output=grantee path=Grant{} | mvexpand grantee | spath input=grantee | search Grantee.URI=*AllUsers | rename userIdentityArn as user| table _time, src,awsRegion Permission, Grantee.URI, bucketName, user | `detect_new_open_s3_buckets_filter` +search = `cloudtrail` eventSource=s3.amazonaws.com eventName=PutBucketAcl | rex field=_raw "(?{.+})" | spath input=json_field output=grantees path=requestParameters.AccessControlPolicy.AccessControlList.Grant{} | search grantees=* | mvexpand grantees | spath input=grantees output=uri path=Grantee.URI | spath input=grantees output=permission path=Permission | search uri IN ("http://acs.amazonaws.com/groups/global/AllUsers","http://acs.amazonaws.com/groups/global/AuthenticatedUsers") | search permission IN ("READ","READ_ACP","WRITE","WRITE_ACP","FULL_CONTROL") | rename requestParameters.bucketName AS bucketName | stats count min(_time) as firstTime max(_time) as lastTime by userName userIdentity.principalId userAgent uri permission bucketName | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `detect_new_open_s3_buckets_filter` + +[ESCU - Detect Oulook exe writing a zip file - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for execution of process `outlook.exe` where the process is writing a `.zip` file to the disk. +action.escu.mappings = {"cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Installation", "Actions on Objectives"], "mitre_attack": ["T1566.001"], "nist": ["ID.AM", "PR.DS"]} +action.escu.data_models = [] +action.escu.eli5 = This search looks for execution of process `outlook.exe` where the process is writing a `.zip` file to the disk. +action.escu.how_to_implement = You must be ingesting data that records filesystem and process activity from your hosts to populate the Endpoint data model. This is typically populated via endpoint detection-and-response products, such as Carbon Black, or endpoint data sources, such as Sysmon. +action.escu.known_false_positives = It is not uncommon for outlook to write legitimate zip files to the disk. +action.escu.creation_date = 2020-07-21 +action.escu.modification_date = 2020-07-21 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Detect Oulook exe writing a zip file - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Phishing Payloads"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Detect Oulook exe writing a zip file - Rule +action.correlationsearch.annotations = {"analytics_story": ["Phishing Payloads"], "cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Installation", "Actions on Objectives"], "mitre_attack": ["T1566.001"], "nist": ["ID.AM", "PR.DS"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.process_name=outlook.exe OR Processes.process_name=explorer.exe by _time span=5m Processes.parent_process_id Processes.process_id Processes.dest Processes.process_name Processes.parent_process_name Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | rename process_id as malicious_id| rename parent_process_id as outlook_id| join malicious_id type=inner[| tstats `security_content_summariesonly` count values(Filesystem.file_path) as file_path values(Filesystem.file_name) as file_name FROM datamodel=Endpoint.Filesystem where (Filesystem.file_path=*zip* OR Filesystem.file_name=*.lnk ) AND (Filesystem.file_path=C:\\Users* OR Filesystem.file_path=*Local\\Temp*) by _time span=5m Filesystem.process_id Filesystem.file_hash Filesystem.dest | `drop_dm_object_name(Filesystem)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | rename process_id as malicious_id| fields malicious_id outlook_id dest file_path file_name file_hash count file_id] | table firstTime lastTime user malicious_id outlook_id process_name parent_process_name file_name file_path | where file_name != "" | `detect_oulook_exe_writing_a__zip_file_filter` [ESCU - Detect Outbound SMB Traffic - Rule] action.escu = 0 @@ -2736,10 +2879,10 @@ search = | tstats `security_content_summariesonly` earliest(_time) as start_time [ESCU - Detect Path Interception By Creation Of program exe - Rule] action.escu = 0 action.escu.enabled = 1 -description = The detection Detect Path Interception By Creation Of program exe is detecting the abuse of unquoted service paths, which is a popular technique for privilege escalation. +description = The detection Detect Path Interception By Creation Of program exe is detecting the abuse of unquoted service paths, which is a popular technique for privilege escalation. action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1574.009"], "nist": ["PR.PT", "DE.CM"]} action.escu.data_models = ["Endpoint"] -action.escu.eli5 = The detection Detect Path Interception By Creation Of program exe is detecting the abuse of unquoted service paths, which is a popular technique for privilege escalation. +action.escu.eli5 = The detection Detect Path Interception By Creation Of program exe is detecting the abuse of unquoted service paths, which is a popular technique for privilege escalation. action.escu.how_to_implement = none action.escu.known_false_positives = unknown action.escu.creation_date = 2020-07-03 @@ -2896,7 +3039,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Processes.dest) as dest values(Processes.user) as user min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes by Processes.process_name | rename Processes.process_name as process | rex field=user "(?.*)\\\\(?.*)" | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| search [| tstats count from datamodel=Endpoint.Processes by Processes.process_name | rare Processes.process_name limit=30 | rename Processes.process_name as process| `filter_rare_process_whitelist`| table process ] | `detect_rare_executables_filter` +search = | tstats `security_content_summariesonly` count values(Processes.dest) as dest values(Processes.user) as user min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes by Processes.process_name | rename Processes.process_name as process | rex field=user "(?.*)\\\\(?.*)" | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| search [| tstats count from datamodel=Endpoint.Processes by Processes.process_name | rare Processes.process_name limit=30 | rename Processes.process_name as process| `filter_rare_process_whitelist`| table process ] | `detect_rare_executables_filter` [ESCU - Detect Rogue DHCP Server - Rule] action.escu = 0 @@ -3055,7 +3198,7 @@ This search produces fields (`eventName`,`numberOfApiCalls`,`uniqueApisCalled`) 1. \ 1. **Label:** Unique API Calls, **Field:** uniqueApisCalled\ Detailed documentation on how to create a new field within Incident Review may be found here: `https://docs.splunk.com/Documentation/ES/5.3.0/Admin/Customizenotables#Add_a_field_to_the_notable_event_details` -action.escu.known_false_positives = +action.escu.known_false_positives = action.escu.creation_date = 2020-07-21 action.escu.modification_date = 2020-07-21 action.escu.confidence = high @@ -3499,7 +3642,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution where DNS.query_type IN (SIG,KEY) by DNS.flow_id | rename DNS.flow_id as flow_id | append [| tstats `security_content_summariesonly` count from datamodel=Network_Traffic where All_Traffic.bytes_in>65000 by All_Traffic.flow_id | rename All_Traffic.flow_id as flow_id] | `detect_windows_dns_sigred_via_zeek_filter` | stats count by flow_id | where count>1 | fields - count +search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution where DNS.query_type IN (SIG,KEY) by DNS.flow_id | rename DNS.flow_id as flow_id | append [| tstats `security_content_summariesonly` count from datamodel=Network_Traffic where All_Traffic.bytes_in>65000 by All_Traffic.flow_id | rename All_Traffic.flow_id as flow_id] | `detect_windows_dns_sigred_via_zeek_filter` | stats count by flow_id | where count>1 | fields - count [ESCU - Detect Zerologon via Zeek - Rule] action.escu = 0 @@ -3844,6 +3987,39 @@ realtime_schedule = 0 is_visible = false search = | tstats `security_content_summariesonly` dc("DNS.query") as count from datamodel=Network_Resolution where nodename=DNS "DNS.message_type"="QUERY" NOT (`cim_corporate_web_domain_search("DNS.query")`) NOT "DNS.query"="*.in-addr.arpa" NOT ("DNS.src_category"="svc_infra_dns" OR "DNS.src_category"="svc_infra_webproxy" OR "DNS.src_category"="svc_infra_email*" ) by "DNS.src","DNS.query" | rename "DNS.src" as src "DNS.query" as message | eval length=len(message) | stats sum(length) as length by src | append [ tstats `security_content_summariesonly` dc("DNS.answer") as count from datamodel=Network_Resolution where nodename=DNS "DNS.message_type"="QUERY" NOT (`cim_corporate_web_domain_search("DNS.query")`) NOT "DNS.query"="*.in-addr.arpa" NOT ("DNS.src_category"="svc_infra_dns" OR "DNS.src_category"="svc_infra_webproxy" OR "DNS.src_category"="svc_infra_email*" ) by "DNS.src","DNS.answer" | rename "DNS.src" as src "DNS.answer" as message | eval message=if(message=="unknown","", message) | eval length=len(message) | stats sum(length) as length by src ] | stats sum(length) as length by src | where length > 10000 | `detection_of_dns_tunnels_filter` +[ESCU - Detection of tools built by NirSoft - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for specific command-line arguments that may indicate the execution of tools made by Nirsoft, which are legitimate, but may be abused by attackers. +action.escu.mappings = {"cis20": ["CIS 3"], "kill_chain_phases": ["Installation", "Actions on Objectives"], "mitre_attack": ["T1072"], "nist": ["PR.IP"]} +action.escu.data_models = ["Endpoint"] +action.escu.eli5 = This search looks for specific command-line arguments that may indicate the execution of tools made by Nirsoft, which are legitimate, but may be abused by attackers. +action.escu.how_to_implement = You must be ingesting endpoint data that tracks process activity, including parent-child relationships from your endpoints to populate the Endpoint data model in the Processes node. The command-line arguments are mapped to the "process" field in the Endpoint data model. +action.escu.known_false_positives = While legitimate, these NirSoft tools are prone to abuse. You should verfiy that the tool was used for a legitimate purpose. +action.escu.creation_date = 2020-07-21 +action.escu.modification_date = 2020-07-21 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Detection of tools built by NirSoft - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Emotet Malware DHS Report TA18-201A "] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Detection of tools built by NirSoft - Rule +action.correlationsearch.annotations = {"analytics_story": ["Emotet Malware DHS Report TA18-201A "], "cis20": ["CIS 3"], "kill_chain_phases": ["Installation", "Actions on Objectives"], "mitre_attack": ["T1072"], "nist": ["PR.IP"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count min(_time) values(Processes.process) as process max(_time) as lastTime from datamodel=Endpoint.Processes where (Processes.process="* /stext *" OR Processes.process="* /scomma *" ) by Processes.parent_process Processes.process_name Processes.user | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` |`security_content_ctime(lastTime)` | `detection_of_tools_built_by_nirsoft_filter` + [ESCU - Disabling Remote User Account Control - Rule] action.escu = 0 action.escu.enabled = 1 @@ -3894,7 +4070,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Dump LSASS via comsvcs DLL - Rule @@ -4151,7 +4327,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Filesystem.file_path) as file_path min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem where (Filesystem.file_name=*.pst OR Filesystem.file_name=*.ost) Filesystem.file_path != "C:\\Users\\*\\My Documents\\Outlook Files\\*" Filesystem.file_path!="C:\\Users\\*\\AppData\\Local\\Microsoft\\Outlook*" by Filesystem.action Filesystem.process_id Filesystem.file_name Filesystem.dest | `drop_dm_object_name("Filesystem")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`| `email_files_written_outside_of_the_outlook_directory_filter` +search = | tstats `security_content_summariesonly` count values(Filesystem.file_path) as file_path min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem where (Filesystem.file_name=*.pst OR Filesystem.file_name=*.ost) Filesystem.file_path != "C:\\Users\\*\\My Documents\\Outlook Files\\*" Filesystem.file_path!="C:\\Users\\*\\AppData\\Local\\Microsoft\\Outlook*" by Filesystem.action Filesystem.process_id Filesystem.file_name Filesystem.dest | `drop_dm_object_name("Filesystem")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`| `email_files_written_outside_of_the_outlook_directory_filter` [ESCU - Email servers sending high volume traffic to hosts - Rule] action.escu = 0 @@ -4448,7 +4624,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name = cmd.exe Processes.process = "* /c *" by Processes.process Processes.process_name Processes.parent_process_name Processes.dest| `drop_dm_object_name(Processes)`| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | search [| tstats `security_content_summariesonly` earliest(_time) as firstTime latest(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name = cmd.exe Processes.process = "* /c *" by Processes.process | `drop_dm_object_name(Processes)` | inputlookup append=t previously_seen_cmd_line_arguments | stats min(firstTime) as firstTime, max(lastTime) as lastTime by process | outputlookup previously_seen_cmd_line_arguments | eval newCmdLineArgument=if(firstTime >= relative_time(now(), "-70m@m"), 1, 0) | where newCmdLineArgument=1 | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | table process] | `first_time_seen_command_line_argument_filter` +search = | tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name = cmd.exe Processes.process = "* /c *" by Processes.process Processes.process_name Processes.parent_process_name Processes.dest| `drop_dm_object_name(Processes)`| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | search [| tstats `security_content_summariesonly` earliest(_time) as firstTime latest(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name = cmd.exe Processes.process = "* /c *" by Processes.process | `drop_dm_object_name(Processes)` | inputlookup append=t previously_seen_cmd_line_arguments | stats min(firstTime) as firstTime, max(lastTime) as lastTime by process | outputlookup previously_seen_cmd_line_arguments | eval newCmdLineArgument=if(firstTime >= relative_time(now(), "-70m@m"), 1, 0) | where newCmdLineArgument=1 | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | table process] | `first_time_seen_command_line_argument_filter` [ESCU - GCP Detect accounts with high risk roles by project - Rule] action.escu = 0 @@ -4580,7 +4756,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = |tstats count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Cloud_Infrastructure.Storage where Storage.event_name=storage.objects.create by Storage.src_user Storage.account Storage.action Storage.bucket_name Storage.event_name Storage.http_user_agent Storage.msg Storage.object_path | `drop_dm_object_name("Storage")` | `gcp_gcr_container_uploaded_filter` +search = |tstats count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Cloud_Infrastructure.Storage where Storage.event_name=storage.objects.create by Storage.src_user Storage.account Storage.action Storage.bucket_name Storage.event_name Storage.http_user_agent Storage.msg Storage.object_path | `drop_dm_object_name("Storage")` | `gcp_gcr_container_uploaded_filter` [ESCU - GCP Kubernetes cluster pod scan detection - Rule] action.escu = 0 @@ -4646,7 +4822,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `google_gcp_pubsub_message` data.protoPayload.requestMetadata.callerIp!=127.0.0.1 data.protoPayload.requestMetadata.callerIp!=::1 "data.labels.authorization.k8s.io/decision"=forbid "data.protoPayload.status.message"=PERMISSION_DENIED data.protoPayload.authenticationInfo.principalEmail="system:anonymous" | rename data.protoPayload.requestMetadata.callerIp as src_ip | stats count min(_time) as firstTime max(_time) as lastTime values(data.protoPayload.methodName) as method_name values(data.protoPayload.resourceName) as resource_name values(data.protoPayload.requestMetadata.callerSuppliedUserAgent) as http_user_agent by src_ip data.resource.labels.cluster_name | rename data.resource.labels.cluster_name as cluster_name| `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` | `gcp_kubernetes_cluster_scan_detection_filter` +search = `google_gcp_pubsub_message` data.protoPayload.requestMetadata.callerIp!=127.0.0.1 data.protoPayload.requestMetadata.callerIp!=::1 "data.labels.authorization.k8s.io/decision"=forbid "data.protoPayload.status.message"=PERMISSION_DENIED data.protoPayload.authenticationInfo.principalEmail="system:anonymous" | rename data.protoPayload.requestMetadata.callerIp as src_ip | stats count min(_time) as firstTime max(_time) as lastTime values(data.protoPayload.methodName) as method_name values(data.protoPayload.resourceName) as resource_name values(data.protoPayload.requestMetadata.callerSuppliedUserAgent) as http_user_agent by src_ip data.resource.labels.cluster_name | rename data.resource.labels.cluster_name as cluster_name| `security_content_ctime(lastTime)` | `security_content_ctime(firstTime)` | `gcp_kubernetes_cluster_scan_detection_filter` [ESCU - Hiding Files And Directories With Attrib exe - Rule] action.escu = 0 @@ -4656,7 +4832,7 @@ action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Ob action.escu.data_models = ["Endpoint"] action.escu.eli5 = Attackers leverage an existing Windows binary, attrib.exe, to mark specific as hidden by using specific flags so that the victim does not see the file. The search looks for specific command-line arguments to detect the use of attrib.exe to hide files. action.escu.how_to_implement = You must be ingesting data that records process activity from your hosts to populate the Endpoint data model in the Processes node. You must also be ingesting logs with both the process name and command line from your endpoints. The command-line arguments are mapped to the "process" field in the Endpoint data model. -action.escu.known_false_positives = Some applications and users may legitimately use attrib.exe to interact with the files. +action.escu.known_false_positives = Some applications and users may legitimately use attrib.exe to interact with the files. action.escu.creation_date = 2020-07-21 action.escu.modification_date = 2020-07-21 action.escu.confidence = high @@ -4679,7 +4855,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) values(Processes.process) as process max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=attrib.exe (Processes.process=*+h*) by Processes.parent_process Processes.process_name Processes.user Processes.dest | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`|`security_content_ctime(lastTime)`| `hiding_files_and_directories_with_attrib_exe_filter` +search = | tstats `security_content_summariesonly` count min(_time) values(Processes.process) as process max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=attrib.exe (Processes.process=*+h*) by Processes.parent_process Processes.process_name Processes.user Processes.dest | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`|`security_content_ctime(lastTime)`| `hiding_files_and_directories_with_attrib_exe_filter` [ESCU - High Number of Login Failures from a single source - Rule] action.escu = 0 @@ -4887,7 +5063,7 @@ action.escu.mappings = {"kill_chain_phases": ["Lateral Movement"]} action.escu.data_models = [] action.escu.eli5 = This search provides information on Kubernetes accounts accessing sensitve objects such as configmpas or secrets action.escu.how_to_implement = You must install splunk AWS add on and Splunk App for AWS. This search works with cloudwatch logs. -action.escu.known_false_positives = Sensitive role resource access is necessary for cluster operation, however source IP, namespace and user group may indicate possible malicious use. +action.escu.known_false_positives = Sensitive role resource access is necessary for cluster operation, however source IP, namespace and user group may indicate possible malicious use. action.escu.creation_date = 2020-06-23 action.escu.modification_date = 2020-06-23 action.escu.confidence = high @@ -5085,7 +5261,7 @@ action.escu.mappings = {"kill_chain_phases": ["Lateral Movement"]} action.escu.data_models = [] action.escu.eli5 = This search provides information on Kubernetes accounts accessing sensitve objects such as configmpas or secrets action.escu.how_to_implement = You must install the Add-on for Microsoft Cloud Services and Configure Kube-Audit data diagnostics -action.escu.known_false_positives = Sensitive role resource access is necessary for cluster operation, however source IP, namespace and user group may indicate possible malicious use. +action.escu.known_false_positives = Sensitive role resource access is necessary for cluster operation, however source IP, namespace and user group may indicate possible malicious use. action.escu.creation_date = 2020-05-20 action.escu.modification_date = 2020-05-20 action.escu.confidence = high @@ -5349,7 +5525,7 @@ action.escu.mappings = {"kill_chain_phases": ["Lateral Movement"]} action.escu.data_models = [] action.escu.eli5 = This search provides information on Kubernetes accounts accessing sensitve objects such as configmpas or secrets action.escu.how_to_implement = You must install splunk add on for GCP. This search works with pubsub messaging servicelogs. -action.escu.known_false_positives = Sensitive role resource access is necessary for cluster operation, however source IP, user agent, decision and reason may indicate possible malicious use. +action.escu.known_false_positives = Sensitive role resource access is necessary for cluster operation, however source IP, user agent, decision and reason may indicate possible malicious use. action.escu.creation_date = 2020-07-11 action.escu.modification_date = 2020-07-11 action.escu.confidence = high @@ -5473,6 +5649,39 @@ realtime_schedule = 0 is_visible = false search = | tstats `security_content_summariesonly` count from datamodel=Network_Resolution where nodename=DNS "DNS.message_type"="QUERY" "DNS.record_type"="ANY" by "DNS.dest" | `drop_dm_object_name("DNS")` | where count>200 | `large_volume_of_dns_any_queries_filter` +[ESCU - MacOS - Re-opened Applications - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for processes referencing the plist files that determine which applications are re-opened when a user reboots their machine. +action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Installation", "Command and Control"], "nist": ["DE.DP", "DE.CM"]} +action.escu.data_models = ["Endpoint"] +action.escu.eli5 = This search looks for processes referencing the plist files that determine which applications are re-opened when a user reboots their machine. +action.escu.how_to_implement = In order to properly run this search, Splunk needs to ingest process data from your osquery deployed agents with the [splunk.conf](https://github.com/splunk/TA-osquery/blob/master/config/splunk.conf) pack enabled. Also the [TA-OSquery](https://github.com/splunk/TA-osquery) must be deployed across your indexers and universal forwarders in order to have the data populate the Endpoint data model. +action.escu.known_false_positives = At this stage, there are no known false positives. During testing, no process events refering the com.apple.loginwindow.plist files were observed during normal operation of re-opening applications on reboot. Therefore, it can be asumed that any occurences of this in the process events would be worth investigating. In the event that the legitimate modification by the system of these files is in fact logged to the process log, then the process_name of that process can be whitelisted. +action.escu.creation_date = 2020-02-07 +action.escu.modification_date = 2020-02-07 +action.escu.confidence = high +action.escu.full_search_name = ESCU - MacOS - Re-opened Applications - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = [] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - MacOS - Re-opened Applications - Rule +action.correlationsearch.annotations = {"cis20": ["CIS 8"], "kill_chain_phases": ["Installation", "Command and Control"], "nist": ["DE.DP", "DE.CM"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count values(Processes.process) as process values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process="*com.apple.loginwindow*" by Processes.user Processes.process_name Processes.parent_process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `macos___re_opened_applications_filter` + [ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule] action.escu = 0 action.escu.enabled = 1 @@ -5801,7 +6010,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `okta` outcome.reason=INVALID_CREDENTIALS | rename client.geographicalContext.country as country, client.geographicalContext.state as state, client.geographicalContext.city as city | stats min(_time) as firstTime max(_time) as lastTime dc(user) as distinct_users values(user) as users by src_ip, displayMessage, outcome.reason, country, state, city | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | search distinct_users > 5| `multiple_okta_users_with_invalid_credentails_from_the_same_ip_filter` +search = `okta` outcome.reason=INVALID_CREDENTIALS | rename client.geographicalContext.country as country, client.geographicalContext.state as state, client.geographicalContext.city as city | stats min(_time) as firstTime max(_time) as lastTime dc(user) as distinct_users values(user) as users by src_ip, displayMessage, outcome.reason, country, state, city | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | search distinct_users > 5| `multiple_okta_users_with_invalid_credentails_from_the_same_ip_filter` [ESCU - New container uploaded to AWS ECR - Rule] action.escu = 0 @@ -5834,7 +6043,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Cloud_Infrastructure.Compute where Compute.user_type!="AssumeRole" AND Compute.http_user_agent="AWS Internal" AND Compute.event_name="PutImage" by Compute.image_id Compute.src_user Compute.src Compute.region Compute.msg Compute.user_type | `drop_dm_object_name("Compute")` | `new_container_uploaded_to_aws_ecr_filter` +search = | tstats count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Cloud_Infrastructure.Compute where Compute.user_type!="AssumeRole" AND Compute.http_user_agent="AWS Internal" AND Compute.event_name="PutImage" by Compute.image_id Compute.src_user Compute.src Compute.region Compute.msg Compute.user_type | `drop_dm_object_name("Compute")` | `new_container_uploaded_to_aws_ecr_filter` [ESCU - No Windows Updates in a time frame - Rule] action.escu = 0 @@ -6098,7 +6307,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `okta` displayMessage="Max sign in attempts exceeded" | rename client.geographicalContext.country as country, client.geographicalContext.state as state, client.geographicalContext.city as city | table _time, user, country, state, city, src_ip | `okta_account_lockout_events_filter` +search = `okta` displayMessage="Max sign in attempts exceeded" | rename client.geographicalContext.country as country, client.geographicalContext.state as state, client.geographicalContext.city as city | table _time, user, country, state, city, src_ip | `okta_account_lockout_events_filter` [ESCU - Okta Failed SSO Attempts - Rule] action.escu = 0 @@ -6131,7 +6340,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `okta` displayMessage="User attempted unauthorized access to app" | stats min(_time) as firstTime max(_time) as lastTime values(app) as Apps count by user, result ,displayMessage, src_ip | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `okta_failed_sso_attempts_filter` +search = `okta` displayMessage="User attempted unauthorized access to app" | stats min(_time) as firstTime max(_time) as lastTime values(app) as Apps count by user, result ,displayMessage, src_ip | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `okta_failed_sso_attempts_filter` [ESCU - Okta User Logins From Multiple Cities - Rule] action.escu = 0 @@ -6296,7 +6505,40 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.parent_process_name = *WmiPrvSE.exe by Processes.user Processes.dest Processes.process_name | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| `process_execution_via_wmi_filter` +search = | tstats `security_content_summariesonly` count values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.parent_process_name = *WmiPrvSE.exe by Processes.user Processes.dest Processes.process_name | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| `process_execution_via_wmi_filter` + +[ESCU - Processes Tapping Keyboard Events - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for processes in an MacOS system that is tapping keyboard events in MacOS, and essentially monitoring all keystrokes made by a user. This is a common technique used by RATs to log keystrokes from a victim, although it can also be used by legitimate processes like Siri to react on human input +action.escu.mappings = {"cis20": ["CIS 4", "CIS 8"], "kill_chain_phases": ["Command and Control"], "nist": ["DE.DP"]} +action.escu.data_models = [] +action.escu.eli5 = This search looks for processes in an MacOS system that is tapping keyboard events in MacOS, and essentially monitoring all keystrokes made by a user. This is a common technique used by RATs to log keystrokes from a victim, although it can also be used by legitimate processes like Siri to react on human input +action.escu.how_to_implement = In order to properly run this search, Splunk needs to ingest data from your osquery deployed agents with the [osx-attacks.conf](https://github.com/facebook/osquery/blob/experimental/packs/osx-attacks.conf#L599) pack enabled. Also the [TA-OSquery](https://github.com/d1vious/TA-osquery) must be deployed across your indexers and universal forwarders in order to have the osquery data populate the Alerts data model. +action.escu.known_false_positives = There might be some false positives as keyboard event taps are used by processes like Siri and Zoom video chat, for some good examples of processes to exclude please see [this](https://github.com/facebook/osquery/pull/5345#issuecomment-454639161) comment. +action.escu.creation_date = 2019-01-25 +action.escu.modification_date = 2019-01-25 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Processes Tapping Keyboard Events - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["ColdRoot MacOS RAT"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Processes Tapping Keyboard Events - Rule +action.correlationsearch.annotations = {"analytics_story": ["ColdRoot MacOS RAT"], "cis20": ["CIS 4", "CIS 8"], "kill_chain_phases": ["Command and Control"], "nist": ["DE.DP"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | from datamodel Alerts.Alerts | search app=osquery:results name=pack_osx-attacks_Keyboard_Event_Taps | rename columns.cmdline as cmd, columns.name as process_name, columns.pid as process_id| dedup host,process_name | table host,process_name, cmd, process_id | `processes_tapping_keyboard_events_filter` [ESCU - Processes created by netsh - Rule] action.escu = 0 @@ -6725,7 +6967,40 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Network_Traffic where All_Traffic.dest_port=3389 AND All_Traffic.dest_category!=common_rdp_destination AND All_Traffic.src_category!=common_rdp_source by All_Traffic.src All_Traffic.dest All_Traffic.dest_port | `drop_dm_object_name("All_Traffic")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `remote_desktop_network_traffic_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Network_Traffic where All_Traffic.dest_port=3389 AND All_Traffic.dest_category!=common_rdp_destination AND All_Traffic.src_category!=common_rdp_source by All_Traffic.src All_Traffic.dest All_Traffic.dest_port | `drop_dm_object_name("All_Traffic")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `remote_desktop_network_traffic_filter` + +[ESCU - Remote Desktop Process Running On System - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for the remote desktop process mstsc.exe running on systems upon which it doesn't typically run. This is accomplished by filtering out all systems that are noted in the `common_rdp_source category` in the Assets and Identity framework. +action.escu.mappings = {"cis20": ["CIS 3", "CIS 9", "CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1021.001"], "nist": ["DE.AE", "PR.AC", "PR.IP"]} +action.escu.data_models = ["Endpoint"] +action.escu.eli5 = This search looks for the remote desktop process mstsc.exe running on systems upon which it doesn't typically run. This is accomplished by filtering out all systems that are noted in the `common_rdp_source category` in the Assets and Identity framework. +action.escu.how_to_implement = To successfully implement this search, you must be ingesting data that records process activity from your hosts to populate the endpoint data model in the processes node. The search requires you to identify systems that do not commonly use remote desktop. You can use the included support search "Identify Systems Using Remote Desktop" to identify these systems. After identifying them, you will need to add the "common_rdp_source" category to that system using the Enterprise Security Assets and Identities framework. This can be done by adding an entry in the assets.csv file located in `SA-IdentityManagement/lookups`. +action.escu.known_false_positives = Remote Desktop may be used legitimately by users on the network. +action.escu.creation_date = 2020-07-21 +action.escu.modification_date = 2020-07-21 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Remote Desktop Process Running On System - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Hidden Cobra Malware", "Lateral Movement"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Remote Desktop Process Running On System - Rule +action.correlationsearch.annotations = {"analytics_story": ["Hidden Cobra Malware", "Lateral Movement"], "cis20": ["CIS 3", "CIS 9", "CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1021.001"], "nist": ["DE.AE", "PR.AC", "PR.IP"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process=*mstsc.exe AND Processes.dest_category!=common_rdp_source by Processes.dest Processes.user Processes.process | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `drop_dm_object_name(Processes)` | `remote_desktop_process_running_on_system_filter` [ESCU - Remote Process Instantiation via WMI - Rule] action.escu = 0 @@ -6923,7 +7198,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count from datamodel=Network_Traffic where All_Traffic.dest_port=139 OR All_Traffic.dest_port=445 OR All_Traffic.app=smb by _time span=1h, All_Traffic.src | `drop_dm_object_name("All_Traffic")` | eventstats max(_time) as maxtime | stats count as num_data_samples max(eval(if(_time >= relative_time(maxtime, "-70m@m"), count, null))) as count avg(eval(if(_time upperBound AND num_data_samples >=50, 1, 0) | where isOutlier=1 | table src count | `smb_traffic_spike_filter` +search = | tstats `security_content_summariesonly` count from datamodel=Network_Traffic where All_Traffic.dest_port=139 OR All_Traffic.dest_port=445 OR All_Traffic.app=smb by _time span=1h, All_Traffic.src | `drop_dm_object_name("All_Traffic")` | eventstats max(_time) as maxtime | stats count as num_data_samples max(eval(if(_time >= relative_time(maxtime, "-70m@m"), count, null))) as count avg(eval(if(_time upperBound AND num_data_samples >=50, 1, 0) | where isOutlier=1 | table src count | `smb_traffic_spike_filter` [ESCU - SMB Traffic Spike - MLTK - Rule] action.escu = 0 @@ -6959,7 +7234,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(All_Traffic.dest_ip) as dest values(All_Traffic.dest_port) as port from datamodel=Network_Traffic where All_Traffic.dest_port=139 OR All_Traffic.dest_port=445 OR All_Traffic.app=smb by _time span=1h, All_Traffic.src | eval HourOfDay=strftime(_time, "%H") | eval DayOfWeek=strftime(_time, "%A") | `drop_dm_object_name(All_Traffic)` | apply smb_pdfmodel threshold=0.001 | rename "IsOutlier(count)" as isOutlier | search isOutlier > 0 | sort -count | table _time src dest port count | `smb_traffic_spike___mltk_filter` +search = | tstats `security_content_summariesonly` count values(All_Traffic.dest_ip) as dest values(All_Traffic.dest_port) as port from datamodel=Network_Traffic where All_Traffic.dest_port=139 OR All_Traffic.dest_port=445 OR All_Traffic.app=smb by _time span=1h, All_Traffic.src | eval HourOfDay=strftime(_time, "%H") | eval DayOfWeek=strftime(_time, "%A") | `drop_dm_object_name(All_Traffic)` | apply smb_pdfmodel threshold=0.001 | rename "IsOutlier(count)" as isOutlier | search isOutlier > 0 | sort -count | table _time src dest port count | `smb_traffic_spike___mltk_filter` [ESCU - SQL Injection with Long URLs - Rule] action.escu = 0 @@ -7091,7 +7366,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Processes.process) as process values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=schtasks.exe (Processes.process=*delete* OR Processes.process=*create*) by Processes.user Processes.process_name Processes.parent_process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `scheduled_task_deleted_or_created_via_cmd_filter` +search = | tstats `security_content_summariesonly` count values(Processes.process) as process values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=schtasks.exe (Processes.process=*delete* OR Processes.process=*create*) by Processes.user Processes.process_name Processes.parent_process_name Processes.dest | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `scheduled_task_deleted_or_created_via_cmd_filter` [ESCU - Scheduled tasks used in BadRabbit ransomware - Rule] action.escu = 0 @@ -7223,7 +7498,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.process_name = "scrcons.exe" by Processes.user Processes.dest Processes.process_name | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| `script_execution_via_wmi_filter` +search = | tstats `security_content_summariesonly` count values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.process_name = "scrcons.exe" by Processes.user Processes.dest Processes.process_name | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| `script_execution_via_wmi_filter` [ESCU - Shim Database File Creation - Rule] action.escu = 0 @@ -7390,6 +7665,39 @@ realtime_schedule = 0 is_visible = false search = | tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as lastTime from datamodel=Vulnerabilities where Vulnerabilities.cve ="CVE-2017-5753" OR Vulnerabilities.cve ="CVE-2017-5715" OR Vulnerabilities.cve ="CVE-2017-5754" by Vulnerabilities.dest | `drop_dm_object_name(Vulnerabilities)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `spectre_and_meltdown_vulnerable_systems_filter` +[ESCU - Spike in File Writes - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = The search looks for a sharp increase in the number of files written to a particular host +action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.CM"]} +action.escu.data_models = [] +action.escu.eli5 = The search looks for a sharp increase in the number of files written to a particular host +action.escu.how_to_implement = In order to implement this search, you must populate the Endpoint file-system data model node. This is typically populated via endpoint detection and response products, such as Carbon Black or endpoint data sources such as Sysmon. The data used for this search is typically generated via logs that report reads and writes to the file system. +action.escu.known_false_positives = It is important to understand that if you happen to install any new applications on your hosts or are copying a large number of files, you can expect to see a large increase of file modifications. +action.escu.creation_date = 2020-03-16 +action.escu.modification_date = 2020-03-16 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Spike in File Writes - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["SamSam Ransomware", "Ryuk Ransomware", "Ransomware"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Spike in File Writes - Rule +action.correlationsearch.annotations = {"analytics_story": ["SamSam Ransomware", "Ryuk Ransomware", "Ransomware"], "cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.CM"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Filesystem where Filesystem.action=created by _time span=1h, Filesystem.dest | `drop_dm_object_name(Filesystem)` | eventstats max(_time) as maxtime | stats count as num_data_samples max(eval(if(_time >= relative_time(maxtime, "-1d@d"), count, null))) as "count" avg(eval(if(_time upperBound) AND num_data_samples >=20, 1, 0) | search isOutlier=1 | `spike_in_file_writes_filter` + [ESCU - Splunk Enterprise Information Disclosure - Rule] action.escu = 0 action.escu.enabled = 1 @@ -7454,7 +7762,40 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = (`sysmon` EventCode=7 ImageLoaded=*SolarWinds.Orion.Core.BusinessLayer.dll) OR (`sysmon` EventCode=22 QueryName=*avsvmcloud.com) | eventstats dc(EventCode) AS dc_events | where dc_events=2 | stats min(_time) as firstTime max(_time) as lastTime values(ImageLoaded) AS ImageLoaded values(QueryName) AS QueryName by host | rename host as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `sunburst_correlation_dll_and_network_event_filter` +search = (`sysmon` EventCode=7 ImageLoaded=*SolarWinds.Orion.Core.BusinessLayer.dll) OR (`sysmon` EventCode=22 QueryName=*avsvmcloud.com) | eventstats dc(EventCode) AS dc_events | where dc_events=2 | stats min(_time) as firstTime max(_time) as lastTime values(ImageLoaded) AS ImageLoaded values(QueryName) AS QueryName by host | rename host as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `sunburst_correlation_dll_and_network_event_filter` + +[ESCU - Supernova Webshell - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search aims to detect the Supernova webshell used in the SUNBURST attack. +action.escu.mappings = {"cis20": ["CIS 4", "CIS 13", "CIS 18"], "kill_chain_phases": ["Exfiltration"], "mitre_attack": ["T1505.003"], "nist": ["PR.DS", "ID.RA", "PR.PT", "PR.IP", "DE.CM"]} +action.escu.data_models = ["Web"] +action.escu.eli5 = This search aims to detect the Supernova webshell used in the SUNBURST attack. +action.escu.how_to_implement = To successfully implement this search, you need to be monitoring web traffic to your Solarwinds Orion. The logs should be ingested into splunk and populating/mapped to the Web data model. +action.escu.known_false_positives = There might be false positives associted with this detection since items like args as a web argument is pretty generic. +action.escu.creation_date = 2021-01-06 +action.escu.modification_date = 2021-01-06 +action.escu.confidence = high +action.escu.full_search_name = ESCU - Supernova Webshell - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Sunburst Malware"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - Supernova Webshell - Rule +action.correlationsearch.annotations = {"analytics_story": ["Sunburst Malware"], "cis20": ["CIS 4", "CIS 13", "CIS 18"], "kill_chain_phases": ["Exfiltration"], "mitre_attack": ["T1505.003"], "nist": ["PR.DS", "ID.RA", "PR.PT", "PR.IP", "DE.CM"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = | tstats `security_content_summariesonly` count from datamodel=Web.Web where web.url=*logoimagehandler.ashx*codes* OR Web.url=*logoimagehandler.ashx*clazz* OR Web.url=*logoimagehandler.ashx*method* OR Web.url=*logoimagehandler.ashx*args* by Web.src Web.dest Web.url Web.vendor_product Web.user Web.http_user_agent _time span=1s | `supernova_webshell_filter` [ESCU - Suspicious Changes to File Associations - Rule] action.escu = 0 @@ -7487,7 +7828,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime values(Processes.process_name) as process_name values(Processes.parent_process_name) as parent_process_name FROM datamodel=Endpoint.Processes where Processes.process_name!=Explorer.exe AND Processes.process_name!=OpenWith.exe by Processes.process_id Processes.dest | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | join [| tstats `security_content_summariesonly` values(Registry.registry_path) as registry_path count FROM datamodel=Endpoint.Registry where Registry.registry_path=*\\Explorer\\FileExts* by Registry.process_id Registry.dest | `drop_dm_object_name("Registry")` | table process_id dest registry_path]| `suspicious_changes_to_file_associations_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime values(Processes.process_name) as process_name values(Processes.parent_process_name) as parent_process_name FROM datamodel=Endpoint.Processes where Processes.process_name!=Explorer.exe AND Processes.process_name!=OpenWith.exe by Processes.process_id Processes.dest | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | join [| tstats `security_content_summariesonly` values(Registry.registry_path) as registry_path count FROM datamodel=Endpoint.Registry where Registry.registry_path=*\\Explorer\\FileExts* by Registry.process_id Registry.dest | `drop_dm_object_name("Registry")` | table process_id dest registry_path]| `suspicious_changes_to_file_associations_filter` [ESCU - Suspicious Email - UBA Anomaly - Rule] action.escu = 0 @@ -7555,7 +7896,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Email where All_Email.file_name="*" by All_Email.src_user, All_Email.file_name All_Email.message_id | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `drop_dm_object_name("All_Email")` | `suspicious_email_attachments` | `suspicious_email_attachment_extensions_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Email where All_Email.file_name="*" by All_Email.src_user, All_Email.file_name All_Email.message_id | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `drop_dm_object_name("All_Email")` | `suspicious_email_attachments` | `suspicious_email_attachment_extensions_filter` [ESCU - Suspicious File Write - Rule] action.escu = 0 @@ -7654,7 +7995,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Filesystem where Filesystem.file_name="*.lnk" AND Filesystem.file_path="C:\\Temp*" by _time span=1h Filesystem.process_id Filesystem.file_name Filesystem.file_path Filesystem.file_hash Filesystem.user | `drop_dm_object_name(Filesystem)` | rename process_id as lnk_pid | join lnk_pid, _time [| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes where Processes.process_name=* by _time span=1h Processes.parent_process_id Processes.process_id Processes.process_name Processes.dest Processes.process_path Processes.process | `drop_dm_object_name(Processes)` | rename parent_process_id as lnk_pid | fields _time lnk_pid process_id dest process_name process_path process] | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | table firstTime, lastTime, lnk_pid, process_id, user, dest, file_name, file_path, process_name, process, process_path, file_hash | `suspicious_lnk_file_launching_a_process_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Filesystem where Filesystem.file_name="*.lnk" AND Filesystem.file_path="C:\\Temp*" by _time span=1h Filesystem.process_id Filesystem.file_name Filesystem.file_path Filesystem.file_hash Filesystem.user | `drop_dm_object_name(Filesystem)` | rename process_id as lnk_pid | join lnk_pid, _time [| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes where Processes.process_name=* by _time span=1h Processes.parent_process_id Processes.process_id Processes.process_name Processes.dest Processes.process_path Processes.process | `drop_dm_object_name(Processes)` | rename parent_process_id as lnk_pid | fields _time lnk_pid process_id dest process_name process_path process] | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | table firstTime, lastTime, lnk_pid, process_id, user, dest, file_name, file_path, process_name, process, process_path, file_hash | `suspicious_lnk_file_launching_a_process_filter` [ESCU - Suspicious Reg exe Process - Rule] action.escu = 0 @@ -7687,7 +8028,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.parent_process_name != explorer.exe Processes.process_name =cmd.exe by Processes.user Processes.process_name Processes.parent_process_name Processes.dest Processes.process_id Processes.parent_process_id | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | search [| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes where Processes.parent_process_name=cmd.exe Processes.process_name= reg.exe by Processes.parent_process_id Processes.dest Processes.process_name | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | rename parent_process_id as process_id |dedup process_id| table process_id dest] | `suspicious_reg_exe_process_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where Processes.parent_process_name != explorer.exe Processes.process_name =cmd.exe by Processes.user Processes.process_name Processes.parent_process_name Processes.dest Processes.process_id Processes.parent_process_id | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | search [| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes where Processes.parent_process_name=cmd.exe Processes.process_name= reg.exe by Processes.parent_process_id Processes.dest Processes.process_name | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | rename parent_process_id as process_id |dedup process_id| table process_id dest] | `suspicious_reg_exe_process_filter` [ESCU - Suspicious wevtutil Usage - Rule] action.escu = 0 @@ -7951,7 +8292,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes by Processes.dest Processes.user Processes.process Processes.process_name | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `drop_dm_object_name(Processes)` | `uncommon_processes` |`uncommon_processes_on_endpoint_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes by Processes.dest Processes.user Processes.process Processes.process_name | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `drop_dm_object_name(Processes)` | `uncommon_processes` |`uncommon_processes_on_endpoint_filter` [ESCU - Unload Sysmon Filter Driver - Rule] action.escu = 0 @@ -7961,7 +8302,7 @@ action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Ob action.escu.data_models = ["Endpoint"] action.escu.eli5 = Attackers often disable security tools to avoid detection. This search looks for the usage of process `fltMC.exe` to unload a Sysmon Driver that will stop sysmon from collecting the data. action.escu.how_to_implement = You must be ingesting data that records process activity from your hosts to populate the Endpoint data model in the Processes node. You must also be ingesting logs with both the process name and command line from your endpoints. The command-line arguments are mapped to the "process" field in the Endpoint data model. This search is also shipped with `unload_sysmon_filter_driver_filter` macro, update this macro to filter out false positives. -action.escu.known_false_positives = +action.escu.known_false_positives = action.escu.creation_date = 2020-07-22 action.escu.modification_date = 2020-07-22 action.escu.confidence = high @@ -8003,7 +8344,7 @@ action.escu.search_type = detection action.escu.providing_technologies = [] action.escu.analytic_story = ["Credential Dumping"] cron_schedule = 0 * * * * -dispatch.earliest_time = -70m@m +dispatch.earliest_time = -40m@m dispatch.latest_time = -10m@m action.correlationsearch.enabled = 1 action.correlationsearch.label = ESCU - Unsigned Image Loaded by LSASS - Rule @@ -8017,7 +8358,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = `sysmon` EventID=7 Image=*lsass.exe Signed=false | stats count min(_time) as firstTime max(_time) as lastTime by Computer, Image, ImageLoaded, Signed, SHA1 | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `unsigned_image_loaded_by_lsass_filter` +search = `sysmon` EventID=7 Image=*lsass.exe Signed=false | stats count min(_time) as firstTime max(_time) as lastTime by Computer, Image, ImageLoaded, Signed, SHA1 | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `unsigned_image_loaded_by_lsass_filter` [ESCU - Unsuccessful Netbackup backups - Rule] action.escu = 0 @@ -8151,6 +8492,39 @@ realtime_schedule = 0 is_visible = false search = `stream_http` | eval cs_content_type_length = len(cs_content_type) | where cs_content_type_length > 100 | table endtime src_ip dest_ip cs_content_type_length cs_content_type url | `unusually_long_content_type_length_filter` +[ESCU - WMI Permanent Event Subscription - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for the creation of WMI permanent event subscriptions. +action.escu.mappings = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047"], "nist": ["PR.PT", "PR.AT", "PR.AC", "PR.IP"]} +action.escu.data_models = [] +action.escu.eli5 = This search looks for the creation of WMI permanent event subscriptions. +action.escu.how_to_implement = To successfully implement this search, you must be ingesting the Windows WMI activity logs. This can be done by adding a stanza to inputs.conf on the system generating logs with a title of [WinEventLog://Microsoft-Windows-WMI-Activity/Operational]. +action.escu.known_false_positives = Although unlikely, administrators may use event subscriptions for legitimate purposes. +action.escu.creation_date = 2018-10-23 +action.escu.modification_date = 2018-10-23 +action.escu.confidence = high +action.escu.full_search_name = ESCU - WMI Permanent Event Subscription - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Suspicious WMI Use"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - WMI Permanent Event Subscription - Rule +action.correlationsearch.annotations = {"analytics_story": ["Suspicious WMI Use"], "cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047"], "nist": ["PR.PT", "PR.AT", "PR.AC", "PR.IP"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = `wmi` EventCode=5861 Binding | rex field=Message "Consumer =\s+(?[^;|^$]+)" | search consumer!="NTEventLogEventConsumer=\"SCM Event Log Consumer\"" | stats count min(_time) as firstTime max(_time) as lastTime by ComputerName, consumer, Message | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | rename ComputerName as dest | `wmi_permanent_event_subscription_filter` + [ESCU - WMI Permanent Event Subscription - Sysmon - Rule] action.escu = 0 action.escu.enabled = 1 @@ -8184,6 +8558,39 @@ realtime_schedule = 0 is_visible = false search = `sysmon` EventCode=21 | rename host as dest | table _time, dest, user, Operation, EventType, Query, Consumer, Filter | `wmi_permanent_event_subscription___sysmon_filter` +[ESCU - WMI Temporary Event Subscription - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search looks for the creation of WMI temporary event subscriptions. +action.escu.mappings = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047"], "nist": ["PR.PT", "PR.AT", "PR.AC", "PR.IP"]} +action.escu.data_models = [] +action.escu.eli5 = This search looks for the creation of WMI temporary event subscriptions. +action.escu.how_to_implement = To successfully implement this search, you must be ingesting the Windows WMI activity logs. This can be done by adding a stanza to inputs.conf on the system generating logs with a title of [WinEventLog://Microsoft-Windows-WMI-Activity/Operational]. +action.escu.known_false_positives = Some software may create WMI temporary event subscriptions for various purposes. The included search contains an exception for two of these that occur by default on Windows 10 systems. You may need to modify the search to create exceptions for other legitimate events. +action.escu.creation_date = 2018-10-23 +action.escu.modification_date = 2018-10-23 +action.escu.confidence = high +action.escu.full_search_name = ESCU - WMI Temporary Event Subscription - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Suspicious WMI Use"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - WMI Temporary Event Subscription - Rule +action.correlationsearch.annotations = {"analytics_story": ["Suspicious WMI Use"], "cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047"], "nist": ["PR.PT", "PR.AT", "PR.AC", "PR.IP"]} +schedule_window = auto +alert.digest_mode = 1 +disabled = true +enableSched = 1 +counttype = number of events +relation = greater than +quantity = 0 +realtime_schedule = 0 +is_visible = false +search = `wmi` EventCode=5860 Temporary | rex field=Message "NotificationQuery =\s+(?[^;|^$]+)" | search query!="SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName = 'wsmprovhost.exe'" AND query!="SELECT * FROM __InstanceOperationEvent WHERE TargetInstance ISA 'AntiVirusProduct' OR TargetInstance ISA 'FirewallProduct' OR TargetInstance ISA 'AntiSpywareProduct'" | stats count min(_time) as firstTime max(_time) as lastTime by ComputerName, query | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `wmi_temporary_event_subscription_filter` + [ESCU - Web Fraud - Account Harvesting - Rule] action.escu = 0 action.escu.enabled = 1 @@ -8347,7 +8754,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processes.process=*-f* OR Processes.process=*-b*) AND (Processes.process=*objectcategory* OR Processes.process=*-gcb* OR Processes.process=*-sc*) by Processes.dest Processes.user Processes.process_name Processes.process Processes.parent_process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_adfind_exe_filter` +search = | tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where (Processes.process=*-f* OR Processes.process=*-b*) AND (Processes.process=*objectcategory* OR Processes.process=*-gcb* OR Processes.process=*-sc*) by Processes.dest Processes.user Processes.process_name Processes.process Processes.parent_process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_adfind_exe_filter` [ESCU - Windows DisableAntiSpyware Registry - Rule] action.escu = 0 @@ -8451,10 +8858,10 @@ search = | tstats `security_content_summariesonly` count min(_time) as firstTime [ESCU - Windows connhost exe started forcefully - Rule] action.escu = 0 action.escu.enabled = 1 -description = The search looks for the Console Window Host process (connhost.exe) executed using the force flag -ForceV1. This is not regular behavior in the Windows OS and is often seen executed by the Ryuk Ransomware. DEPRECATED This event is actually seen in the windows 10 client of attack_range_local. After further testing we realized this is not specific to Ryuk. +description = The search looks for the Console Window Host process (connhost.exe) executed using the force flag -ForceV1. This is not regular behavior in the Windows OS and is often seen executed by the Ryuk Ransomware. DEPRECATED This event is actually seen in the windows 10 client of attack_range_local. After further testing we realized this is not specific to Ryuk. action.escu.mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Delivery"], "mitre_attack": ["T1059.003"], "nist": ["PR.PT", "DE.CM"]} action.escu.data_models = [] -action.escu.eli5 = The search looks for the Console Window Host process (connhost.exe) executed using the force flag -ForceV1. This is not regular behavior in the Windows OS and is often seen executed by the Ryuk Ransomware. DEPRECATED This event is actually seen in the windows 10 client of attack_range_local. After further testing we realized this is not specific to Ryuk. +action.escu.eli5 = The search looks for the Console Window Host process (connhost.exe) executed using the force flag -ForceV1. This is not regular behavior in the Windows OS and is often seen executed by the Ryuk Ransomware. DEPRECATED This event is actually seen in the windows 10 client of attack_range_local. After further testing we realized this is not specific to Ryuk. action.escu.how_to_implement = You must be ingesting data that records the process-system activity from your hosts to populate the Endpoint Processes data-model object. If you are using Sysmon, you will need a Splunk Universal Forwarder on each endpoint from which you want to collect data. action.escu.known_false_positives = This process should not be ran forcefully, we have not see any false positives for this detection action.escu.creation_date = 2020-11-06 @@ -10410,7 +10817,7 @@ action.escu = 0 action.escu.enabled = 1 action.escu.search_type = investigative action.escu.full_search_name = ESCU - Get DNS traffic ratio -description = This search calculates the ratio of DNS traffic originating and coming from a host to a list of DNS servers over the last 24 hours. A high value of this ratio could be very useful to quickly understand if a src_ip (host) is sending a high volume of data out via port 53, could be an indicator of data exfiltration via DNS. +description = This search calculates the ratio of DNS traffic originating and coming from a host to a list of DNS servers over the last 24 hours. A high value of this ratio could be very useful to quickly understand if a src_ip (host) is sending a high volume of data out via port 53, could be an indicator of data exfiltration via DNS. action.escu.creation_date = 2017-11-09 action.escu.modification_date = 2017-11-09 action.escu.analytic_story = ["AWS Network ACL Activity", "Command and Control", "Data Protection", "Dynamic DNS", "Hidden Cobra Malware", "Suspicious AWS Traffic", "Suspicious DNS Traffic"] @@ -10418,7 +10825,7 @@ action.escu.earliest_time_offset = 3600 action.escu.latest_time_offset = 86400 action.escu.providing_technologies = [] action.escu.data_models = ["Network_Traffic"] -action.escu.eli5 = This search calculates the ratio of DNS traffic originating and coming from a host to a list of DNS servers over the last 24 hours. A high value of this ratio could be very useful to quickly understand if a src_ip (host) is sending a high volume of data out via port 53, could be an indicator of data exfiltration via DNS. +action.escu.eli5 = This search calculates the ratio of DNS traffic originating and coming from a host to a list of DNS servers over the last 24 hours. A high value of this ratio could be very useful to quickly understand if a src_ip (host) is sending a high volume of data out via port 53, could be an indicator of data exfiltration via DNS. action.escu.how_to_implement = none action.escu.known_false_positives = None at this time disabled = true @@ -10802,7 +11209,7 @@ action.escu.known_false_positives = None at this time disabled = true schedule_window = auto is_visible = false -search = | search sourcetype=aws:cloudtrail user=$user$ | table _time userIdentity.type userIdentity.userName userIdentity.arn aws_account_id src awsRegion eventName eventType +search = | search sourcetype=aws:cloudtrail user=$user$ | table _time userIdentity.type userIdentity.userName userIdentity.arn aws_account_id src awsRegion eventName eventType [ESCU - Investigate AWS activities via region name - Response Task] action.escu = 0 @@ -10949,7 +11356,7 @@ action.escu.known_false_positives = None at this time disabled = true schedule_window = auto is_visible = false -search = `wineventlog_security` EventCode=4768 OR EventCode=4769 | rex field=user "(?[^\@]+)" | stats count BY new_user, dest, EventCode | stats max(count) AS max_count sum(count) AS sum_count BY new_user, dest| search dest=$dest$ | where sum_count/max_count!=2 | rename new_user AS user +search = `wineventlog_security` EventCode=4768 OR EventCode=4769 | rex field=user "(?[^\@]+)" | stats count BY new_user, dest, EventCode | stats max(count) AS max_count sum(count) AS sum_count BY new_user, dest| search dest=$dest$ | where sum_count/max_count!=2 | rename new_user AS user [ESCU - Investigate Previous Unseen User - Response Task] action.escu = 0 @@ -10977,7 +11384,7 @@ action.escu = 0 action.escu.enabled = 1 action.escu.search_type = investigative action.escu.full_search_name = ESCU - Investigate Successful Remote Desktop Authentications -description = This search returns the source, destination, and user for all successful remote-desktop authentications. A successful authentication after a brute-force attack on a destination machine is suspicious behavior. +description = This search returns the source, destination, and user for all successful remote-desktop authentications. A successful authentication after a brute-force attack on a destination machine is suspicious behavior. action.escu.creation_date = 2018-12-14 action.escu.modification_date = 2018-12-14 action.escu.analytic_story = ["Hidden Cobra Malware", "Lateral Movement", "SamSam Ransomware"] @@ -10985,7 +11392,7 @@ action.escu.earliest_time_offset = 3600 action.escu.latest_time_offset = 86400 action.escu.providing_technologies = [] action.escu.data_models = ["Authentication"] -action.escu.eli5 = This search returns the source, destination, and user for all successful remote-desktop authentications. A successful authentication after a brute-force attack on a destination machine is suspicious behavior. +action.escu.eli5 = This search returns the source, destination, and user for all successful remote-desktop authentications. A successful authentication after a brute-force attack on a destination machine is suspicious behavior. action.escu.how_to_implement = none action.escu.known_false_positives = None at this time disabled = true @@ -11040,7 +11447,7 @@ action.escu = 0 action.escu.enabled = 1 action.escu.search_type = investigative action.escu.full_search_name = ESCU - Investigate Web POSTs From src -description = This investigative search retrieves POST requests from a specified source IP or hostname. Identifying the POST requests, as well as their associated destination URLs and user agent(s), may help you scope and characterize the suspicious traffic. +description = This investigative search retrieves POST requests from a specified source IP or hostname. Identifying the POST requests, as well as their associated destination URLs and user agent(s), may help you scope and characterize the suspicious traffic. action.escu.creation_date = 2018-12-06 action.escu.modification_date = 2018-12-06 action.escu.analytic_story = ["Apache Struts Vulnerability"] @@ -11048,7 +11455,7 @@ action.escu.earliest_time_offset = 3600 action.escu.latest_time_offset = 86400 action.escu.providing_technologies = [] action.escu.data_models = ["Web"] -action.escu.eli5 = This investigative search retrieves POST requests from a specified source IP or hostname. Identifying the POST requests, as well as their associated destination URLs and user agent(s), may help you scope and characterize the suspicious traffic. +action.escu.eli5 = This investigative search retrieves POST requests from a specified source IP or hostname. Identifying the POST requests, as well as their associated destination URLs and user agent(s), may help you scope and characterize the suspicious traffic. action.escu.how_to_implement = none action.escu.known_false_positives = None at this time disabled = true @@ -11130,4 +11537,4 @@ search = index=_audit sourcetype="audittrail" \ | rex field=search "\"(?.*)\""\ | table savedsearch_name count(search) usage user | join savedsearch_name max=0 type=left [search sourcetype="manifests" | spath searches{} | mvexpand searches{} | spath input=searches{} | table category search_name | rename search_name as savedsearch_name | dedup savedsearch_name] | search category=* -### END OF USAGE DASHBOARD CONFIGURATIONS ### \ No newline at end of file +### END OF USAGE DASHBOARD CONFIGURATIONS ### diff --git a/package/default/transforms.conf b/package/default/transforms.conf index 5385874b57..667b7f4eee 100644 --- a/package/default/transforms.conf +++ b/package/default/transforms.conf @@ -1,6 +1,6 @@ ############# # Automatically generated by generator.py in splunk/security-content -# On Date: 2021-01-07T20:36:47 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# diff --git a/package/default/use_case_library.conf b/package/default/use_case_library.conf index 33d3e0ed36..625b3dc187 100644 --- a/package/default/use_case_library.conf +++ b/package/default/use_case_library.conf @@ -1,6 +1,6 @@ ############# # Automatically generated by generator.py in splunk/security-content -# On Date: 2021-01-07T20:36:47 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# @@ -14,7 +14,7 @@ version = 1 references = ["https://aws.amazon.com/blogs/security/aws-cloudtrail-now-tracks-cross-account-activity-to-its-origin/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - aws detect sts get session token abuse - Rule", "ESCU - aws detect sts assume role abuse - Rule", "ESCU - aws detect role creation - Rule", "ESCU - aws detect attach to role policy - Rule", "ESCU - aws detect permanent key creation - Rule", "ESCU - AWS Investigate User Activities By AccessKeyId", "ESCU - Get Notable History"] +searches = ["ESCU - aws detect permanent key creation - Rule", "ESCU - aws detect attach to role policy - Rule", "ESCU - aws detect sts get session token abuse - Rule", "ESCU - aws detect role creation - Rule", "ESCU - aws detect sts assume role abuse - Rule", "ESCU - Get Notable History", "ESCU - AWS Investigate User Activities By AccessKeyId"] description = Track when a user assumes an IAM role in another AWS account to obtain cross-account access to services and resources in that account. Accessing new roles could be an indication of malicious activity. narrative = Amazon Web Services (AWS) admins manage access to AWS resources and services across the enterprise using AWS's Identity and Access Management (IAM) functionality. IAM provides the ability to create and manage AWS users, groups, and roles-each with their own unique set of privileges and defined access to specific resources (such as EC2 instances, the AWS Management Console, API, or the command-line interface). Unlike conventional (human) users, IAM roles are assumable by anyone in the organization. They provide users with dynamically created temporary security credentials that expire within a set time period.\ Herein lies the rub. In between the time between when the temporary credentials are issued and when they expire is a period of opportunity, where a user could leverage the temporary credentials to wreak havoc-spin up or remove instances, create new users, elevate privileges, and other malicious activities-throughout the environment.\ @@ -27,7 +27,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - EC2 Instance Started With Previously Unseen AMI - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - EC2 Instance Started With Previously Unseen Instance Type - Rule", "ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] +searches = ["ESCU - EC2 Instance Started With Previously Unseen Instance Type - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - EC2 Instance Started With Previously Unseen AMI - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details"] description = Monitor your AWS EC2 instances for activities related to cryptojacking/cryptomining. New instances that originate from previously unseen regions, users who launch abnormally high numbers of instances, or EC2 instances started by previously unseen users are just a few examples of potentially malicious behavior. narrative = Cryptomining is an intentionally difficult, resource-intensive business. Its complexity was designed into the process to ensure that the number of blocks mined each day would remain steady. So, it's par for the course that ambitious, but unscrupulous, miners make amassing the computing power of large enterprises--a practice known as cryptojacking--a top priority. \ Cryptojacking has attracted an increasing amount of media attention since its explosion in popularity in the fall of 2017. The attacks have moved from in-browser exploits and mobile phones to enterprise cloud services, such as Amazon Web Services (AWS). It's difficult to determine exactly how widespread the practice has become, since bad actors continually evolve their ability to escape detection, including employing unlisted endpoints, moderating their CPU usage, and hiding the mining pool's IP address behind a free CDN. \ @@ -41,7 +41,7 @@ version = 2 references = ["https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_NACLs.html", "https://aws.amazon.com/blogs/security/how-to-help-prepare-for-ddos-attacks-by-reducing-your-attack-surface/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - AWS Network Access Control List Deleted - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Detect Spike in Network ACL Activity - Rule", "ESCU - AWS Network Access Control List Created with All Open Ports - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Process Information For Port Activity", "ESCU - AWS Network ACL Details from ID", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - AWS Network Access Control List Deleted - Rule", "ESCU - AWS Network Access Control List Created with All Open Ports - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Detect Spike in Network ACL Activity - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio"] description = Monitor your AWS network infrastructure for bad configurations and malicious activity. Investigative searches help you probe deeper, when the facts warrant it. narrative = AWS CloudTrail is an AWS service that helps you enable governance, compliance, and operational/risk auditing of your AWS account. Actions taken by a user, role, or an AWS service are recorded as events in CloudTrail. It is crucial for a company to monitor events and actions taken in the AWS Management Console, AWS Command Line Interface, and AWS SDKs and APIs to ensure that your servers are not vulnerable to attacks. This analytic story contains detection searches that leverage CloudTrail logs from AWS to check for bad configurations and malicious activity in your AWS network access controls. @@ -52,7 +52,7 @@ version = 1 references = ["https://aws.amazon.com/security-hub/features/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect Spike in AWS Security Hub Alerts for EC2 Instance - Rule", "ESCU - Detect Spike in AWS Security Hub Alerts for User - Rule", "ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId"] +searches = ["ESCU - Detect Spike in AWS Security Hub Alerts for User - Rule", "ESCU - Detect Spike in AWS Security Hub Alerts for EC2 Instance - Rule", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details"] description = This story is focused around detecting Security Hub alerts generated from AWS narrative = AWS Security Hub collects and consolidates findings from AWS security services enabled in your environment, such as intrusion detection findings from Amazon GuardDuty, vulnerability scans from Amazon Inspector, S3 bucket policy findings from Amazon Macie, publicly accessible and cross-account resources from IAM Access Analyzer, and resources lacking WAF coverage from AWS Firewall Manager. @@ -63,7 +63,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - AWS Cloud Provisioning From Previously Unseen City - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen Country - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen IP Address - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen Region - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From Region", "ESCU - Get All AWS Activity From City"] +searches = ["ESCU - AWS Cloud Provisioning From Previously Unseen Country - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen Region - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen City - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen IP Address - Rule", "ESCU - Get All AWS Activity From City", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get All AWS Activity From Country"] description = Monitor your AWS provisioning activities for behaviors originating from unfamiliar or unusual locations. These behaviors may indicate that malicious activities are occurring somewhere within your network. narrative = Because most enterprise AWS activities originate from familiar geographic locations, monitoring for activity from unknown or unusual regions is an important security measure. This indicator can be especially useful in environments where it is impossible to whitelist specific IPs (because they vary).\ This Analytic Story was designed to provide you with flexibility in the precision you employ in specifying legitimate geographic regions. It can be as specific as an IP address or a city, or as broad as a region (think state) or an entire country. By determining how precise you want your geographical locations to be and monitoring for new locations that haven't previously accessed your environment, you can detect adversaries as they begin to probe your environment. Since there are legitimate reasons for activities from unfamiliar locations, this is not a standalone indicator. Nevertheless, location can be a relevant piece of information that you may wish to investigate further. @@ -75,7 +75,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf", "https://redlock.io/blog/cryptojacking-tesla"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect AWS API Activities From Unapproved Accounts - Rule", "ESCU - Detect Spike in AWS API Activity - Rule", "ESCU - Detect API activity from users without MFA - Rule", "ESCU - Detect new API calls from user roles - Rule", "ESCU - Detect Spike in Security Group Activity - Rule", "ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] +searches = ["ESCU - Detect new API calls from user roles - Rule", "ESCU - Detect API activity from users without MFA - Rule", "ESCU - Detect AWS API Activities From Unapproved Accounts - Rule", "ESCU - Detect Spike in Security Group Activity - Rule", "ESCU - Detect Spike in AWS API Activity - Rule", "ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] description = Detect and investigate dormant user accounts for your AWS environment that have become active again. Because inactive and ad-hoc accounts are common attack targets, it's critical to enable governance within your environment. narrative = It seems obvious that it is critical to monitor and control the users who have access to your cloud infrastructure. Nevertheless, it's all too common for enterprises to lose track of ad-hoc accounts, leaving their servers vulnerable to attack. In fact, this was the very oversight that led to Tesla's cryptojacking attack in February, 2018.\ In addition to compromising the security of your data, when bad actors leverage your compute resources, it can incur monumental costs, since you will be billed for any new EC2 instances and increased bandwidth usage. \ @@ -89,7 +89,7 @@ version = 1 references = ["https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.2/dev/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Suspicious Java Classes - Rule", "ESCU - Unusually Long Content-Type Length - Rule", "ESCU - Web Servers Executing Suspicious Processes - Rule", "ESCU - Investigate Suspicious Strings in HTTP Header", "ESCU - Get Notable History", "ESCU - Investigate Web POSTs From src"] +searches = ["ESCU - Web Servers Executing Suspicious Processes - Rule", "ESCU - Unusually Long Content-Type Length - Rule", "ESCU - Suspicious Java Classes - Rule", "ESCU - Investigate Suspicious Strings in HTTP Header", "ESCU - Investigate Web POSTs From src", "ESCU - Get Notable History"] description = Detect and investigate activities--such as unusually long `Content-Type` length, suspicious java classes and web servers executing suspicious processes--consistent with attempts to exploit Apache Struts vulnerabilities. narrative = In March of 2017, a remote code-execution vulnerability in the Jakarta Multipart parser in Apache Struts, a widely used open-source framework for creating Java web applications, was disclosed and assigned to CVE-2017-5638. About two months later, hackers exploited the flaw to carry out the world's 5th largest data breach. The target, credit giant Equifax, told investigators that it had become aware of the vulnerability two months before the attack. \ The exploit involved manipulating the `Content-Type HTTP` header to execute commands embedded in the header.\ @@ -113,7 +113,7 @@ version = 1 references = ["https://www.cisecurity.org/controls/inventory-of-authorized-and-unauthorized-devices/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect Unauthorized Assets by MAC address - Rule", "ESCU - Get First Occurrence and Last Occurrence of a MAC Address", "ESCU - Get Notable History"] +searches = ["ESCU - Detect Unauthorized Assets by MAC address - Rule", "ESCU - Get Notable History", "ESCU - Get First Occurrence and Last Occurrence of a MAC Address"] description = Keep a careful inventory of every asset on your network to make it easier to detect rogue devices. Unauthorized/unmanaged devices could be an indication of malicious behavior that should be investigated further. narrative = This Analytic Story is designed to help you develop a better understanding of what authorized and unauthorized devices are part of your enterprise. This story can help you better categorize and classify assets, providing critical business context and awareness of their assets during an incident. Information derived from this Analytic Story can be used to better inform and support other analytic stories. For successful detection, you will need to leverage the Assets and Identity Framework from Enterprise Security to populate your known assets. @@ -124,7 +124,7 @@ version = 1 references = ["https://www.zerofox.com/blog/what-is-digital-risk-monitoring/", "https://securingtomorrow.mcafee.com/consumer/family-safety/what-is-typosquatting/", "https://blog.malwarebytes.com/cybercrime/2016/06/explained-typosquatting/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Monitor DNS For Brand Abuse - Rule", "ESCU - Monitor Web Traffic For Brand Abuse - Rule", "ESCU - Get Emails From Specific Sender", "ESCU - Get Email Info", "ESCU - Get Notable History", "ESCU - Get Process Responsible For The DNS Traffic"] +searches = ["ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Monitor Web Traffic For Brand Abuse - Rule", "ESCU - Monitor DNS For Brand Abuse - Rule", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Emails From Specific Sender", "ESCU - Get Notable History", "ESCU - Get Email Info"] description = Detect and investigate activity that may indicate that an adversary is using faux domains to mislead users into interacting with malicious infrastructure. Monitor DNS, email, and web traffic for permutations of your brand name. narrative = While you can educate your users and customers about the risks and threats posed by typosquatting, phishing, and corporate espionage, human error is a persistent fact of life. Of course, your adversaries are all too aware of this reality and will happily leverage it for nefarious purposes whenever possible3phishing with lookalike addresses, embedding faux command-and-control domains in malware, and hosting malicious content on domains that closely mimic your corporate servers. This is where brand monitoring comes in.\ You can use our adaptation of `DNSTwist`, together with the support searches in this Analytic Story, to generate permutations of specified brands and external domains. Splunk can monitor email, DNS requests, and web traffic for these permutations and provide you with early warnings and situational awareness--powerful elements of an effective defense.\ @@ -137,7 +137,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Instance Type - Rule", "ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Compute Instance Created By Previously Unseen User - Rule", "ESCU - Cloud Compute Instance Created In Previously Unused Region - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Image - Rule", "ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] +searches = ["ESCU - Cloud Compute Instance Created By Previously Unseen User - Rule", "ESCU - Cloud Compute Instance Created In Previously Unused Region - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Instance Type - Rule", "ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Image - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details"] description = Monitor your cloud compute instances for activities related to cryptojacking/cryptomining. New instances that originate from previously unseen regions, users who launch abnormally high numbers of instances, or compute instances started by previously unseen users are just a few examples of potentially malicious behavior. narrative = Cryptomining is an intentionally difficult, resource-intensive business. Its complexity was designed into the process to ensure that the number of blocks mined each day would remain steady. So, it's par for the course that ambitious, but unscrupulous, miners make amassing the computing power of large enterprises--a practice known as cryptojacking--a top priority. \ Cryptojacking has attracted an increasing amount of media attention since its explosion in popularity in the fall of 2017. The attacks have moved from in-browser exploits and mobile phones to enterprise cloud services, such as Amazon Web Services (AWS), Google Cloud Platform (GCP), and Azure. It's difficult to determine exactly how widespread the practice has become, since bad actors continually evolve their ability to escape detection, including employing unlisted endpoints, moderating their CPU usage, and hiding the mining pool's IP address behind a free CDN. \ @@ -151,7 +151,7 @@ version = 1 references = ["https://www.intego.com/mac-security-blog/osxcoldroot-and-the-rat-invasion/", "https://objective-see.com/blog/blog_0x2A.html", "https://www.bleepingcomputer.com/news/security/coldroot-rat-still-undetectable-despite-being-uploaded-on-github-two-years-ago/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Jose Hernandez"}] spec_version = 3 -searches = ["ESCU - Osquery pack - ColdRoot detection - Rule", "ESCU - Investigate Network Traffic From src ip", "ESCU - Get Notable History"] +searches = ["ESCU - Processes Tapping Keyboard Events - Rule", "ESCU - Osquery pack - ColdRoot detection - Rule", "ESCU - Investigate Network Traffic From src ip", "ESCU - Get Notable History"] description = Leverage searches that allow you to detect and investigate unusual activities that relate to the ColdRoot Remote Access Trojan that affects MacOS. An example of some of these activities are changing sensative binaries in the MacOS sub-system, detecting process names and executables associated with the RAT, detecting when a keyboard tab is installed on a MacOS machine and more. narrative = Conventional wisdom holds that Apple's MacOS operating system is significantly less vulnerable to attack than Windows machines. While that point is debatable, it is true that attacks against MacOS systems are much less common. However, this fact does not mean that Macs are impervious to breaches. To the contrary, research has shown that that Mac malware is increasing at an alarming rate. According to AV-test, in 2018, there were 86,865 new MacOS malware variants, up from 27,338 the year before—a 31% increase. In contrast, the independent research firm found that new Windows malware had increased from 65.17M to 76.86M during that same period, less than half the rate of growth. The bottom line is that while the numbers look a lot smaller than Windows, it's definitely time to take Mac security more seriously.\ This Analytic Story addresses the ColdRoot remote access trojan (RAT), which was uploaded to Github in 2016, but was still escaping detection by the first quarter of 2018, when a new, more feature-rich variant was discovered masquerading as an Apple audio driver. Among other capabilities, the Pascal-based ColdRoot can heist passwords from users' keychains and remotely control infected machines without detection. In the initial report of his findings, Patrick Wardle, Chief Research Officer for Digita Security, explained that the new ColdRoot RAT could start and kill processes on the breached system, spawn new remote-desktop sessions, take screen captures and assemble them into a live stream of the victim's desktop, and more.\ @@ -164,7 +164,7 @@ version = 1 references = ["https://attack.mitre.org/wiki/Collection", "https://attack.mitre.org/wiki/Technique/T1074"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Suspicious writes to windows Recycle Bin - Rule", "ESCU - Email files written outside of the Outlook directory - Rule", "ESCU - Hosts receiving high volume of network traffic from email server - Rule", "ESCU - Suspicious writes to System Volume Information - Rule", "ESCU - Email servers sending high volume traffic to hosts - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Email servers sending high volume traffic to hosts - Rule", "ESCU - Suspicious writes to windows Recycle Bin - Rule", "ESCU - Email files written outside of the Outlook directory - Rule", "ESCU - Hosts receiving high volume of network traffic from email server - Rule", "ESCU - Suspicious writes to System Volume Information - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Monitor for and investigate activities--such as suspicious writes to the Windows Recycling Bin or email servers sending high amounts of traffic to specific hosts, for example--that may indicate that an adversary is harvesting and exfiltrating sensitive data. narrative = A common adversary goal is to identify and exfiltrate data of value from a target organization. This data may include email conversations and addresses, confidential company information, links to network design/infrastructure, important dates, and so on.\ Attacks are composed of three activities: identification, collection, and staging data for exfiltration. Identification typically involves scanning systems and observing user activity. Collection can involve the transfer of large amounts of data from various repositories. Staging/preparation includes moving data to a central location and compressing (and optionally encoding and/or encrypting) it. All of these activities provide opportunities for defenders to identify their presence. \ @@ -177,7 +177,7 @@ version = 1 references = ["https://attack.mitre.org/wiki/Command_and_Control", "https://searchsecurity.techtarget.com/feature/Command-and-control-servers-The-puppet-masters-that-govern-malware"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Detect Large Outbound ICMP Packets - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Process Information For Port Activity", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Parent Process Info", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Detect Large Outbound ICMP Packets - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info"] description = Detect and investigate tactics, techniques, and procedures leveraged by attackers to establish and operate command and control channels. Implants installed by attackers on compromised endpoints use these channels to receive instructions and send data back to the malicious operators. narrative = Threat actors typically architect and implement an infrastructure to use in various ways during the course of their attack campaigns. In some cases, they leverage this infrastructure for scanning and performing reconnaissance activities. In others, they may use this infrastructure to launch actual attacks. One of the most important functions of this infrastructure is to establish servers that will communicate with implants on compromised endpoints. These servers establish a command and control channel that is used to proxy data between the compromised endpoint and the attacker. These channels relay commands from the attacker to the compromised endpoint and the output of those commands back to the attacker.\ Because this communication is so critical for an adversary, they often use techniques designed to hide the true nature of the communications. There are many different techniques used to establish and communicate over these channels. This Analytic Story provides searches that look for a variety of the techniques used for these channels, as well as indications that these channels are active, by examining logs associated with border control devices and network-access control lists. @@ -212,7 +212,7 @@ version = 3 references = ["https://attack.mitre.org/wiki/Technique/T1003", "https://cyberwardog.blogspot.com/2017/03/chronicles-of-threat-hunter-hunting-for.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Creation of Shadow Copy with wmic and powershell - Rule", "ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule", "ESCU - Creation of Shadow Copy - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Access LSASS Memory for Dump Creation - Rule", "ESCU - Attempted Credential Dump From Registry via Reg exe - Rule", "ESCU - Dump LSASS via comsvcs DLL - Rule", "ESCU - Unsigned Image Loaded by LSASS - Rule", "ESCU - Credential Dumping via Symlink to Shadow Copy - Rule", "ESCU - Detect Credential Dumping through LSASS access - Rule", "ESCU - Create Remote Thread into LSASS - Rule", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Pass the Hash Attempts", "ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Previous Unseen User"] +searches = ["ESCU - Creation of Shadow Copy - Rule", "ESCU - Access LSASS Memory for Dump Creation - Rule", "ESCU - Credential Dumping via Symlink to Shadow Copy - Rule", "ESCU - Detect Credential Dumping through LSASS access - Rule", "ESCU - Unsigned Image Loaded by LSASS - Rule", "ESCU - Dump LSASS via comsvcs DLL - Rule", "ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule", "ESCU - Attempted Credential Dump From Registry via Reg exe - Rule", "ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Creation of Shadow Copy with wmic and powershell - Rule", "ESCU - Create Remote Thread into LSASS - Rule", "ESCU - Investigate Pass the Hash Attempts", "ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Previous Unseen User"] description = Uncover activity consistent with credential dumping, a technique wherein attackers compromise systems and attempt to obtain and exfiltrate passwords. The threat actors use these pilfered credentials to further escalate privileges and spread throughout a target environment. The included searches in this Analytic Story are designed to identify attempts to credential dumping. narrative = Credential dumping—gathering credentials from a target system, often hashed or encrypted—is a common attack technique. Even though the credentials may not be in plain text, an attacker can still exfiltrate the data and set to cracking it offline, on their own systems. The threat actors target a variety of sources to extract them, including the Security Accounts Manager (SAM), Local Security Authority (LSA), NTDS from Domain Controllers, or the Group Policy Preference (GPP) files.\ Once attackers obtain valid credentials, they use them to move throughout a target network with ease, discovering new systems and identifying assets of interest. Credentials obtained in this manner typically include those of privileged users, which may provide access to more sensitive information and system operations.\ @@ -225,7 +225,7 @@ version = 2 references = ["https://www.us-cert.gov/ncas/alerts/TA18-074A"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Detect New Local Admin account - Rule", "ESCU - Create local admin accounts using net exe - Rule", "ESCU - Single Letter Process On Endpoint - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Malicious PowerShell Process - Execution Policy Bypass - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Process File Activity"] +searches = ["ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Single Letter Process On Endpoint - Rule", "ESCU - Detect New Local Admin account - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Malicious PowerShell Process - Execution Policy Bypass - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Create local admin accounts using net exe - Rule", "ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get Notable History", "ESCU - Get Process File Activity", "ESCU - Get Parent Process Info"] description = Monitor for suspicious activities associated with DHS Technical Alert US-CERT TA18-074A. Some of the activities that adversaries used in these compromises included spearfishing attacks, malware, watering-hole domains, many and more. narrative = The frequency of nation-state cyber attacks has increased significantly over the last decade. Employing numerous tactics and techniques, these attacks continue to escalate in complexity. \ There is a wide range of motivations for these state-sponsored hacks, including stealing valuable corporate, military, or diplomatic dataѿall of which could confer advantages in various arenas. They may also target critical infrastructure. \ @@ -251,7 +251,7 @@ version = 1 references = ["https://www.fireeye.com/blog/threat-research/2017/09/apt33-insights-into-iranian-cyber-espionage.html", "https://umbrella.cisco.com/blog/2013/04/15/on-the-trail-of-malicious-dynamic-dns-domains/", "http://www.noip.com/blog/2014/07/11/dynamic-dns-can-use-2/", "https://www.splunk.com/blog/2015/08/04/detecting-dynamic-dns-domains-in-splunk.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - DNS record changed - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - DNS Hijack Enrichment", "ESCU - Get DNS Server History for a host"] +searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS record changed - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Get DNS Server History for a host", "ESCU - DNS Hijack Enrichment"] description = Secure your environment against DNS hijacks with searches that help you detect and investigate unauthorized changes to DNS records. narrative = Dubbed the Achilles heel of the Internet (see https://www.f5.com/labs/articles/threat-intelligence/dns-is-still-the-achilles-heel-of-the-internet-25613), DNS plays a critical role in routing web traffic but is notoriously vulnerable to attack. One reason is its distributed nature. It relies on unstructured connections between millions of clients and servers over inherently insecure protocols.\ The gravity and extent of the importance of securing DNS from attacks is undeniable. The fallout of compromised DNS can be disastrous. Not only can hackers bring down an entire business, they can intercept confidential information, emails, and login credentials, as well. \ @@ -281,7 +281,7 @@ version = 1 references = ["https://www.cisecurity.org/controls/data-protection/", "https://www.sans.org/reading-room/whitepapers/dns/splunk-detect-dns-tunneling-37022", "https://umbrella.cisco.com/blog/2013/04/15/on-the-trail-of-malicious-dynamic-dns-domains/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detect USB device insertion - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Detect USB device insertion - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio"] description = Fortify your data-protection arsenal--while continuing to ensure data confidentiality and integrity--with searches that monitor for and help you investigate possible signs of data exfiltration. narrative = Attackers can leverage a variety of resources to compromise or exfiltrate enterprise data. Common exfiltration techniques include remote-access channels via low-risk, high-payoff active-collections operations and close-access operations using insiders and removable media. While this Analytic Story is not a comprehensive listing of all the methods by which attackers can exfiltrate data, it provides a useful starting point. @@ -292,7 +292,7 @@ version = 1 references = ["https://attack.mitre.org/wiki/Technique/T1003", "https://github.com/SecuraBV/CVE-2020-1472", "https://www.secura.com/blog/zero-logon", "https://nvd.nist.gov/vuln/detail/CVE-2020-1472"] maintainers = [{"company": "Jose Hernandez, Stan Miskowicz, David Dorsey, Shannon Davis Splunk", "email": "-", "name": "Rod Soto"}] spec_version = 3 -searches = ["ESCU - Detect Computer Changed with Anonymous Account - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Detect Zerologon via Zeek - Rule", "ESCU - Detect Credential Dumping through LSASS access - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Detect Credential Dumping through LSASS access - Rule", "ESCU - Detect Zerologon via Zeek - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Detect Computer Changed with Anonymous Account - Rule", "ESCU - Get Notable History"] description = Uncover activity related to the execution of Zerologon CVE-2020-11472, a technique wherein attackers target a Microsoft Windows Domain Controller to reset its computer account password. The result from this attack is attackers can now provide themselves high privileges and take over Domain Controller. The included searches in this Analytic Story are designed to identify attempts to reset Domain Controller Computer Account via exploit code remotely or via the use of tool Mimikatz as payload carrier. narrative = This attack is a privilege escalation technique, where attacker targets a Netlogon secure channel connection to a domain controller, using Netlogon Remote Protocol (MS-NRPC). This vulnerability exposes vulnerable Windows Domain Controllers to be targeted via unaunthenticated RPC calls which eventually reset Domain Contoller computer account ($) providing the attacker the opportunity to exfil domain controller credential secrets and assign themselve high privileges that can lead to domain controller and potentially complete network takeover. The detection searches in this Analytic Story use Windows Event viewer events and Sysmon events to detect attack execution, these searches monitor access to the Local Security Authority Subsystem Service (LSASS) process which is an indicator of the use of Mimikatz tool which has bee updated to carry this attack payload. @@ -303,7 +303,7 @@ version = 2 references = ["https://attack.mitre.org/wiki/Technique/T1089", "https://blog.malwarebytes.com/cybercrime/2015/11/vonteera-adware-uses-certificates-to-disable-anti-malware/", "https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-Tools-Report.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Unload Sysmon Filter Driver - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Attempt To Add Certificate To Untrusted Store - Rule", "ESCU - Attempt To Stop Security Service - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Attempt To Add Certificate To Untrusted Store - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Attempt To Stop Security Service - Rule", "ESCU - Unload Sysmon Filter Driver - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Looks for activities and techniques associated with the disabling of security tools on a Windows system, such as suspicious `reg.exe` processes, processes launching netsh, and many others. narrative = Attackers employ a variety of tactics in order to avoid detection and operate without barriers. This often involves modifying the configuration of security tools to get around them or explicitly disabling them to prevent them from running. This Analytic Story includes searches that look for activity consistent with attackers attempting to disable various security mechanisms. Such activity may involve monitoring for suspicious registry activity, as this is where much of the configuration for Windows and various other programs reside, or explicitly attempting to shut down security-related services. Other times, attackers attempt various tricks to prevent specific programs from running, such as adding the certificates with which the security tools are signed to a blacklist (which would prevent them from running). @@ -314,7 +314,7 @@ version = 2 references = ["https://www.fireeye.com/blog/threat-research/2017/09/apt33-insights-into-iranian-cyber-espionage.html", "https://umbrella.cisco.com/blog/2013/04/15/on-the-trail-of-malicious-dynamic-dns-domains/", "http://www.noip.com/blog/2014/07/11/dynamic-dns-can-use-2/", "https://www.splunk.com/blog/2015/08/04/detecting-dynamic-dns-domains-in-splunk.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detect web traffic to dynamic domain providers - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Responsible For The DNS Traffic"] +searches = ["ESCU - Detect web traffic to dynamic domain providers - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] description = Detect and investigate hosts in your environment that may be communicating with dynamic domain providers. Attackers may leverage these services to help them avoid firewall blocks and blacklists. narrative = Dynamic DNS services (DDNS) are legitimate low-cost or free services that allow users to rapidly update domain resolutions to IP infrastructure. While their usage can be benign, malicious actors can abuse DDNS to host harmful payloads or interactive-command-and-control infrastructure. These attackers will manually update or automate domain resolution changes by routing dynamic domains to IP addresses that circumvent firewall blocks and blacklists and frustrate a network defender's analytic and investigative processes. These searches will look for DNS queries made from within your infrastructure to suspicious dynamic domains and then investigate more deeply, when appropriate. While this list of top-level dynamic domains is not exhaustive, it can be dynamically updated as new suspicious dynamic domains are identified. @@ -325,7 +325,7 @@ version = 1 references = ["https://www.us-cert.gov/ncas/alerts/TA18-201A", "https://www.first.org/resources/papers/conf2017/Advanced-Incident-Detection-and-Threat-Hunting-using-Sysmon-and-Splunk.pdf", "https://www.vkremez.com/2017/05/emotet-banking-trojan-malware-analysis.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +searches = ["ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Detection of tools built by NirSoft - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect rarely used executables, specific registry paths that may confer malware survivability and persistence, instances where cmd.exe is used to launch script interpreters, and other indicators that the Emotet financial malware has compromised your environment. narrative = The trojan downloader known as Emotet first surfaced in 2014, when it was discovered targeting the banking industry to steal credentials. However, according to a joint technical alert (TA) issued by three government agencies (https://www.us-cert.gov/ncas/alerts/TA18-201A), Emotet has evolved far beyond those beginnings to become what a ThreatPost article called a threat-delivery service(see https://threatpost.com/emotet-malware-evolves-beyond-banking-to-threat-delivery-service/134342/). For example, in early 2018, Emotet was found to be using its loader function to spread the Quakbot and Ransomware variants. \ According to the TA, the the malware continues to be among the most costly and destructive malware affecting the private and public sectors. Researchers have linked it to the threat group Mealybug, which has also been on the security communitys radar since 2014.\ @@ -349,7 +349,7 @@ version = 1 references = ["https://cloud.google.com/iam/docs/understanding-service-accounts"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rod Soto"}] spec_version = 3 -searches = ["ESCU - GCP Detect high risk permissions by resource and account - Rule", "ESCU - GCP Detect gcploit framework - Rule", "ESCU - GCP Detect accounts with high risk roles by project - Rule", "ESCU - gcp detect oauth token abuse - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - GCP Detect gcploit framework - Rule", "ESCU - GCP Detect accounts with high risk roles by project - Rule", "ESCU - gcp detect oauth token abuse - Rule", "ESCU - GCP Detect high risk permissions by resource and account - Rule", "ESCU - Get Notable History"] description = Track when a user assumes an IAM role in another GCP account to obtain cross-account access to services and resources in that account. Accessing new roles could be an indication of malicious activity. narrative = Google Cloud Platform (GCP) admins manage access to GCP resources and services across the enterprise using GCP Identity and Access Management (IAM) functionality. IAM provides the ability to create and manage GCP users, groups, and roles-each with their own unique set of privileges and defined access to specific resources (such as Compute instances, the GCP Management Console, API, or the command-line interface). Unlike conventional (human) users, IAM roles are potentially assumable by anyone in the organization. They provide users with dynamically created temporary security credentials that expire within a set time period.\ In between the time between when the temporary credentials are issued and when they expire is a period of opportunity, where a user could leverage the temporary credentials to wreak havoc-spin up or remove instances, create new users, elevate privileges, and other malicious activities-throughout the environment.\ @@ -362,7 +362,7 @@ version = 2 references = ["https://www.us-cert.gov/HIDDEN-COBRA-North-Korean-Malicious-Cyber-Activity", "https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-Destructive-Malware-Report.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Create or delete windows shares using net exe - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Suspicious File Write - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get DNS traffic ratio", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +searches = ["ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Create or delete windows shares using net exe - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Suspicious File Write - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info"] description = Monitor for and investigate activities, including the creation or deletion of hidden shares and file writes, that may be evidence of infiltration by North Korean government-sponsored cybercriminals. Details of this activity were reported in DHS Report TA-18-149A. narrative = North Korea's government-sponsored "cyber army" has been slowly building momentum and gaining sophistication over the last 15 years or so. As a result, the group's activity, which the US government refers to as "Hidden Cobra," has surreptitiously crept onto the collective radar as a preeminent global threat.\ These state-sponsored actors are thought to be responsible for everything from a hack on a South Korean nuclear plant to an attack on Sony in anticipation of its release of the movie "The Interview" at the end of 2014. They're also notorious for cyberespionage. In recent years, the group seems to be focused on financial crimes, such as cryptojacking.\ @@ -376,7 +376,7 @@ version = 1 references = ["https://blog.malwarebytes.com/cybercrime/2016/09/hosts-file-hijacks/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Windows hosts file modification - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] +searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - Windows hosts file modification - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] description = Detect evidence of tactics used to redirect traffic from a host to a destination other than the one intended--potentially one that is part of an adversary's attack infrastructure. An example is redirecting communications regarding patches and updates or misleading users into visiting a malicious website. narrative = Attackers will often attempt to manipulate client communications for nefarious purposes. In some cases, an attacker may endeavor to modify a local host file to redirect communications with resources (such as antivirus or system-update services) to prevent clients from receiving patches or updates. In other cases, an attacker might use this tactic to have the client connect to a site that looks like the intended site, but instead installs malware or collects information from the victim. Additionally, an attacker may redirect a victim in order to execute a MITM attack and observe communications. @@ -412,7 +412,7 @@ version = 1 references = ["https://github.com/splunk/cloud-datamodel-security-research"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rod Soto"}] spec_version = 3 -searches = ["ESCU - GCP Kubernetes cluster pod scan detection - Rule", "ESCU - GCP Kubernetes cluster scan detection - Rule", "ESCU - Kubernetes Azure pod scan fingerprint - Rule", "ESCU - Kubernetes Azure scan fingerprint - Rule", "ESCU - Amazon EKS Kubernetes Pod scan detection - Rule", "ESCU - Amazon EKS Kubernetes cluster scan detection - Rule", "ESCU - GCP Kubernetes activity by src ip", "ESCU - Get Notable History", "ESCU - Amazon EKS Kubernetes activity by src ip"] +searches = ["ESCU - Amazon EKS Kubernetes cluster scan detection - Rule", "ESCU - Amazon EKS Kubernetes Pod scan detection - Rule", "ESCU - Kubernetes Azure scan fingerprint - Rule", "ESCU - GCP Kubernetes cluster pod scan detection - Rule", "ESCU - GCP Kubernetes cluster scan detection - Rule", "ESCU - Kubernetes Azure pod scan fingerprint - Rule", "ESCU - Amazon EKS Kubernetes activity by src ip", "ESCU - Get Notable History", "ESCU - GCP Kubernetes activity by src ip"] description = This story addresses detection against Kubernetes cluster fingerprint scan and attack by providing information on items such as source ip, user agent, cluster names. narrative = Kubernetes is the most used container orchestration platform, this orchestration platform contains sensitve information and management priviledges of production workloads, microservices and applications. These searches allow operator to detect suspicious unauthenticated requests from the internet to kubernetes cluster. @@ -423,7 +423,7 @@ version = 1 references = ["https://www.splunk.com/en_us/blog/security/approaching-kubernetes-security-detecting-kubernetes-scan-with-splunk.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rod Soto"}] spec_version = 3 -searches = ["ESCU - Kubernetes AWS detect suspicious kubectl calls - Rule", "ESCU - Kubernetes AWS detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes GCP detect sensitive object access - Rule", "ESCU - Kubernetes GCP detect suspicious kubectl calls - Rule", "ESCU - AWS EKS Kubernetes cluster sensitive object access - Rule", "ESCU - Kubernetes Azure detect sensitive object access - Rule", "ESCU - Kubernetes Azure detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes GCP detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes Azure detect suspicious kubectl calls - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Kubernetes Azure detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes GCP detect suspicious kubectl calls - Rule", "ESCU - AWS EKS Kubernetes cluster sensitive object access - Rule", "ESCU - Kubernetes GCP detect sensitive object access - Rule", "ESCU - Kubernetes AWS detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes Azure detect sensitive object access - Rule", "ESCU - Kubernetes Azure detect suspicious kubectl calls - Rule", "ESCU - Kubernetes AWS detect suspicious kubectl calls - Rule", "ESCU - Kubernetes GCP detect service accounts forbidden failure access - Rule", "ESCU - Get Notable History"] description = This story addresses detection and response of accounts acccesing Kubernetes cluster sensitive objects such as configmaps or secrets providing information on items such as user user, group. object, namespace and authorization reason. narrative = Kubernetes is the most used container orchestration platform, this orchestration platform contains sensitive objects within its architecture, specifically configmaps and secrets, if accessed by an attacker can lead to further compromise. These searches allow operator to detect suspicious requests against Kubernetes sensitive objects. @@ -434,7 +434,7 @@ version = 1 references = ["https://www.splunk.com/en_us/blog/security/approaching-kubernetes-security-detecting-kubernetes-scan-with-splunk.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rod Soto"}] spec_version = 3 -searches = ["ESCU - Kubernetes AWS detect most active service accounts by pod - Rule", "ESCU - Kubernetes Azure detect sensitive role access - Rule", "ESCU - Kubernetes AWS detect RBAC authorization by account - Rule", "ESCU - Kubernetes Azure detect RBAC authorization by account - Rule", "ESCU - Kubernetes GCP detect RBAC authorizations by account - Rule", "ESCU - Kubernetes AWS detect sensitive role access - Rule", "ESCU - Kubernetes GCP detect most active service accounts by pod - Rule", "ESCU - Kubernetes GCP detect sensitive role access - Rule", "ESCU - Kubernetes Azure detect most active service accounts by pod namespace - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Kubernetes AWS detect most active service accounts by pod - Rule", "ESCU - Kubernetes Azure detect sensitive role access - Rule", "ESCU - Kubernetes GCP detect most active service accounts by pod - Rule", "ESCU - Kubernetes AWS detect RBAC authorization by account - Rule", "ESCU - Kubernetes AWS detect sensitive role access - Rule", "ESCU - Kubernetes GCP detect sensitive role access - Rule", "ESCU - Kubernetes Azure detect most active service accounts by pod namespace - Rule", "ESCU - Kubernetes Azure detect RBAC authorization by account - Rule", "ESCU - Kubernetes GCP detect RBAC authorizations by account - Rule", "ESCU - Get Notable History"] description = This story addresses detection and response around Sensitive Role usage within a Kubernetes clusters against cluster resources and namespaces. narrative = Kubernetes is the most used container orchestration platform, this orchestration platform contains sensitive roles within its architecture, specifically configmaps and secrets, if accessed by an attacker can lead to further compromise. These searches allow operator to detect suspicious requests against Kubernetes role activities @@ -445,7 +445,7 @@ version = 2 references = ["https://www.fireeye.com/blog/executive-perspective/2015/08/malware_lateral_move.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +searches = ["ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect and investigate tactics, techniques, and procedures around how attackers move laterally within the enterprise. Because lateral movement can expose the adversary to detection, it should be an important focus for security analysts. narrative = Once attackers gain a foothold within an enterprise, they will seek to expand their accesses and leverage techniques that facilitate lateral movement. Attackers will often spend quite a bit of time and effort moving laterally. Because lateral movement renders an attacker the most vulnerable to detection, it's an excellent focus for detection and investigation.\ Indications of lateral movement can include the abuse of system utilities (such as `psexec.exe`), unauthorized use of remote desktop services, `file/admin$` shares, WMI, PowerShell, pass-the-hash, or the abuse of scheduled tasks. Organizations must be extra vigilant in detecting lateral movement techniques and look for suspicious activity in and around high-value strategic network assets, such as Active Directory, which are often considered the primary target or "crown jewels" to a persistent threat actor.\ @@ -460,7 +460,7 @@ version = 4 references = ["https://blogs.mcafee.com/mcafee-labs/malware-employs-powershell-to-infect-systems/", "https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Malicious PowerShell Process - Multiple Suspicious Command-Line Arguments - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Malicious PowerShell Process With Obfuscation Techniques - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Malicious PowerShell Process With Obfuscation Techniques - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Malicious PowerShell Process - Multiple Suspicious Command-Line Arguments - Rule", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Attackers are finding stealthy ways "live off the land," leveraging utilities and tools that come standard on the endpoint--such as PowerShell--to achieve their goals without downloading binary files. These searches can help you detect and investigate PowerShell command-line options that may be indicative of malicious intent. narrative = The searches in this Analytic Story monitor for parameters often used for malicious purposes. It is helpful to understand how often the notable events generated by this story occur, as well as the commonalities between some of these events. These factors may provide clues about whether this is a common occurrence of minimal concern or a rare event that may require more extensive investigation. Likewise, it is important to determine whether the issue is restricted to a single user/system or is broader in scope.\ The following factors may assist you in determining whether the event is malicious: \ @@ -480,7 +480,7 @@ version = 1 references = ["https://www.carbonblack.com/2016/03/04/tracking-locky-ransomware-using-carbon-black/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Unsuccessful Netbackup backups - Rule", "ESCU - Extended Period Without Successful Netbackup Backups - Rule", "ESCU - Get Notable History", "ESCU - All backup logs for host"] +searches = ["ESCU - Unsuccessful Netbackup backups - Rule", "ESCU - Extended Period Without Successful Netbackup Backups - Rule", "ESCU - All backup logs for host", "ESCU - Get Notable History"] description = Address common concerns when monitoring your backup processes. These searches can help you reduce risks from ransomware, device theft, or denial of physical access to a host by backing up data on endpoints. narrative = Having backups is a standard best practice that helps ensure continuity of business operations. Having mature backup processes can also help you reduce the risks of many security-related incidents and streamline your response processes. The detection searches in this Analytic Story will help you identify systems that have backup failures, as well as systems that have not been backed up for an extended period of time. The story will also return the notable event history and all of the backup logs for an endpoint. @@ -491,7 +491,7 @@ version = 1 references = ["https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Identify and investigate prohibited/unauthorized software or processes that may be concealing malicious behavior within your environment. narrative = It is critical to identify unauthorized software and processes running on enterprise endpoints and determine whether they are likely to be malicious. This Analytic Story requires the user to populate the Interesting Processes table within Enterprise Security with prohibited processes. An included support search will augment this data, adding information on processes thought to be malicious. This search requires data from endpoint detection-and-response solutions, endpoint data sources (such as Sysmon), or Windows Event Logs--assuming that the Active Directory administrator has enabled process tracking within the System Event Audit Logs.\ It is important to investigate any software identified as suspicious, in order to understand how it was installed or executed. Analyzing authentication logs or any historic notable events might elicit additional investigative leads of interest. For best results, schedule the search to run every two weeks. @@ -516,7 +516,7 @@ version = 1 references = ["https://docs.microsoft.com/en-us/previous-versions/tn-archive/bb490939(v=technet.10)", "https://htmlpreview.github.io/?https://github.com/MatthewDemaske/blogbackup/blob/master/netshell.html", "http://blog.jpcert.or.jp/2016/01/windows-commands-abused-by-attackers.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Processes created by netsh - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Processes launching netsh - Rule", "ESCU - Processes created by netsh - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect activities and various techniques associated with the abuse of `netsh.exe`, which can disable local firewall settings or set up a remote connection to a host from an infected system. narrative = It is a common practice for attackers of all types to leverage native Windows tools and functionality to execute commands for malicious reasons. One such tool on Windows OS is `netsh.exe`,a command-line scripting utility that allows you to--either locally or remotely--display or modify the network configuration of a computer that is currently running. `Netsh.exe` can be used to discover and disable local firewall settings. It can also be used to set up a remote connection to a host from an infected system.\ To get started, run the detection search to identify parent processes of `netsh.exe`. @@ -528,7 +528,7 @@ version = 1 references = ["https://i.blackhat.com/USA-20/Thursday/us-20-Bienstock-My-Cloud-Is-APTs-Cloud-Investigating-And-Defending-Office-365.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "Patrick Bareiss"}] spec_version = 3 -searches = ["ESCU - O365 Suspicious User Email Forwarding - Rule", "ESCU - O365 PST export alert - Rule", "ESCU - High Number of Login Failures from a single source - Rule", "ESCU - O365 Disable MFA - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - Rule", "ESCU - O365 Excessive Authentication Failures Alert - Rule", "ESCU - O365 Suspicious Rights Delegation - Rule"] +searches = ["ESCU - O365 PST export alert - Rule", "ESCU - O365 Suspicious Rights Delegation - Rule", "ESCU - O365 Excessive Authentication Failures Alert - Rule", "ESCU - O365 Disable MFA - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - Rule", "ESCU - O365 Suspicious User Email Forwarding - Rule", "ESCU - High Number of Login Failures from a single source - Rule"] description = This story is focused around detecting Office 365 Attacks. narrative = More and more companies are using Microsofts Office 365 cloud offering. Therefore, we see more and more attacks against Office 365. This story provides various detections for Office 365 attacks. @@ -539,7 +539,7 @@ version = 2 references = ["https://www.symantec.com/blogs/threat-intelligence/orangeworm-targets-healthcare-us-europe-asia", "https://www.infosecurity-magazine.com/news/healthcare-targeted-by-hacker/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - First Time Seen Running Windows Service - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect activities and various techniques associated with the Orangeworm Attack Group, a group that frequently targets the healthcare industry. narrative = In May of 2018, the attack group Orangeworm was implicated for installing a custom backdoor called Trojan.Kwampirs within large international healthcare corporations in the United States, Europe, and Asia. This malware provides the attackers with remote access to the target system, decrypting and extracting a copy of its main DLL payload from its resource section. Before writing the payload to disk, it inserts a randomly generated string into the middle of the decrypted payload in an attempt to evade hash-based detections.\ Awareness of the Orangeworm group first surfaced in January, 2015. It has conducted targeted attacks against related industries, as well, such as pharmaceuticals and healthcare IT solution providers.\ @@ -554,7 +554,7 @@ version = 1 references = ["https://www.fireeye.com/blog/threat-research/2019/04/spear-phishing-campaign-targets-ukraine-government.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Splunk Research Team"}] spec_version = 3 -searches = ["ESCU - Suspicious LNK file launching a process - Rule", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Detect Oulook exe writing a zip file - Rule", "ESCU - Suspicious LNK file launching a process - Rule", "ESCU - Get Parent Process Info"] description = Detect signs of malicious payloads that may indicate that your environment has been breached via a phishing attack. narrative = Despite its simplicity, phishing remains the most pervasive and dangerous cyberthreat. In fact, research shows that as many as [91% of all successful attacks](https://digitalguardian.com/blog/91-percent-cyber-attacks-start-phishing-email-heres-how-protect-against-phishing) are initiated via a phishing email. \ As most people know, these emails use fraudulent domains, [email scraping](https://www.cyberscoop.com/emotet-trojan-phishing-scraping-templates-cofense-geodo/), familiar contact names inserted as senders, and other tactics to lure targets into clicking a malicious link, opening an attachment with a [nefarious payload](https://www.cyberscoop.com/emotet-trojan-phishing-scraping-templates-cofense-geodo/), or entering sensitive personal information that perpetrators may intercept. This attack technique requires a relatively low level of skill and allows adversaries to easily cast a wide net. Worse, because its success relies on the gullibility of humans, it's impossible to completely "automate" it out of your environment. However, you can use ES and ESCU to detect and investigate potentially malicious payloads injected into your environment subsequent to a phishing attack. \ @@ -572,7 +572,7 @@ version = 1 references = ["https://www.infosecurity-magazine.com/news/scope-of-mudcarp-attacks-highlight-1/", "http://blog.amossys.fr/badflick-is-not-so-bad.html"] maintainers = [{"company": "iDefense", "email": "-", "name": "iDefense Cyber Espionage Team"}] spec_version = 3 -searches = ["ESCU - First time seen command line argument - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Monitor your environment for suspicious behaviors that resemble the techniques employed by the MUDCARP threat group. narrative = This story was created as a joint effort between iDefense and Splunk.\ iDefense analysts have recently discovered a Windows executable file that, upon execution, spoofs a decryption tool and then drops a file that appears to be the custom-built javascript backdoor, "Orz," which is associated with the threat actors known as MUDCARP (as well as "temp.Periscope" and "Leviathan"). The file is executed using Wscript.\ @@ -610,7 +610,7 @@ version = 1 references = ["http://www.novetta.com/2015/02/advanced-methods-to-detect-advanced-cyber-attacks-protocol-abuse/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Get Process Information For Port Activity", "ESCU - Get Parent Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Protocol or Port Mismatch - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Information For Port Activity", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect instances of prohibited network traffic allowed in the environment, as well as protocols running on non-standard ports. Both of these types of behaviors typically violate policy and can be leveraged by attackers. narrative = A traditional security best practice is to control the ports, protocols, and services allowed within your environment. By limiting the services and protocols to those explicitly approved by policy, administrators can minimize the attack surface. The combined effect allows both network defenders and security controls to focus and not be mired in superfluous traffic or data types. Looking for deviations to policy can identify attacker activity that abuses services and protocols to run on alternate or non-standard ports in the attempt to avoid detection or frustrate forensic analysts. @@ -621,7 +621,7 @@ version = 1 references = ["https://www.carbonblack.com/2017/06/28/carbon-black-threat-research-technical-analysis-petya-notpetya-ransomware/", "https://www.splunk.com/blog/2017/06/27/closing-the-detection-to-mitigation-gap-or-to-petya-or-notpetya-whocares-.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Parent Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +searches = ["ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - BCDEdit Failure Recovery Modification - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Process Information For Port Activity", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Leverage searches that allow you to detect and investigate unusual activities that might relate to ransomware--spikes in SMB traffic, suspicious wevtutil usage, the presence of common ransomware extensions, and system processes run from unexpected locations, and many others. narrative = Ransomware is an ever-present risk to the enterprise, wherein an infected host encrypts business-critical data, holding it hostage until the victim pays the attacker a ransom. There are many types and varieties of ransomware that can affect an enterprise. Attackers can deploy ransomware to enterprises through spearphishing campaigns and driveby downloads, as well as through traditional remote service-based exploitation. In the case of the WannaCry campaign, there was self-propagating wormable functionality that was used to maximize infection. Fortunately, organizations can apply several techniques--such as those in this Analytic Story--to detect and or mitigate the effects of ransomware. @@ -632,7 +632,7 @@ version = 1 references = ["https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/", "https://github.com/d1vious/git-wild-hunt", "https://www.youtube.com/watch?v=PgzNib37g0M"] maintainers = [{"company": "David Dorsey, Splunk", "email": "-", "name": "Rod Soto"}] spec_version = 3 -searches = ["ESCU - AWS Detect Users creating keys with encrypt policy without MFA - Rule", "ESCU - AWS Detect Users with KMS keys performing encryption S3 - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - AWS Detect Users with KMS keys performing encryption S3 - Rule", "ESCU - AWS Detect Users creating keys with encrypt policy without MFA - Rule", "ESCU - Get Notable History"] description = Leverage searches that allow you to detect and investigate unusual activities that might relate to ransomware. These searches include cloud related objects that may be targeted by malicious actors via cloud providers own encryption features. narrative = Ransomware is an ever-present risk to the enterprise, wherein an infected host encrypts business-critical data, holding it hostage until the victim pays the attacker a ransom. There are many types and varieties of ransomware that can affect an enterprise.Cloud ransomware can be deployed by obtaining high privilege credentials from targeted users or resources. @@ -643,7 +643,7 @@ version = 1 references = ["https://www.fireeye.com/blog/executive-perspective/2015/09/the_new_route_toper.html", "https://www.cisco.com/c/en/us/about/security-center/event-response/synful-knock.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect Traffic Mirroring - Rule", "ESCU - Detect Port Security Violation - Rule", "ESCU - Detect Software Download To Network Device - Rule", "ESCU - Detect New Login Attempts to Routers - Rule", "ESCU - Detect IPv6 Network Infrastructure Threats - Rule", "ESCU - Detect Rogue DHCP Server - Rule", "ESCU - Detect ARP Poisoning - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Detect Port Security Violation - Rule", "ESCU - Detect New Login Attempts to Routers - Rule", "ESCU - Detect ARP Poisoning - Rule", "ESCU - Detect Software Download To Network Device - Rule", "ESCU - Detect IPv6 Network Infrastructure Threats - Rule", "ESCU - Detect Traffic Mirroring - Rule", "ESCU - Detect Rogue DHCP Server - Rule", "ESCU - Get Notable History"] description = Validate the security configuration of network infrastructure and verify that only authorized users and systems are accessing critical assets. Core routing and switching infrastructure are common strategic targets for attackers. narrative = Networking devices, such as routers and switches, are often overlooked as resources that attackers will leverage to subvert an enterprise. Advanced threats actors have shown a proclivity to target these critical assets as a means to siphon and redirect network traffic, flash backdoored operating systems, and implement cryptographic weakened algorithms to more easily decrypt network traffic.\ This Analytic Story helps you gain a better understanding of how your network devices are interacting with your hosts. By compromising your network devices, attackers can obtain direct access to the company's internal infrastructure— effectively increasing the attack surface and accessing private services/data. @@ -655,7 +655,7 @@ version = 1 references = ["https://www.splunk.com/en_us/blog/security/detecting-ryuk-using-splunk-attack-range.html", "https://www.crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/", "https://us-cert.cisa.gov/ncas/alerts/aa20-302a"] maintainers = [{"company": "Splunk", "email": "-", "name": "Jose Hernandez"}] spec_version = 3 -searches = ["ESCU - Windows connhost exe started forcefully - Rule", "ESCU - Windows DisableAntiSpyware Registry - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Windows DisableAntiSpyware Registry - Rule", "ESCU - BCDEdit Failure Recovery Modification - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Windows connhost exe started forcefully - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Get Notable History"] description = Leverage searches that allow you to detect and investigate unusual activities that might relate to the Ryuk ransomware, including looking for file writes associated with Ryuk, Stopping Security Access Manager, DisableAntiSpyware registry key modification, suspicious psexec use, and more. narrative = Cybersecurity Infrastructure Security Agency (CISA) released Alert (AA20-302A) on October 28th called “Ransomware Activity Targeting the Healthcare and Public Health Sector.” This alert details TTPs associated with ongoing and possible imminent attacks against the Healthcare sector, and is a joint advisory in coordination with other U.S. Government agencies. The objective of these malicious campaigns is to infiltrate targets in named sectors and to drop ransomware payloads, which will likely cause disruption of service and increase risk of actual harm to the health and safety of patients at hospitals, even with the aggravant of an ongoing COVID-19 pandemic. This document specifically refers to several crimeware exploitation frameworks, emphasizing the use of Ryuk ransomware as payload. The Ryuk ransomware payload is not new. It has been well documented and identified in multiple variants. Payloads need a carrier, and for Ryuk it has often been exploitation frameworks such as Cobalt Strike, or popular crimeware frameworks such as Emotet or Trickbot. @@ -678,7 +678,7 @@ version = 1 references = ["https://www.crowdstrike.com/blog/an-in-depth-analysis-of-samsam-ransomware-and-boss-spider/", "https://nakedsecurity.sophos.com/2018/07/31/samsam-the-almost-6-million-ransomware/", "https://thehackernews.com/2018/07/samsam-ransomware-attacks.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Samsam Test File Write - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Batch File Write to System32 - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Parent Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History"] +searches = ["ESCU - Batch File Write to System32 - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Samsam Test File Write - Rule", "ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Information For Port Activity", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get History Of Email Sources", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Leverage searches that allow you to detect and investigate unusual activities that might relate to the SamSam ransomware, including looking for file writes associated with SamSam, RDP brute force attacks, the presence of files with SamSam ransomware extensions, suspicious psexec use, and more. narrative = The first version of the SamSam ransomware (a.k.a. Samas or SamsamCrypt) was launched in 2015 by a group of Iranian threat actors. The malicious software has affected and continues to affect thousands of victims and has raised almost $6M in ransom.\ Although categorized under the heading of ransomware, SamSam campaigns have some importance distinguishing characteristics. Most notable is the fact that conventional ransomware is a numbers game. Perpetrators use a "spray-and-pray" approach with phishing campaigns or other mechanisms, charging a small ransom (typically under $1,000). The goal is to find a large number of victims willing to pay these mini-ransoms, adding up to a lucrative payday. They use relatively simple methods for infecting systems.\ @@ -739,7 +739,7 @@ version = 1 references = ["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html", "https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Patrick Bareiss"}] spec_version = 3 -searches = ["ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Windows AdFind Exe - Rule", "ESCU - Schtasks scheduling job on remote system - Rule"] +searches = ["ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Windows AdFind Exe - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Supernova Webshell - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule"] description = Sunburst is a trojanized updates to SolarWinds Orion IT monitoring and management software. It was discovered by FireEye in December 2020. The actors behind this campaign gained access to numerous public and private organizations around the world. narrative = This Analytic Story supports you to detect Tactics, Techniques and Procedures (TTPs) from the Sunburst malware. The threat actor behind sunburst compromised the SolarWinds.Orion.Core.BusinessLayer.dll, is a SolarWinds digitally-signed component of the Orion software framework that contains a backdoor that communicates via HTTP to third party servers. The detections in this Analytic Story are focusing on the dll loading events, file create events and network events to detect This malware. @@ -750,7 +750,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - MLTK - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - Get EC2 Launch Details", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] +searches = ["ESCU - Abnormally High AWS Instances Terminated by User - MLTK - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details"] description = Use the searches in this Analytic Story to monitor your AWS EC2 instances for evidence of anomalous activity and suspicious behaviors, such as EC2 instances that originate from unusual locations or those launched by previously unseen users (among others). Included investigative searches will help you probe more deeply, when the information warrants it. narrative = AWS CloudTrail is an AWS service that helps you enable governance, compliance, and risk auditing within your AWS account. Actions taken by a user, role, or an AWS service are recorded as events in CloudTrail. It is crucial for a company to monitor events and actions taken in the AWS Console, AWS command-line interface, and AWS SDKs and APIs to ensure that your EC2 instances are not vulnerable to attacks. This Analytic Story identifies suspicious activities in your AWS EC2 instances and helps you respond and investigate those activities. @@ -761,7 +761,7 @@ version = 1 references = ["https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect new user AWS Console Login - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by User from New Region - Rule", "ESCU - AWS Investigate User Activities By ARN"] +searches = ["ESCU - Detect new user AWS Console Login - Rule", "ESCU - Detect AWS Console Login by User from New Region - Rule", "ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - AWS Investigate User Activities By ARN"] description = Monitor your AWS authentication events using your CloudTrail logs. Searches within this Analytic Story will help you stay aware of and investigate suspicious logins. narrative = It is important to monitor and control who has access to your AWS infrastructure. Detecting suspicious logins to your AWS infrastructure will provide good starting points for investigations. Abusive behaviors caused by compromised credentials can lead to direct monetary costs, as you will be billed for any EC2 instances created by the attacker. @@ -772,7 +772,7 @@ version = 2 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf", "https://www.tripwire.com/state-of-security/security-data-protection/cloud/public-aws-s3-buckets-writable/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect S3 access from a new IP - Rule", "ESCU - Detect Spike in S3 Bucket deletion - Rule", "ESCU - Detect New Open S3 buckets - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address", "ESCU - Investigate AWS activities via region name", "ESCU - AWS S3 Bucket details via bucketName", "ESCU - Get Notable History"] +searches = ["ESCU - Detect Spike in S3 Bucket deletion - Rule", "ESCU - Detect New Open S3 Buckets over AWS CLI - Rule", "ESCU - Detect S3 access from a new IP - Rule", "ESCU - Detect New Open S3 buckets - Rule", "ESCU - AWS S3 Bucket details via bucketName", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Investigate AWS activities via region name", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History"] description = Use the searches in this Analytic Story to monitor your AWS S3 buckets for evidence of anomalous activity and suspicious behaviors, such as detecting open S3 buckets and buckets being accessed from a new IP. The contextual and investigative searches will give you more information, when required. narrative = As cloud computing has exploded, so has the number of creative attacks on virtual environments. And as the number-two cloud-service provider, Amazon Web Services (AWS) has certainly had its share.\ Amazon's "shared responsibility" model dictates that the company has responsibility for the environment outside of the VM and the customer is responsible for the security inside of the S3 container. As such, it's important to stay vigilant for activities that may belie suspicious behavior inside of your environment.\ @@ -785,7 +785,7 @@ version = 1 references = ["https://rhinosecuritylabs.com/aws/hiding-cloudcobalt-strike-beacon-c2-using-amazon-apis/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Process Information For Port Activity", "ESCU - AWS Network ACL Details from ID", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - AWS Investigate User Activities By ARN", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get All AWS Activity From IP Address", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio"] description = Leverage these searches to monitor your AWS network traffic for evidence of anomalous activity and suspicious behaviors, such as a spike in blocked outbound traffic in your virtual private cloud (VPC). narrative = A virtual private cloud (VPC) is an on-demand managed cloud-computing service that isolates computing resources for each client. Inside the VPC container, the environment resembles a physical network. \ Amazon's VPC service enables you to launch EC2 instances and leverage other Amazon resources. The traffic that flows in and out of this VPC can be controlled via network access-control rules and security groups. Amazon also has a feature called VPC Flow Logs that enables you to log IP traffic going to and from the network interfaces in your VPC. This data is stored using Amazon CloudWatch Logs.\ @@ -799,7 +799,7 @@ version = 1 references = ["https://aws.amazon.com/blogs/security/aws-cloudtrail-now-tracks-cross-account-activity-to-its-origin/", "https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by User from New Region - Rule", "ESCU - AWS Cross Account Activity From Previously Unseen Account - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - Detect AWS Console Login by New User - Rule", "ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] +searches = ["ESCU - Detect AWS Console Login by User from New Region - Rule", "ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - Detect AWS Console Login by New User - Rule", "ESCU - AWS Cross Account Activity From Previously Unseen Account - Rule", "ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] description = Monitor your cloud authentication events. Searches within this Analytic Story leverage the recent cloud updates to the Authentication data model to help you stay aware of and investigate suspicious login activity. narrative = It is important to monitor and control who has access to your cloud infrastructure. Detecting suspicious logins will provide good starting points for investigations. Abusive behaviors caused by compromised credentials can lead to direct monetary costs, as you will be billed for any compute activity whether legitimate or otherwise.\ This Analytic Story has data model versions of cloud searches leveraging Authentication data, including those looking for suspicious login activity, and cross-account activity for AWS. @@ -811,7 +811,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Cloud Instance Modified By Previously Unseen User - Rule", "ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Get All AWS Activity From IP Address", "ESCU - AWS Investigate User Activities By ARN"] +searches = ["ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Instance Modified By Previously Unseen User - Rule", "ESCU - Get All AWS Activity From IP Address", "ESCU - AWS Investigate User Activities By ARN"] description = Monitor your cloud infrastructure provisioning activities for behaviors originating from unfamiliar or unusual locations. These behaviors may indicate that malicious activities are occurring somewhere within your cloud environment. narrative = Monitoring your cloud infrastructure logs allows you enable governance, compliance, and risk auditing. It is crucial for a company to monitor events and actions taken in the their cloud environments to ensure that your instances are not vulnerable to attacks. This Analytic Story identifies suspicious activities in your cloud compute instances and helps you respond and investigate those activities. @@ -822,7 +822,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Cloud Provisioning Activity From Previously Unseen Region - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen IP Address - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen City - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Country - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Cloud Provisioning Activity From Previously Unseen Country - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen IP Address - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen City - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Region - Rule", "ESCU - Get Notable History"] description = Monitor your cloud infrastructure provisioning activities for behaviors originating from unfamiliar or unusual locations. These behaviors may indicate that malicious activities are occurring somewhere within your cloud environment. narrative = Because most enterprise cloud infrastructure activities originate from familiar geographic locations, monitoring for activity from unknown or unusual regions is an important security measure. This indicator can be especially useful in environments where it is impossible to whitelist specific IPs (because they vary).\ This Analytic Story was designed to provide you with flexibility in the precision you employ in specifying legitimate geographic regions. It can be as specific as an IP address or a city, or as broad as a region (think state) or an entire country. By determining how precise you want your geographical locations to be and monitoring for new locations that haven't previously accessed your environment, you can detect adversaries as they begin to probe your environment. Since there are legitimate reasons for activities from unfamiliar locations, this is not a standalone indicator. Nevertheless, location can be a relevant piece of information that you may wish to investigate further. @@ -834,7 +834,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf", "https://redlock.io/blog/cryptojacking-tesla"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Cloud API Calls From Previously Unseen User Roles - Rule", "ESCU - Abnormally High Number Of Cloud Infrastructure API Calls - Rule", "ESCU - Abnormally High Number Of Cloud Security Group API Calls - Rule", "ESCU - AWS Investigate User Activities By ARN"] +searches = ["ESCU - Abnormally High Number Of Cloud Infrastructure API Calls - Rule", "ESCU - Abnormally High Number Of Cloud Security Group API Calls - Rule", "ESCU - Cloud API Calls From Previously Unseen User Roles - Rule", "ESCU - AWS Investigate User Activities By ARN"] description = Detect and investigate suspicious activities by users and roles in your cloud environments. narrative = It seems obvious that it is critical to monitor and control the users who have access to your cloud infrastructure. Nevertheless, it's all too common for enterprises to lose track of ad-hoc accounts, leaving their servers vulnerable to attack. In fact, this was the very oversight that led to Tesla's cryptojacking attack in February, 2018.\ In addition to compromising the security of your data, when bad actors leverage your compute resources, it can incur monumental costs, since you will be billed for any new instances and increased bandwidth usage. @@ -846,7 +846,7 @@ version = 2 references = ["https://attack.mitre.org/wiki/Technique/T1059", "https://www.microsoft.com/en-us/wdsi/threats/macro-malware", "https://www.fireeye.com/content/dam/fireeye-www/services/pdfs/mandiant-apt1-report.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - First time seen command line argument - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Leveraging the Windows command-line interface (CLI) is one of the most common attack techniques--one that is also detailed in the MITRE ATT&CK framework. Use this Analytic Story to help you identify unusual or suspicious use of the CLI on Windows systems. narrative = The ability to execute arbitrary commands via the Windows CLI is a primary goal for the adversary. With access to the shell, an attacker can easily run scripts and interact with the target system. Often, attackers may only have limited access to the shell or may obtain access in unusual ways. In addition, malware may execute and interact with the CLI in ways that would be considered unusual and inconsistent with typical user activity. This provides defenders with opportunities to identify suspicious use and investigate, as appropriate. This Analytic Story contains various searches to help identify this suspicious activity, as well as others to aid you in deeper investigation. @@ -857,7 +857,7 @@ version = 1 references = ["http://blogs.splunk.com/2015/10/01/random-words-on-entropy-and-dns/", "http://www.darkreading.com/analytics/security-monitoring/got-malware-three-signs-revealed-in-dns-traffic/d/d-id/1139680", "https://live.paloaltonetworks.com/t5/Threat-Vulnerability-Articles/What-are-suspicious-DNS-queries/ta-p/71454"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Get Parent Process Info", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info"] description = Attackers often attempt to hide within or otherwise abuse the domain name system (DNS). You can thwart attempts to manipulate this omnipresent protocol by monitoring for these types of abuses. narrative = Although DNS is one of the fundamental underlying protocols that make the Internet work, it is often ignored (perhaps because of its complexity and effectiveness). However, attackers have discovered ways to abuse the protocol to meet their objectives. One potential abuse involves manipulating DNS to hijack traffic and redirect it to an IP address under the attacker's control. This could inadvertently send users intending to visit google.com, for example, to an unrelated malicious website. Another technique involves using the DNS protocol for command-and-control activities with the attacker's malicious code or to covertly exfiltrate data. The searches within this Analytic Story look for these types of abuses. @@ -868,7 +868,7 @@ version = 1 references = ["https://www.splunk.com/blog/2015/06/26/phishing-hits-a-new-level-of-quality/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Suspicious Email - UBA Anomaly - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - Get Emails From Specific Sender", "ESCU - Get Email Info", "ESCU - Get Notable History"] +searches = ["ESCU - Suspicious Email - UBA Anomaly - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Get Emails From Specific Sender", "ESCU - Get Notable History", "ESCU - Get Email Info"] description = Email remains one of the primary means for attackers to gain an initial foothold within the modern enterprise. Detect and investigate suspicious emails in your environment with the help of the searches in this Analytic Story. narrative = It is a common practice for attackers of all types to leverage targeted spearphishing campaigns and mass mailers to deliver weaponized email messages and attachments. Fortunately, there are a number of ways to monitor email data in Splunk to detect suspicious content.\ Once a phishing message has been detected, the next steps are to answer the following questions: \ @@ -883,7 +883,7 @@ version = 1 references = ["https://cloud.google.com/blog/products/gcp/4-steps-for-hardening-your-cloud-storage-buckets-taking-charge-of-your-security", "https://rhinosecuritylabs.com/gcp/google-cloud-platform-gcp-bucket-enumeration/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Shannon Davis"}] spec_version = 3 -searches = ["ESCU - Detect GCP Storage access from a new IP - Rule", "ESCU - Detect New Open GCP Storage Buckets - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Detect New Open GCP Storage Buckets - Rule", "ESCU - Detect GCP Storage access from a new IP - Rule", "ESCU - Get Notable History"] description = Use the searches in this Analytic Story to monitor your GCP Storage buckets for evidence of anomalous activity and suspicious behaviors, such as detecting open storage buckets and buckets being accessed from a new IP. The contextual and investigative searches will give you more information, when required. narrative = Similar to other cloud providers, GCP operates on a shared responsibility model. This means the end user, you, are responsible for setting appropriate access control lists and permissions on your GCP resources.\ This Analytics Story concentrates on detecting things like open storage buckets (both read and write) along with storage bucket access from unfamiliar users and IP addresses. @@ -894,7 +894,7 @@ version = 1 references = ["https://redcanary.com/blog/windows-registry-attacks-threat-detection/", "https://medium.com/@mbromileyDFIR/malware-monday-aebb456356c5", "https://attack.mitre.org/wiki/Technique/T1170"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Detect mshta exe running scripts in command-line arguments - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Detect mshta exe running scripts in command-line arguments - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Monitor and detect techniques used by attackers who leverage the mshta.exe process to execute malicious code. narrative = One common adversary tactic is to bypass application white-listing solutions via the mshta.exe process, which executes Microsoft HTML applications with the .hta suffix. In these cases, attackers use the trusted Windows utility to eproxy execution of malicious files, whether an .hta application, javascript, or VBScript.\ One example of a notable mshta.exe attack was the Kovter malware (https://medium.com/@mbromileyDFIR/malware-monday-aebb456356c5) that was implicated in ransomware and click-fraud attacks. Kovter utilized .hta to execute a series of javascript commands, each progressively more dangerous. According to the Mitre Parternship Network (https://attack.mitre.org/wiki/Technique/T1170), FIN7 has leveraged mshta.exe, as has the MuddyWater group, who used it to execute its POWERSTATS payload (which then used the utility to execute additional payloads).\ @@ -907,7 +907,7 @@ version = 1 references = ["https://attack.mitre.org/wiki/Technique/T1078", "https://owasp.org/www-community/attacks/Credential_stuffing", "https://searchsecurity.techtarget.com/answer/What-is-a-password-spraying-attack-and-how-does-it-work"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Okta Account Lockout Events - Rule", "ESCU - Okta User Logins From Multiple Cities - Rule", "ESCU - Okta Failed SSO Attempts - Rule", "ESCU - Multiple Okta Users With Invalid Credentails From The Same IP - Rule", "ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by app", "ESCU - Investigate Okta Activity by IP Address"] +searches = ["ESCU - Multiple Okta Users With Invalid Credentails From The Same IP - Rule", "ESCU - Okta Failed SSO Attempts - Rule", "ESCU - Okta User Logins From Multiple Cities - Rule", "ESCU - Okta Account Lockout Events - Rule", "ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by app", "ESCU - Investigate Okta Activity by IP Address"] description = Monitor your Okta environment for suspicious activities. Due to the Covid outbreak, many users are migrating over to leverage cloud services more and more. Okta is a popular tool to manage multiple users and the web-based applications they need to stay productive. The searches in this story will help monitor your Okta environment for suspicious activities and associated user behaviors. narrative = Okta is the leading single sign on (SSO) provider, allowing users to authenticate once to Okta, and from there access a variety of web-based applications. These applications are assigned to users and allow administrators to centrally manage which users are allowed to access which applications. It also provides centralized logging to help understand how the applications are used and by whom. \ While SSO is a major convenience for users, it also provides attackers with an opportunity. If the attacker can gain access to Okta, they can access a variety of applications. As such monitoring the environment is important. \ @@ -920,7 +920,7 @@ version = 2 references = ["https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf", "https://www.fireeye.com/blog/threat-research/2017/03/wmimplant_a_wmi_ba.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Script Execution via WMI - Rule", "ESCU - Remote WMI Command Attempt - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Process Execution via WMI - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Script Execution via WMI - Rule", "ESCU - WMI Temporary Event Subscription - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule", "ESCU - WMI Permanent Event Subscription - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Remote WMI Command Attempt - Rule", "ESCU - Process Execution via WMI - Rule", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Attackers are increasingly abusing Windows Management Instrumentation (WMI), a framework and associated utilities available on all modern Windows operating systems. Because WMI can be leveraged to manage both local and remote systems, it is important to identify the processes executed and the user context within which the activity occurred. narrative = WMI is a Microsoft infrastructure for management data and operations on Windows operating systems. It includes of a set of utilities that can be leveraged to manage both local and remote Windows systems. Attackers are increasingly turning to WMI abuse in their efforts to conduct nefarious tasks, such as reconnaissance, detection of antivirus and virtual machines, code execution, lateral movement, persistence, and data exfiltration. \ The detection searches included in this Analytic Story are used to look for suspicious use of WMI commands that attackers may leverage to interact with remote systems. The searches specifically look for the use of WMI to run processes on remote systems.\ @@ -933,7 +933,7 @@ version = 1 references = ["https://redcanary.com/blog/windows-registry-attacks-threat-detection/", "https://attack.mitre.org/wiki/Technique/T1112"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Disabling Remote User Account Control - Rule", "ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Monitor and detect registry changes initiated from remote locations, which can be a sign that an attacker has infiltrated your system. narrative = Attackers are developing increasingly sophisticated techniques for hijacking target servers, while evading detection. One such technique that has become progressively more common is registry modification.\ The registry is a key component of the Windows operating system. It has a hierarchical database called "registry" that contains settings, options, and values for executables. Once the threat actor gains access to a machine, they can use reg.exe to modify their account to obtain administrator-level privileges, maintain persistence, and move laterally within the environment.\ @@ -946,7 +946,7 @@ version = 1 references = ["https://blog.rapid7.com/2020/04/02/dispelling-zoom-bugbears-what-you-need-to-know-about-the-latest-zoom-vulnerabilities/", "https://threatpost.com/two-zoom-zero-day-flaws-uncovered/154337/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First Time Seen Child Process of Zoom - Rule", "ESCU - Get Process File Activity"] +searches = ["ESCU - First Time Seen Child Process of Zoom - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Get Process File Activity"] description = Attackers are using Zoom as an vector to increase privileges on a sytems. This story detects new child processes of zoom and provides investigative actions for this detection. narrative = Zoom is a leader in modern enterprise video communications and its usage has increased dramatically with a large amount of the population under stay-at-home orders due to the COVID-19 pandemic. With increased usage has come increased scrutiny and several security flaws have been found with this application on both Windows and macOS systems.\ Current detections focus on finding new child processes of this application on a per host basis. Investigative searches are included to gather information needed during an investigation. @@ -958,7 +958,7 @@ version = 1 references = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - EC2 Instance Modified With Previously Unseen User - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get Notable History"] +searches = ["ESCU - EC2 Instance Modified With Previously Unseen User - Rule", "ESCU - Get Notable History", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - AWS Investigate User Activities By ARN"] description = Identify unusual changes to your AWS EC2 instances that may indicate malicious activity. Modifications to your EC2 instances by previously unseen users is an example of an activity that may warrant further investigation. narrative = A common attack technique is to infiltrate a cloud instance and make modifications. The adversary can then secure access to your infrastructure or hide their activities. So it's important to stay alert to changes that may indicate that your environment has been compromised. \ Searches within this Analytic Story can help you detect the presence of a threat by monitoring for EC2 instances that have been created or changed--either by users that have never previously performed these activities or by known users who modify or create instances in a way that have not been done before. This story also provides investigative searches that help you go deeper once you detect suspicious behavior. @@ -970,7 +970,7 @@ version = 2 references = ["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-two.html", "https://www.splunk.com/pdfs/technical-briefs/advanced-threat-detection-and-response-tech-brief.pdf", "https://www.sans.org/reading-room/whitepapers/logging/detecting-security-incidents-windows-workstation-event-logs-34262"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Detect Rare Executables - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - RunDLL Loading DLL By Ordinal - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect processes used for System Network Configuration Discovery - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Detect processes used for System Network Configuration Discovery - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - RunDLL Loading DLL By Ordinal - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Quickly identify systems running new or unusual processes in your environment that could be indicators of suspicious activity. Processes run from unusual locations, those with conspicuously long command lines, and rare executables are all examples of activities that may warrant deeper investigation. narrative = Being able to profile a host's processes within your environment can help you more quickly identify processes that seem out of place when compared to the rest of the population of hosts or asset types.\ This Analytic Story lets you identify processes that are either a) not typically seen running or b) have some sort of suspicious command-line arguments associated with them. This Analytic Story will also help you identify the user running these processes and the associated process activity on the host.\ @@ -994,7 +994,7 @@ version = 1 references = ["https://www.fbi.gov/scams-and-safety/common-fraud-schemes/internet-fraud", "https://www.fbi.gov/news/stories/2017-internet-crime-report-released-050718"] maintainers = [{"company": "Splunk", "email": "-", "name": "Jim Apger"}] spec_version = 3 -searches = ["ESCU - Web Fraud - Account Harvesting - Rule", "ESCU - Web Fraud - Anomalous User Clickspeed - Rule", "ESCU - Web Fraud - Password Sharing Across Accounts - Rule", "ESCU - Get Emails From Specific Sender", "ESCU - Get Notable History", "ESCU - Get Web Session Information via session id"] +searches = ["ESCU - Web Fraud - Account Harvesting - Rule", "ESCU - Web Fraud - Anomalous User Clickspeed - Rule", "ESCU - Web Fraud - Password Sharing Across Accounts - Rule", "ESCU - Get Web Session Information via session id", "ESCU - Get Notable History", "ESCU - Get Emails From Specific Sender"] description = Monitor your environment for activity consistent with common attack techniques bad actors use when attempting to compromise web servers or other web-related assets. narrative = The Federal Bureau of Investigations (FBI) defines Internet fraud as the use of Internet services or software with Internet access to defraud victims or to otherwise take advantage of them. According to the Bureau, Internet crime schemes are used to steal millions of dollars each year from victims and continue to plague the Internet through various methods. The agency includes phishing scams, data breaches, Denial of Service (DOS) attacks, email account compromise, malware, spoofing, and ransomware in this category.\ These crimes are not the fraud itself, but rather the attack techniques commonly employed by fraudsters in their pursuit of data that enables them to commit malicious actssuch as obtaining and using stolen credit cards. They represent a serious problem that is steadily increasing and not likely to go away anytime soon.\ @@ -1021,7 +1021,7 @@ version = 1 references = ["https://attack.mitre.org/wiki/Defense_Evasion"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Disabling Remote User Account Control - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect tactics used by malware to evade defenses on Windows endpoints. A few of these include suspicious `reg.exe` processes, files hidden with `attrib.exe` and disabling user-account control, among many others narrative = Defense evasion is a tactic--identified in the MITRE ATT&CK framework--that adversaries employ in a variety of ways to bypass or defeat defensive security measures. There are many techniques enumerated by the MITRE ATT&CK framework that are applicable in this context. This Analytic Story includes searches designed to identify the use of such techniques on Windows platforms. @@ -1032,7 +1032,7 @@ version = 1 references = ["https://blog.malwarebytes.com/cybercrime/2013/12/file-extensions-2/", "https://attack.mitre.org/wiki/Technique/T1042"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Execution of File with Multiple Extensions - Rule", "ESCU - Execution of File With Spaces Before Extension - Rule", "ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Execution of File With Spaces Before Extension - Rule", "ESCU - Execution of File with Multiple Extensions - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Detect and investigate suspected abuse of file extensions and Windows file associations. Some of the malicious behaviors involved may include inserting spaces before file extensions or prepending the file extension with a different one, among other techniques. narrative = Attackers use a variety of techniques to entice users to run malicious code or to persist on an endpoint. One way to accomplish these goals is to leverage file extensions and the mechanism Windows uses to associate files with specific applications. \ Since its earliest days, Windows has used extensions to identify file types. Users have become familiar with these extensions and their application associations. For example, if users see that a file ends in `.doc` or `.docx`, they will assume that it is a Microsoft Word document and expect that double-clicking will open it using `winword.exe`. The user will typically also presume that the `.docx` file is safe. \ @@ -1047,7 +1047,7 @@ version = 2 references = ["https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee/", "https://zeltser.com/security-incident-log-review-checklist/", "http://journeyintoir.blogspot.com/2013/01/re-introducing-usnjrnl.html"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - Suspicious wevtutil Usage - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - USN Journal Deletion - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Adversaries often try to cover their tracks by manipulating Windows logs. Use these searches to help you monitor for suspicious activity surrounding log files--an essential component of an effective defense. narrative = Because attackers often modify system logs to cover their tracks and/or to thwart the investigative process, log monitoring is an industry-recognized best practice. While there are legitimate reasons to manipulate system logs, it is still worthwhile to keep track of who manipulated the logs, when they manipulated them, and in what way they manipulated them (determining which accesses, tools, or utilities were employed). Even if no malicious activity is detected, the knowledge of an attempt to manipulate system logs may be indicative of a broader security risk that should be thoroughly investigated.\ The Analytic Story gives users two different ways to detect manipulation of Windows Event Logs and one way to detect deletion of the Update Sequence Number (USN) Change Journal. The story helps determine the history of the host and the users who have accessed it. Finally, the story aides in investigation by retrieving all the information on the process that caused these events (if the process has been identified). @@ -1059,7 +1059,7 @@ version = 2 references = ["http://www.fuzzysecurity.com/tutorials/19.html", "https://www.fireeye.com/blog/threat-research/2010/07/malware-persistence-windows-registry.html", "http://resources.infosecinstitute.com/common-malware-persistence-mechanisms/", "https://www.fireeye.com/blog/threat-research/2017/05/fin7-shim-databases-persistence.html", "https://www.youtube.com/watch?v=dq2Hv7J9fvk"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Shim Database File Creation - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Shim Database Installation With Suspicious Parameters - Rule", "ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Detect Path Interception By Creation Of program exe - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Shim Database File Creation - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Shim Database Installation With Suspicious Parameters - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Detect Path Interception By Creation Of program exe - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Monitor for activities and techniques associated with maintaining persistence on a Windows system--a sign that an adversary may have compromised your environment. narrative = Maintaining persistence is one of the first steps taken by attackers after the initial compromise. Attackers leverage various custom and built-in tools to ensure survivability and persistent access within a compromised enterprise. This Analytic Story provides searches to help you identify various behaviors used by attackers to maintain persistent access to a Windows environment. @@ -1070,7 +1070,7 @@ version = 2 references = ["https://attack.mitre.org/tactics/TA0004/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Overwriting Accessibility Binaries - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Child Processes of Spoolsv exe - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Overwriting Accessibility Binaries - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Monitor for and investigate activities that may be associated with a Windows privilege-escalation attack, including unusual processes running on endpoints, modified registry keys, and more. narrative = Privilege escalation is a "land-and-expand" technique, wherein an adversary gains an initial foothold on a host and then exploits its weaknesses to increase his privileges. The motivation is simple: certain actions on a Windows machine--such as installing software--may require higher-level privileges than those the attacker initially acquired. By increasing his privilege level, the attacker can gain the control required to carry out his malicious ends. This Analytic Story provides searches to detect and investigate behaviors that attackers may use to elevate their privileges in your environment. @@ -1081,7 +1081,7 @@ version = 3 references = ["https://attack.mitre.org/wiki/Technique/T1050", "https://attack.mitre.org/wiki/Technique/T1031"] maintainers = [{"company": "Splunk", "email": "-", "name": "Rico Valdez"}] spec_version = 3 -searches = ["ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Get Process Info", "ESCU - Get Parent Process Info", "ESCU - Get Notable History"] +searches = ["ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] description = Windows services are often used by attackers for persistence and the ability to load drivers or otherwise interact with the Windows kernel. This Analytic Story helps you monitor your environment for indications that Windows services are being modified or created in a suspicious manner. narrative = The Windows operating system uses a services architecture to allow for running code in the background, similar to a UNIX daemon. Attackers will often leverage Windows services for persistence, hiding in plain sight, seeking the ability to run privileged code that can interact with the kernel. In many cases, attackers will create a new service to host their malicious code. Attackers have also been observed modifying unnecessary or unused services to point to their own code, as opposed to what was intended. In these cases, attackers often use tools to create or modify services in ways that are not typical for most environments, providing opportunities for detection. @@ -1147,10 +1147,10 @@ providing_technologies = [] type = detection asset_type = AWS Account confidence = medium -explanation = This search provides detection of accounts creating KMS with encrypt policy and without using MFA. +explanation = This search provides detection of KMS keys which action kms:Encrypt is accessible for everyone (also outside of your organization). This is an identicator that your account is compromised and the attacker uses the encryption key to compromise another company. how_to_implement = You must install splunk AWS add on and Splunk App for AWS. This search works with cloudtrail logs annotations = {"mitre_attack": ["T1486"]} -known_false_positives = Not all KMS key creations are malicious. Particulary look for kms:Encrypt only policy. It is very unusual to create a key to encrypt only and not to decrypt. +known_false_positives = unknown providing_technologies = [] [savedsearch://ESCU - AWS Detect Users with KMS keys performing encryption S3 - Rule] @@ -1160,7 +1160,7 @@ confidence = medium explanation = This search provides detection of users with KMS keys performing encryption specifically against S3 buckets. how_to_implement = You must install splunk AWS add on and Splunk App for AWS. This search works with cloudtrail logs annotations = {"mitre_attack": ["T1486"]} -known_false_positives = Not all operations with KMS keys are malicious. It is very unusual to create a key to encrypt only and not to decrypt. This search compliments the creation of KMS keys with encrypt policy. +known_false_positives = bucket with S3 encryption providing_technologies = [] [savedsearch://ESCU - AWS EKS Kubernetes cluster sensitive object access - Rule] @@ -1179,7 +1179,7 @@ asset_type = AWS Instance confidence = medium explanation = The search looks for CloudTrail events to detect if any network ACLs were created with all the ports open to a specified CIDR. how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS, version 4.4.0 or later, and configure your CloudTrail inputs. -annotations = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} +annotations = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = It's possible that an admin has created this ACL with all ports open for some legitimate purpose however, this should be scoped and not allowed in production environment. providing_technologies = [] @@ -1189,7 +1189,7 @@ asset_type = AWS Instance confidence = medium explanation = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the AWS console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the CloudTrail logs to detect users deleting network ACLs. how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. -annotations = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} +annotations = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = It's possible that a user has legitimately deleted a network ACL. providing_technologies = [] @@ -1343,6 +1343,16 @@ annotations = {"cis20": ["CIS 3", "CIS 5", "CIS 16"], "kill_chain_phases": ["Act known_false_positives = None identified. providing_technologies = [] +[savedsearch://ESCU - BCDEdit Failure Recovery Modification - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for flags passed to bcdedit.exe modifications to the built-in Windows error recovery boot configurations. This is typically used by ransomware to prevent recovery. +how_to_implement = You must be ingesting endpoint data that tracks process activity, including parent-child relationships from your endpoints to populate the Endpoint data model in the Processes node. Tune based on parent process names. +annotations = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1490"], "nist": ["PR.IP"]} +known_false_positives = Administrators may modify the boot configuration. +providing_technologies = [] + [savedsearch://ESCU - Batch File Write to System32 - Rule] type = detection asset_type = Endpoint @@ -1353,6 +1363,16 @@ annotations = {"cis20": ["CIS 8"], "kill_chain_phases": ["Delivery"], "mitre_att known_false_positives = It is possible for this search to generate a notable event for a batch file write to a path that includes the string "system32", but is not the actual Windows system directory. As such, you should confirm the path of the batch file identified by the search. In addition, a false positive may be generated by an administrator copying a legitimate batch file in this directory tree. You should confirm that the activity is legitimate and modify the search to add exclusions, as necessary. providing_technologies = [] +[savedsearch://ESCU - Child Processes of Spoolsv exe - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for child processes of spoolsv.exe. This activity is associated with a POC privilege-escalation exploit associated with CVE-2018-8440. Spoolsv.exe is the process associated with the Print Spooler service in Windows and typically runs as SYSTEM. +how_to_implement = You must be ingesting endpoint data that tracks process activity, including parent-child relationships from your endpoints to populate the Endpoint data model in the Processes node. The command-line arguments are mapped to the "process" field in the Endpoint data model. Update the `children_of_spoolsv_filter` macro to filter out legitimate child processes spawned by spoolsv.exe. +annotations = {"cis20": ["CIS 5", "CIS 8"], "kill_chain_phases": ["Exploitation"], "mitre_attack": ["T1068"], "nist": ["PR.AC", "PR.PT", "DE.CM"]} +known_false_positives = Some legitimate printer-related processes may show up as children of spoolsv.exe. You should confirm that any activity as legitimate and may be added as exclusions in the search. +providing_technologies = [] + [savedsearch://ESCU - Clients Connecting to Multiple DNS Servers - Rule] type = detection asset_type = Endpoint @@ -1429,7 +1449,7 @@ providing_technologies = [] type = detection asset_type = Instance confidence = medium -explanation = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. +explanation = Enforcing network-access controls is one of the defensive mechanisms used by cloud administrators to restrict access to a cloud instance. After the attacker has gained control of the console by compromising an admin account, they can delete a network ACL and gain access to the instance from anywhere. This search will query the Change datamodel to detect users deleting network ACLs. Deprecated because it's a duplicate how_to_implement = You must be ingesting your cloud infrastructure logs from your cloud provider. You can also provide additional filtering for this search by customizing the `cloud_network_access_control_list_deleted_filter` macro. annotations = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = It's possible that a user has legitimately deleted a network ACL. @@ -1663,7 +1683,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for successful CloudTrail activity by user accounts that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. +explanation = This search looks for successful CloudTrail activity by user accounts that are not listed in the identity table or `aws_service_accounts.csv`. It returns event names and count, as well as the first and last time a specific user or service is detected, grouped by users. Deprecated because managing this list can be quite hard. how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudTrail inputs. You must also populate the `identity_lookup_expanded` lookup shipped with the Asset and Identity framework to be able to look up users in your identity table in Enterprise Security (ES). Leverage the support search called "Create a list of approved AWS service accounts": run it once every 30 days to create and validate a list of service accounts.\ This search produces fields (`eventName`,`firstTime`,`lastTime`) that are not yet supported by ES Incident Review and therefore cannot be viewed when a notable event is raised. These fields contribute additional context to the notable. To see the additional metadata, add the following fields, if not already present, to Incident Review - Event Attributes (Configure > Incident Management > Incident Review Settings > Add New Entry):\\n1. **Label:** AWS Event Name, **Field:** eventName\ 1. \ @@ -1883,16 +1903,36 @@ annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives known_false_positives = While this search has no known false positives, it is possible that a GCP admin has legitimately created a public bucket for a specific purpose. That said, GCP strongly advises against granting full control to the "allUsers" group. providing_technologies = [] +[savedsearch://ESCU - Detect New Open S3 Buckets over AWS CLI - Rule] +type = detection +asset_type = S3 Bucket +confidence = medium +explanation = This search looks for CloudTrail events where a user has created an open/public S3 bucket over the aws cli. +how_to_implement = none +annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1530"], "nist": ["PR.DS", "PR.AC", "DE.CM"]} +known_false_positives = While this search has no known false positives, it is possible that an AWS admin has legitimately created a public bucket for a specific purpose. That said, AWS strongly advises against granting full control to the "All Users" group. +providing_technologies = [] + [savedsearch://ESCU - Detect New Open S3 buckets - Rule] type = detection asset_type = S3 Bucket confidence = medium explanation = This search looks for CloudTrail events where a user has created an open/public S3 bucket. -how_to_implement = You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), and then configure your CloudTrail inputs. The threshold value should be tuned to your environment. +how_to_implement = You must install the AWS App for Splunk. annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1530"], "nist": ["PR.DS", "PR.AC", "DE.CM"]} known_false_positives = While this search has no known false positives, it is possible that an AWS admin has legitimately created a public bucket for a specific purpose. That said, AWS strongly advises against granting full control to the "All Users" group. providing_technologies = [] +[savedsearch://ESCU - Detect Oulook exe writing a zip file - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for execution of process `outlook.exe` where the process is writing a `.zip` file to the disk. +how_to_implement = You must be ingesting data that records filesystem and process activity from your hosts to populate the Endpoint data model. This is typically populated via endpoint detection-and-response products, such as Carbon Black, or endpoint data sources, such as Sysmon. +annotations = {"cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Installation", "Actions on Objectives"], "mitre_attack": ["T1566.001"], "nist": ["ID.AM", "PR.DS"]} +known_false_positives = It is not uncommon for outlook to write legitimate zip files to the disk. +providing_technologies = [] + [savedsearch://ESCU - Detect Outbound SMB Traffic - Rule] type = detection asset_type = Endpoint @@ -2237,6 +2277,16 @@ annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Command and Control", known_false_positives = It's possible that normal DNS traffic will exhibit this behavior. If an alert is generated, please investigate and validate as appropriate. The threshold can also be modified to better suit your environment. providing_technologies = [] +[savedsearch://ESCU - Detection of tools built by NirSoft - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for specific command-line arguments that may indicate the execution of tools made by Nirsoft, which are legitimate, but may be abused by attackers. +how_to_implement = You must be ingesting endpoint data that tracks process activity, including parent-child relationships from your endpoints to populate the Endpoint data model in the Processes node. The command-line arguments are mapped to the "process" field in the Endpoint data model. +annotations = {"cis20": ["CIS 3"], "kill_chain_phases": ["Installation", "Actions on Objectives"], "mitre_attack": ["T1072"], "nist": ["PR.IP"]} +known_false_positives = While legitimate, these NirSoft tools are prone to abuse. You should verfiy that the tool was used for a legitimate purpose. +providing_technologies = [] + [savedsearch://ESCU - Disabling Remote User Account Control - Rule] type = detection asset_type = Endpoint @@ -2729,6 +2779,16 @@ annotations = {"cis20": ["CIS 11", "CIS 12"], "kill_chain_phases": ["Actions on known_false_positives = Legitimate ANY requests may trigger this search, however it is unusual to see a large volume of them under typical circumstances. You may modify the threshold in the search to better suit your environment. providing_technologies = [] +[savedsearch://ESCU - MacOS - Re-opened Applications - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for processes referencing the plist files that determine which applications are re-opened when a user reboots their machine. +how_to_implement = In order to properly run this search, Splunk needs to ingest process data from your osquery deployed agents with the [splunk.conf](https://github.com/splunk/TA-osquery/blob/master/config/splunk.conf) pack enabled. Also the [TA-OSquery](https://github.com/splunk/TA-osquery) must be deployed across your indexers and universal forwarders in order to have the data populate the Endpoint data model. +annotations = {"cis20": ["CIS 8"], "kill_chain_phases": ["Installation", "Command and Control"], "nist": ["DE.DP", "DE.CM"]} +known_false_positives = At this stage, there are no known false positives. During testing, no process events refering the com.apple.loginwindow.plist files were observed during normal operation of re-opening applications on reboot. Therefore, it can be asumed that any occurences of this in the process events would be worth investigating. In the event that the legitimate modification by the system of these files is in fact logged to the process log, then the process_name of that process can be whitelisted. +providing_technologies = [] + [savedsearch://ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule] type = detection asset_type = Endpoint @@ -2979,6 +3039,16 @@ annotations = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Ob known_false_positives = Although unlikely, administrators may use wmi to execute commands for legitimate purposes. providing_technologies = [] +[savedsearch://ESCU - Processes Tapping Keyboard Events - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for processes in an MacOS system that is tapping keyboard events in MacOS, and essentially monitoring all keystrokes made by a user. This is a common technique used by RATs to log keystrokes from a victim, although it can also be used by legitimate processes like Siri to react on human input +how_to_implement = In order to properly run this search, Splunk needs to ingest data from your osquery deployed agents with the [osx-attacks.conf](https://github.com/facebook/osquery/blob/experimental/packs/osx-attacks.conf#L599) pack enabled. Also the [TA-OSquery](https://github.com/d1vious/TA-osquery) must be deployed across your indexers and universal forwarders in order to have the osquery data populate the Alerts data model. +annotations = {"cis20": ["CIS 4", "CIS 8"], "kill_chain_phases": ["Command and Control"], "nist": ["DE.DP"]} +known_false_positives = There might be some false positives as keyboard event taps are used by processes like Siri and Zoom video chat, for some good examples of processes to exclude please see [this](https://github.com/facebook/osquery/pull/5345#issuecomment-454639161) comment. +providing_technologies = [] + [savedsearch://ESCU - Processes created by netsh - Rule] type = detection asset_type = Endpoint @@ -3109,6 +3179,16 @@ annotations = {"cis20": ["CIS 3", "CIS 9", "CIS 16"], "kill_chain_phases": ["Act known_false_positives = Remote Desktop may be used legitimately by users on the network. providing_technologies = [] +[savedsearch://ESCU - Remote Desktop Process Running On System - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for the remote desktop process mstsc.exe running on systems upon which it doesn't typically run. This is accomplished by filtering out all systems that are noted in the `common_rdp_source category` in the Assets and Identity framework. +how_to_implement = To successfully implement this search, you must be ingesting data that records process activity from your hosts to populate the endpoint data model in the processes node. The search requires you to identify systems that do not commonly use remote desktop. You can use the included support search "Identify Systems Using Remote Desktop" to identify these systems. After identifying them, you will need to add the "common_rdp_source" category to that system using the Enterprise Security Assets and Identities framework. This can be done by adding an entry in the assets.csv file located in `SA-IdentityManagement/lookups`. +annotations = {"cis20": ["CIS 3", "CIS 9", "CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1021.001"], "nist": ["DE.AE", "PR.AC", "PR.IP"]} +known_false_positives = Remote Desktop may be used legitimately by users on the network. +providing_technologies = [] + [savedsearch://ESCU - Remote Process Instantiation via WMI - Rule] type = detection asset_type = Endpoint @@ -3312,6 +3392,16 @@ annotations = {"cis20": ["CIS 4"], "nist": ["ID.RA", "RS.MI", "PR.IP", "DE.CM"]} known_false_positives = It is possible that your vulnerability scanner is not detecting that the patches have been applied. providing_technologies = [] +[savedsearch://ESCU - Spike in File Writes - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = The search looks for a sharp increase in the number of files written to a particular host +how_to_implement = In order to implement this search, you must populate the Endpoint file-system data model node. This is typically populated via endpoint detection and response products, such as Carbon Black or endpoint data sources such as Sysmon. The data used for this search is typically generated via logs that report reads and writes to the file system. +annotations = {"cis20": ["CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["DE.CM"]} +known_false_positives = It is important to understand that if you happen to install any new applications on your hosts or are copying a large number of files, you can expect to see a large increase of file modifications. +providing_technologies = [] + [savedsearch://ESCU - Splunk Enterprise Information Disclosure - Rule] type = detection asset_type = Splunk Server @@ -3332,6 +3422,16 @@ annotations = {"cis20": ["CIS 6", "CIS 8"], "kill_chain_phases": ["Actions on Ob known_false_positives = unknown providing_technologies = [] +[savedsearch://ESCU - Supernova Webshell - Rule] +type = detection +asset_type = +confidence = medium +explanation = This search aims to detect the Supernova webshell used in the SUNBURST attack. +how_to_implement = To successfully implement this search, you need to be monitoring web traffic to your Solarwinds Orion. The logs should be ingested into splunk and populating/mapped to the Web data model. +annotations = {"cis20": ["CIS 4", "CIS 13", "CIS 18"], "kill_chain_phases": ["Exfiltration"], "mitre_attack": ["T1505.003"], "nist": ["PR.DS", "ID.RA", "PR.PT", "PR.IP", "DE.CM"]} +known_false_positives = There might be false positives associted with this detection since items like args as a web argument is pretty generic. +providing_technologies = [] + [savedsearch://ESCU - Suspicious Changes to File Associations - Rule] type = detection asset_type = Endpoint @@ -3544,6 +3644,16 @@ annotations = {"cis20": ["CIS 3", "CIS 4", "CIS 18", "CIS 12"], "kill_chain_phas known_false_positives = Very few legitimate Content-Type fields will have a length greater than 100 characters. providing_technologies = [] +[savedsearch://ESCU - WMI Permanent Event Subscription - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for the creation of WMI permanent event subscriptions. +how_to_implement = To successfully implement this search, you must be ingesting the Windows WMI activity logs. This can be done by adding a stanza to inputs.conf on the system generating logs with a title of [WinEventLog://Microsoft-Windows-WMI-Activity/Operational]. +annotations = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047"], "nist": ["PR.PT", "PR.AT", "PR.AC", "PR.IP"]} +known_false_positives = Although unlikely, administrators may use event subscriptions for legitimate purposes. +providing_technologies = [] + [savedsearch://ESCU - WMI Permanent Event Subscription - Sysmon - Rule] type = detection asset_type = Endpoint @@ -3554,6 +3664,16 @@ annotations = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Ob known_false_positives = Although unlikely, administrators may use event subscriptions for legitimate purposes. providing_technologies = [] +[savedsearch://ESCU - WMI Temporary Event Subscription - Rule] +type = detection +asset_type = Endpoint +confidence = medium +explanation = This search looks for the creation of WMI temporary event subscriptions. +how_to_implement = To successfully implement this search, you must be ingesting the Windows WMI activity logs. This can be done by adding a stanza to inputs.conf on the system generating logs with a title of [WinEventLog://Microsoft-Windows-WMI-Activity/Operational]. +annotations = {"cis20": ["CIS 3", "CIS 5"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1047"], "nist": ["PR.PT", "PR.AT", "PR.AC", "PR.IP"]} +known_false_positives = Some software may create WMI temporary event subscriptions for various purposes. The included search contains an exception for two of these that occur by default on Windows 10 systems. You may need to modify the search to create exceptions for other legitimate events. +providing_technologies = [] + [savedsearch://ESCU - Web Fraud - Account Harvesting - Rule] type = detection asset_type = Account diff --git a/package/lookups/mitre_enrichment.csv b/package/lookups/mitre_enrichment.csv index 0717cbc6ba..1d54cd2b6a 100644 --- a/package/lookups/mitre_enrichment.csv +++ b/package/lookups/mitre_enrichment.csv @@ -1,5 +1,102 @@ mitre_id,technique,tactics,groups -T1205.001,Port Knocking,Defense Evasion|Persistence|Command And Control,no +T1059.008,Network Device CLI,Execution,no +T1602.002,Network Device Configuration Dump,Collection,no +T1542.005,TFTP Boot,Defense Evasion|Persistence,no +T1542.004,ROMMONkit,Defense Evasion|Persistence,no +T1602.001,SNMP (MIB Dump),Collection,no +T1602,Data from Configuration Repository,Collection,no +T1601.002,Downgrade System Image,Defense Evasion,no +T1601.001,Patch System Image,Defense Evasion,no +T1601,Modify System Image,Defense Evasion,no +T1600.002,Disable Crypto Hardware,Defense Evasion,no +T1600.001,Reduce Key Space,Defense Evasion,no +T1600,Weaken Encryption,Defense Evasion,no +T1556.004,Network Device Authentication,Credential Access|Defense Evasion,no +T1599.001,Network Address Translation Traversal,Defense Evasion,no +T1599,Network Boundary Bridging,Defense Evasion,no +T1020.001,Traffic Duplication,Exfiltration,no +T1557.002,ARP Cache Poisoning,Credential Access|Collection,Cleaver +T1588.006,Vulnerabilities,Resource Development,no +T1053.006,Systemd Timers,Execution|Persistence|Privilege Escalation,no +T1562.008,Disable Cloud Logs,Defense Evasion,no +T1547.012,Print Processors,Persistence|Privilege Escalation,no +T1598.003,Spearphishing Link,Reconnaissance,no +T1598.002,Spearphishing Attachment,Reconnaissance,no +T1598.001,Spearphishing Service,Reconnaissance,no +T1598,Phishing for Information,Reconnaissance,no +T1597.002,Purchase Technical Data,Reconnaissance,no +T1597.001,Threat Intel Vendors,Reconnaissance,no +T1597,Search Closed Sources,Reconnaissance,no +T1596.005,Scan Databases,Reconnaissance,no +T1596.004,CDNs,Reconnaissance,no +T1596.003,Digital Certificates,Reconnaissance,no +T1596.001,DNS/Passive DNS,Reconnaissance,no +T1596.002,WHOIS,Reconnaissance,no +T1596,Search Open Technical Databases,Reconnaissance,no +T1595.002,Vulnerability Scanning,Reconnaissance,no +T1595.001,Scanning IP Blocks,Reconnaissance,no +T1595,Active Scanning,Reconnaissance,no +T1594,Search Victim-Owned Websites,Reconnaissance,no +T1593.002,Search Engines,Reconnaissance,no +T1593.001,Social Media,Reconnaissance,no +T1593,Search Open Websites/Domains,Reconnaissance,no +T1592.004,Client Configurations,Reconnaissance,no +T1592.003,Firmware,Reconnaissance,no +T1592.002,Software,Reconnaissance,no +T1592.001,Hardware,Reconnaissance,no +T1592,Gather Victim Host Information,Reconnaissance,no +T1591.004,Identify Roles,Reconnaissance,no +T1591.003,Identify Business Tempo,Reconnaissance,no +T1591.001,Determine Physical Locations,Reconnaissance,no +T1591.002,Business Relationships,Reconnaissance,no +T1591,Gather Victim Org Information,Reconnaissance,no +T1590.006,Network Security Appliances,Reconnaissance,no +T1590.005,IP Addresses,Reconnaissance,no +T1590.004,Network Topology,Reconnaissance,no +T1590.003,Network Trust Dependencies,Reconnaissance,no +T1590.002,DNS,Reconnaissance,no +T1590.001,Domain Properties,Reconnaissance,no +T1590,Gather Victim Network Information,Reconnaissance,no +T1589.003,Employee Names,Reconnaissance,no +T1589.002,Email Addresses,Reconnaissance,no +T1589.001,Credentials,Reconnaissance,no +T1589,Gather Victim Identity Information,Reconnaissance,no +T1588.005,Exploits,Resource Development,no +T1588.004,Digital Certificates,Resource Development,no +T1588.003,Code Signing Certificates,Resource Development,Wizard Spider +T1588.002,Tool,Resource Development,no +T1588.001,Malware,Resource Development,Turla|APT1 +T1588,Obtain Capabilities,Resource Development,no +T1587.004,Exploits,Resource Development,no +T1587.003,Digital Certificates,Resource Development,APT29|PROMETHIUM +T1587.002,Code Signing Certificates,Resource Development,PROMETHIUM|Patchwork +T1587.001,Malware,Resource Development,Turla|FIN7|Night Dragon|Cleaver +T1587,Develop Capabilities,Resource Development,no +T1586.002,Email Accounts,Resource Development,no +T1586.001,Social Media Accounts,Resource Development,no +T1586,Compromise Accounts,Resource Development,no +T1585.002,Email Accounts,Resource Development,APT1 +T1585.001,Social Media Accounts,Resource Development,Cleaver +T1585,Establish Accounts,Resource Development,APT17 +T1584.006,Web Services,Resource Development,Turla +T1584.005,Botnet,Resource Development,no +T1584.004,Server,Resource Development,Turla|APT16 +T1584.003,Virtual Private Server,Resource Development,Turla +T1584.002,DNS Server,Resource Development,no +T1584.001,Domains,Resource Development,APT1 +T1583.006,Web Services,Resource Development,APT17|APT29 +T1583.005,Botnet,Resource Development,no +T1583.004,Server,Resource Development,no +T1583.003,Virtual Private Server,Resource Development,TEMP.Veles +T1583.002,DNS Server,Resource Development,no +T1584,Compromise Infrastructure,Resource Development,no +T1583.001,Domains,Resource Development,APT1|APT28 +T1583,Acquire Infrastructure,Resource Development,no +T1564.007,VBA Stomping,Defense Evasion,no +T1558.004,AS-REP Roasting,Credential Access,no +T1580,Cloud Infrastructure Discovery,Discovery,no +T1218.012,Verclsid,Defense Evasion,no +T1205.001,Port Knocking,Defense Evasion|Persistence|Command And Control,PROMETHIUM T1564.006,Run Virtual Instance,Defense Evasion,no T1564.005,Hidden File System,Defense Evasion,Strider|Equation T1556.003,Pluggable Authentication Modules,Credential Access|Defense Evasion,no @@ -7,7 +104,7 @@ T1574.012,COR_PROFILER,Persistence|Privilege Escalation|Defense Evasion,Blue Moc T1562.007,Disable or Modify Cloud Firewall,Defense Evasion,no T1098.004,SSH Authorized Keys,Persistence,no T1480.001,Environmental Keying,Defense Evasion,APT41|Equation -T1059.007,JavaScript/JScript,Execution,APT32|FIN7|Cobalt Group|Molerats|TA505|Silence|Leafminer +T1059.007,JavaScript/JScript,Execution,FIN6|APT32|FIN7|Cobalt Group|Molerats|TA505|Silence|Leafminer T1578.004,Revert Cloud Instance,Defense Evasion,no T1578.003,Delete Cloud Instance,Defense Evasion,no T1578.001,Create Snapshot,Defense Evasion,no @@ -24,13 +121,13 @@ T1546.015,Component Object Model Hijacking,Privilege Escalation|Persistence,APT2 T1071.004,DNS,Command And Control,APT39|Tropic Trooper|OilRig|Ke3chang|Cobalt Group|APT18|APT41|FIN7 T1071.003,Mail Protocols,Command And Control,APT32|SilverTerrier|APT28 T1071.002,File Transfer Protocols,Command And Control,APT41|SilverTerrier|Machete|Honeybee -T1071.001,Web Protocols,Command And Control,Sandworm Team|TA505|Rocke|APT39|Tropic Trooper|MuddyWater|Wizard Spider|Inception|APT41|SilverTerrier|Machete|APT28|WIRTE|APT33|FIN4|Night Dragon|APT18|APT38|Cobalt Group|APT19|Threat Group-3390|Rancor|Orangeworm|APT37|Ke3chang|Dark Caracal|Turla|Lazarus Group|BRONZE BUTLER|APT32|OilRig|Magic Hound|Gamaredon Group|Stealth Falcon +T1071.001,Web Protocols,Command And Control,Sandworm Team|TA505|Rocke|APT39|Tropic Trooper|MuddyWater|Wizard Spider|Inception|APT41|SilverTerrier|Machete|APT28|WIRTE|APT33|FIN4|Night Dragon|APT18|APT38|Threat Group-3390|Cobalt Group|APT37|Turla|APT19|Rancor|Orangeworm|Dark Caracal|Ke3chang|Lazarus Group|APT32|BRONZE BUTLER|OilRig|Magic Hound|Gamaredon Group|Stealth Falcon T1572,Protocol Tunneling,Command And Control,OilRig|Cobalt Group|FIN6 -T1048.003,Exfiltration Over Unencrypted/Obfuscated Non-C2 Protocol,Exfiltration,APT32|APT33|Thrip|FIN8|OilRig|Lazarus Group +T1048.003,Exfiltration Over Unencrypted/Obfuscated Non-C2 Protocol,Exfiltration,Wizard Spider|FIN6|APT32|APT33|Thrip|FIN8|OilRig|Lazarus Group T1048.002,Exfiltration Over Asymmetric Encrypted Non-C2 Protocol,Exfiltration,no T1048.001,Exfiltration Over Symmetric Encrypted Non-C2 Protocol,Exfiltration,no T1001.003,Protocol Impersonation,Command And Control,Lazarus Group -T1001.002,Steganography,Command And Control,Axiom +T1001.002,Steganography,Command And Control,APT29|Axiom T1001.001,Junk Data,Command And Control,APT28 T1132.002,Non-Standard Encoding,Command And Control,no T1132.001,Standard Encoding,Command And Control,Sandworm Team|Tropic Trooper|MuddyWater|APT33|APT19|Lazarus Group|BRONZE BUTLER|Patchwork @@ -39,20 +136,20 @@ T1090.003,Multi-hop Proxy,Command And Control,Inception|FIN4|APT29 T1090.002,External Proxy,Command And Control,APT39|Silence|Soft Cell|MuddyWater|APT3|FIN5|Lazarus Group|menuPass|APT28 T1090.001,Internal Proxy,Command And Control,APT39|Strider T1102.003,One-Way Communication,Command And Control,Leviathan -T1102.002,Bidirectional Communication,Command And Control,Sandworm Team|APT39|APT12|Turla|FIN7|APT37|Magic Hound|Carbanak +T1102.002,Bidirectional Communication,Command And Control,APT29|Sandworm Team|APT39|APT12|Turla|FIN7|APT37|Magic Hound|Carbanak T1102.001,Dead Drop Resolver,Command And Control,Rocke|APT41|BRONZE BUTLER|RTM|Patchwork T1571,Non-Standard Port,Command And Control,Sandworm Team|Rocke|DarkVishnya|Silence|APT-C-36|Magic Hound|APT33|APT32|TEMP.Veles|Lazarus Group|FIN7 T1074.002,Remote Data Staging,Collection,Threat Group-3390|menuPass|FIN6|Night Dragon|FIN8 -T1074.001,Local Data Staging,Collection,Machete|Soft Cell|TEMP.Veles|Patchwork|Dragonfly 2.0|Honeybee|Leviathan|APT3|FIN5|menuPass|FIN6|Lazarus Group|Threat Group-3390|APT28 +T1074.001,Local Data Staging,Collection,Machete|Soft Cell|TEMP.Veles|Patchwork|Honeybee|Dragonfly 2.0|Leviathan|FIN5|APT3|menuPass|Lazarus Group|Threat Group-3390|APT28 T1078.004,Cloud Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,APT33 T1564.004,NTFS File Attributes,Defense Evasion,APT32 T1564.003,Hidden Window,Defense Evasion,Gorgon Group|Deep Panda|DarkHydrus|CopyKittens|APT19|APT32|APT28|APT3|Magic Hound -T1078.003,Local Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,Tropic Trooper|FIN10|Stolen Pencil|APT32 -T1078.002,Domain Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,TA505|APT3|Threat Group-1314 +T1078.003,Local Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,PROMETHIUM|Tropic Trooper|FIN10|Stolen Pencil|APT32 +T1078.002,Domain Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,Wizard Spider|APT29|TA505|APT3|Threat Group-1314 T1078.001,Default Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,no T1564.002,Hidden Users,Defense Evasion,no T1574.006,LD_PRELOAD,Persistence|Privilege Escalation|Defense Evasion,Rocke -T1574.002,DLL Side-Loading,Persistence|Privilege Escalation|Defense Evasion,BRONZE BUTLER|Naikon|APT41|Soft Cell|Tropic Trooper|Patchwork|APT19|APT32|APT3|menuPass|Threat Group-3390 +T1574.002,DLL Side-Loading,Persistence|Privilege Escalation|Defense Evasion,BRONZE BUTLER|Naikon|APT41|Soft Cell|Tropic Trooper|APT19|Patchwork|APT32|APT3|menuPass|Threat Group-3390 T1574.001,DLL Search Order Hijacking,Persistence|Privilege Escalation|Defense Evasion,Whitefly|RTM|Threat Group-3390|menuPass T1574.008,Path Interception by Search Order Hijacking,Persistence|Privilege Escalation|Defense Evasion,no T1574.007,Path Interception by PATH Environment Variable,Persistence|Privilege Escalation|Defense Evasion,no @@ -64,14 +161,14 @@ T1574,Hijack Execution Flow,Persistence|Privilege Escalation|Defense Evasion,no T1069.001,Local Groups,Discovery,Turla|OilRig|admin@338 T1570,Lateral Tool Transfer,Lateral Movement,APT32|Wizard Spider|Turla|FIN10 T1568.003,DNS Calculation,Command And Control,APT12 -T1204.002,Malicious File,Execution,Magic Hound|Windshift|APT33|Sandworm Team|Naikon|Whitefly|Tropic Trooper|Gamaredon Group|Sharpshooter|Molerats|Wizard Spider|Mofang|Frankenstein|RTM|Inception|BlackTech|APT-C-36|Machete|admin@338|APT12|TA505|Silence|The White Company|APT39|FIN4|Darkhotel|Gallmaker|APT19|Dragonfly 2.0|BRONZE BUTLER|Cobalt Group|DarkHydrus|Gorgon Group|Patchwork|OilRig|Dark Caracal|MuddyWater|Lazarus Group|FIN7|APT32|Rancor|APT37|FIN8|APT28|Elderwood|TA459|APT29|Leviathan|menuPass|PLATINUM -T1204.001,Malicious Link,Execution,Patchwork|Windshift|APT32|Molerats|Mofang|BlackTech|TA505|OilRig|Machete|Leviathan|FIN8|FIN4|Elderwood|Dragonfly 2.0|Cobalt Group|APT39|Night Dragon|APT33|Turla +T1204.002,Malicious File,Execution,FIN6|PROMETHIUM|APT30|Magic Hound|Windshift|APT33|Sandworm Team|Naikon|Whitefly|Tropic Trooper|Gamaredon Group|Sharpshooter|Molerats|Wizard Spider|Mofang|Frankenstein|RTM|Inception|BlackTech|APT-C-36|Machete|admin@338|APT12|TA505|Silence|The White Company|APT39|FIN4|Darkhotel|Gallmaker|Dragonfly 2.0|APT19|Cobalt Group|BRONZE BUTLER|DarkHydrus|APT32|Dark Caracal|FIN7|Gorgon Group|OilRig|MuddyWater|Lazarus Group|Patchwork|Rancor|TA459|APT28|FIN8|APT37|APT29|menuPass|Elderwood|Leviathan|PLATINUM +T1204.001,Malicious Link,Execution,Wizard Spider|Patchwork|Windshift|APT32|Molerats|Mofang|BlackTech|TA505|OilRig|Machete|Leviathan|FIN8|FIN4|Elderwood|Dragonfly 2.0|Cobalt Group|APT39|Night Dragon|APT33|Turla T1195.003,Compromise Hardware Supply Chain,Initial Access,no -T1195.002,Compromise Software Supply Chain,Initial Access,Sandworm Team|APT41 +T1195.002,Compromise Software Supply Chain,Initial Access,GOLD SOUTHFIELD|Dragonfly|Sandworm Team|APT41 T1195.001,Compromise Software Dependencies and Development Tools,Initial Access,no -T1568.001,Fast Flux DNS,Command And Control,TA505 +T1568.001,Fast Flux DNS,Command And Control,Machete|TA505 T1052.001,Exfiltration over USB,Exfiltration,Tropic Trooper -T1569.002,Service Execution,Execution,Blue Mockingbird|APT39|APT41|Silence|FIN6|APT32|Honeybee|Ke3chang +T1569.002,Service Execution,Execution,Wizard Spider|Blue Mockingbird|APT39|APT41|Silence|FIN6|APT32|Honeybee|Ke3chang T1569.001,Launchctl,Execution,no T1569,System Services,Execution,no T1568.002,Domain Generation Algorithms,Command And Control,APT41 @@ -79,22 +176,22 @@ T1568,Dynamic Resolution,Command And Control,no T1011.001,Exfiltration Over Bluetooth,Exfiltration,no T1567.002,Exfiltration to Cloud Storage,Exfiltration,Leviathan|Turla T1567.001,Exfiltration to Code Repository,Exfiltration,no -T1059.006,Python,Execution,Rocke|BRONZE BUTLER|APT39|Dragonfly 2.0|Machete -T1059.005,Visual Basic,Execution,APT33|Sandworm Team|Gamaredon Group|Sharpshooter|Molerats|Frankenstein|Inception|APT-C-36|Rancor|Patchwork|MuddyWater|Honeybee|FIN7|APT37|BRONZE BUTLER|APT32|Turla|TA505|Silence|WIRTE|FIN4|Cobalt Group|Gorgon Group|Leviathan|TA459|Magic Hound +T1059.006,Python,Execution,APT29|Rocke|BRONZE BUTLER|APT39|Dragonfly 2.0|Machete +T1059.005,Visual Basic,Execution,Lazarus Group|APT33|Sandworm Team|Gamaredon Group|Sharpshooter|Molerats|Frankenstein|Inception|APT-C-36|Rancor|Patchwork|MuddyWater|Honeybee|FIN7|APT37|BRONZE BUTLER|APT32|Turla|TA505|Silence|WIRTE|FIN4|Cobalt Group|Gorgon Group|TA459|Leviathan|Magic Hound T1059.004,Unix Shell,Execution,Rocke|APT41 -T1059.003,Windows Command Shell,Execution,TA505|Blue Mockingbird|Tropic Trooper|Frankenstein|OilRig|Lazarus Group|Honeybee|Cobalt Group|FIN7|APT41|Soft Cell|Turla|Silence|APT32|APT39|Darkhotel|MuddyWater|APT18|APT38|Dark Caracal|Gorgon Group|Dragonfly 2.0|Rancor|Ke3chang|APT37|Leviathan|FIN8|APT28|Magic Hound|Sowbug|BRONZE BUTLER|FIN10|Threat Group-3390|menuPass|Gamaredon Group|Suckfly|Patchwork|Threat Group-1314|APT3|admin@338|APT1 +T1059.003,Windows Command Shell,Execution,Wizard Spider|FIN6|TA505|Blue Mockingbird|Tropic Trooper|Frankenstein|OilRig|Lazarus Group|Honeybee|Cobalt Group|FIN7|APT41|Soft Cell|Turla|Silence|APT32|Darkhotel|MuddyWater|APT18|APT38|Gorgon Group|Dark Caracal|Ke3chang|Dragonfly 2.0|Rancor|APT37|Leviathan|FIN8|APT28|Sowbug|BRONZE BUTLER|Magic Hound|FIN10|menuPass|Threat Group-3390|Gamaredon Group|Patchwork|Suckfly|Threat Group-1314|APT3|admin@338|APT1 T1059.002,AppleScript,Execution,no -T1059.001,PowerShell,Execution,Blue Mockingbird|APT39|DarkVishnya|Molerats|Wizard Spider|Frankenstein|Inception|Silence|APT41|Kimsuky|Soft Cell|TA505|WIRTE|TEMP.Veles|APT33|Gallmaker|Turla|APT19|DarkHydrus|APT28|Thrip|Gorgon Group|Cobalt Group|Dragonfly 2.0|Leviathan|TA459|FIN8|MuddyWater|Magic Hound|OilRig|BRONZE BUTLER|CopyKittens|APT32|FIN7|FIN10|Threat Group-3390|menuPass|Patchwork|Stealth Falcon|FIN6|Poseidon Group|APT3|APT29|Deep Panda +T1059.001,PowerShell,Execution,Lazarus Group|Chimera|Blue Mockingbird|APT39|DarkVishnya|Molerats|Wizard Spider|Frankenstein|Inception|Silence|APT41|Kimsuky|Soft Cell|TA505|WIRTE|TEMP.Veles|APT33|Gallmaker|Turla|Gorgon Group|APT19|DarkHydrus|APT28|Dragonfly 2.0|Thrip|Cobalt Group|Leviathan|TA459|MuddyWater|FIN8|Magic Hound|BRONZE BUTLER|CopyKittens|OilRig|FIN10|APT32|FIN7|Threat Group-3390|menuPass|Patchwork|Stealth Falcon|FIN6|Poseidon Group|APT3|APT29|Deep Panda T1567,Exfiltration Over Web Service,Exfiltration,no T1497.003,Time Based Evasion,Defense Evasion|Discovery,no T1497.002,User Activity Based Checks,Defense Evasion|Discovery,FIN7 T1497.001,System Checks,Defense Evasion|Discovery,Frankenstein T1498.002,Reflection Amplification,Impact,no T1498.001,Direct Network Flood,Impact,no -T1566.003,Spearphishing via Service,Initial Access,Magic Hound|Windshift|FIN6|OilRig|Dark Caracal -T1566.002,Spearphishing Link,Initial Access,Windshift|Molerats|Mofang|BlackTech|Machete|Kimsuky|TA505|Stolen Pencil|APT39|FIN4|APT32|Night Dragon|Turla|APT28|Cobalt Group|Dragonfly 2.0|OilRig|APT33|Elderwood|Leviathan|Magic Hound|Patchwork|APT29|FIN8 -T1566.001,Spearphishing Attachment,Initial Access,Magic Hound|Windshift|APT33|Sandworm Team|Naikon|Gamaredon Group|Sharpshooter|Molerats|Mofang|Wizard Spider|RTM|Frankenstein|Inception|BlackTech|APT-C-36|APT41|Machete|admin@338|Kimsuky|APT12|TA505|Silence|The White Company|APT39|FIN4|Darkhotel|Gallmaker|Tropic Trooper|Turla|Gorgon Group|Rancor|DarkHydrus|Cobalt Group|FIN7|OilRig|Lazarus Group|APT19|Dragonfly 2.0|BRONZE BUTLER|APT32|FIN8|MuddyWater|APT28|TA459|Leviathan|Patchwork|PLATINUM|Elderwood|APT29|APT37|menuPass -T1566,Phishing,Initial Access,no +T1566.003,Spearphishing via Service,Initial Access,Lazarus Group|Magic Hound|Windshift|FIN6|OilRig|Dark Caracal +T1566.002,Spearphishing Link,Initial Access,Wizard Spider|APT1|Windshift|Molerats|Mofang|BlackTech|Machete|Kimsuky|TA505|Stolen Pencil|APT39|FIN4|APT32|Night Dragon|OilRig|Turla|APT28|Cobalt Group|Dragonfly 2.0|APT33|Elderwood|APT29|Leviathan|Patchwork|Magic Hound|FIN8 +T1566.001,Spearphishing Attachment,Initial Access,APT1|FIN6|APT30|Magic Hound|Windshift|APT33|Sandworm Team|Naikon|Gamaredon Group|Sharpshooter|Molerats|Mofang|Wizard Spider|RTM|Frankenstein|Inception|BlackTech|APT-C-36|APT41|Machete|admin@338|Kimsuky|APT12|TA505|Silence|The White Company|APT39|FIN4|Darkhotel|Gallmaker|Tropic Trooper|Turla|Cobalt Group|FIN7|OilRig|Gorgon Group|Rancor|DarkHydrus|BRONZE BUTLER|APT32|Lazarus Group|APT19|Dragonfly 2.0|FIN8|MuddyWater|TA459|APT28|PLATINUM|Patchwork|Elderwood|APT29|Leviathan|APT37|menuPass +T1566,Phishing,Initial Access,GOLD SOUTHFIELD|Dragonfly T1565.003,Runtime Data Manipulation,Impact,APT38 T1565.002,Transmitted Data Manipulation,Impact,APT38 T1565.001,Stored Data Manipulation,Impact,FIN4|APT38 @@ -104,18 +201,18 @@ T1564,Hide Artifacts,Defense Evasion,no T1563.002,RDP Hijacking,Lateral Movement,no T1563.001,SSH Hijacking,Lateral Movement,no T1563,Remote Service Session Hijacking,Lateral Movement,no -T1518.001,Security Software Discovery,Discovery,Turla|Rocke|Frankenstein|The White Company|Cobalt Group|Darkhotel|MuddyWater|Tropic Trooper|FIN8|Patchwork|Naikon +T1518.001,Security Software Discovery,Discovery,Wizard Spider|Turla|Rocke|Frankenstein|The White Company|Cobalt Group|Darkhotel|MuddyWater|Tropic Trooper|FIN8|Patchwork|Naikon T1069.003,Cloud Groups,Discovery,no T1069.002,Domain Groups,Discovery,Turla|Wizard Spider|Inception|OilRig|FIN6|Dragonfly 2.0|Ke3chang T1087.004,Cloud Account,Discovery,no T1087.003,Email Account,Discovery,Sandworm Team|TA505 -T1087.002,Domain Account,Discovery,Turla|Sandworm Team|Dragonfly 2.0|OilRig|BRONZE BUTLER|menuPass|FIN6|Poseidon Group|Ke3chang +T1087.002,Domain Account,Discovery,Wizard Spider|Chimera|Turla|Sandworm Team|Dragonfly 2.0|BRONZE BUTLER|OilRig|menuPass|FIN6|Poseidon Group|Ke3chang T1087.001,Local Account,Discovery,Turla|Poseidon Group|OilRig|Ke3chang|APT32|APT1|Threat Group-3390|APT3|admin@338 T1553.004,Install Root Certificate,Defense Evasion,no T1562.004,Disable or Modify System Firewall,Defense Evasion,Rocke|Lazarus Group|Kimsuky|Dragonfly 2.0|Carbanak -T1562.003,HISTCONTROL,Defense Evasion,no +T1562.003,Impair Command History Logging,Defense Evasion,no T1562.002,Disable Windows Event Logging,Defense Evasion,Threat Group-3390 -T1562.001,Disable or Modify Tools,Defense Evasion,Gamaredon Group|BRONZE BUTLER|Rocke|Kimsuky|Turla|Night Dragon|Gorgon Group|Lazarus Group|Putter Panda +T1562.001,Disable or Modify Tools,Defense Evasion,Wizard Spider|FIN6|Gamaredon Group|BRONZE BUTLER|Rocke|Kimsuky|Turla|Night Dragon|Gorgon Group|Lazarus Group|Putter Panda T1562,Impair Defenses,Defense Evasion,no T1003.004,LSA Secrets,Credential Access,OilRig|MuddyWater|menuPass|Leafminer|Ke3chang|Dragonfly 2.0|APT33|Threat Group-3390 T1003.005,Cached Domain Credentials,Credential Access,OilRig|MuddyWater|Leafminer|APT33 @@ -124,8 +221,8 @@ T1561.001,Disk Content Wipe,Impact,Lazarus Group T1561,Disk Wipe,Impact,no T1560.003,Archive via Custom Method,Collection,Lazarus Group|Kimsuky|CopyKittens|FIN6 T1560.002,Archive via Library,Collection,Lazarus Group|Threat Group-3390 -T1560.001,Archive via Utility,Collection,APT41|Soft Cell|Turla|Gallmaker|APT33|APT39|MuddyWater|Magic Hound|FIN8|BRONZE BUTLER|CopyKittens|APT3|Sowbug|menuPass|APT1|Ke3chang -T1560,Archive Collected Data,Collection,menuPass|APT32|Honeybee|Patchwork|APT28|Dragonfly 2.0|FIN6|Lazarus Group|Ke3chang +T1560.001,Archive via Utility,Collection,Chimera|APT41|Soft Cell|Turla|Gallmaker|APT33|APT39|MuddyWater|Magic Hound|FIN8|BRONZE BUTLER|CopyKittens|APT3|Sowbug|menuPass|APT1|Ke3chang +T1560,Archive Collected Data,Collection,menuPass|APT32|Patchwork|Honeybee|APT28|Dragonfly 2.0|FIN6|Lazarus Group|Ke3chang T1499.004,Application or System Exploitation,Impact,no T1499.003,Application Exhaustion Flood,Impact,no T1499.002,Service Exhaustion Flood,Impact,no @@ -142,60 +239,60 @@ T1134.002,Create Process with Token,Defense Evasion|Privilege Escalation,Turla|L T1134.001,Token Impersonation/Theft,Defense Evasion|Privilege Escalation,APT28 T1213.002,Sharepoint,Collection,Ke3chang|APT28 T1213.001,Confluence,Collection,no -T1555.003,Credentials from Web Browsers,Credential Access,Magic Hound|Sandworm Team|Inception|Stealth Falcon|OilRig|Leafminer|APT33|APT3|Kimsuky|TA505|Stolen Pencil|MuddyWater|APT37|Patchwork|Molerats +T1555.003,Credentials from Web Browsers,Credential Access,FIN6|Magic Hound|Sandworm Team|Inception|Stealth Falcon|OilRig|Leafminer|APT33|APT3|Kimsuky|TA505|Stolen Pencil|MuddyWater|APT37|Patchwork|Molerats T1555.002,Securityd Memory,Credential Access,no T1555.001,Keychain,Credential Access,no -T1559.002,Dynamic Data Exchange,Execution,Sharpshooter|TA505|MuddyWater|Gallmaker|Patchwork|Cobalt Group|APT37|APT28|FIN7 +T1559.002,Dynamic Data Exchange,Execution,Sharpshooter|TA505|MuddyWater|Gallmaker|Patchwork|Cobalt Group|APT37|FIN7|APT28 T1559.001,Component Object Model,Execution,Gamaredon Group|MuddyWater T1559,Inter-Process Communication,Execution,no T1558.002,Silver Ticket,Credential Access,no T1558.001,Golden Ticket,Credential Access,Ke3chang T1558,Steal or Forge Kerberos Tickets,Credential Access,no -T1557.001,LLMNR/NBT-NS Poisoning and SMB Relay,Credential Access|Collection,no +T1557.001,LLMNR/NBT-NS Poisoning and SMB Relay,Credential Access|Collection,Wizard Spider T1557,Man-in-the-Middle,Credential Access|Collection,no T1556.002,Password Filter DLL,Credential Access|Defense Evasion,Strider -T1556.001,Domain Controller Authentication,Credential Access|Defense Evasion,no +T1556.001,Domain Controller Authentication,Credential Access|Defense Evasion,Chimera T1556,Modify Authentication Process,Credential Access|Defense Evasion,no T1056.004,Credential API Hooking,Collection|Credential Access,PLATINUM T1056.003,Web Portal Capture,Collection|Credential Access,no T1056.002,GUI Input Capture,Collection|Credential Access,FIN4 -T1056.001,Keylogging,Collection|Credential Access,APT32|Sandworm Team|APT39|APT41|Kimsuky|menuPass|Stolen Pencil|FIN4|APT38|Ke3chang|OilRig|PLATINUM|Sowbug|Magic Hound|Group5|Lazarus Group|Threat Group-3390|APT3|Darkhotel|APT28 -T1555,Credentials from Password Stores,Credential Access,APT39|OilRig|MuddyWater|Leafminer|APT33|Turla|Stealth Falcon +T1056.001,Keylogging,Collection|Credential Access,APT32|Sandworm Team|APT39|APT41|Kimsuky|menuPass|Stolen Pencil|FIN4|APT38|Ke3chang|OilRig|PLATINUM|Magic Hound|Sowbug|Group5|Lazarus Group|Threat Group-3390|APT3|Darkhotel|APT28 +T1555,Credentials from Password Stores,Credential Access,FIN6|APT39|OilRig|MuddyWater|Leafminer|APT33|Turla|Stealth Falcon T1552.005,Cloud Instance Metadata API,Credential Access,no T1003.008,/etc/passwd and /etc/shadow,Credential Access,no T1003.007,Proc Filesystem,Credential Access,no T1003.006,DCSync,Credential Access,no -T1558.003,Kerberoasting,Credential Access,no +T1558.003,Kerberoasting,Credential Access,Wizard Spider T1552.006,Group Policy Preferences,Credential Access,APT33 -T1003.003,NTDS,Credential Access,FIN6|Dragonfly 2.0 -T1003.002,Security Account Manager,Credential Access,Threat Group-3390|Ke3chang|Soft Cell|Night Dragon|Dragonfly 2.0|menuPass -T1003.001,LSASS Memory,Credential Access,Sandworm Team|Whitefly|Blue Mockingbird|Silence|Threat Group-3390|Leviathan|APT41|Soft Cell|TEMP.Veles|APT33|APT39|Stolen Pencil|APT32|Lazarus Group|Leafminer|Magic Hound|MuddyWater|PLATINUM|FIN8|BRONZE BUTLER|OilRig|FIN6|APT3|APT28|APT1|Ke3chang|Cleaver +T1003.003,NTDS,Credential Access,Wizard Spider|Chimera|FIN6|Dragonfly 2.0 +T1003.002,Security Account Manager,Credential Access,Wizard Spider|Threat Group-3390|Ke3chang|Soft Cell|Night Dragon|Dragonfly 2.0|menuPass +T1003.001,LSASS Memory,Credential Access,Sandworm Team|Whitefly|Blue Mockingbird|Silence|Threat Group-3390|Leviathan|APT41|Soft Cell|TEMP.Veles|APT33|APT39|Stolen Pencil|APT32|Lazarus Group|Magic Hound|Leafminer|MuddyWater|FIN8|PLATINUM|BRONZE BUTLER|OilRig|FIN6|APT3|APT28|APT1|Ke3chang|Cleaver T1110.004,Credential Stuffing,Credential Access,no -T1110.003,Password Spraying,Credential Access,APT33|Leafminer|Lazarus Group -T1110.002,Password Cracking,Credential Access,APT41|Dragonfly 2.0|APT3 -T1110.001,Password Guessing,Credential Access,no -T1021.006,Windows Remote Management,Lateral Movement,Threat Group-3390 +T1110.003,Password Spraying,Credential Access,APT28|APT33|Leafminer|Lazarus Group +T1110.002,Password Cracking,Credential Access,FIN6|APT41|Dragonfly 2.0|APT3 +T1110.001,Password Guessing,Credential Access,APT28 +T1021.006,Windows Remote Management,Lateral Movement,Wizard Spider|Threat Group-3390 T1021.005,VNC,Lateral Movement,GCMAN T1021.004,SSH,Lateral Movement,Rocke|TEMP.Veles|Leviathan|APT39|OilRig|menuPass|GCMAN T1021.003,Distributed Component Object Model,Lateral Movement,no -T1021.002,SMB/Windows Admin Shares,Lateral Movement,Blue Mockingbird|APT39|APT32|Orangeworm|FIN8|APT3|Lazarus Group|Threat Group-1314|Turla|Deep Panda|Ke3chang -T1021.001,Remote Desktop Protocol,Lateral Movement,Blue Mockingbird|Wizard Spider|Silence|APT41|TEMP.Veles|Leviathan|APT39|Stolen Pencil|Cobalt Group|Dragonfly 2.0|FIN8|APT3|OilRig|menuPass|FIN10|Patchwork|FIN6|Lazarus Group|APT1|Axiom +T1021.002,SMB/Windows Admin Shares,Lateral Movement,Wizard Spider|Chimera|Blue Mockingbird|APT39|APT32|Orangeworm|FIN8|APT3|Lazarus Group|Threat Group-1314|Turla|Deep Panda|Ke3chang +T1021.001,Remote Desktop Protocol,Lateral Movement,Chimera|Blue Mockingbird|Wizard Spider|Silence|APT41|TEMP.Veles|Leviathan|APT39|Stolen Pencil|Cobalt Group|Dragonfly 2.0|FIN8|APT3|OilRig|menuPass|FIN10|Patchwork|FIN6|Lazarus Group|APT1|Axiom T1554,Compromise Client Software Binary,Persistence,no T1036.006,Space after Filename,Defense Evasion,no -T1036.005,Match Legitimate Name or Location,Defense Evasion,Rocke|Sandworm Team|APT39|Blue Mockingbird|Whitefly|Tropic Trooper|Silence|APT41|menuPass|TEMP.Veles|MuddyWater|BRONZE BUTLER|Sowbug|APT32|Patchwork|Poseidon Group|admin@338|Carbanak|APT1 -T1036.004,Masquerade Task or Service,Defense Evasion,Wizard Spider|APT-C-36|Carbanak|APT32|FIN6|FIN7 +T1036.005,Match Legitimate Name or Location,Defense Evasion,Chimera|PROMETHIUM|Rocke|Sandworm Team|APT39|Blue Mockingbird|Whitefly|Tropic Trooper|Silence|APT41|menuPass|TEMP.Veles|MuddyWater|BRONZE BUTLER|Sowbug|APT32|Patchwork|Poseidon Group|admin@338|Carbanak|APT1 +T1036.004,Masquerade Task or Service,Defense Evasion,Lazarus Group|PROMETHIUM|Wizard Spider|APT-C-36|Carbanak|APT32|FIN6|FIN7 T1036.003,Rename System Utilities,Defense Evasion,menuPass|APT32|Soft Cell|PLATINUM T1036.002,Right-to-Left Override,Defense Evasion,BRONZE BUTLER|BlackTech|Ke3chang|Scarlet Mimic -T1036.001,Invalid Code Signature,Defense Evasion,Windshift +T1036.001,Invalid Code Signature,Defense Evasion,Windshift|APT37 T1553.003,SIP and Trust Provider Hijacking,Defense Evasion,no -T1553.002,Code Signing,Defense Evasion,Patchwork|Silence|APT41|FIN6|TA505|FIN7|Honeybee|Leviathan|APT37|CopyKittens|Winnti Group|Suckfly|Molerats|Darkhotel +T1553.002,Code Signing,Defense Evasion,Wizard Spider|PROMETHIUM|Patchwork|Silence|APT41|FIN6|TA505|FIN7|Honeybee|Leviathan|CopyKittens|Winnti Group|Suckfly|Molerats|Darkhotel T1553.001,Gatekeeper Bypass,Defense Evasion,no T1553,Subvert Trust Controls,Defense Evasion,no T1027.003,Steganography,Defense Evasion,BRONZE BUTLER|Tropic Trooper|MuddyWater|APT37 -T1027.002,Software Packing,Defense Evasion,TA505|Rocke|Soft Cell|The White Company|APT39|APT38|Dark Caracal|Elderwood|APT3|Patchwork|APT29|Night Dragon -T1027.001,Binary Padding,Defense Evasion,Gamaredon Group|Patchwork|APT32|Leviathan|BRONZE BUTLER|Moafee +T1027.002,Software Packing,Defense Evasion,Lazarus Group|TA505|Rocke|Soft Cell|The White Company|APT39|APT38|Dark Caracal|Elderwood|APT3|Patchwork|APT29|Night Dragon +T1027.001,Binary Padding,Defense Evasion,Gamaredon Group|APT32|Patchwork|Leviathan|BRONZE BUTLER|Moafee T1222.002,Linux and Mac File and Directory Permissions Modification,Defense Evasion,Rocke|APT32 -T1222.001,Windows File and Directory Permissions Modification,Defense Evasion,no +T1222.001,Windows File and Directory Permissions Modification,Defense Evasion,Wizard Spider T1552.004,Private Keys,Credential Access,Rocke T1552.003,Bash History,Credential Access,no T1552.002,Credentials in Registry,Credential Access,APT32 @@ -204,7 +301,7 @@ T1552,Unsecured Credentials,Credential Access,no T1216.001,PubPrn,Defense Evasion,APT32 T1070.006,Timestomp,Defense Evasion,Rocke|TEMP.Veles|APT32|Lazarus Group|APT28 T1070.005,Network Share Connection Removal,Defense Evasion,Threat Group-3390 -T1070.004,File Deletion,Defense Evasion,Sandworm Team|Rocke|Tropic Trooper|Gamaredon Group|Wizard Spider|APT41|Kimsuky|Silence|The White Company|TEMP.Veles|APT32|APT38|Patchwork|Honeybee|Cobalt Group|Dragonfly 2.0|menuPass|FIN8|OilRig|FIN5|BRONZE BUTLER|Magic Hound|APT3|FIN10|APT28|Threat Group-3390|Group5|Lazarus Group|APT18|APT29 +T1070.004,File Deletion,Defense Evasion,FIN6|Sandworm Team|Rocke|Tropic Trooper|Gamaredon Group|Wizard Spider|APT41|Kimsuky|Silence|The White Company|TEMP.Veles|APT32|APT38|menuPass|Patchwork|Honeybee|Cobalt Group|Dragonfly 2.0|FIN8|BRONZE BUTLER|OilRig|Magic Hound|FIN5|APT3|FIN10|Threat Group-3390|APT28|Group5|Lazarus Group|APT18|APT29 T1070.003,Clear Command History,Defense Evasion,APT41 T1550.004,Web Session Cookie,Defense Evasion|Lateral Movement,no T1550.001,Application Access Token,Defense Evasion|Lateral Movement,APT28 @@ -213,22 +310,22 @@ T1550.002,Pass the Hash,Defense Evasion|Lateral Movement,Soft Cell|APT32|Night D T1550,Use Alternate Authentication Material,Defense Evasion|Lateral Movement,no T1548.004,Elevated Execution with Prompt,Privilege Escalation|Defense Evasion,no T1548.003,Sudo and Sudo Caching,Privilege Escalation|Defense Evasion,no -T1548.002,Bypass User Access Control,Privilege Escalation|Defense Evasion,APT37|MuddyWater|Honeybee|Cobalt Group|Threat Group-3390|BRONZE BUTLER|Patchwork|APT29 +T1548.002,Bypass User Account Control,Privilege Escalation|Defense Evasion,APT37|MuddyWater|Honeybee|Cobalt Group|Threat Group-3390|BRONZE BUTLER|Patchwork|APT29 T1548.001,Setuid and Setgid,Privilege Escalation|Defense Evasion,no T1548,Abuse Elevation Control Mechanism,Privilege Escalation|Defense Evasion,no T1136.003,Cloud Account,Persistence,no T1070.002,Clear Linux or Mac System Logs,Defense Evasion,Rocke -T1070.001,Clear Windows Event Logs,Defense Evasion,APT41|APT38|Dragonfly 2.0|APT32|FIN8|FIN5|APT28 +T1070.001,Clear Windows Event Logs,Defense Evasion,APT41|APT38|APT32|Dragonfly 2.0|FIN8|FIN5|APT28 T1136.002,Domain Account,Persistence,Soft Cell -T1136.001,Local Account,Persistence,APT39|APT41|Dragonfly 2.0|Leafminer|APT3 +T1136.001,Local Account,Persistence,APT39|APT41|Leafminer|Dragonfly 2.0|APT3 T1547.011,Plist Modification,Persistence|Privilege Escalation,no T1547.010,Port Monitors,Persistence|Privilege Escalation,no T1547.009,Shortcut Modification,Persistence|Privilege Escalation,APT39|Darkhotel|APT29|Gorgon Group|Dragonfly 2.0|Leviathan|Lazarus Group T1547.008,LSASS Driver,Persistence|Privilege Escalation,no T1547.007,Re-opened Applications,Persistence|Privilege Escalation,no T1547.006,Kernel Modules and Extensions,Persistence|Privilege Escalation,no -T1547.005,Security Support Provider,Persistence|Privilege Escalation,no -T1547.004,Winlogon Helper DLL,Persistence|Privilege Escalation,Tropic Trooper|Turla +T1547.005,Security Support Provider,Persistence|Privilege Escalation,Lazarus Group +T1547.004,Winlogon Helper DLL,Persistence|Privilege Escalation,Wizard Spider|Tropic Trooper|Turla T1547.003,Time Providers,Persistence|Privilege Escalation,no T1546.014,Emond,Privilege Escalation|Persistence,no T1546.013,PowerShell Profile,Privilege Escalation|Persistence,Turla @@ -247,22 +344,22 @@ T1546.004,.bash_profile and .bashrc,Privilege Escalation|Persistence,no T1546.003,Windows Management Instrumentation Event Subscription,Privilege Escalation|Persistence,APT33|Blue Mockingbird|Turla|Leviathan|APT29 T1546.002,Screensaver,Privilege Escalation|Persistence,no T1546.001,Change Default File Association,Privilege Escalation|Persistence,Kimsuky -T1547.001,Registry Run Keys / Startup Folder,Persistence|Privilege Escalation,Rocke|Tropic Trooper|Gamaredon Group|Sharpshooter|Molerats|Silence|RTM|Inception|APT41|Machete|Kimsuky|APT33|APT39|APT32|APT18|Turla|Dark Caracal|Cobalt Group|Honeybee|Threat Group-3390|Dragonfly 2.0|Gorgon Group|Ke3chang|APT19|Leviathan|MuddyWater|APT37|BRONZE BUTLER|Magic Hound|APT3|FIN10|FIN7|Patchwork|FIN6|Lazarus Group|Putter Panda|APT29|Darkhotel +T1547.001,Registry Run Keys / Startup Folder,Persistence|Privilege Escalation,Wizard Spider|PROMETHIUM|Rocke|Tropic Trooper|Gamaredon Group|Sharpshooter|Molerats|Silence|RTM|Inception|APT41|Machete|Kimsuky|APT33|APT39|APT32|APT18|Turla|Threat Group-3390|Dragonfly 2.0|Gorgon Group|Dark Caracal|Cobalt Group|Honeybee|APT19|Ke3chang|Leviathan|MuddyWater|APT37|BRONZE BUTLER|Magic Hound|APT3|FIN10|FIN7|Patchwork|FIN6|Lazarus Group|Putter Panda|APT29|Darkhotel T1218.002,Control Panel,Defense Evasion,no T1218.010,Regsvr32,Defense Evasion,Blue Mockingbird|Inception|WIRTE|Cobalt Group|APT19|Leviathan|APT32|Deep Panda T1218.009,Regsvcs/Regasm,Defense Evasion,no -T1218.005,Mshta,Defense Evasion,Inception|Kimsuky|APT32|MuddyWater|FIN7 -T1218.004,InstallUtil,Defense Evasion,no +T1218.005,Mshta,Defense Evasion,Lazarus Group|Inception|Kimsuky|APT32|MuddyWater|FIN7 +T1218.004,InstallUtil,Defense Evasion,menuPass T1218.001,Compiled HTML File,Defense Evasion,APT41|Silence|Lazarus Group|Dark Caracal|OilRig T1218.003,CMSTP,Defense Evasion,Cobalt Group|MuddyWater -T1218.011,Rundll32,Defense Evasion,APT32|Sandworm Team|Blue Mockingbird|TA505|MuddyWater|APT29|APT19|CopyKittens|APT3|Carbanak|APT28 +T1218.011,Rundll32,Defense Evasion,Gamaredon Group|APT32|Sandworm Team|Blue Mockingbird|TA505|MuddyWater|APT29|APT19|CopyKittens|APT3|Carbanak|APT28 T1547,Boot or Logon Autostart Execution,Persistence|Privilege Escalation,no T1546,Event Triggered Execution,Privilege Escalation|Persistence,no T1098.003,Add Office 365 Global Administrator Role,Persistence,no T1098.002,Exchange Email Delegate Permissions,Persistence,Magic Hound -T1098.001,Additional Azure Service Principal Credentials,Persistence,no +T1098.001,Additional Cloud Credentials,Persistence,no T1543.004,Launch Daemon,Persistence|Privilege Escalation,no -T1543.003,Windows Service,Persistence|Privilege Escalation,Blue Mockingbird|DarkVishnya|Wizard Spider|APT32|APT41|Kimsuky|Tropic Trooper|Cobalt Group|Ke3chang|Honeybee|FIN7|Threat Group-3390|APT19|APT3|Lazarus Group|Carbanak +T1543.003,Windows Service,Persistence|Privilege Escalation,PROMETHIUM|Blue Mockingbird|DarkVishnya|Wizard Spider|APT32|APT41|Kimsuky|Tropic Trooper|Ke3chang|Cobalt Group|Honeybee|Threat Group-3390|FIN7|APT19|APT3|Lazarus Group|Carbanak T1543.002,Systemd Service,Persistence|Privilege Escalation,Rocke T1543.001,Launch Agent,Persistence|Privilege Escalation,no T1037.005,Startup Items,Persistence|Privilege Escalation,no @@ -277,7 +374,7 @@ T1055.005,Thread Local Storage,Defense Evasion|Privilege Escalation,no T1055.004,Asynchronous Procedure Call,Defense Evasion|Privilege Escalation,no T1055.003,Thread Execution Hijacking,Defense Evasion|Privilege Escalation,no T1055.002,Portable Executable Injection,Defense Evasion|Privilege Escalation,Rocke|Gorgon Group -T1055.001,Dynamic-link Library Injection,Defense Evasion|Privilege Escalation,TA505|Turla|Tropic Trooper|Lazarus Group|Putter Panda +T1055.001,Dynamic-link Library Injection,Defense Evasion|Privilege Escalation,Wizard Spider|TA505|Turla|Tropic Trooper|Lazarus Group|Putter Panda T1037.003,Network Logon Script,Persistence|Privilege Escalation,no T1543,Create or Modify System Process,Persistence|Privilege Escalation,no T1037.002,Logon Script (Mac),Persistence|Privilege Escalation,no @@ -285,13 +382,13 @@ T1037.001,Logon Script (Windows),Persistence|Privilege Escalation,Cobalt Group|A T1542.003,Bootkit,Persistence|Defense Evasion,APT41|Lazarus Group|APT28 T1542.002,Component Firmware,Persistence|Defense Evasion,Equation T1542.001,System Firmware,Persistence|Defense Evasion,no -T1505.003,Web Shell,Persistence,Tropic Trooper|Soft Cell|Threat Group-3390|TEMP.Veles|Leviathan|APT39|Dragonfly 2.0|APT32|OilRig|Deep Panda +T1505.003,Web Shell,Persistence,Tropic Trooper|Soft Cell|Threat Group-3390|TEMP.Veles|Leviathan|APT39|Dragonfly 2.0|OilRig|APT32|Deep Panda T1505.002,Transport Agent,Persistence,no T1505.001,SQL Stored Procedures,Persistence,no T1053.003,Cron,Execution|Persistence|Privilege Escalation,Rocke T1053.004,Launchd,Execution|Persistence|Privilege Escalation,no T1053.001,At (Linux),Execution|Persistence|Privilege Escalation,no -T1053.005,Scheduled Task,Execution|Persistence|Privilege Escalation,Gamaredon Group|Blue Mockingbird|MuddyWater|Wizard Spider|Frankenstein|APT-C-36|BRONZE BUTLER|APT41|Machete|Soft Cell|Silence|TEMP.Veles|APT33|APT39|Dragonfly 2.0|Patchwork|OilRig|Rancor|Cobalt Group|FIN8|menuPass|FIN10|APT32|FIN7|Stealth Falcon|FIN6|APT3|APT29 +T1053.005,Scheduled Task,Execution|Persistence|Privilege Escalation,Chimera|Gamaredon Group|Blue Mockingbird|MuddyWater|Wizard Spider|Frankenstein|APT-C-36|BRONZE BUTLER|APT41|Machete|Soft Cell|Silence|TEMP.Veles|APT33|APT39|OilRig|Rancor|Dragonfly 2.0|Cobalt Group|Patchwork|FIN8|FIN10|menuPass|APT32|FIN7|Stealth Falcon|FIN6|APT3|APT29 T1053.002,At (Windows),Execution|Persistence|Privilege Escalation,BRONZE BUTLER|Threat Group-3390|APT18 T1542,Pre-OS Boot,Defense Evasion|Persistence,no T1137.001,Office Template Macros,Persistence,MuddyWater @@ -316,12 +413,12 @@ T1526,Cloud Service Discovery,Discovery,no T1505,Server Software Component,Persistence,no T1499,Endpoint Denial of Service,Impact,no T1497,Virtualization/Sandbox Evasion,Defense Evasion|Discovery,no -T1498,Network Denial of Service,Impact,no +T1498,Network Denial of Service,Impact,APT28 T1496,Resource Hijacking,Impact,Blue Mockingbird|Rocke|APT41|Lazarus Group T1495,Firmware Corruption,Impact,no T1491,Defacement,Impact,no T1490,Inhibit System Recovery,Impact,no -T1489,Service Stop,Impact,Lazarus Group +T1489,Service Stop,Impact,Wizard Spider|Lazarus Group T1486,Data Encrypted for Impact,Impact,APT41|TA505|APT38 T1485,Data Destruction,Impact,Sandworm Team|Lazarus Group|APT38 T1484,Group Policy Modification,Defense Evasion|Privilege Escalation,no @@ -330,38 +427,38 @@ T1480,Execution Guardrails,Defense Evasion,no T1222,File and Directory Permissions Modification,Defense Evasion,no T1221,Template Injection,Defense Evasion,Gamaredon Group|Frankenstein|Inception|APT28|Tropic Trooper|Dragonfly 2.0|DarkHydrus T1220,XSL Script Processing,Defense Evasion,Cobalt Group -T1197,BITS Jobs,Defense Evasion|Persistence,Patchwork|APT41|Leviathan -T1217,Browser Bookmark Discovery,Discovery,no -T1213,Data from Information Repositories,Collection,Turla -T1189,Drive-by Compromise,Initial Access,Turla|Windshift|RTM|Darkhotel|APT38|Dragonfly 2.0|BRONZE BUTLER|Leafminer|Dark Caracal|APT19|APT32|Lazarus Group|Threat Group-3390|Elderwood|APT37|Patchwork|PLATINUM -T1203,Exploitation for Client Execution,Execution,Sandworm Team|MuddyWater|Frankenstein|Inception|BlackTech|APT41|admin@338|Threat Group-3390|APT12|The White Company|APT33|APT32|APT28|Tropic Trooper|Lazarus Group|BRONZE BUTLER|Cobalt Group|APT37|Patchwork|Leviathan|Elderwood|TA459|APT29 +T1189,Drive-by Compromise,Initial Access,Dragonfly|PROMETHIUM|Turla|Windshift|RTM|Darkhotel|APT38|Dragonfly 2.0|BRONZE BUTLER|Leafminer|APT32|Lazarus Group|APT19|Dark Caracal|Threat Group-3390|Elderwood|APT37|Patchwork|PLATINUM T1212,Exploitation for Credential Access,Credential Access,no -T1211,Exploitation for Defense Evasion,Defense Evasion,APT28 -T1190,Exploit Public-Facing Application,Initial Access,Blue Mockingbird|Rocke|APT39|BlackTech|APT41|Soft Cell|Night Dragon|Axiom -T1210,Exploitation of Remote Services,Lateral Movement,Threat Group-3390|APT28 -T1202,Indirect Command Execution,Defense Evasion,no +T1217,Browser Bookmark Discovery,Discovery,no +T1190,Exploit Public-Facing Application,Initial Access,APT28|APT29|GOLD SOUTHFIELD|Blue Mockingbird|Rocke|APT39|BlackTech|APT41|Soft Cell|Night Dragon|Axiom +T1210,Exploitation of Remote Services,Lateral Movement,Wizard Spider|Threat Group-3390|APT28 +T1203,Exploitation for Client Execution,Execution,Sandworm Team|MuddyWater|Frankenstein|Inception|BlackTech|APT41|admin@338|Threat Group-3390|APT12|The White Company|APT33|APT32|APT28|Tropic Trooper|Lazarus Group|Cobalt Group|BRONZE BUTLER|APT37|Patchwork|Leviathan|APT29|Elderwood|TA459 T1200,Hardware Additions,Initial Access,DarkVishnya -T1201,Password Policy Discovery,Discovery,Turla|OilRig -T1219,Remote Access Software,Command And Control,Sandworm Team|DarkVishnya|RTM|Kimsuky|Night Dragon|Thrip|Cobalt Group|Carbanak +T1202,Indirect Command Execution,Defense Evasion,no T1207,Rogue Domain Controller,Defense Evasion,no -T1199,Trusted Relationship,Initial Access,APT28|menuPass +T1197,BITS Jobs,Defense Evasion|Persistence,Patchwork|APT41|Leviathan +T1211,Exploitation for Defense Evasion,Defense Evasion,APT28 +T1219,Remote Access Software,Command And Control,Sandworm Team|DarkVishnya|RTM|Kimsuky|Night Dragon|Thrip|Cobalt Group|Carbanak T1218,Signed Binary Proxy Execution,Defense Evasion,no -T1204,User Execution,Execution,no +T1213,Data from Information Repositories,Collection,FIN6|Turla T1216,Signed Script Proxy Execution,Defense Evasion,no +T1201,Password Policy Discovery,Discovery,Turla|OilRig +T1204,User Execution,Execution,no T1195,Supply Chain Compromise,Initial Access,Elderwood T1205,Traffic Signaling,Defense Evasion|Persistence|Command And Control,no +T1199,Trusted Relationship,Initial Access,GOLD SOUTHFIELD|APT28|menuPass T1176,Browser Extensions,Persistence,Kimsuky|Stolen Pencil T1175,Component Object Model and Distributed COM,Lateral Movement|Execution,no T1187,Forced Authentication,Credential Access,DarkHydrus|Dragonfly 2.0 T1185,Man in the Browser,Collection,no -T1134,Access Token Manipulation,Defense Evasion|Privilege Escalation,Blue Mockingbird +T1140,Deobfuscate/Decode Files or Information,Defense Evasion,Rocke|Sandworm Team|Gamaredon Group|Molerats|Frankenstein|Turla|WIRTE|Darkhotel|Tropic Trooper|menuPass|Honeybee|Gorgon Group|APT19|Threat Group-3390|Leviathan|APT28|MuddyWater|OilRig|BRONZE BUTLER +T1134,Access Token Manipulation,Defense Evasion|Privilege Escalation,FIN6|Blue Mockingbird T1136,Create Account,Persistence,no -T1140,Deobfuscate/Decode Files or Information,Defense Evasion,Rocke|Sandworm Team|Gamaredon Group|Molerats|Frankenstein|Turla|WIRTE|Darkhotel|Tropic Trooper|menuPass|Honeybee|Threat Group-3390|APT19|Gorgon Group|Leviathan|MuddyWater|APT28|OilRig|BRONZE BUTLER T1149,LC_MAIN Hijacking,Defense Evasion,no -T1135,Network Share Discovery,Discovery,APT32|APT39|DarkVishnya|APT41|Tropic Trooper|APT1|Dragonfly 2.0|Sowbug T1137,Office Application Startup,Persistence,Gamaredon Group|APT32 T1153,Source,Execution,no -T1133,External Remote Services,Persistence|Initial Access,Sandworm Team|APT41|Soft Cell|TEMP.Veles|Night Dragon|OilRig|Dragonfly 2.0|Ke3chang|FIN5|Threat Group-3390|APT18 +T1135,Network Share Discovery,Discovery,Wizard Spider|APT32|APT39|DarkVishnya|APT41|Tropic Trooper|APT1|Dragonfly 2.0|Sowbug +T1133,External Remote Services,Persistence|Initial Access,Wizard Spider|GOLD SOUTHFIELD|Chimera|Sandworm Team|APT41|Soft Cell|TEMP.Veles|Night Dragon|OilRig|Ke3chang|Dragonfly 2.0|FIN5|Threat Group-3390|APT18 T1132,Data Encoding,Command And Control,no T1129,Shared Modules,Execution,no T1127,Trusted Developer Utilities Proxy Execution,Defense Evasion,no @@ -369,28 +466,28 @@ T1125,Video Capture,Collection,Silence|FIN7 T1124,System Time Discovery,Discovery,The White Company|Lazarus Group|BRONZE BUTLER|Turla T1123,Audio Capture,Collection,APT37 T1120,Peripheral Device Discovery,Discovery,Turla|APT37|Gamaredon Group|Equation|APT28 -T1119,Automated Collection,Collection,Tropic Trooper|Frankenstein|APT1|APT28|Patchwork|OilRig|FIN5|Threat Group-3390|FIN6 +T1119,Automated Collection,Collection,Gamaredon Group|Tropic Trooper|Frankenstein|APT1|APT28|Patchwork|OilRig|FIN5|Threat Group-3390|FIN6 T1115,Clipboard Data,Collection,APT39|APT38 T1114,Email Collection,Collection,no T1113,Screen Capture,Collection,Gamaredon Group|APT39|Silence|MuddyWater|Dragonfly 2.0|OilRig|Dark Caracal|FIN7|BRONZE BUTLER|Magic Hound|Group5|APT28 -T1112,Modify Registry,Defense Evasion,Gamaredon Group|Blue Mockingbird|Wizard Spider|Silence|APT41|Turla|APT32|APT38|Dragonfly 2.0|APT19|Threat Group-3390|Honeybee|Patchwork|Gorgon Group|FIN8 +T1112,Modify Registry,Defense Evasion,Lazarus Group|Gamaredon Group|Blue Mockingbird|Wizard Spider|Silence|APT41|Turla|APT32|APT38|Patchwork|Dragonfly 2.0|APT19|Threat Group-3390|Honeybee|Gorgon Group|FIN8 T1111,Two-Factor Authentication Interception,Credential Access,no T1110,Brute Force,Credential Access,DarkVishnya|APT39|OilRig|FIN5|Turla T1108,Redundant Access,Defense Evasion|Persistence,no -T1106,Native API,Execution,Gamaredon Group|Tropic Trooper|Sharpshooter|Turla|Silence|Gorgon Group|APT37 -T1105,Ingress Tool Transfer,Command And Control,Sandworm Team|Whitefly|Rocke|APT39|Tropic Trooper|Sharpshooter|Molerats|Frankenstein|Silence|APT-C-36|APT41|Soft Cell|TA505|WIRTE|APT33|MuddyWater|APT18|APT38|Rancor|Cobalt Group|Turla|Gorgon Group|OilRig|Dragonfly 2.0|APT37|FIN8|PLATINUM|Leviathan|Elderwood|Magic Hound|APT3|APT32|BRONZE BUTLER|menuPass|FIN7|Gamaredon Group|Patchwork|Lazarus Group|Threat Group-3390|APT28 +T1106,Native API,Execution,Chimera|Gamaredon Group|Tropic Trooper|Sharpshooter|Turla|Silence|Gorgon Group|APT37 +T1105,Ingress Tool Transfer,Command And Control,Chimera|Sandworm Team|Whitefly|Rocke|APT39|Tropic Trooper|Sharpshooter|Molerats|Frankenstein|Silence|APT-C-36|APT41|Soft Cell|TA505|WIRTE|APT33|MuddyWater|APT18|APT38|Rancor|Cobalt Group|Turla|Gorgon Group|OilRig|Dragonfly 2.0|APT37|FIN8|Leviathan|Elderwood|PLATINUM|APT3|Magic Hound|APT32|BRONZE BUTLER|FIN7|menuPass|Gamaredon Group|Patchwork|Lazarus Group|Threat Group-3390|APT28 T1104,Multi-Stage Channels,Command And Control,APT41|MuddyWater|APT3 -T1102,Web Service,Command And Control,Gamaredon Group|Rocke|Inception|FIN6 -T1098,Account Manipulation,Persistence,APT3|Dragonfly 2.0|Lazarus Group -T1095,Non-Application Layer Protocol,Command And Control,APT29|PLATINUM|APT3 +T1102,Web Service,Command And Control,Chimera|Gamaredon Group|Rocke|Inception|FIN6 +T1098,Account Manipulation,Persistence,Dragonfly 2.0|APT3|Lazarus Group +T1095,Non-Application Layer Protocol,Command And Control,FIN6|APT29|PLATINUM|APT3 T1092,Communication Through Removable Media,Command And Control,APT28 T1091,Replication Through Removable Media,Lateral Movement|Initial Access,Tropic Trooper|Darkhotel|APT28 -T1090,Proxy,Command And Control,Sandworm Team|Blue Mockingbird|Wizard Spider|APT41|Turla +T1090,Proxy,Command And Control,Sandworm Team|Blue Mockingbird|APT41|Turla T1087,Account Discovery,Discovery,no -T1083,File and Directory Discovery,Discovery,Gamaredon Group|Tropic Trooper|Inception|APT41|Kimsuky|APT32|MuddyWater|APT18|Leafminer|Honeybee|Dark Caracal|Dragonfly 2.0|Magic Hound|Sowbug|BRONZE BUTLER|APT3|APT28|Patchwork|Lazarus Group|Dust Storm|admin@338|Turla|Ke3chang -T1082,System Information Discovery,Discovery,Rocke|Sandworm Team|Blue Mockingbird|Tropic Trooper|Frankenstein|Inception|Kimsuky|Darkhotel|MuddyWater|APT18|Honeybee|APT19|APT37|APT32|Magic Hound|OilRig|APT3|Sowbug|Gamaredon Group|Patchwork|Stealth Falcon|Lazarus Group|admin@338|Turla|Ke3chang -T1080,Taint Shared Content,Lateral Movement,BRONZE BUTLER|Darkhotel -T1078,Valid Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,Sandworm Team|Wizard Spider|Silence|APT41|Soft Cell|TEMP.Veles|APT39|FIN4|Night Dragon|Dragonfly 2.0|FIN8|Leviathan|APT33|OilRig|FIN5|menuPass|APT28|FIN10|Suckfly|FIN6|Threat Group-3390|APT18|PittyTiger|Carbanak +T1083,File and Directory Discovery,Discovery,Gamaredon Group|Tropic Trooper|Inception|APT41|Kimsuky|APT32|MuddyWater|APT18|Leafminer|Honeybee|Dragonfly 2.0|Dark Caracal|APT3|Magic Hound|BRONZE BUTLER|Sowbug|APT28|Patchwork|Lazarus Group|Dust Storm|admin@338|Turla|Ke3chang +T1082,System Information Discovery,Discovery,Wizard Spider|Rocke|Sandworm Team|Blue Mockingbird|Tropic Trooper|Frankenstein|Inception|Kimsuky|Darkhotel|MuddyWater|APT18|APT19|APT32|Honeybee|APT37|Sowbug|OilRig|Magic Hound|APT3|Gamaredon Group|Patchwork|Stealth Falcon|Lazarus Group|admin@338|Turla|Ke3chang +T1080,Taint Shared Content,Lateral Movement,Gamaredon Group|BRONZE BUTLER|Darkhotel +T1078,Valid Accounts,Defense Evasion|Persistence|Privilege Escalation|Initial Access,Chimera|Sandworm Team|Wizard Spider|Silence|APT41|Soft Cell|TEMP.Veles|APT39|FIN4|Night Dragon|Dragonfly 2.0|FIN8|Leviathan|APT33|OilRig|FIN5|APT28|menuPass|FIN10|Suckfly|FIN6|Threat Group-3390|APT18|PittyTiger|Carbanak T1074,Data Staged,Collection,Wizard Spider T1072,Software Deployment Tools,Execution|Lateral Movement,Silence|APT32|Threat Group-1314 T1071,Application Layer Protocol,Command And Control,Rocke|Magic Hound|Dragonfly 2.0 @@ -400,34 +497,34 @@ T1068,Exploitation for Privilege Escalation,Privilege Escalation,Whitefly|APT33| T1064,Scripting,Defense Evasion|Execution,no T1062,Hypervisor,Persistence,no T1061,Graphical User Interface,Execution,no -T1059,Command and Scripting Interpreter,Execution,APT32|Molerats|Whitefly|Dragonfly 2.0|APT19|FIN7|OilRig|FIN5|Stealth Falcon|FIN6|Ke3chang +T1059,Command and Scripting Interpreter,Execution,APT32|Molerats|Whitefly|APT39|APT19|Dragonfly 2.0|FIN7|OilRig|FIN5|Stealth Falcon|FIN6|Ke3chang T1057,Process Discovery,Discovery,Rocke|Frankenstein|Inception|Darkhotel|MuddyWater|APT1|APT38|Tropic Trooper|APT37|Honeybee|OilRig|APT3|Magic Hound|APT28|Winnti Group|Stealth Falcon|Poseidon Group|Lazarus Group|Molerats|Turla|Deep Panda|Ke3chang T1056,Input Capture,Collection|Credential Access,no -T1055,Process Injection,Defense Evasion|Privilege Escalation,APT32|Sharpshooter|Silence|APT41|Kimsuky|Turla|Cobalt Group|APT37|Honeybee|PLATINUM +T1055,Process Injection,Defense Evasion|Privilege Escalation,APT32|Sharpshooter|Silence|APT41|Kimsuky|Cobalt Group|APT37|Honeybee|Turla|PLATINUM T1053,Scheduled Task/Job,Execution|Persistence|Privilege Escalation,no T1052,Exfiltration Over Physical Medium,Exfiltration,no T1051,Shared Webroot,Lateral Movement,no T1049,System Network Connections Discovery,Discovery,Tropic Trooper|APT41|APT38|Soft Cell|APT32|APT1|OilRig|APT3|menuPass|Threat Group-3390|Poseidon Group|admin@338|Turla|Ke3chang T1048,Exfiltration Over Alternative Protocol,Exfiltration,no -T1047,Windows Management Instrumentation,Execution,Blue Mockingbird|Wizard Spider|Frankenstein|APT41|FIN6|Soft Cell|APT32|MuddyWater|OilRig|Threat Group-3390|FIN8|Leviathan|menuPass|Stealth Falcon|Lazarus Group|APT29|Deep Panda -T1046,Network Service Scanning,Discovery,Rocke|DarkVishnya|APT41|Tropic Trooper|APT39|APT32|Leafminer|OilRig|Cobalt Group|menuPass|Suckfly|FIN6|Threat Group-3390 -T1043,Commonly Used Port,Command And Control,Machete|OilRig|APT28|TEMP.Veles|Night Dragon|APT29|APT18|APT19|Dragonfly 2.0|FIN7|FIN8|APT37|Magic Hound|APT3|Lazarus Group|Threat Group-3390 +T1047,Windows Management Instrumentation,Execution,Chimera|Blue Mockingbird|Wizard Spider|Frankenstein|APT41|FIN6|Soft Cell|APT32|MuddyWater|OilRig|Threat Group-3390|Leviathan|FIN8|menuPass|Stealth Falcon|Lazarus Group|APT29|Deep Panda +T1046,Network Service Scanning,Discovery,Rocke|DarkVishnya|APT41|Tropic Trooper|APT39|APT32|Cobalt Group|Leafminer|OilRig|menuPass|Suckfly|FIN6|Threat Group-3390 +T1043,Commonly Used Port,Command And Control,OilRig|APT28|TEMP.Veles|Night Dragon|APT29|APT18|APT19|FIN7|Dragonfly 2.0|FIN8|APT37|Magic Hound|APT3|Lazarus Group|Threat Group-3390 T1041,Exfiltration Over C2 Channel,Exfiltration,Sandworm Team|MuddyWater|Wizard Spider|Frankenstein|Kimsuky|Soft Cell|APT32|APT3|Gamaredon Group|Stealth Falcon|Lazarus Group|Ke3chang T1040,Network Sniffing,Credential Access|Discovery,Sandworm Team|DarkVishnya|APT33|Stolen Pencil|APT28 -T1039,Data from Network Shared Drive,Collection,Sowbug|BRONZE BUTLER|menuPass +T1039,Data from Network Shared Drive,Collection,Gamaredon Group|BRONZE BUTLER|Sowbug|menuPass T1037,Boot or Logon Initialization Scripts,Persistence|Privilege Escalation,Rocke T1036,Masquerading,Defense Evasion,Windshift|APT32|BRONZE BUTLER|menuPass|Dragonfly 2.0 T1034,Path Interception,Persistence|Privilege Escalation,no -T1033,System Owner/User Discovery,Discovery,Frankenstein|APT41|Soft Cell|Tropic Trooper|APT39|MuddyWater|APT32|APT37|APT19|Dragonfly 2.0|OilRig|Magic Hound|FIN10|Gamaredon Group|Patchwork|Stealth Falcon|Lazarus Group|APT3 +T1033,System Owner/User Discovery,Discovery,Wizard Spider|Frankenstein|APT41|Soft Cell|Tropic Trooper|APT39|MuddyWater|APT32|APT37|APT19|Dragonfly 2.0|OilRig|Magic Hound|FIN10|Gamaredon Group|Patchwork|Stealth Falcon|Lazarus Group|APT3 T1030,Data Transfer Size Limits,Exfiltration,Threat Group-3390 T1029,Scheduled Transfer,Exfiltration,no -T1027,Obfuscated Files or Information,Defense Evasion,Gamaredon Group|Rocke|Sandworm Team|Blue Mockingbird|Whitefly|Molerats|Wizard Spider|Mofang|Frankenstein|Inception|APT-C-36|APT41|Machete|Soft Cell|Turla|TA505|Silence|APT33|Night Dragon|Darkhotel|Gallmaker|APT29|APT18|Tropic Trooper|Cobalt Group|Patchwork|Leafminer|APT37|Threat Group-3390|Honeybee|Dark Caracal|menuPass|APT19|BlackOasis|FIN8|Leviathan|Elderwood|MuddyWater|FIN7|Magic Hound|OilRig|APT3|APT32|Group5|Dust Storm|Lazarus Group|Putter Panda|APT28 +T1027,Obfuscated Files or Information,Defense Evasion,FIN6|Chimera|Gamaredon Group|Rocke|Sandworm Team|Blue Mockingbird|Whitefly|Molerats|Wizard Spider|Mofang|Frankenstein|Inception|APT-C-36|APT41|Machete|Soft Cell|Turla|TA505|Silence|APT33|Night Dragon|Darkhotel|Gallmaker|APT29|APT18|Tropic Trooper|Honeybee|Leafminer|APT37|Dark Caracal|Patchwork|Threat Group-3390|APT19|menuPass|Cobalt Group|BlackOasis|Elderwood|FIN8|Leviathan|MuddyWater|FIN7|OilRig|Magic Hound|APT3|APT32|Group5|Dust Storm|Lazarus Group|Putter Panda|APT28 T1026,Multiband Communication,Command And Control,Lazarus Group T1025,Data from Removable Media,Collection,Machete|Turla|Gamaredon Group|APT28 T1021,Remote Services,Lateral Movement,no -T1020,Automated Exfiltration,Exfiltration,Tropic Trooper|Frankenstein|Honeybee -T1018,Remote System Discovery,Discovery,Sandworm Team|Rocke|Wizard Spider|Silence|Soft Cell|APT39|APT32|Deep Panda|Threat Group-3390|Dragonfly 2.0|Leafminer|Ke3chang|FIN8|APT3|FIN5|BRONZE BUTLER|menuPass|FIN6|Turla -T1016,System Network Configuration Discovery,Discovery,Sandworm Team|Tropic Trooper|Frankenstein|APT41|Soft Cell|APT32|Darkhotel|MuddyWater|APT1|APT19|Dragonfly 2.0|Magic Hound|OilRig|menuPass|Threat Group-3390|Stealth Falcon|Lazarus Group|APT3|Naikon|admin@338|Turla|Ke3chang +T1020,Automated Exfiltration,Exfiltration,Gamaredon Group|Tropic Trooper|Frankenstein|Honeybee +T1018,Remote System Discovery,Discovery,Sandworm Team|Rocke|Wizard Spider|Silence|Soft Cell|APT39|APT32|Deep Panda|Threat Group-3390|Dragonfly 2.0|Ke3chang|Leafminer|FIN8|BRONZE BUTLER|FIN5|APT3|menuPass|FIN6|Turla +T1016,System Network Configuration Discovery,Discovery,Wizard Spider|Sandworm Team|Tropic Trooper|Frankenstein|APT41|Soft Cell|APT32|Darkhotel|MuddyWater|APT1|Dragonfly 2.0|APT19|Magic Hound|OilRig|menuPass|Threat Group-3390|Stealth Falcon|Lazarus Group|APT3|Naikon|admin@338|Turla|Ke3chang T1014,Rootkit,Defense Evasion,Rocke|APT41|APT28|Winnti Group T1012,Query Registry,Discovery,APT32|Dragonfly 2.0|Threat Group-3390|OilRig|Stealth Falcon|Lazarus Group|Turla T1011,Exfiltration Over Other Network Medium,Exfiltration,no @@ -435,6 +532,6 @@ T1010,Application Window Discovery,Discovery,Lazarus Group T1008,Fallback Channels,Command And Control,APT41|OilRig|Lazarus Group T1007,System Service Discovery,Discovery,BRONZE BUTLER|APT1|OilRig|Poseidon Group|admin@338|Turla|Ke3chang T1006,Direct Volume Access,Defense Evasion,no -T1005,Data from Local System,Collection,Gamaredon Group|APT39|Frankenstein|Inception|Kimsuky|Soft Cell|Turla|menuPass|Dark Caracal|Dragonfly 2.0|Honeybee|APT37|APT28|APT3|BRONZE BUTLER|Patchwork|Stealth Falcon|Lazarus Group|Dust Storm|Threat Group-3390|APT1|Ke3chang +T1005,Data from Local System,Collection,FIN6|Gamaredon Group|APT39|Frankenstein|Inception|Kimsuky|Soft Cell|Turla|menuPass|Dark Caracal|Honeybee|Dragonfly 2.0|APT37|APT28|BRONZE BUTLER|APT3|Patchwork|Stealth Falcon|Lazarus Group|Dust Storm|Threat Group-3390|APT1|Ke3chang T1003,OS Credential Dumping,Credential Access,APT39|Frankenstein|APT32|APT28|Leviathan|Sowbug|Suckfly|Poseidon Group|Axiom T1001,Data Obfuscation,Command And Control,Axiom diff --git a/requirements.txt b/requirements.txt index 7009f6946c..e62b8975bc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ distlib==0.3.1 filelock==3.0.12 gitdb==4.0.5 humanfriendly==9.1 -identify==1.5.11 +identify==1.5.12 idna==2.10 importlib-metadata==3.3.0 importlib-resources==4.1.1 diff --git a/tests/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.test.yml b/tests/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.test.yml new file mode 100644 index 0000000000..6e504f0a40 --- /dev/null +++ b/tests/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.test.yml @@ -0,0 +1,13 @@ +name: AWS Detect Users creating keys with encrypt policy without MFA Unit Test +tests: +- name: AWS Detect Users creating keys with encrypt policy without MFA + file: cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: aws_cloudtrail_events.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1486/aws_kms_key/aws_cloudtrail_events.json + sourcetype: aws:cloudtrail + source: aws_cloudtrail + update_timestamp: True diff --git a/tests/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.test.yml b/tests/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.test.yml new file mode 100644 index 0000000000..dbbd719561 --- /dev/null +++ b/tests/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.test.yml @@ -0,0 +1,13 @@ +name: AWS Detect Users with KMS keys performing encryption S3 Unit Test +tests: +- name: AWS Detect Users with KMS keys performing encryption S3 + file: cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: aws_cloudtrail_events.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1486/s3_file_encryption/aws_cloudtrail_events.json + sourcetype: aws:cloudtrail + source: aws_cloudtrail + update_timestamp: True diff --git a/tests/cloud/aws_network_access_control_list_created_with_all_open_ports.test.yml b/tests/cloud/aws_network_access_control_list_created_with_all_open_ports.test.yml new file mode 100644 index 0000000000..9f40599008 --- /dev/null +++ b/tests/cloud/aws_network_access_control_list_created_with_all_open_ports.test.yml @@ -0,0 +1,13 @@ +name: AWS Network Access Control List Created with All Open Ports Unit Test +tests: +- name: AWS Network Access Control List Created with All Open Ports + file: cloud/aws_network_access_control_list_created_with_all_open_ports.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: aws_cloudtrail_events.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.007/aws_create_acl/aws_cloudtrail_events.json + sourcetype: aws:cloudtrail + source: aws_cloudtrail + update_timestamp: True diff --git a/tests/cloud/aws_network_access_control_list_deleted.test.yml b/tests/cloud/aws_network_access_control_list_deleted.test.yml new file mode 100644 index 0000000000..487aec4323 --- /dev/null +++ b/tests/cloud/aws_network_access_control_list_deleted.test.yml @@ -0,0 +1,13 @@ +name: AWS Network Access Control List Deleted Unit Test +tests: +- name: AWS Network Access Control List Deleted + file: cloud/aws_network_access_control_list_deleted.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: aws_cloudtrail_events.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.007/aws_delete_acl/aws_cloudtrail_events.json + sourcetype: aws:cloudtrail + source: aws_cloudtrail + update_timestamp: True diff --git a/tests/cloud/detect_new_open_s3_buckets.test.yml b/tests/cloud/detect_new_open_s3_buckets.test.yml new file mode 100644 index 0000000000..08567f8224 --- /dev/null +++ b/tests/cloud/detect_new_open_s3_buckets.test.yml @@ -0,0 +1,13 @@ +name: Detect New Open S3 buckets Unit Test +tests: +- name: Detect New Open S3 buckets + file: cloud/detect_new_open_s3_buckets.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: aws_cloudtrail_events.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1530/aws_s3_public_bucket/aws_cloudtrail_events.json + sourcetype: aws:cloudtrail + source: aws_cloudtrail + update_timestamp: True diff --git a/tests/cloud/detect_new_open_s3_buckets_over_aws_cli.test.yml b/tests/cloud/detect_new_open_s3_buckets_over_aws_cli.test.yml new file mode 100644 index 0000000000..edae6b3d2f --- /dev/null +++ b/tests/cloud/detect_new_open_s3_buckets_over_aws_cli.test.yml @@ -0,0 +1,13 @@ +name: Detect New Open S3 Buckets over AWS CLI Unit Test +tests: +- name: Detect New Open S3 Buckets over AWS CLI + file: cloud/detect_new_open_s3_buckets_over_aws_cli.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: aws_cloudtrail_events.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1530/aws_s3_public_bucket/aws_cloudtrail_events.json + sourcetype: aws:cloudtrail + source: aws_cloudtrail + update_timestamp: True diff --git a/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml b/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml new file mode 100644 index 0000000000..7f687b3582 --- /dev/null +++ b/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml @@ -0,0 +1,12 @@ +name: O365 Bypass MFA via Trusted IP Unit Test +tests: +- name: O365 Bypass MFA via Trusted IP + file: cloud/o365_bypass_mfa_via_trusted_ip.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-30d' + latest_time: 'now' + attack_data: + - file_name: o365_bypass_mfa_via_trusted_ip.json + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.007/o365_bypass_mfa_via_trusted_ip/o365_bypass_mfa_via_trusted_ip.json + sourcetype: 'o365:management:activity' + source: 'o365' diff --git a/tests/endpoint/bcdedit_failure_recovery_modification.test.yml b/tests/endpoint/bcdedit_failure_recovery_modification.test.yml new file mode 100644 index 0000000000..331aa85f72 --- /dev/null +++ b/tests/endpoint/bcdedit_failure_recovery_modification.test.yml @@ -0,0 +1,13 @@ +name: BCDEdit Failure Recovery Modification +tests: +- name: BCDEdit Failure Recovery Modification + file: endpoint/bcdedit_failure_recovery_modification.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: windows-sysmon.log + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1490/atomic_red_team/windows-sysmon.log + source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational + sourcetype: xmlwineventlog + update_timestamp: True \ No newline at end of file diff --git a/tests/network/detect_hosts_connecting_to_dynamic_domain_providers.test.yml b/tests/network/detect_hosts_connecting_to_dynamic_domain_providers.test.yml new file mode 100644 index 0000000000..b8536d086b --- /dev/null +++ b/tests/network/detect_hosts_connecting_to_dynamic_domain_providers.test.yml @@ -0,0 +1,12 @@ +name: Detect hosts connecting to dynamic domain providers Unit Test +tests: + - name: Detect hosts connecting to dynamic domain providers + file: network/detect_hosts_connecting_to_dynamic_domain_providers.yml + pass_condition: '| stats count | where count > 0' + earliest_time: '-24h' + latest_time: 'now' + attack_data: + - file_name: windows-sysmon.log + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1189/dyn_dns_site/windows-sysmon.log + source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational + sourcetype: xmlwineventlog