From fd427dde359f53d33aee00fc8f29a0f77cc73792 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Fri, 8 Jan 2021 13:29:04 +0100 Subject: [PATCH 01/45] small change --- detections/cloud/abnormally_high_cloud_instances_destroyed.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 - From 2af42c6f65585e7e680dc66c42fd3dc5ad6c2c3d Mon Sep 17 00:00:00 2001 From: root Date: Fri, 8 Jan 2021 13:00:41 +0000 Subject: [PATCH 02/45] Added detection testing service results inAbnormally High Number Of Cloud Infrastructure API Calls From d0bea9eecf0e37779ad57b94b909b8055627b423 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Fri, 8 Jan 2021 15:51:45 +0100 Subject: [PATCH 03/45] detection testing cloud --- detections/{cloud => deprecated}/gcp_gcr_container_uploaded.yml | 0 .../cloud/gcp_detect_accounts_with_high_risk_roles_by_project.yml | 0 .../{ => experimental}/cloud/gcp_detect_gcploit_framework.yml | 0 .../gcp_detect_high_risk_permissions_by_resource_and_account.yml | 0 .../{ => experimental}/cloud/gcp_detect_oauth_token_abuse.yml | 0 .../cloud/gcp_kubernetes_cluster_pod_scan_detection.yml | 0 .../cloud/gcp_kubernetes_cluster_scan_detection.yml | 0 .../kubernetes_aws_detect_most_active_service_accounts_by_pod.yml | 0 .../kubernetes_aws_detect_rbac_authorizations_by_account.yml | 0 .../cloud/kubernetes_aws_detect_sensitive_object_access.yml | 0 .../cloud/kubernetes_aws_detect_sensitive_role_access.yml | 0 ...netes_aws_detect_service_accounts_forbidden_failure_access.yml | 0 .../cloud/kubernetes_aws_detect_suspicious_kubectl_calls.yml | 0 ...azure_detect_most_active_service_accounts_by_pod_namespace.yml | 0 .../kubernetes_azure_detect_rbac_authorization_by_account.yml | 0 .../cloud/kubernetes_azure_detect_sensitive_object_access.yml | 0 .../cloud/kubernetes_azure_detect_sensitive_role_access.yml | 0 ...tes_azure_detect_service_accounts_forbidden_failure_access.yml | 0 .../cloud/kubernetes_azure_detect_suspicious_kubectl_calls.yml | 0 .../cloud/kubernetes_azure_pod_scan_fingerprint.yml | 0 .../cloud/kubernetes_azure_scan_fingerprint.yml | 0 .../kubernetes_gcp_detect_RBAC_authorizations_by_account.yml | 0 .../kubernetes_gcp_detect_most_active_service_accounts_by_pod.yml | 0 .../cloud/kubernetes_gcp_detect_sensitive_object_access.yml | 0 .../cloud/kubernetes_gcp_detect_sensitive_role_access.yml | 0 ...netes_gcp_detect_service_accounts_forbidden_failure_access.yml | 0 .../cloud/kubernetes_gcp_detect_suspicious_kubectl_calls.yml | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename detections/{cloud => deprecated}/gcp_gcr_container_uploaded.yml (100%) rename detections/{ => experimental}/cloud/gcp_detect_accounts_with_high_risk_roles_by_project.yml (100%) rename detections/{ => experimental}/cloud/gcp_detect_gcploit_framework.yml (100%) rename detections/{ => experimental}/cloud/gcp_detect_high_risk_permissions_by_resource_and_account.yml (100%) rename detections/{ => experimental}/cloud/gcp_detect_oauth_token_abuse.yml (100%) rename detections/{ => experimental}/cloud/gcp_kubernetes_cluster_pod_scan_detection.yml (100%) rename detections/{ => experimental}/cloud/gcp_kubernetes_cluster_scan_detection.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_aws_detect_most_active_service_accounts_by_pod.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_aws_detect_rbac_authorizations_by_account.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_aws_detect_sensitive_object_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_aws_detect_sensitive_role_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_aws_detect_service_accounts_forbidden_failure_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_aws_detect_suspicious_kubectl_calls.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_detect_most_active_service_accounts_by_pod_namespace.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_detect_rbac_authorization_by_account.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_detect_sensitive_object_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_detect_sensitive_role_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_detect_service_accounts_forbidden_failure_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_detect_suspicious_kubectl_calls.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_pod_scan_fingerprint.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_azure_scan_fingerprint.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_gcp_detect_RBAC_authorizations_by_account.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_gcp_detect_most_active_service_accounts_by_pod.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_gcp_detect_sensitive_object_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_gcp_detect_sensitive_role_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_gcp_detect_service_accounts_forbidden_failure_access.yml (100%) rename detections/{ => experimental}/cloud/kubernetes_gcp_detect_suspicious_kubectl_calls.yml (100%) 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/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 From 4383db4e832d86ea89ba988a7b5f26bea4765448 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Mon, 11 Jan 2021 13:31:02 +0100 Subject: [PATCH 04/45] update detection --- ...g_keys_with_encrypt_policy_without_mfa.yml | 22 ++++++++++++------- ..._eks_kubernetes_cluster_scan_detection.yml | 0 ...azon_eks_kubernetes_pod_scan_detection.yml | 0 .../aws_detect_attach_to_role_policy.yml | 0 .../aws_detect_permanent_key_creation.yml | 0 .../cloud/aws_detect_role_creation.yml | 0 .../aws_detect_sts_assume_role_abuse.yml | 0 ...aws_detect_sts_get_session_token_abuse.yml | 0 ...s_with_encrypt_policy_without_mfa.test.yml | 13 +++++++++++ 9 files changed, 27 insertions(+), 8 deletions(-) rename detections/{ => experimental}/cloud/amazon_eks_kubernetes_cluster_scan_detection.yml (100%) rename detections/{ => experimental}/cloud/amazon_eks_kubernetes_pod_scan_detection.yml (100%) rename detections/{ => experimental}/cloud/aws_detect_attach_to_role_policy.yml (100%) rename detections/{ => experimental}/cloud/aws_detect_permanent_key_creation.yml (100%) rename detections/{ => experimental}/cloud/aws_detect_role_creation.yml (100%) rename detections/{ => experimental}/cloud/aws_detect_sts_assume_role_abuse.yml (100%) rename detections/{ => experimental}/cloud/aws_detect_sts_get_session_token_abuse.yml (100%) create mode 100644 tests/cloud/aws_detect_users_creating_keys_with_encrypt_policy_without_mfa.test.yml 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..63df17058b 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,24 @@ -author: Rod Soto, Splunk -date: '2020-10-27' -description: This search provides detection of accounts creating KMS with encrypt policy and without using MFA. +author: Rod Soto, Patrick Bareiss Splunk +date: '2021-01-11' +description: 'This search provides detection of accounts creating KMS keys which allows action kms:Encrypt for specific principals. + This is a common ransomware technique which allows the encryption of S3 data for everyone but the decryption action is only allowed to be performed by the compromised account.' 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: Not all KMS key creations are malicious. 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`' +search: '`cloudtrail` eventName=CreateKey OR eventName=PutKeyPolicy + | spath input=requestParameters.policy output=key_policy_actions_1 path=Statement{}.Action + | spath input=requestParameters.policy output=key_policy_actions_2 path=Statement{}.Action{} + | eval key_policy_actions=mvappend(key_policy_actions_1, key_policy_actions_2) + | eval count_kms_encrypt_actions=mvcount(mvfilter(match(key_policy_actions,"kms:Encrypt"))) + | eval count_kms_decrypt_actions=mvcount(mvfilter(match(key_policy_actions,"kms:Decrypt"))) + | where count_kms_encrypt_actions>count_kms_decrypt_actions + | stats count by eventName eventSource eventID awsRegion userIdentity.principalId + |`aws_detect_users_creating_keys_with_encrypt_policy_without_mfa_filter`' tags: analytics_story: - Ransomware Cloud 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/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 From b7175cbc088753795b18fa79f2bc47099cc9f9cf Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Mon, 11 Jan 2021 14:28:14 +0100 Subject: [PATCH 05/45] updated detection and test file --- ...reating_keys_with_encrypt_policy_without_mfa.yml | 3 ++- ...users_with_kms_keys_performing_encryption_s3.yml | 11 +++++++---- ..._with_kms_keys_performing_encryption_s3.test.yml | 13 +++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 tests/cloud/aws_detect_users_with_kms_keys_performing_encryption_s3.test.yml 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 63df17058b..822379e2c5 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 @@ -17,7 +17,8 @@ search: '`cloudtrail` eventName=CreateKey OR eventName=PutKeyPolicy | eval count_kms_encrypt_actions=mvcount(mvfilter(match(key_policy_actions,"kms:Encrypt"))) | eval count_kms_decrypt_actions=mvcount(mvfilter(match(key_policy_actions,"kms:Decrypt"))) | where count_kms_encrypt_actions>count_kms_decrypt_actions - | stats count by eventName eventSource eventID awsRegion userIdentity.principalId + | 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: 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..6a0eaa5f2f 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,18 @@ -author: Rod Soto, Splunk -date: '2020-10-27' +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`' +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 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 From 48bb6a978de26194dd14dac52196a656ab2cbdb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Jan 2021 14:03:29 +0000 Subject: [PATCH 06/45] Bump identify from 1.5.11 to 1.5.12 Bumps [identify](https://github.com/pre-commit/identify) from 1.5.11 to 1.5.12. - [Release notes](https://github.com/pre-commit/identify/releases) - [Commits](https://github.com/pre-commit/identify/compare/v1.5.11...v1.5.12) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index bc53fd314e..ddf157c3ba 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -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 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 From 5d481c95ab979238e21b12899dbfe6f90dda4171 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Mon, 11 Jan 2021 15:13:05 +0100 Subject: [PATCH 07/45] bug fix detection --- ...g_keys_with_encrypt_policy_without_mfa.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) 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 822379e2c5..70be333c9b 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,22 +1,23 @@ author: Rod Soto, Patrick Bareiss Splunk date: '2021-01-11' -description: 'This search provides detection of accounts creating KMS keys which allows action kms:Encrypt for specific principals. - This is a common ransomware technique which allows the encryption of S3 data for everyone but the decryption action is only allowed to be performed by the compromised account.' +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. +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 OR eventName=PutKeyPolicy - | spath input=requestParameters.policy output=key_policy_actions_1 path=Statement{}.Action - | spath input=requestParameters.policy output=key_policy_actions_2 path=Statement{}.Action{} - | eval key_policy_actions=mvappend(key_policy_actions_1, key_policy_actions_2) - | eval count_kms_encrypt_actions=mvcount(mvfilter(match(key_policy_actions,"kms:Encrypt"))) - | eval count_kms_decrypt_actions=mvcount(mvfilter(match(key_policy_actions,"kms:Decrypt"))) - | where count_kms_encrypt_actions>count_kms_decrypt_actions + | 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`' From 73b29808ee666c428cef815ed3058fdcf786966b Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 Jan 2021 14:31:23 +0000 Subject: [PATCH 08/45] Added detection testing service results inAWS Detect Users creating keys with encrypt policy without MFA --- ...g_keys_with_encrypt_policy_without_mfa.yml | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) 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 70be333c9b..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,26 +1,27 @@ 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 +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: 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 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`' +- 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 @@ -28,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 From dd8d642973842a11cbefe4d94b1f51f43c9c2f5c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 Jan 2021 14:56:55 +0000 Subject: [PATCH 09/45] Added detection testing service results inAWS Detect Users with KMS keys performing encryption S3 --- ...with_kms_keys_performing_encryption_s3.yml | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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 6a0eaa5f2f..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,17 +1,21 @@ 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 +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: 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 +- 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 + | 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: @@ -20,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 From d99e66f3679f6defcbddba41283e48a4a656f035 Mon Sep 17 00:00:00 2001 From: mhaag-spl <76067280+mhaag-spl@users.noreply.github.com> Date: Mon, 11 Jan 2021 12:25:19 -0700 Subject: [PATCH 10/45] T1490 BCDedit T1490 BCDedit --- .../bcdedit_failure_recovery_modification.yml | 34 +++++++++++++++++++ ...dit_failure_recovery_modification.test.yml | 12 +++++++ 2 files changed, 46 insertions(+) create mode 100644 detections/endpoint/bcdedit_failure_recovery_modification.yml create mode 100644 tests/endpoint/bcdedit_failure_recovery_modification.test.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..c9a9117925 --- /dev/null +++ b/detections/endpoint/bcdedit_failure_recovery_modification.yml @@ -0,0 +1,34 @@ +name: BCDEdit Failure Recovery Modification +id: +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 + automated_detection_testing: passed + dataset: + - 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..ae0e287d46 --- /dev/null +++ b/tests/endpoint/bcdedit_failure_recovery_modification.test.yml @@ -0,0 +1,12 @@ +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/T1018/atomic_red_team/windows-sysmon.log + source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational + sourcetype: xmlwineventlog From def94c46233ee4897f32a28edb67e1409927f6e7 Mon Sep 17 00:00:00 2001 From: mhaag-spl <76067280+mhaag-spl@users.noreply.github.com> Date: Mon, 11 Jan 2021 13:57:05 -0700 Subject: [PATCH 11/45] Update bcdedit_failure_recovery_modification.test.yml --- tests/endpoint/bcdedit_failure_recovery_modification.test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/endpoint/bcdedit_failure_recovery_modification.test.yml b/tests/endpoint/bcdedit_failure_recovery_modification.test.yml index ae0e287d46..331aa85f72 100644 --- a/tests/endpoint/bcdedit_failure_recovery_modification.test.yml +++ b/tests/endpoint/bcdedit_failure_recovery_modification.test.yml @@ -7,6 +7,7 @@ tests: latest_time: 'now' attack_data: - file_name: windows-sysmon.log - data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1018/atomic_red_team/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 From b7d9fb164bcda8f0918a33c96bec9411a32aa800 Mon Sep 17 00:00:00 2001 From: mhaag-spl <76067280+mhaag-spl@users.noreply.github.com> Date: Mon, 11 Jan 2021 15:45:45 -0700 Subject: [PATCH 12/45] Update bcdedit_failure_recovery_modification.yml --- detections/endpoint/bcdedit_failure_recovery_modification.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/detections/endpoint/bcdedit_failure_recovery_modification.yml b/detections/endpoint/bcdedit_failure_recovery_modification.yml index c9a9117925..dabe62ca91 100644 --- a/detections/endpoint/bcdedit_failure_recovery_modification.yml +++ b/detections/endpoint/bcdedit_failure_recovery_modification.yml @@ -29,6 +29,5 @@ tags: - PR.IP security_domain: endpoint asset_type: Endpoint - automated_detection_testing: passed dataset: - - + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1490/atomic_red_team/windows-sysmon.log From 723d3dac11428cfd5c2828c0faffbb6a56edde1a Mon Sep 17 00:00:00 2001 From: Jose Enrique Hernandez Date: Mon, 11 Jan 2021 17:51:42 -0500 Subject: [PATCH 13/45] minor syntax error --- detections/endpoint/bcdedit_failure_recovery_modification.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detections/endpoint/bcdedit_failure_recovery_modification.yml b/detections/endpoint/bcdedit_failure_recovery_modification.yml index dabe62ca91..bb42818422 100644 --- a/detections/endpoint/bcdedit_failure_recovery_modification.yml +++ b/detections/endpoint/bcdedit_failure_recovery_modification.yml @@ -13,7 +13,7 @@ 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`' + 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: From a2fa25f9bc13fdf981e9b008dbd85dd118f082d2 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 Jan 2021 23:08:28 +0000 Subject: [PATCH 14/45] Added detection testing service results inBCDEdit Failure Recovery Modification --- .../bcdedit_failure_recovery_modification.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/detections/endpoint/bcdedit_failure_recovery_modification.yml b/detections/endpoint/bcdedit_failure_recovery_modification.yml index bb42818422..84898da41b 100644 --- a/detections/endpoint/bcdedit_failure_recovery_modification.yml +++ b/detections/endpoint/bcdedit_failure_recovery_modification.yml @@ -1,8 +1,10 @@ name: BCDEdit Failure Recovery Modification -id: +id: null 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. +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. @@ -12,9 +14,11 @@ references: 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. + 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 @@ -31,3 +35,4 @@ tags: 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 From 84fef240a13a421a587660e16e82b86a5360f419 Mon Sep 17 00:00:00 2001 From: mhaag-spl <76067280+mhaag-spl@users.noreply.github.com> Date: Mon, 11 Jan 2021 16:12:59 -0700 Subject: [PATCH 15/45] Update bcdedit_failure_recovery_modification.yml --- detections/endpoint/bcdedit_failure_recovery_modification.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detections/endpoint/bcdedit_failure_recovery_modification.yml b/detections/endpoint/bcdedit_failure_recovery_modification.yml index 84898da41b..e0a1fe6c70 100644 --- a/detections/endpoint/bcdedit_failure_recovery_modification.yml +++ b/detections/endpoint/bcdedit_failure_recovery_modification.yml @@ -1,5 +1,5 @@ name: BCDEdit Failure Recovery Modification -id: null +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 From 1073cff2f7af0797af45819584ed9cfa121174b9 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Tue, 12 Jan 2021 11:13:17 +0100 Subject: [PATCH 16/45] improved detections and tests --- ...ntrol_list_created_with_all_open_ports.yml | 20 ++++++++++--------- ...ws_network_access_control_list_deleted.yml | 17 ++++++++-------- ..._list_created_with_all_open_ports.test.yml | 13 ++++++++++++ ...twork_access_control_list_deleted.test.yml | 13 ++++++++++++ 4 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 tests/cloud/aws_network_access_control_list_created_with_all_open_ports.test.yml create mode 100644 tests/cloud/aws_network_access_control_list_deleted.test.yml 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..b232faaf9d 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,21 @@ 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 +36,3 @@ tags: risk_score: 10 risk_object_type: user risk_object: userName - diff --git a/detections/cloud/aws_network_access_control_list_deleted.yml b/detections/cloud/aws_network_access_control_list_deleted.yml index 550f5e5212..3ed520b690 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,17 @@ 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 +35,4 @@ tags: risk_score: 5 risk_object_type: user risk_object: userName - + 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 From fd58b2880764b6ea46aaae2aa8203362edd75630 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Jan 2021 10:33:02 +0000 Subject: [PATCH 17/45] Added detection testing service results inAWS Network Access Control List Deleted --- .../cloud/aws_network_access_control_list_deleted.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/detections/cloud/aws_network_access_control_list_deleted.yml b/detections/cloud/aws_network_access_control_list_deleted.yml index 3ed520b690..40a9a9a53b 100644 --- a/detections/cloud/aws_network_access_control_list_deleted.yml +++ b/detections/cloud/aws_network_access_control_list_deleted.yml @@ -14,8 +14,9 @@ type: ESCU references: [] 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`' + | 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: @@ -35,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 From be3736fc6112681dd92d015f402ebda8aad9cf24 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Jan 2021 10:33:22 +0000 Subject: [PATCH 18/45] Added detection testing service results inAWS Network Access Control List Created with All Open Ports --- ...ntrol_list_created_with_all_open_ports.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) 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 b232faaf9d..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 @@ -10,12 +10,16 @@ how_to_implement: You must install the AWS App for Splunk (version 5.1.0 or late type: ESCU references: [] 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`" +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. @@ -36,3 +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 From c99e244a05608196d41e59a369a5343be79cb992 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 14:02:46 +0000 Subject: [PATCH 19/45] Bump boto3 from 1.16.51 to 1.16.52 Bumps [boto3](https://github.com/boto/boto3) from 1.16.51 to 1.16.52. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/boto3/compare/1.16.51...1.16.52) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index ddf157c3ba..2a0129e41a 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -13,7 +13,7 @@ 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 +boto3==1.16.52 botocore==1.19.51 certifi==2020.12.5 cffi==1.14.4 From 994989b086f96261d66493782683e4a6ed6dfae6 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Tue, 12 Jan 2021 15:38:32 +0100 Subject: [PATCH 20/45] improved detections and tests --- .../cloud/detect_new_open_s3_buckets.yml | 34 ++++++++------- ...etect_new_open_s3_buckets_over_aws_cli.yml | 43 +++++++++++++++++++ ...ud_network_access_control_list_deleted.yml | 3 +- ...pi_activities_from_unapproved_accounts.yml | 1 + .../cloud/detect_new_open_s3_buckets.test.yml | 13 ++++++ ..._new_open_s3_buckets_over_aws_cli.test.yml | 13 ++++++ 6 files changed, 91 insertions(+), 16 deletions(-) create mode 100644 detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml rename detections/{cloud => deprecated}/cloud_network_access_control_list_deleted.yml (96%) rename detections/{cloud => deprecated}/detect_aws_api_activities_from_unapproved_accounts.yml (98%) create mode 100644 tests/cloud/detect_new_open_s3_buckets.test.yml create mode 100644 tests/cloud/detect_new_open_s3_buckets_over_aws_cli.test.yml diff --git a/detections/cloud/detect_new_open_s3_buckets.yml b/detections/cloud/detect_new_open_s3_buckets.yml index 64c5256bce..e4f1c7e815 100644 --- a/detections/cloud/detect_new_open_s3_buckets.yml +++ b/detections/cloud/detect_new_open_s3_buckets.yml @@ -1,21 +1,26 @@ name: Detect New Open S3 buckets id: 2a9b80d3-6340-4345-b5ad-290bf3d0dac4 -version: 1 -date: '2018-07-25' -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. +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. 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 +43,3 @@ tags: risk_score: 20 risk_object_type: system risk_object: src - 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..dc5ac8b40a --- /dev/null +++ b/detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml @@ -0,0 +1,43 @@ +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 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_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/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 From 905c5cf16a8e9bb5e8263e0890843b165ca3b296 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 14:45:04 +0000 Subject: [PATCH 21/45] Bump s3transfer from 0.3.3 to 0.3.4 Bumps [s3transfer](https://github.com/boto/s3transfer) from 0.3.3 to 0.3.4. - [Release notes](https://github.com/boto/s3transfer/releases) - [Changelog](https://github.com/boto/s3transfer/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/s3transfer/compare/0.3.3...0.3.4) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index 2a0129e41a..9323320ca0 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -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 From 446ce95cb6fa45c37a268e7f794263ec32bed6b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 14:45:09 +0000 Subject: [PATCH 22/45] Bump botocore from 1.19.51 to 1.19.52 Bumps [botocore](https://github.com/boto/botocore) from 1.19.51 to 1.19.52. - [Release notes](https://github.com/boto/botocore/releases) - [Changelog](https://github.com/boto/botocore/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/botocore/compare/1.19.51...1.19.52) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index 2a0129e41a..cfb6d3e866 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -14,7 +14,7 @@ azure-mgmt-network==17.0.0 azure-mgmt-resource==15.0.0 bcrypt==3.2.0 boto3==1.16.52 -botocore==1.19.51 +botocore==1.19.52 certifi==2020.12.5 cffi==1.14.4 cfgv==2.0.1 From 65f935b24f3cb2de2bbd99e535ba9fdaa96c6895 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Jan 2021 14:58:47 +0000 Subject: [PATCH 23/45] Added detection testing service results inDetect New Open S3 buckets --- .../cloud/detect_new_open_s3_buckets.yml | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/detections/cloud/detect_new_open_s3_buckets.yml b/detections/cloud/detect_new_open_s3_buckets.yml index e4f1c7e815..660b47d619 100644 --- a/detections/cloud/detect_new_open_s3_buckets.yml +++ b/detections/cloud/detect_new_open_s3_buckets.yml @@ -2,24 +2,20 @@ name: Detect New Open S3 buckets id: 2a9b80d3-6340-4345-b5ad-290bf3d0dac4 version: 2 date: '2021-01-12' -description: 'This search looks for CloudTrail events where a user has created an open/public - S3 bucket.' +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. type: ESCU references: [] 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)` +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. @@ -43,3 +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 From 8d40be7a12bcd7942bf6174fd64a50e63014ffec Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 13 Jan 2021 14:05:53 +0100 Subject: [PATCH 24/45] improved detections and tests --- bin/generate.py | 3 +- ...ct_api_activity_from_users_without_mfa.yml | 0 .../detect_new_api_calls_from_user_roles.yml | 0 package/default/analytic_stories.conf | 192 +++---- package/default/collections.conf | 2 +- package/default/es_investigations.conf | 68 +-- package/default/macros.conf | 46 +- package/default/savedsearches.conf | 498 +++++++++++++++--- package/default/transforms.conf | 2 +- package/default/use_case_library.conf | 292 ++++++---- package/lookups/mitre_enrichment.csv | 317 +++++++---- 11 files changed, 1020 insertions(+), 400 deletions(-) rename detections/{cloud => deprecated}/detect_api_activity_from_users_without_mfa.yml (100%) rename detections/{cloud => deprecated}/detect_new_api_calls_from_user_roles.yml (100%) diff --git a/bin/generate.py b/bin/generate.py index f1928fae0a..c08fd40ec6 100644 --- a/bin/generate.py +++ b/bin/generate.py @@ -482,7 +482,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(): @@ -570,6 +570,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/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_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/package/default/analytic_stories.conf b/package/default/analytic_stories.conf index c3367cb358..bdac747d8d 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: 2020-12-18T01:01:56 UTC +# On Date: 2021-01-13T13:05:35 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 - Get Notable History", "ESCU - AWS Investigate User Activities By AccessKeyId"] +investigative_searches = ["ESCU - AWS Investigate User Activities By AccessKeyId", "ESCU - Get Notable History"] 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 Notable History", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name"] -support_searches = ["ESCU - Previously Seen AWS Regions", "ESCU - Previously Seen EC2 AMIs", "ESCU - Previously Seen EC2 Instance Types", "ESCU - Previously Seen EC2 Launches By User", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK"] +investigative_searches = ["ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] +support_searches = ["ESCU - Previously Seen AWS Regions", "ESCU - Previously Seen EC2 Instance Types", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK", "ESCU - Previously Seen EC2 Launches By User", "ESCU - Previously Seen EC2 AMIs"] 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,8 +53,8 @@ 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 - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS traffic ratio", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get All AWS Activity From IP Address"] -support_searches = ["ESCU - Baseline of Network ACL Activity by ARN", "ESCU - Baseline of blocked outbound traffic from AWS"] +investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +support_searches = ["ESCU - Baseline of blocked outbound traffic from AWS", "ESCU - Baseline of Network ACL Activity by ARN"] data_models = [] providing_technologies = none description = Monitor your AWS network infrastructure for bad configurations and malicious activity. Investigative searches help you probe deeper, when the facts warrant it. @@ -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 - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get EC2 Launch Details"] +investigative_searches = ["ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] 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 - Get All AWS Activity From City", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From IP Address"] +investigative_searches = ["ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From City", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From IP Address"] 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 - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] -support_searches = ["ESCU - Create a list of approved AWS service accounts", "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"] +support_searches = ["ESCU - Baseline of API Calls per User ARN", "ESCU - Create a list of approved AWS service accounts", "ESCU - Previously seen API call per user roles in CloudTrail", "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. @@ -120,7 +120,7 @@ id = 2dcfd6a2-e7d2-4873-b6ba-adaf819d2a1e 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"], "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"]} +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 - Get Notable History", "ESCU - Investigate Web POSTs From src", "ESCU - Investigate Suspicious Strings in HTTP Header"] support_searches = [] data_models = ["Endpoint"] @@ -149,7 +149,7 @@ id = 91c676cf-0b23-438d-abee-f6335e1fce77 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"], "nist": ["PR.DS"]} +mappings = {"cis20": ["CIS 1"], "kill_chain_phases": ["Actions on Objectives", "Delivery", "Reconnaissance"], "nist": ["ID.AM", "PR.DS"]} 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"] @@ -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 Notable History", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +investigative_searches = ["ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] 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 Notable History", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name"] -support_searches = ["ESCU - Previously Seen Cloud Compute Instance Types - Initial", "ESCU - Previously Seen Cloud Regions - Initial", "ESCU - Previously Seen Cloud Compute Creations By User - Initial", "ESCU - Previously Seen Cloud Compute Images - Update", "ESCU - Previously Seen Cloud Regions - Update", "ESCU - Previously Seen Cloud Compute Images - Initial", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Baseline Of Cloud Instances Launched", "ESCU - Previously Seen Cloud Compute Instance Types - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Update"] +investigative_searches = ["ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] +support_searches = ["ESCU - Previously Seen Cloud Compute Images - Update", "ESCU - Previously Seen Cloud Regions - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Initial", "ESCU - Previously Seen Cloud Compute Instance Types - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Update", "ESCU - Baseline Of Cloud Instances Launched", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Regions - Initial", "ESCU - Previously Seen Cloud Compute Instance Types - Initial", "ESCU - Previously Seen Cloud Compute Images - Initial"] 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,9 +201,9 @@ 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"] -mappings = {"cis20": ["CIS 8"], "kill_chain_phases": ["Command and Control"], "nist": ["PR.PT"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Investigate Network Traffic From src ip"] +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 = [] data_models = [] 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 - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS traffic ratio", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get All AWS Activity From IP Address"] -support_searches = ["ESCU - Baseline of DNS Query Length - MLTK", "ESCU - Baseline of blocked outbound traffic from AWS"] +investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +support_searches = ["ESCU - Baseline of blocked outbound traffic from AWS", "ESCU - Baseline of DNS Query Length - MLTK"] 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. @@ -255,8 +255,8 @@ id = 9a64ab44-9214-4639-8163-7eaa2621bd61 version = 1 reference = ["https://github.com/kgretzky/evilginx2", "https://attack.mitre.org/techniques/T1192/", "https://breakdev.org/evilginx-advanced-phishing-with-two-factor-authentication-bypass/"] detection_searches = ["ESCU - Detect DNS requests to Phishing Sites leveraging EvilGinx2 - Rule"] -mappings = {"cis20": ["CIS 7"], "kill_chain_phases": ["Command and Control"], "mitre_attack": ["T1566.003"], "nist": ["DE.CM"]} -investigative_searches = ["ESCU - Get Certificate logs for a domain", "ESCU - Domain Certificate Investigation"] +mappings = {"cis20": ["CIS 7", "CIS 8"], "kill_chain_phases": ["Command and Control", "Delivery"], "mitre_attack": ["T1566.003"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.DS", "PR.IP"]} +investigative_searches = ["ESCU - Domain Certificate Investigation", "ESCU - Get Certificate logs for a domain"] support_searches = [] data_models = ["Network_Resolution"] providing_technologies = none @@ -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 Pass the Hash Attempts", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Previous Unseen User", "ESCU - Investigate Pass the Ticket Attempts"] +investigative_searches = ["ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Previous Unseen User", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Pass the Hash Attempts"] 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 File Activity", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Info"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +investigative_searches = ["ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process File Activity", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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. @@ -325,7 +325,7 @@ id = e8afd39e-3294-11e6-b39d-a45e60c6700 version = 1 reference = ["https://www.us-cert.gov/ncas/alerts/TA13-088A", "https://www.imperva.com/learn/application-security/dns-amplification/"] detection_searches = ["ESCU - Large Volume of DNS ANY Queries - Rule"] -mappings = {"cis20": ["CIS 12"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1498.002"], "nist": ["PR.IP"]} +mappings = {"cis20": ["CIS 11", "CIS 12"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1498.002"], "nist": ["DE.AE", "PR.IP", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = ["Network_Resolution"] @@ -342,7 +342,7 @@ id = 8169f17b-ef68-4b59-aa28-586907301221 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"], "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"]} +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"] support_searches = ["ESCU - Discover DNS records"] data_models = ["Network_Resolution"] @@ -366,7 +366,7 @@ id = 66b0fe0c-1351-11eb-adc1-0242ac120002 version = 1 reference = ["https://attack.mitre.org/tactics/TA0010/"] detection_searches = ["ESCU - Detect SNICat SNI Exfiltration - Rule"] -mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1041"], "nist": ["DE.AE"]} +mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1041"], "nist": ["DE.AE", "DE.CM", "PR.DS"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = [] @@ -382,8 +382,8 @@ id = 91c676cf-0b23-438d-abee-f6335e1fce33 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"], "mitre_attack": ["T1071.004"], "nist": ["DE.AE", "DE.CM", "PR.DS", "PR.PT"]} -investigative_searches = ["ESCU - Get Notable History", "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"] +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 Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] support_searches = [] data_models = ["Change_Analysis", "Network_Resolution"] providing_technologies = none @@ -416,7 +416,7 @@ reference = ["https://attack.mitre.org/wiki/Technique/T1089", "https://blog.malw 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +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. @@ -430,8 +430,8 @@ id = 8169f17b-ef68-4b59-aae8-586907301221 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 13", "CIS 7", "CIS 8"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1071.001"], "nist": ["DE.CM", "DE.DP", "PR.IP"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host"] +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 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 Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info"] +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 History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] support_searches = ["ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Email", "Endpoint", "Network_Traffic"] providing_technologies = none @@ -464,7 +464,7 @@ id = 7678c968-d46e-11ea-87d0-0242ac130003 version = 1 reference = ["https://www.ptsecurity.com/ww-en/about/news/f5-fixes-critical-vulnerability-discovered-by-positive-technologies-in-big-ip-application-delivery-controller/", "https://support.f5.com/csp/article/K52145254", "https://blog.cloudflare.com/cve-2020-5902-helping-to-protect-against-the-f5-tmui-rce-vulnerability/"] detection_searches = ["ESCU - Detect F5 TMUI RCE CVE-2020-5902 - Rule"] -mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Exploitation"], "mitre_attack": ["T1190"], "nist": ["DE.CM"]} +mappings = {"cis20": ["CIS 11", "CIS 8"], "kill_chain_phases": ["Exploitation"], "mitre_attack": ["T1190"], "nist": ["DE.CM"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = [] @@ -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 Parent Process Info", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get DNS Server History for a host", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info"] -support_searches = ["ESCU - Baseline of DNS Query Length - MLTK", "ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Baseline of DNS Query Length - 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. @@ -517,7 +517,7 @@ id = 2e8948a5-5239-406b-b56b-6c50fe268af4 version = 1 reference = ["https://blog.malwarebytes.com/cybercrime/2016/09/hosts-file-hijacks/"] detection_searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Windows hosts file modification - Rule"] -mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13", "CIS 3", "CIS 8"], "kill_chain_phases": ["Command and Control"], "mitre_attack": ["T1048.003", "T1071.004"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.DS", "PR.IP", "PR.PT"]} +mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Command and Control"], "mitre_attack": ["T1048.003", "T1071.004"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.DS", "PR.IP", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History", "ESCU - Get DNS Server History for a host"] support_searches = [] data_models = ["Network_Resolution"] @@ -533,7 +533,7 @@ id = 1f5294cb-b85f-4c2d-9c58-ffcf248f52bd version = 1 reference = ["http://www.deependresearch.org/2016/04/jboss-exploits-view-from-victim.html"] detection_searches = ["ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule"] -mappings = {"cis20": ["CIS 18"], "kill_chain_phases": ["Delivery", "Reconnaissance"], "mitre_attack": ["T1082"], "nist": ["DE.CM"]} +mappings = {"cis20": ["CIS 12", "CIS 18", "CIS 4"], "kill_chain_phases": ["Delivery", "Reconnaissance"], "mitre_attack": ["T1082"], "nist": ["DE.AE", "DE.CM", "ID.RA", "PR.IP", "PR.MA", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = ["Web"] @@ -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 - Get Notable History", "ESCU - Amazon EKS Kubernetes activity by src ip", "ESCU - GCP 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"] -mappings = {"cis20": ["CIS 16", "CIS 3", "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.IP"]} -investigative_searches = ["ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info"] +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 History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] support_searches = [] data_models = ["Endpoint", "Network_Traffic"] providing_technologies = none @@ -631,8 +631,8 @@ id = 2c8ff66e-0b57-42af-8ad7-912438a403fc 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"], "mitre_attack": ["T1027", "T1059.001"], "nist": ["DE.CM", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -672,7 +672,7 @@ id = 8892a655-6205-43f7-abba-06460e38c8ae 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"], "nist": ["PR.DS"]} +mappings = {"cis20": ["CIS 2"], "kill_chain_phases": ["Actions on Objectives", "Command and Control", "Installation"], "nist": ["ID.AM", "PR.DS"]} investigative_searches = ["ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] @@ -689,7 +689,7 @@ id = 9ef8d677-7b52-4213-a038-99cfc7acc2d8 version = 1 reference = ["https://learn.cisecurity.org/20-controls-download"] detection_searches = ["ESCU - No Windows Updates in a time frame - Rule"] -mappings = {"cis20": ["CIS 18"], "nist": ["PR.MA"]} +mappings = {"cis20": ["CIS 18"], "nist": ["PR.MA", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = ["Updates"] @@ -709,7 +709,7 @@ reference = ["https://docs.microsoft.com/en-us/previous-versions/tn-archive/bb49 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Baseline of SMB Traffic - MLTK", "ESCU - Previously seen command line arguments"] +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. @@ -740,9 +740,9 @@ id = bb9f5ed2-916e-4364-bb6d-97c370efcf52 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 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", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Previously Seen Running Windows Services - Initial", "ESCU - Previously Seen Running Windows Services - Update", "ESCU - Previously seen command line arguments"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Previously Seen Running Windows Services - Update", "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 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1566.002"], "nist": ["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 Notable History", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Previously seen command line arguments"] +investigative_searches = ["ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of Command Line Length - MLTK"] data_models = ["Endpoint"] providing_technologies = none description = Monitor your environment for suspicious behaviors that resemble the techniques employed by the MUDCARP threat group. @@ -826,8 +826,8 @@ id = 6d13121c-90f3-446d-8ac3-27efbbc65218 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 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"]} -investigative_searches = ["ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Info"] +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 Parent Process Info", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] support_searches = [] data_models = ["Network_Resolution", "Network_Traffic"] providing_technologies = none @@ -841,9 +841,9 @@ 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 - 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 Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Sysmon WMI Activity for Host"] +investigative_searches = ["ESCU - Get History Of Email Sources", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Baseline of SMB Traffic - MLTK"] data_models = ["Endpoint", "Network_Traffic"] providing_technologies = none @@ -890,7 +890,7 @@ 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"] +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 - 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", "T1562.001"], "nist": ["DE.AE", "DE.CM", "PR.AC", "PR.IP", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] @@ -907,7 +907,7 @@ id = 4f6632f5-449c-4686-80df-57625f59bab3 version = 1 reference = ["https://capec.mitre.org/data/definitions/66.html", "https://www.incapsula.com/web-application-security/sql-injection.html"] detection_searches = ["ESCU - SQL Injection with Long URLs - Rule"] -mappings = {"cis20": ["CIS 18"], "kill_chain_phases": ["Delivery"], "mitre_attack": ["T1190"], "nist": ["DE.CM"]} +mappings = {"cis20": ["CIS 13", "CIS 18", "CIS 4"], "kill_chain_phases": ["Delivery"], "mitre_attack": ["T1190"], "nist": ["DE.CM", "ID.RA", "PR.DS", "PR.IP", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = ["Web"] @@ -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 Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get History Of Email Sources", "ESCU - Get Backup Logs For Endpoint"] +investigative_searches = ["ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] support_searches = [] data_models = ["Endpoint", "Network_Traffic", "Web"] providing_technologies = none @@ -945,7 +945,7 @@ id = 6d3306f6-bb2b-4219-8609-8efad64032f2 version = 1 reference = ["https://meltdownattack.com/"] detection_searches = ["ESCU - Spectre and Meltdown Vulnerable Systems - Rule"] -mappings = {"cis20": ["CIS 4"], "nist": ["DE.CM"]} +mappings = {"cis20": ["CIS 4"], "nist": ["DE.CM", "ID.RA", "PR.IP", "RS.MI"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = ["ESCU - Systems Ready for Spectre-Meltdown Windows Patch"] data_models = ["Vulnerabilities"] @@ -961,7 +961,7 @@ id = 4e692b96-de2d-4bd1-9105-37e2368a8db1 version = 1 reference = ["http://www.splunk.com/view/SP-CAAAPQ6#announce", "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4859"] detection_searches = ["ESCU - Open Redirect in Splunk Web - Rule"] -mappings = {"cis20": ["CIS 18"], "kill_chain_phases": ["Delivery"], "nist": ["DE.CM"]} +mappings = {"cis20": ["CIS 18", "CIS 3", "CIS 4"], "kill_chain_phases": ["Delivery"], "nist": ["DE.CM", "ID.RA", "PR.AC", "PR.IP", "PR.PT", "RS.MI"]} investigative_searches = ["ESCU - Get Notable History"] support_searches = [] data_models = [] @@ -986,8 +986,8 @@ id = 1fc34cbc-34e9-43ba-87ab-6811c9e95400 version = 1 reference = ["https://nvd.nist.gov/vuln/detail/CVE-2018-11409", "https://www.splunk.com/view/SP-CAAAP5E#VulnerabilityDescriptionsandRatings", "https://www.exploit-db.com/exploits/44865/"] detection_searches = ["ESCU - Splunk Enterprise Information Disclosure - Rule"] -mappings = {"cis20": ["CIS 18"], "kill_chain_phases": ["Delivery"], "nist": ["DE.CM"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Investigate Network Traffic From src ip"] +mappings = {"cis20": ["CIS 18", "CIS 3", "CIS 4"], "kill_chain_phases": ["Delivery"], "nist": ["DE.CM", "ID.RA", "PR.AC", "PR.IP", "PR.PT", "RS.MI"]} +investigative_searches = ["ESCU - Investigate Network Traffic From src ip", "ESCU - Get Notable History"] support_searches = [] data_models = [] 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 Notable History", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name"] -support_searches = ["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", "ESCU - Previously Seen EC2 Launches By User"] +investigative_searches = ["ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] +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"] 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 - Previously seen users in CloudTrail", "ESCU - Update previously seen users in CloudTrail"] +support_searches = ["ESCU - Update previously seen users in CloudTrail", "ESCU - 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,10 +1052,10 @@ 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 - Get Notable History", "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"] -support_searches = ["ESCU - Previously seen S3 bucket access by remote IP", "ESCU - Baseline of S3 Bucket deletion activity by ARN"] +investigative_searches = ["ESCU - AWS S3 Bucket details via bucketName", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get All AWS Activity From IP Address"] +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 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. @@ -1071,8 +1071,8 @@ id = 2e8948a5-5239-406b-b56b-6c50f2168af3 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": ["Command and Control"], "nist": ["PR.AC"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS traffic ratio", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get All AWS Activity From IP Address"] +mappings = {"cis20": ["CIS 11"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "nist": ["DE.AE", "DE.CM", "PR.AC"]} +investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] support_searches = ["ESCU - Baseline of blocked outbound traffic from AWS"] data_models = [] providing_technologies = none @@ -1090,9 +1090,9 @@ id = 6380ebbb-55c5-4fce-b754-01fd565fb73c version = 1 reference = ["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"] 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"]} +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 - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] -support_searches = ["ESCU - Previously Seen Users In CloudTrail - Update", "ESCU - Previously Seen Users in CloudTrail - Initial", "ESCU - Previously Seen AWS Cross Account Activity - Update", "ESCU - Previously Seen AWS Cross Account Activity - Initial"] +support_searches = ["ESCU - Previously Seen AWS Cross Account Activity - Update", "ESCU - Previously Seen AWS Cross Account Activity - Initial", "ESCU - Previously Seen Users In CloudTrail - Update", "ESCU - Previously Seen Users in CloudTrail - Initial"] 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 - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address"] -support_searches = ["ESCU - Baseline Of Cloud Instances Launched", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Instance Modifications By User - Initial", "ESCU - Previously Seen Cloud Instance Modifications By User - Update"] +support_searches = ["ESCU - Previously Seen Cloud Instance Modifications By User - Initial", "ESCU - Previously Seen Cloud Instance Modifications By User - Update", "ESCU - Baseline Of Cloud Instances Destroyed", "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. @@ -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 - Baseline Of Cloud Security Group API Calls Per User", "ESCU - Baseline Of Cloud Infrastructure API Calls Per User", "ESCU - Previously Seen Cloud API Calls Per User Role - Update", "ESCU - Previously Seen Cloud API Calls Per User Role - Initial"] +support_searches = ["ESCU - Baseline Of Cloud Security Group API Calls Per User", "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"] data_models = ["Change"] providing_technologies = none description = Detect and investigate suspicious activities by users and roles in your cloud environments. @@ -1159,7 +1159,7 @@ reference = ["https://attack.mitre.org/wiki/Technique/T1059", "https://www.micro 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Previously seen command line arguments"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of Command Line Length - MLTK"] 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 Notable History", "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"] +investigative_searches = ["ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] support_searches = ["ESCU - Baseline of DNS Query Length - MLTK"] data_models = ["Network_Resolution"] providing_technologies = none @@ -1227,7 +1227,7 @@ reference = ["https://redcanary.com/blog/windows-registry-attacks-threat-detecti 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Baseline of Command Line Length - MLTK", "ESCU - Previously seen command line arguments"] +support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of Command Line Length - MLTK"] data_models = ["Endpoint"] providing_technologies = none description = Monitor and detect techniques used by attackers who leverage the mshta.exe process to execute malicious code. @@ -1244,7 +1244,7 @@ version = 1 reference = ["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"] detection_searches = ["ESCU - Multiple Okta Users With Invalid Credentails From The Same IP - Rule", "ESCU - Okta Account Lockout Events - Rule", "ESCU - Okta Failed SSO Attempts - Rule", "ESCU - Okta User Logins From Multiple Cities - Rule"] mappings = {"cis20": ["CIS 16"], "mitre_attack": ["T1078.001"], "nist": ["DE.CM"]} -investigative_searches = ["ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by app", "ESCU - Investigate Okta Activity by IP Address"] +investigative_searches = ["ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by IP Address", "ESCU - Investigate Okta Activity by app"] support_searches = [] data_models = [] providing_technologies = none @@ -1260,7 +1260,7 @@ 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info"] support_searches = [] @@ -1349,7 +1349,7 @@ id = 826e6431-aeef-41b4-9fc0-6d0985d65a21 version = 1 reference = ["https://www.monkey.org/~dugsong/dsniff/"] detection_searches = ["ESCU - Protocols passing authentication in cleartext - Rule"] -mappings = {"cis20": ["CIS 14"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["PR.DS"]} +mappings = {"cis20": ["CIS 14", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Reconnaissance"], "nist": ["DE.AE", "PR.AC", "PR.DS", "PR.PT"]} investigative_searches = ["ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] support_searches = [] data_models = ["Network_Traffic"] @@ -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 Web Session Information via session id", "ESCU - Get Notable History", "ESCU - Get Emails From Specific Sender"] +investigative_searches = ["ESCU - Get Notable History", "ESCU - Get Web Session Information via session id", "ESCU - Get Emails From Specific Sender"] support_searches = [] data_models = [] providing_technologies = none @@ -1470,8 +1470,8 @@ 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"]} +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] @@ -1487,9 +1487,9 @@ id = 6dbd810e-f66d-414b-8dfc-e46de55cbfe2 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 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", "PR.AC", "PR.AT", "PR.IP", "PR.PT"]} +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Previously Seen Running Windows Services - Initial", "ESCU - Previously Seen Running Windows Services - Update"] +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 ae00404ad3..5282534321 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: 2020-12-18T01:01:56 UTC +# On Date: 2021-01-13T13:05:35 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# diff --git a/package/default/es_investigations.conf b/package/default/es_investigations.conf index a057a27ba9..2f264c5828 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_get_notable_history", "panel://workbench_panel_aws_investigate_user_activities_by_accesskeyid"] +panels = ["panel://workbench_panel_aws_investigate_user_activities_by_accesskeyid", "panel://workbench_panel_get_notable_history"] [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_notable_history", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_investigate_aws_activities_via_region_name"] +panels = ["panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] [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_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_information_for_port_activity", "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_all_aws_activity_from_ip_address"] +panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] [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_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_get_ec2_launch_details"] +panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] [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_get_all_aws_activity_from_city", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_get_all_aws_activity_from_region", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_all_aws_activity_from_country", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +panels = ["panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_get_all_aws_activity_from_region", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_all_aws_activity_from_city", "panel://workbench_panel_get_all_aws_activity_from_country", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] [panel_group://workbench_panel_group_aws_user_monitoring] label = AWS User Monitoring @@ -60,21 +60,21 @@ 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_notable_history", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_email_info", "panel://workbench_panel_get_emails_from_specific_sender"] +panels = ["panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_email_info", "panel://workbench_panel_get_emails_from_specific_sender"] [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_notable_history", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_investigate_aws_activities_via_region_name"] +panels = ["panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] [panel_group://workbench_panel_group_coldroot_macos_rat] label = ColdRoot MacOS RAT 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. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_investigate_network_traffic_from_src_ip"] +panels = ["panel://workbench_panel_investigate_network_traffic_from_src_ip", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_collection_and_staging] label = Collection and Staging @@ -88,16 +88,16 @@ 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_get_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_information_for_port_activity", "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_all_aws_activity_from_ip_address"] +panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] [panel_group://workbench_panel_group_common_phishing_frameworks] label = Common Phishing Frameworks description = Detect DNS and web requests to fake websites generated by the EvilGinx2 toolkit. These websites are designed to fool unwitting users who have clicked on a malicious link in a phishing email. disabled = 0 -panels = ["panel://workbench_panel_get_certificate_logs_for_a_domain", "panel://workbench_panel_domain_certificate_investigation"] +panels = ["panel://workbench_panel_domain_certificate_investigation", "panel://workbench_panel_get_certificate_logs_for_a_domain"] -[panel_group://workbench_panel_group_] +[panel_group://workbench_panel_group_container_implantation_monitoring_and_investigation] label = Container Implantation Monitoring and Investigation description = Use the searches in this story to monitor your Kubernetes registry repositories for upload, and deployment of potentially vulnerable, backdoor, or implanted containers. These searches provide information on source users, destination path, container names and repository names. The searches provide context to address Mitre T1525 which refers to container implantation upload to a company's repository either in Amazon Elastic Container Registry, Google Container Registry and Azure Container Registry. disabled = 0 @@ -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_pass_the_hash_attempts", "panel://workbench_panel_investigate_failed_logins_for_multiple_destinations", "panel://workbench_panel_investigate_previous_unseen_user", "panel://workbench_panel_investigate_pass_the_ticket_attempts"] +panels = ["panel://workbench_panel_investigate_pass_the_ticket_attempts", "panel://workbench_panel_investigate_previous_unseen_user", "panel://workbench_panel_investigate_failed_logins_for_multiple_destinations", "panel://workbench_panel_investigate_pass_the_hash_attempts"] [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_file_activity", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_process_info"] +panels = ["panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_file_activity", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] [panel_group://workbench_panel_group_dns_amplification_attacks] label = DNS Amplification Attacks @@ -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_notable_history", "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"] +panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_detect_zerologon_attack] label = Detect Zerologon Attack @@ -165,14 +165,14 @@ 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_notable_history", "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"] +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_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info"] +panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] [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_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_outbound_emails_to_hidden_cobra_threat_actors", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info"] +panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_outbound_emails_to_hidden_cobra_threat_actors"] [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_get_notable_history", "panel://workbench_panel_amazon_eks_kubernetes_activity_by_src_ip", "panel://workbench_panel_gcp_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,14 +235,14 @@ 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_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info"] +panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] [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_notable_history", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info"] [panel_group://workbench_panel_group_monitor_backup_solution] label = Monitor Backup Solution @@ -272,7 +272,7 @@ disabled = 0 panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] -[panel_group://workbench_panel_group_] +[panel_group://workbench_panel_group_office_365_detections] label = Office 365 Detections description = This story is focused around detecting Office 365 Attacks. disabled = 0 @@ -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_notable_history", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "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_notable_history", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "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_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_process_info"] +panels = ["panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] [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_parent_process_info", "panel://workbench_panel_get_notable_history", "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_backup_logs_for_endpoint", "panel://workbench_panel_get_sysmon_wmi_activity_for_host"] +panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] [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_parent_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_backup_logs_for_endpoint"] +panels = ["panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] [panel_group://workbench_panel_group_spectre_and_meltdown_vulnerabilities] label = Spectre And Meltdown Vulnerabilities @@ -368,9 +368,9 @@ label = Splunk Enterprise Vulnerability CVE-2018-11409 description = Reduce the risk of CVE-2018-11409, an information disclosure vulnerability within some older versions of Splunk Enterprise, with searches designed to help ensure that your Splunk system does not leak information to authenticated users. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_investigate_network_traffic_from_src_ip"] +panels = ["panel://workbench_panel_investigate_network_traffic_from_src_ip", "panel://workbench_panel_get_notable_history"] -[panel_group://workbench_panel_group_] +[panel_group://workbench_panel_group_sunburst_malware] label = Sunburst Malware 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. disabled = 0 @@ -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_notable_history", "panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid", "panel://workbench_panel_investigate_aws_activities_via_region_name"] +panels = ["panel://workbench_panel_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] [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_get_notable_history", "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"] +panels = ["panel://workbench_panel_aws_s3_bucket_details_via_bucketname", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] [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_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_process_information_for_port_activity", "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_all_aws_activity_from_ip_address"] +panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] [panel_group://workbench_panel_group_suspicious_cloud_authentication_activities] label = Suspicious Cloud Authentication Activities @@ -445,7 +445,7 @@ 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_notable_history", "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"] +panels = ["panel://workbench_panel_get_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_suspicious_emails] label = Suspicious Emails @@ -473,7 +473,7 @@ label = Suspicious Okta Activity 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. disabled = 0 -panels = ["panel://workbench_panel_investigate_user_activities_in_okta", "panel://workbench_panel_investigate_okta_activity_by_app", "panel://workbench_panel_investigate_okta_activity_by_ip_address"] +panels = ["panel://workbench_panel_investigate_user_activities_in_okta", "panel://workbench_panel_investigate_okta_activity_by_ip_address", "panel://workbench_panel_investigate_okta_activity_by_app"] [panel_group://workbench_panel_group_suspicious_wmi_use] label = Suspicious WMI Use @@ -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_web_session_information_via_session_id", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_emails_from_specific_sender"] +panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_web_session_information_via_session_id", "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 diff --git a/package/default/macros.conf b/package/default/macros.conf index f4db99652c..26fdf5f83d 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: 2020-12-18T01:01:56 UTC +# On Date: 2021-01-13T13:05:35 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# @@ -387,6 +387,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. +[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 +587,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 +731,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 +931,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. @@ -1003,6 +1023,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. @@ -1055,6 +1079,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. @@ -1135,6 +1163,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. @@ -1143,6 +1175,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. @@ -1227,10 +1263,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 bf2b125fc4..a930ae9a4f 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: 2020-12-18T01:01:56 UTC +# On Date: 2021-01-13T13:05:35 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." +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." +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." +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." +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." +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." +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. @@ -117,10 +117,10 @@ search = `cloudtrail` (eventName=Run* OR eventName=Create*) [search `cloudtrail` [ESCU - AWS Cloud Provisioning From Previously Unseen Region - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for AWS provisioning activities from previously unseen regions. Region in this context is similar to a state in the United States. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." +description = This search looks for AWS provisioning activities from previously unseen regions. Region in this context is similar to a state in the United States. 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 regions. Region in this context is similar to a state in the United States. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." +action.escu.eli5 = This search looks for AWS provisioning activities from previously unseen regions. Region in this context is similar to a state in the United States. 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 region is seen in the **GeoIP** database for any kind of provisioning activity. If you typically do all provisioning from tools inside of your region, there should be few false positives. If you are located in regions 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. @@ -151,10 +151,10 @@ search = `cloudtrail` (eventName=Run* OR eventName=Create*) | iplocation sourceI [ESCU - AWS Cross Account Activity From Previously Unseen Account - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for AssumeRole events where an IAM role in a different account is requested for the first time. +description = This search looks for AssumeRole events where an IAM role in a different account is requested for the first time. This search is deprecated and have been translated to use the latest Authentication Datamodel. action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["PR.AC", "PR.DS", "DE.AE"]} action.escu.data_models = ["Authentication"] -action.escu.eli5 = This search looks for AssumeRole events where an IAM role in a different account is requested for the first time. +action.escu.eli5 = This search looks for AssumeRole events where an IAM role in a different account is requested for the first time. This search is deprecated and have been translated to use the latest Authentication Datamodel. action.escu.how_to_implement = You must be ingesting your cloud infrastructure logs from your cloud provider. You should run the baseline search `Previously Seen AWS Cross Account Activity - Initial` to build the initial table of source IP address, geographic locations, and times. You must also enable the second baseline search `Previously Seen AWS Cross Account Activity - Update` to keep this table up to date and to age out old data. You can also provide additional filtering for this search by customizing the `aws_cross_account_activity_from_previously_unseen_account_filter` macro. action.escu.known_false_positives = Using multiple AWS accounts and roles is perfectly valid behavior. It's suspicious when an account requests privileges of an account it hasn't before. You should validate with the account owner that this is a legitimate request. action.escu.creation_date = 2020-05-28 @@ -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,15 +359,15 @@ 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 action.escu.enabled = 1 -description = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. +description = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. This search is deprecated and have been translated to use the latest Change Datamodel action.escu.mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. +action.escu.eli5 = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. 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. The threshold value should be tuned to your environment. action.escu.known_false_positives = Many service accounts configured within an AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify if this search alerted on a human user. action.escu.creation_date = 2020-07-21 @@ -402,10 +402,10 @@ search = `cloudtrail` eventName=RunInstances errorCode=success | bucket span=10m [ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. +description = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. +action.escu.eli5 = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. 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. The threshold value should be tuned to your environment. action.escu.known_false_positives = Many service accounts configured within an AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify if this search alerted on a human user. action.escu.creation_date = 2020-07-21 @@ -440,10 +440,10 @@ search = `cloudtrail` eventName=RunInstances errorCode=success `abnormally_high_ [ESCU - Abnormally High AWS Instances Terminated by User - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for CloudTrail events where an abnormally high number of instances were successfully terminated by a user in a 10-minute window +description = This search looks for CloudTrail events where an abnormally high number of instances were successfully terminated by a user in a 10-minute window. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for CloudTrail events where an abnormally high number of instances were successfully terminated by a user in a 10-minute window +action.escu.eli5 = This search looks for CloudTrail events where an abnormally high number of instances were successfully terminated by a user in a 10-minute window. 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. action.escu.known_false_positives = Many service accounts configured with your AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify whether this search alerted on a human user. action.escu.creation_date = 2020-07-21 @@ -473,10 +473,10 @@ search = `cloudtrail` eventName=TerminateInstances errorCode=success | bucket sp [ESCU - Abnormally High AWS Instances Terminated by User - MLTK - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for CloudTrail events where a user successfully terminates an abnormally high number of instances. +description = This search looks for CloudTrail events where a user successfully terminates an abnormally high number of instances. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for CloudTrail events where a user successfully terminates an abnormally high number of instances. +action.escu.eli5 = This search looks for CloudTrail events where a user successfully terminates an abnormally high number of instances. 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. The threshold value should be tuned to your environment. action.escu.known_false_positives = Many service accounts configured within an AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify if this search alerted on a human user. action.escu.creation_date = 2020-07-21 @@ -919,6 +919,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 @@ -1185,10 +1218,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 @@ -1933,10 +1966,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. \ @@ -2662,6 +2695,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 +2740,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 +2769,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 @@ -2707,7 +2811,7 @@ description = This search looks for outbound SMB connections made by hosts withi action.escu.mappings = {"cis20": ["CIS 12"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1071.002"], "nist": ["DE.CM"]} action.escu.data_models = ["Network_Traffic"] action.escu.eli5 = This search looks for outbound SMB connections made by hosts within your network to the Internet. SMB traffic is used for Windows file-sharing activity. One of the techniques often used by attackers involves retrieving the credential hash using an SMB request made to a compromised server controlled by the threat actor. -action.escu.how_to_implement = In order to run this search effectively, we highly recommend that you leverage the Assets and Identity framework. It is important that you have good understanding of how your network segments are designed, and be able to distinguish internal from external address space. Add a category named `internal` to the CIDRs that host the company's assets in `assets_by_cidr.csv` lookup file, which is located in `$SPLUNK_HOME/etc/apps/SA-IdentityManagement/lookups/`. More information on updating this lookup can be found here: https://docs.splunk.com/Documentation/ES/5.0.0/Admin/Addassetandidentitydata. This search also requires you to be ingesting your network traffic and populating the Network_Traffic data model +action.escu.how_to_implement = In order to run this search effectively, we highly recommend that you leverage the Assets and Identity framework. It is important that you have good understanding of how your network segments are designed, and be able to distinguish internal from external address space. Add a category named `internal` to the CIDRs that host the companys assets in `assets_by_cidr.csv` lookup file, which is located in `$SPLUNK_HOME/etc/apps/SA-IdentityManagement/lookups/`. More information on updating this lookup can be found here: https://docs.splunk.com/Documentation/ES/5.0.0/Admin/Addassetandidentitydata. This search also requires you to be ingesting your network traffic and populating the Network_Traffic data model action.escu.known_false_positives = It is likely that the outbound Server Message Block (SMB) traffic is legitimate, if the company's internal networks are not well-defined in the Assets and Identity Framework. Categorize the internal CIDR blocks as `internal` in the lookup file to avoid creating notable events for traffic destined to those CIDR blocks. Any other network connection that is going out to the Internet should be investigated and blocked. Best practices suggest preventing external communications of all SMB versions and related protocols at the network boundary. action.escu.creation_date = 2020-07-21 action.escu.modification_date = 2020-07-21 @@ -2731,7 +2835,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count earliest(_time) as earliest latest(_time) as latest values(All_Traffic.action) from datamodel=Network_Traffic where All_Traffic.action !=blocked All_Traffic.dest_category !=internal (All_Traffic.dest_port=139 OR All_Traffic.dest_port=445 OR All_Traffic.app=smb) by All_Traffic.src_ip All_Traffic.dest_ip | `drop_dm_object_name("All_Traffic")` | search ( dest_ip!=10.0.0.0/8 AND dest_ip!=172.16.0.0/12 AND dest_ip!=192.168.0.0/16) | `security_content_ctime(earliest)`| `security_content_ctime(latest)` | `detect_outbound_smb_traffic_filter` +search = | tstats `security_content_summariesonly` earliest(_time) as start_time latest(_time) as end_time values(All_Traffic.action) as action values(All_Traffic.app) as app values(All_Traffic.dest_ip) as dest_ip values(All_Traffic.dest_port) as dest_port values(sourcetype) as sourcetype count from datamodel=Network_Traffic where ((All_Traffic.dest_port=139 OR All_Traffic.dest_port=445 OR All_Traffic.app="smb") AND NOT (All_Traffic.action="blocked" OR All_Traffic.dest_category="internal" OR All_Traffic.dest_ip=10.0.0.0/8 OR All_Traffic.dest_ip=172.16.0.0/12 OR All_Traffic.dest_ip=192.168.0.0/16 OR All_Traffic.dest_ip=100.64.0.0/10)) by All_Traffic.src_ip | `drop_dm_object_name("All_Traffic")` | `security_content_ctime(start_time)` | `security_content_ctime(end_time)` | `detect_outbound_smb_traffic_filter` [ESCU - Detect Path Interception By Creation Of program exe - Rule] action.escu = 0 @@ -3044,10 +3148,10 @@ search = | tstats `security_content_summariesonly` count min(_time) as firstTime [ESCU - Detect Spike in AWS API Activity - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search will detect users creating spikes of API activity in your AWS environment. It will also update the cache file that factors in the latest data. +description = This search will detect users creating spikes of API activity in your AWS environment. It will also update the cache file that factors in the latest data. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.CM", "PR.AC"]} action.escu.data_models = [] -action.escu.eli5 = This search will detect users creating spikes of API activity in your AWS environment. It will also update the cache file that factors in the latest data. +action.escu.eli5 = This search will detect users creating spikes of API activity in your AWS environment. It will also update the cache file that factors in the latest data. 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. You can modify `dataPointThreshold` and `deviationThreshold` to better fit your environment. The `dataPointThreshold` variable is the minimum number of data points required to have a statistically significant amount of data to determine. The `deviationThreshold` variable is the number of standard deviations away from the mean that the value must be to be considered a spike.\ This search produces fields (`eventName`,`numberOfApiCalls`,`uniqueApisCalled`) 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. \ @@ -3154,10 +3258,10 @@ search = `aws_securityhub_firehose` "findings{}.Resources{}.Type"= AwsIamUser | [ESCU - Detect Spike in Network ACL Activity - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search will detect users creating spikes in API activity related to network access-control lists (ACLs)in your AWS environment. +description = This search will detect users creating spikes in API activity related to network access-control lists (ACLs)in your AWS environment. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 12", "CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.CM", "PR.AC"]} action.escu.data_models = [] -action.escu.eli5 = This search will detect users creating spikes in API activity related to network access-control lists (ACLs)in your AWS environment. +action.escu.eli5 = This search will detect users creating spikes in API activity related to network access-control lists (ACLs)in your AWS environment. 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. You can modify `dataPointThreshold` and `deviationThreshold` to better fit your environment. The `dataPointThreshold` variable is the minimum number of data points required to have a statistically significant amount of data to determine. The `deviationThreshold` variable is the number of standard deviations away from the mean that the value must be to be considered a spike. This search works best when you run the "Baseline of Network ACL Activity by ARN" support search once to create a lookup file of previously seen Network ACL Activity. To add or remove API event names related to network ACLs, edit the macro `network_acl_events`. action.escu.known_false_positives = The false-positive rate may vary based on the values of`dataPointThreshold` and `deviationThreshold`. Please modify this according the your environment. action.escu.creation_date = 2018-05-21 @@ -3230,10 +3334,10 @@ search = `cloudtrail` eventName=DeleteBucket [search `cloudtrail` eventName=Dele [ESCU - Detect Spike in Security Group Activity - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search will detect users creating spikes in API activity related to security groups in your AWS environment. It will also update the cache file that factors in the latest data. +description = This search will detect users creating spikes in API activity related to security groups in your AWS environment. It will also update the cache file that factors in the latest data. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.CM", "PR.AC"]} action.escu.data_models = [] -action.escu.eli5 = This search will detect users creating spikes in API activity related to security groups in your AWS environment. It will also update the cache file that factors in the latest data. +action.escu.eli5 = This search will detect users creating spikes in API activity related to security groups in your AWS environment. It will also update the cache file that factors in the latest data. 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. You can modify `dataPointThreshold` and `deviationThreshold` to better fit your environment. The `dataPointThreshold` variable is the minimum number of data points required to have a statistically significant amount of data to determine. The `deviationThreshold` variable is the number of standard deviations away from the mean that the value must be to be considered a spike.This search works best when you run the "Baseline of Security Group Activity by ARN" support search once to create a history of previously seen Security Group Activity. To add or remove API event names for security groups, edit the macro `security_group_api_calls`. action.escu.known_false_positives = Based on the values of`dataPointThreshold` and `deviationThreshold`, the false positive rate may vary. Please modify this according the your environment. action.escu.creation_date = 2018-04-18 @@ -3844,6 +3948,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 @@ -3913,10 +4050,10 @@ search = | tstats `security_content_summariesonly` count min(_time) as firstTime [ESCU - EC2 Instance Modified With Previously Unseen User - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for EC2 instances being modified by users who have not previously modified them. +description = This search looks for EC2 instances being modified by users who have not previously modified them. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1078.004"], "nist": ["ID.AM"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for EC2 instances being modified by users who have not previously modified them. +action.escu.eli5 = This search looks for EC2 instances being modified by users who have not previously modified them. 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 EC2 Launches By User" support search once to create a history of previously seen ARNs. To add or remove APIs that modify an EC2 instance, edit the macro `ec2_modification_api_calls`. action.escu.known_false_positives = It's possible that a new user will start to modify EC2 instances when they haven't before for any number of reasons. Verify with the user that is modifying instances that this is the intended behavior. action.escu.creation_date = 2020-07-21 @@ -3955,7 +4092,7 @@ description = This search looks for CloudTrail events where an instance is start action.escu.mappings = {"cis20": ["CIS 12"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1535"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] action.escu.eli5 = This search looks for CloudTrail events where an instance is started in a particular region in the last one hour and then compares it to a lookup file of previously seen regions where an instance was started -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. Run the "Previously seen AWS Regions" support search only once to create of baseline of previously seen regions. +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. Run the "Previously seen AWS Regions" support search only once to create of baseline of previously seen regions. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.known_false_positives = It's possible that a user has unknowingly started an instance in a new region. Please verify that this activity is legitimate. action.escu.creation_date = 2018-02-23 action.escu.modification_date = 2018-02-23 @@ -3989,10 +4126,10 @@ search = `cloudtrail` earliest=-1h StartInstances | stats earliest(_time) as ear [ESCU - EC2 Instance Started With Previously Unseen AMI - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for EC2 instances being created with previously unseen AMIs. +description = This search looks for EC2 instances being created with previously unseen AMIs. 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 EC2 instances being created with previously unseen AMIs. +action.escu.eli5 = This search looks for EC2 instances being created with previously unseen AMIs. 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 EC2 AMIs" support search once to create a history of previously seen AMIs. action.escu.known_false_positives = After a new AMI is created, the first systems created with that AMI will cause this alert to fire. Verify that the AMI being used was created by a legitimate user. action.escu.creation_date = 2018-03-12 @@ -4022,10 +4159,10 @@ search = `cloudtrail` eventName=RunInstances [search `cloudtrail` eventName=RunI [ESCU - EC2 Instance Started With Previously Unseen Instance Type - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for EC2 instances being created with previously unseen instance types. +description = This search looks for EC2 instances being created with previously unseen instance types. 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 EC2 instances being created with previously unseen instance types. +action.escu.eli5 = This search looks for EC2 instances being created with previously unseen instance types. 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 EC2 Instance Types" support search once to create a history of previously seen instance types. action.escu.known_false_positives = It is possible that an admin will create a new system using a new instance type never used before. Verify with the creator that they intended to create the system with the new instance type. action.escu.creation_date = 2020-02-07 @@ -4055,10 +4192,10 @@ search = `cloudtrail` eventName=RunInstances [search `cloudtrail` eventName=RunI [ESCU - EC2 Instance Started With Previously Unseen User - Rule] action.escu = 0 action.escu.enabled = 1 -description = This search looks for EC2 instances being created by users who have not created them before. +description = This search looks for EC2 instances being created by users who have not created them before. This search is deprecated and have been translated to use the latest Change Datamodel. action.escu.mappings = {"cis20": ["CIS 1"], "mitre_attack": ["T1078.004"], "nist": ["ID.AM"]} action.escu.data_models = [] -action.escu.eli5 = This search looks for EC2 instances being created by users who have not created them before. +action.escu.eli5 = This search looks for EC2 instances being created by users who have not created them before. 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 EC2 Launches By User" support search once to create a history of previously seen ARNs. action.escu.known_false_positives = It's possible that a user will start to create EC2 instances when they haven't before for any number of reasons. Verify with the user that is launching instances that this is the intended behavior. action.escu.creation_date = 2020-07-21 @@ -5473,6 +5610,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 @@ -6199,6 +6369,39 @@ 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` +[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 action.escu.enabled = 1 @@ -6628,6 +6831,39 @@ 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` +[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 action.escu.enabled = 1 @@ -7291,6 +7527,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 @@ -7331,7 +7600,7 @@ description = The malware sunburst will load the malicious dll by SolarWinds.Bus action.escu.mappings = {"cis20": ["CIS 6", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1203"], "nist": ["DE.CM"]} action.escu.data_models = [] action.escu.eli5 = The malware sunburst will load the malicious dll by SolarWinds.BusinessLayerHost.exe. After a period of 12-14 days, the malware will attempt to resolve a subdomain of avsvmcloud.com. This detections will correlate both events. -action.escu.how_to_implement = This detection relies on sysmon logs with the Event ID 6, Driver loaded. Please tune your sysmon config that you DriverLoad event for SolarWinds.Orion.Core.BusinessLayer.dll is captured by Sysmon. Additionally, you need sysmon logs for Event ID 22, DNS Query. We suggest to run this detection at least once a day over the last 14 days. +action.escu.how_to_implement = This detection relies on sysmon logs with the Event ID 7, Driver loaded. Please tune your sysmon config that you DriverLoad event for SolarWinds.Orion.Core.BusinessLayer.dll is captured by Sysmon. Additionally, you need sysmon logs for Event ID 22, DNS Query. We suggest to run this detection at least once a day over the last 14 days. action.escu.known_false_positives = unknown action.escu.creation_date = 2020-12-14 action.escu.modification_date = 2020-12-14 @@ -7357,6 +7626,39 @@ 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` +[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 action.escu.enabled = 1 @@ -8052,6 +8354,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 @@ -8085,6 +8420,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 diff --git a/package/default/transforms.conf b/package/default/transforms.conf index 529045605f..61dbce6a09 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: 2020-12-18T01:01:56 UTC +# On Date: 2021-01-13T13:05:35 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 d3e92d3e56..949287c2ff 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: 2020-12-18T01:01:56 UTC +# On Date: 2021-01-13T13:05:35 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 assume role abuse - Rule", "ESCU - aws detect role creation - Rule", "ESCU - aws detect sts get session token abuse - Rule", "ESCU - aws detect attach to role policy - Rule", "ESCU - aws detect permanent key creation - Rule", "ESCU - Get Notable History", "ESCU - AWS Investigate User Activities By AccessKeyId"] +searches = ["ESCU - aws detect sts assume role abuse - Rule", "ESCU - aws detect attach to role policy - Rule", "ESCU - aws detect sts get session token abuse - Rule", "ESCU - aws detect permanent key creation - Rule", "ESCU - aws detect role creation - Rule", "ESCU - AWS Investigate User Activities By AccessKeyId", "ESCU - Get Notable History"] 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 - EC2 Instance Started With Previously Unseen User - Rule", "ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - EC2 Instance Started With Previously Unseen AMI - Rule", "ESCU - EC2 Instance Started With Previously Unseen Instance Type - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - Get Notable History", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name"] +searches = ["ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - 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 Instance Type - Rule", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] 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 - Detect Spike in Network ACL Activity - Rule", "ESCU - AWS Network Access Control List Deleted - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - AWS Network Access Control List Created with All Open Ports - Rule", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS traffic ratio", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get All AWS Activity From IP Address"] +searches = ["ESCU - AWS Network Access Control List Deleted - Rule", "ESCU - Detect Spike in Network ACL Activity - 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 - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] 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 - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Get EC2 Launch Details"] +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 - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] 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 Region - 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 City - Rule", "ESCU - Get All AWS Activity From City", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From IP Address"] +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 Region - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen IP Address - Rule", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From City", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From IP Address"] 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 Spike in Security Group Activity - Rule", "ESCU - Detect AWS API Activities From Unapproved Accounts - Rule", "ESCU - Detect new API calls from user roles - Rule", "ESCU - Detect Spike in AWS API Activity - Rule", "ESCU - Detect API activity from users without MFA - Rule", "ESCU - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] +searches = ["ESCU - Detect new API calls from user roles - Rule", "ESCU - Detect Spike in Security Group Activity - Rule", "ESCU - Detect Spike in AWS API Activity - Rule", "ESCU - Detect AWS API Activities From Unapproved Accounts - Rule", "ESCU - Detect API activity from users without MFA - Rule", "ESCU - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] 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. \ @@ -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 Web Traffic For Brand Abuse - Rule", "ESCU - Monitor DNS For Brand Abuse - Rule", "ESCU - Get Notable History", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +searches = ["ESCU - Monitor DNS For Brand Abuse - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Monitor Web Traffic For Brand Abuse - Rule", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] 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 - Cloud Compute Instance Created In Previously Unused Region - 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 With Previously Unseen Image - Rule", "ESCU - Get Notable History", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name"] +searches = ["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 - Cloud Compute Instance Created In Previously Unused Region - Rule", "ESCU - Cloud Compute Instance Created By Previously Unseen User - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Instance Type - Rule", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] 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 - Get Notable History", "ESCU - Investigate Network Traffic From src ip"] +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 - 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 - Email files written outside of the Outlook directory - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Email servers sending high volume traffic to hosts - Rule", "ESCU - Suspicious writes to System Volume Information - Rule", "ESCU - Hosts receiving high volume of network traffic from email server - Rule", "ESCU - Suspicious writes to windows Recycle Bin - Rule", "ESCU - Email files written outside of the Outlook directory - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 - TOR Traffic - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detect Large Outbound ICMP Packets - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS traffic ratio", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get All AWS Activity From IP Address"] +searches = ["ESCU - TOR Traffic - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detect Large Outbound ICMP Packets - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] 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. @@ -189,7 +189,7 @@ version = 1 references = ["https://github.com/kgretzky/evilginx2", "https://attack.mitre.org/techniques/T1192/", "https://breakdev.org/evilginx-advanced-phishing-with-two-factor-authentication-bypass/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Splunk Research Team"}] spec_version = 3 -searches = ["ESCU - Detect DNS requests to Phishing Sites leveraging EvilGinx2 - Rule", "ESCU - Get Certificate logs for a domain", "ESCU - Domain Certificate Investigation"] +searches = ["ESCU - Detect DNS requests to Phishing Sites leveraging EvilGinx2 - Rule", "ESCU - Domain Certificate Investigation", "ESCU - Get Certificate logs for a domain"] description = Detect DNS and web requests to fake websites generated by the EvilGinx2 toolkit. These websites are designed to fool unwitting users who have clicked on a malicious link in a phishing email. narrative = 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. Because phishing is a technique that relies on human psychology, you will never be able to eliminate this vulnerability 100%. But you can use automated detection to significantly reduce the risks.\ This Analytic Story focuses on detecting signs of MiTM attacks enabled by [EvilGinx2](https://github.com/kgretzky/evilginx2), a toolkit that sets up a transparent proxy between the targeted site and the user. In this way, the attacker is able to intercept credentials and two-factor identification tokens. It employs a proxy template to allow a registered domain to impersonate targeted sites, such as Linkedin, Amazon, Okta, Github, Twitter, Instagram, Reddit, Office 365, and others. It can even register SSL certificates and camouflage them via a URL shortener, making them difficult to detect. Searches in this story look for signs of MiTM attacks enabled by EvilGinx2. @@ -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 - Rule", "ESCU - Credential Dumping via Symlink to Shadow Copy - Rule", "ESCU - Unsigned Image Loaded by LSASS - Rule", "ESCU - Attempted Credential Dump From Registry via Reg exe - Rule", "ESCU - Dump LSASS via comsvcs DLL - Rule", "ESCU - Creation of Shadow Copy with wmic and powershell - Rule", "ESCU - Create Remote Thread into LSASS - Rule", "ESCU - Access LSASS Memory for Dump Creation - Rule", "ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule", "ESCU - Detect Credential Dumping through LSASS access - Rule", "ESCU - Investigate Pass the Hash Attempts", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Previous Unseen User", "ESCU - Investigate Pass the Ticket Attempts"] +searches = ["ESCU - Dump LSASS via comsvcs DLL - Rule", "ESCU - Access LSASS Memory for Dump Creation - Rule", "ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule", "ESCU - Unsigned Image Loaded by LSASS - Rule", "ESCU - Creation of Shadow Copy - Rule", "ESCU - Creation of Shadow Copy with wmic and powershell - 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 - Detect Credential Dumping through LSASS access - Rule", "ESCU - Create Remote Thread into LSASS - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Credential Dumping via Symlink to Shadow Copy - Rule", "ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Previous Unseen User", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Pass the Hash Attempts"] 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 - Single Letter Process On Endpoint - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Create local admin accounts using net exe - Rule", "ESCU - Malicious PowerShell Process - Execution Policy Bypass - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Detect New Local Admin account - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Get Process File Activity", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get Process Info"] +searches = ["ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Create local admin accounts using net exe - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Malicious PowerShell Process - Execution Policy Bypass - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Single Letter Process On Endpoint - Rule", "ESCU - Detect New Local Admin account - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process File Activity", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] 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 - DNS record changed - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Hijack Enrichment", "ESCU - Get DNS Server History for a host"] +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"] 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 - Detection of DNS Tunnels - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detect USB device insertion - Rule", "ESCU - Get Notable History", "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"] +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 Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] 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 Computer Changed with Anonymous Account - Rule", "ESCU - Detect Zerologon via Zeek - Rule", "ESCU - Detect Mimikatz Using Loaded Images - 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 - Attempt To Stop Security Service - Rule", "ESCU - Unload Sysmon Filter Driver - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Attempt To Add Certificate To Untrusted Store - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Unload Sysmon Filter Driver - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Attempt To Stop Security Service - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Attempt To Add Certificate To Untrusted Store - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 Notable History", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host"] +searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Detect web traffic 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 - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info"] +searches = ["ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - SMB Traffic Spike - MLTK - 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 - Detection of tools built by NirSoft - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] 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 gcploit framework - Rule", "ESCU - gcp detect oauth token abuse - Rule", "ESCU - GCP Detect high risk permissions by resource and account - Rule", "ESCU - GCP Detect accounts with high risk roles by project - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - gcp detect oauth token abuse - Rule", "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 - 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 - Suspicious File Write - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Create or delete windows shares using net exe - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get DNS traffic ratio", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get DNS Server History for a host", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info"] +searches = ["ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - Create or delete windows shares using net exe - Rule", "ESCU - Suspicious File Write - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors"] 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 - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - Get Notable History", "ESCU - Get DNS Server History for a host"] +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 Notable History", "ESCU - Get DNS Server History for a host"] 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 - Amazon EKS Kubernetes Pod scan detection - Rule", "ESCU - GCP Kubernetes cluster pod scan detection - Rule", "ESCU - GCP Kubernetes cluster scan detection - Rule", "ESCU - Amazon EKS Kubernetes cluster scan detection - Rule", "ESCU - Kubernetes Azure pod scan fingerprint - Rule", "ESCU - Kubernetes Azure scan fingerprint - Rule", "ESCU - Get Notable History", "ESCU - Amazon EKS Kubernetes activity by src ip", "ESCU - GCP Kubernetes activity by src ip"] +searches = ["ESCU - Kubernetes Azure pod scan fingerprint - Rule", "ESCU - Amazon EKS Kubernetes cluster scan detection - Rule", "ESCU - GCP Kubernetes cluster scan detection - Rule", "ESCU - Kubernetes Azure scan fingerprint - Rule", "ESCU - GCP Kubernetes cluster pod scan detection - Rule", "ESCU - Amazon EKS Kubernetes Pod scan detection - 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 - AWS EKS Kubernetes cluster sensitive object access - Rule", "ESCU - Kubernetes Azure detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes GCP detect sensitive object access - Rule", "ESCU - Kubernetes AWS detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes Azure detect suspicious kubectl calls - Rule", "ESCU - Kubernetes GCP detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes GCP detect suspicious kubectl calls - Rule", "ESCU - Kubernetes Azure detect sensitive object access - Rule", "ESCU - Kubernetes AWS detect suspicious kubectl calls - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Kubernetes Azure detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes AWS detect suspicious kubectl calls - Rule", "ESCU - Kubernetes GCP detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes Azure detect sensitive object access - Rule", "ESCU - Kubernetes GCP detect suspicious kubectl calls - Rule", "ESCU - Kubernetes GCP detect sensitive object access - Rule", "ESCU - Kubernetes Azure detect suspicious kubectl calls - Rule", "ESCU - AWS EKS Kubernetes cluster sensitive object access - Rule", "ESCU - Kubernetes AWS 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 GCP detect RBAC authorizations by account - Rule", "ESCU - Kubernetes Azure detect RBAC authorization by account - Rule", "ESCU - Kubernetes AWS detect sensitive role access - Rule", "ESCU - Kubernetes GCP detect sensitive role access - Rule", "ESCU - Kubernetes GCP detect most active service accounts by pod - Rule", "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 most active service accounts by pod namespace - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Kubernetes GCP detect sensitive role access - Rule", "ESCU - Kubernetes Azure detect sensitive role access - Rule", "ESCU - Kubernetes AWS detect sensitive role access - Rule", "ESCU - Kubernetes AWS detect RBAC authorization by account - Rule", "ESCU - Kubernetes GCP detect most active service accounts by pod - Rule", "ESCU - Kubernetes AWS detect most active service accounts by pod - Rule", "ESCU - Kubernetes Azure detect RBAC authorization by account - Rule", "ESCU - Kubernetes Azure detect most active service accounts by pod namespace - 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 - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info"] +searches = ["ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] 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 - Malicious PowerShell Process With Obfuscation Techniques - Rule", "ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - Rule", "ESCU - Malicious PowerShell Process - Multiple Suspicious Command-Line Arguments - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Get Notable History", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Attempt To Set Default PowerShell Execution Policy To Unrestricted or Bypass - 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 - Encoded Command - Rule", "ESCU - Malicious PowerShell Process With Obfuscation Techniques - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "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 - Extended Period Without Successful Netbackup Backups - Rule", "ESCU - Unsuccessful Netbackup backups - Rule", "ESCU - Get Notable History", "ESCU - All backup logs for host"] 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. @@ -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 - High Number of Login Failures from a single source - Rule", "ESCU - O365 Suspicious User Email Forwarding - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - Rule", "ESCU - O365 Suspicious Rights Delegation - Rule"] +searches = ["ESCU - O365 Suspicious Rights Delegation - Rule", "ESCU - High Number of Login Failures from a single source - Rule", "ESCU - O365 Suspicious User Email Forwarding - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - 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 command line argument - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Get Notable History", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "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 - Unusually Long Command Line - MLTK - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Get Notable History", "ESCU - Get History Of Email Sources", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "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 - TOR Traffic - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Info"] +searches = ["ESCU - TOR Traffic - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] 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 - TOR Traffic - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Get History Of Email Sources", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Sysmon WMI Activity for Host"] +searches = ["ESCU - TOR Traffic - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] 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 New Login Attempts to Routers - Rule", "ESCU - Detect Software Download To Network Device - Rule", "ESCU - Detect Port Security Violation - Rule", "ESCU - Detect ARP Poisoning - Rule", "ESCU - Detect Rogue DHCP Server - Rule", "ESCU - Detect Traffic Mirroring - Rule", "ESCU - Detect IPv6 Network Infrastructure Threats - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Detect ARP Poisoning - Rule", "ESCU - Detect Port Security Violation - Rule", "ESCU - Detect Rogue DHCP Server - Rule", "ESCU - Detect IPv6 Network Infrastructure Threats - Rule", "ESCU - Detect New Login Attempts to Routers - Rule", "ESCU - Detect Software Download To Network Device - Rule", "ESCU - Detect Traffic Mirroring - 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 - Remote Desktop Network Bruteforce - Rule", "ESCU - Windows DisableAntiSpyware Registry - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Windows connhost exe started forcefully - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Windows connhost exe started forcefully - Rule", "ESCU - Windows DisableAntiSpyware Registry - 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 - Remote Desktop Network Bruteforce - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - Batch File Write to System32 - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Samsam Test File Write - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Process Information For Port Activity", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get History Of Email Sources", "ESCU - Get Backup Logs For Endpoint"] +searches = ["ESCU - Remote Desktop Network Bruteforce - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Batch File Write to System32 - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Samsam Test File Write - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] 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.\ @@ -725,7 +725,7 @@ version = 1 references = ["https://nvd.nist.gov/vuln/detail/CVE-2018-11409", "https://www.splunk.com/view/SP-CAAAP5E#VulnerabilityDescriptionsandRatings", "https://www.exploit-db.com/exploits/44865/"] maintainers = [{"company": "Splunk", "email": "-", "name": "David Dorsey"}] spec_version = 3 -searches = ["ESCU - Splunk Enterprise Information Disclosure - Rule", "ESCU - Get Notable History", "ESCU - Investigate Network Traffic From src ip"] +searches = ["ESCU - Splunk Enterprise Information Disclosure - Rule", "ESCU - Investigate Network Traffic From src ip", "ESCU - Get Notable History"] description = Reduce the risk of CVE-2018-11409, an information disclosure vulnerability within some older versions of Splunk Enterprise, with searches designed to help ensure that your Splunk system does not leak information to authenticated users. narrative = Although there have been no reports of it being exploited, Splunk Enterprise versions through 7.0.1 reportedly have a vulnerability that may expose information through a REST endpoint (read more here: https://www.splunk.com/view/SP-CAAAP5E#VulnerabilityDescriptionsandRatings). NIST has included it in its vulnerability database (read more here: https://nvd.nist.gov/vuln/detail/CVE-2018-11409). The REST endpoint that exposes system information is also necessary for the proper operation of Splunk clustering and instrumentation. Customers should upgrade to the latest version to reduce the risk of this vulnerability.\ Splunk Enterprise exposes partial information about the host operating system, hardware, and Splunk license. Splunk Enterprise before 6.6.0 exposes this information without authentication. Splunk Enterprise 6.6.0 and later exposes this information only to authenticated Splunk users. Based on the information exposure, Splunk characterizes this issue as a low severity impact.\ @@ -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 - TOR Traffic - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - Windows AdFind Exe - Rule", "ESCU - Schtasks scheduling job on remote system - Rule"] +searches = ["ESCU - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Supernova Webshell - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Windows AdFind Exe - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - 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 - EC2 Instance Started With Previously Unseen User - 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 Terminated by User - MLTK - Rule", "ESCU - EC2 Instance Started In Previously Unseen Region - Rule", "ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - Get Notable History", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId", "ESCU - Investigate AWS activities via region name"] +searches = ["ESCU - Abnormally High AWS Instances Launched by User - Rule", "ESCU - Abnormally High AWS Instances Launched 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 Terminated by User - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - MLTK - Rule", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] 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 AWS Console Login by User from New Region - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - Detect new user AWS Console Login - Rule", "ESCU - Detect AWS Console Login by User from New Country - 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 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"] 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 Spike in S3 Bucket deletion - Rule", "ESCU - Detect New Open S3 buckets - Rule", "ESCU - Detect S3 access from a new IP - Rule", "ESCU - Get Notable History", "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"] +searches = ["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 - Detect Spike in S3 Bucket deletion - Rule", "ESCU - AWS S3 Bucket details via bucketName", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get All AWS Activity From IP Address"] 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 - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS traffic ratio", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Process Information For Port Activity", "ESCU - Get DNS Server History for a host", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Process Info", "ESCU - Get All AWS Activity From IP Address"] +searches = ["ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] 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.\ @@ -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 - 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 - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address"] +searches = ["ESCU - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Instance Modified By Previously Unseen User - Rule", "ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address"] 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 City - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Country - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Region - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen IP Address - Rule", "ESCU - Get Notable History"] +searches = ["ESCU - Cloud Provisioning Activity From Previously Unseen City - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Region - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Country - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen IP Address - 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 - Abnormally High Number Of Cloud Security Group API Calls - Rule", "ESCU - Cloud API Calls From Previously Unseen User Roles - Rule", "ESCU - Abnormally High Number Of Cloud Infrastructure API Calls - Rule", "ESCU - AWS Investigate User Activities By ARN"] +searches = ["ESCU - Abnormally High Number Of Cloud Infrastructure API Calls - Rule", "ESCU - Cloud API Calls From Previously Unseen User Roles - Rule", "ESCU - Abnormally High Number Of Cloud Security Group API Calls - 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 - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First time seen command line argument - 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 - Get Notable History", "ESCU - Get Process Info", "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 - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Notable History", "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"] +searches = ["ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] 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 - Monitor Email For Brand Abuse - Rule", "ESCU - Suspicious Email - UBA Anomaly - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +searches = ["ESCU - Suspicious Email Attachment Extensions - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Suspicious Email - UBA Anomaly - Rule", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] 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: \ @@ -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 - Registry Keys Used For Persistence - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Detect mshta exe running scripts in command-line arguments - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "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 - Multiple Okta Users With Invalid Credentails From The Same IP - Rule", "ESCU - Okta Account Lockout Events - Rule", "ESCU - Okta Failed SSO Attempts - Rule", "ESCU - Okta User Logins From Multiple Cities - Rule", "ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by app", "ESCU - Investigate Okta Activity by IP Address"] +searches = ["ESCU - Okta Failed SSO Attempts - Rule", "ESCU - Multiple Okta Users With Invalid Credentails From The Same IP - 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 IP Address", "ESCU - Investigate Okta Activity by app"] 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 - Process Execution via WMI - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info"] +searches = ["ESCU - WMI Permanent Event Subscription - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule", "ESCU - WMI Temporary Event Subscription - Rule", "ESCU - Process Execution via WMI - Rule", "ESCU - Remote WMI Command Attempt - Rule", "ESCU - Script Execution via WMI - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "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 - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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.\ @@ -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 - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect processes used for System Network Configuration Discovery - Rule", "ESCU - RunDLL Loading DLL By Ordinal - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - RunDLL Loading DLL By Ordinal - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Detect processes used for System Network Configuration Discovery - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 - Password Sharing Across Accounts - Rule", "ESCU - Web Fraud - Anomalous User Clickspeed - Rule", "ESCU - Web Fraud - Account Harvesting - Rule", "ESCU - Get Web Session Information via session id", "ESCU - Get Notable History", "ESCU - Get Emails From Specific Sender"] +searches = ["ESCU - Web Fraud - Account Harvesting - Rule", "ESCU - Web Fraud - Anomalous User Clickspeed - Rule", "ESCU - Web Fraud - Password Sharing Across Accounts - Rule", "ESCU - Get Notable History", "ESCU - Get Web Session Information via session id", "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 - Remote Registry Key modifications - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 Spaces Before Extension - Rule", "ESCU - Execution of File with Multiple Extensions - Rule", "ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Execution of File With Spaces Before Extension - Rule", "ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Execution of File with Multiple Extensions - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 - Windows Event Log Cleared - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Windows Event Log Cleared - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 - Hiding Files And Directories With Attrib exe - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Detect Path Interception By Creation Of program exe - Rule", "ESCU - Shim Database Installation With Suspicious Parameters - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Shim Database File Creation - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Schtasks used for forcing a reboot - 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 - Shim Database File Creation - Rule", "ESCU - Shim Database Installation With Suspicious Parameters - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Detect Path Interception By Creation Of program exe - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 - Overwriting Accessibility Binaries - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - Overwriting Accessibility Binaries - Rule", "ESCU - Child Processes of Spoolsv exe - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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 - Sc exe Manipulating Windows Services - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +searches = ["ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "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. @@ -1093,7 +1093,7 @@ narrative = The Windows operating system uses a services architecture to allow f type = detection asset_type = AWS Instance confidence = medium -explanation = 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." +explanation = 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. 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. annotations = {"cis20": ["CIS 1"], "mitre_attack": ["T1535"], "nist": ["ID.AM"]} 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.\ @@ -1104,7 +1104,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = 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." +explanation = 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. 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. annotations = {"cis20": ["CIS 1"], "mitre_attack": ["T1535"], "nist": ["ID.AM"]} 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.\ @@ -1115,7 +1115,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = 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." +explanation = 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. 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. annotations = {"cis20": ["CIS 1"], "nist": ["ID.AM"]} 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.\ @@ -1126,7 +1126,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for AWS provisioning activities from previously unseen regions. Region in this context is similar to a state in the United States. Provisioning activities are defined broadly as any event that begins with "Run" or "Create." +explanation = This search looks for AWS provisioning activities from previously unseen regions. Region in this context is similar to a state in the United States. 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. 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. annotations = {"cis20": ["CIS 1"], "mitre_attack": ["T1535"], "nist": ["ID.AM"]} 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.\ @@ -1137,7 +1137,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for AssumeRole events where an IAM role in a different account is requested for the first time. +explanation = This search looks for AssumeRole events where an IAM role in a different account is requested for the first time. This search is deprecated and have been translated to use the latest Authentication Datamodel. how_to_implement = You must be ingesting your cloud infrastructure logs from your cloud provider. You should run the baseline search `Previously Seen AWS Cross Account Activity - Initial` to build the initial table of source IP address, geographic locations, and times. You must also enable the second baseline search `Previously Seen AWS Cross Account Activity - Update` to keep this table up to date and to age out old data. You can also provide additional filtering for this search by customizing the `aws_cross_account_activity_from_previously_unseen_account_filter` macro. annotations = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "nist": ["PR.AC", "PR.DS", "DE.AE"]} known_false_positives = Using multiple AWS accounts and roles is perfectly valid behavior. It's suspicious when an account requests privileges of an account it hasn't before. You should validate with the account owner that this is a legitimate request. @@ -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 = [] @@ -1197,7 +1197,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. +explanation = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. This search is deprecated and have been translated to use the latest Change Datamodel 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. The threshold value should be tuned to your environment. annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = Many service accounts configured within an AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify if this search alerted on a human user. @@ -1207,7 +1207,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. +explanation = This search looks for CloudTrail events where a user successfully launches an abnormally high number of instances. This search is deprecated and have been translated to use the latest Change Datamodel. 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. The threshold value should be tuned to your environment. annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = Many service accounts configured within an AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify if this search alerted on a human user. @@ -1217,7 +1217,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for CloudTrail events where an abnormally high number of instances were successfully terminated by a user in a 10-minute window +explanation = This search looks for CloudTrail events where an abnormally high number of instances were successfully terminated by a user in a 10-minute window. This search is deprecated and have been translated to use the latest Change Datamodel. 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 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = Many service accounts configured with your AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify whether this search alerted on a human user. @@ -1227,7 +1227,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for CloudTrail events where a user successfully terminates an abnormally high number of instances. +explanation = This search looks for CloudTrail events where a user successfully terminates an abnormally high number of instances. This search is deprecated and have been translated to use the latest Change Datamodel. 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. The threshold value should be tuned to your environment. annotations = {"cis20": ["CIS 13"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = Many service accounts configured within an AWS infrastructure are known to exhibit this behavior. Please adjust the threshold values and filter out service accounts from the output. Always verify if this search alerted on a human user. @@ -1353,6 +1353,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 +1439,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 +1673,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,22 +1893,42 @@ 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 confidence = medium explanation = This search looks for outbound SMB connections made by hosts within your network to the Internet. SMB traffic is used for Windows file-sharing activity. One of the techniques often used by attackers involves retrieving the credential hash using an SMB request made to a compromised server controlled by the threat actor. -how_to_implement = In order to run this search effectively, we highly recommend that you leverage the Assets and Identity framework. It is important that you have good understanding of how your network segments are designed, and be able to distinguish internal from external address space. Add a category named `internal` to the CIDRs that host the company's assets in `assets_by_cidr.csv` lookup file, which is located in `$SPLUNK_HOME/etc/apps/SA-IdentityManagement/lookups/`. More information on updating this lookup can be found here: https://docs.splunk.com/Documentation/ES/5.0.0/Admin/Addassetandidentitydata. This search also requires you to be ingesting your network traffic and populating the Network_Traffic data model +how_to_implement = In order to run this search effectively, we highly recommend that you leverage the Assets and Identity framework. It is important that you have good understanding of how your network segments are designed, and be able to distinguish internal from external address space. Add a category named `internal` to the CIDRs that host the companys assets in `assets_by_cidr.csv` lookup file, which is located in `$SPLUNK_HOME/etc/apps/SA-IdentityManagement/lookups/`. More information on updating this lookup can be found here: https://docs.splunk.com/Documentation/ES/5.0.0/Admin/Addassetandidentitydata. This search also requires you to be ingesting your network traffic and populating the Network_Traffic data model annotations = {"cis20": ["CIS 12"], "kill_chain_phases": ["Actions on Objectives", "Command and Control"], "mitre_attack": ["T1071.002"], "nist": ["DE.CM"]} known_false_positives = It is likely that the outbound Server Message Block (SMB) traffic is legitimate, if the company's internal networks are not well-defined in the Assets and Identity Framework. Categorize the internal CIDR blocks as `internal` in the lookup file to avoid creating notable events for traffic destined to those CIDR blocks. Any other network connection that is going out to the Internet should be investigated and blocked. Best practices suggest preventing external communications of all SMB versions and related protocols at the network boundary. providing_technologies = [] @@ -1997,7 +2027,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search will detect users creating spikes of API activity in your AWS environment. It will also update the cache file that factors in the latest data. +explanation = This search will detect users creating spikes of API activity in your AWS environment. It will also update the cache file that factors in the latest data. This search is deprecated and have been translated to use the latest Change Datamodel. 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 can modify `dataPointThreshold` and `deviationThreshold` to better fit your environment. The `dataPointThreshold` variable is the minimum number of data points required to have a statistically significant amount of data to determine. The `deviationThreshold` variable is the number of standard deviations away from the mean that the value must be to be considered a spike.\ This search produces fields (`eventName`,`numberOfApiCalls`,`uniqueApisCalled`) 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. \ @@ -2033,7 +2063,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search will detect users creating spikes in API activity related to network access-control lists (ACLs)in your AWS environment. +explanation = This search will detect users creating spikes in API activity related to network access-control lists (ACLs)in your AWS environment. This search is deprecated and have been translated to use the latest Change Datamodel. 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 can modify `dataPointThreshold` and `deviationThreshold` to better fit your environment. The `dataPointThreshold` variable is the minimum number of data points required to have a statistically significant amount of data to determine. The `deviationThreshold` variable is the number of standard deviations away from the mean that the value must be to be considered a spike. This search works best when you run the "Baseline of Network ACL Activity by ARN" support search once to create a lookup file of previously seen Network ACL Activity. To add or remove API event names related to network ACLs, edit the macro `network_acl_events`. annotations = {"cis20": ["CIS 12", "CIS 11"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1562.007"], "nist": ["DE.DP", "DE.CM", "PR.AC"]} known_false_positives = The false-positive rate may vary based on the values of`dataPointThreshold` and `deviationThreshold`. Please modify this according the your environment. @@ -2053,7 +2083,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search will detect users creating spikes in API activity related to security groups in your AWS environment. It will also update the cache file that factors in the latest data. +explanation = This search will detect users creating spikes in API activity related to security groups in your AWS environment. It will also update the cache file that factors in the latest data. This search is deprecated and have been translated to use the latest Change Datamodel. 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 can modify `dataPointThreshold` and `deviationThreshold` to better fit your environment. The `dataPointThreshold` variable is the minimum number of data points required to have a statistically significant amount of data to determine. The `deviationThreshold` variable is the number of standard deviations away from the mean that the value must be to be considered a spike.This search works best when you run the "Baseline of Security Group Activity by ARN" support search once to create a history of previously seen Security Group Activity. To add or remove API event names for security groups, edit the macro `security_group_api_calls`. annotations = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1078.004"], "nist": ["DE.DP", "DE.CM", "PR.AC"]} known_false_positives = Based on the values of`dataPointThreshold` and `deviationThreshold`, the false positive rate may vary. Please modify this according the your environment. @@ -2237,6 +2267,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 @@ -2261,7 +2301,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for EC2 instances being modified by users who have not previously modified them. +explanation = This search looks for EC2 instances being modified by users who have not previously modified them. This search is deprecated and have been translated to use the latest Change Datamodel. 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 EC2 Launches By User" support search once to create a history of previously seen ARNs. To add or remove APIs that modify an EC2 instance, edit the macro `ec2_modification_api_calls`. annotations = {"cis20": ["CIS 1"], "mitre_attack": ["T1078.004"], "nist": ["ID.AM"]} known_false_positives = It's possible that a new user will start to modify EC2 instances when they haven't before for any number of reasons. Verify with the user that is modifying instances that this is the intended behavior. @@ -2272,7 +2312,7 @@ type = detection asset_type = AWS Instance confidence = medium explanation = This search looks for CloudTrail events where an instance is started in a particular region in the last one hour and then compares it to a lookup file of previously seen regions where an instance was started -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. Run the "Previously seen AWS Regions" support search only once to create of baseline of previously seen regions. +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. Run the "Previously seen AWS Regions" support search only once to create of baseline of previously seen regions. This search is deprecated and have been translated to use the latest Change Datamodel. annotations = {"cis20": ["CIS 12"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1535"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = It's possible that a user has unknowingly started an instance in a new region. Please verify that this activity is legitimate. providing_technologies = [] @@ -2281,7 +2321,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for EC2 instances being created with previously unseen AMIs. +explanation = This search looks for EC2 instances being created with previously unseen AMIs. This search is deprecated and have been translated to use the latest Change Datamodel. 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 EC2 AMIs" support search once to create a history of previously seen AMIs. annotations = {"cis20": ["CIS 1"], "nist": ["ID.AM"]} known_false_positives = After a new AMI is created, the first systems created with that AMI will cause this alert to fire. Verify that the AMI being used was created by a legitimate user. @@ -2291,7 +2331,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for EC2 instances being created with previously unseen instance types. +explanation = This search looks for EC2 instances being created with previously unseen instance types. This search is deprecated and have been translated to use the latest Change Datamodel. 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 EC2 Instance Types" support search once to create a history of previously seen instance types. annotations = {"cis20": ["CIS 1"], "nist": ["ID.AM"]} known_false_positives = It is possible that an admin will create a new system using a new instance type never used before. Verify with the creator that they intended to create the system with the new instance type. @@ -2301,7 +2341,7 @@ providing_technologies = [] type = detection asset_type = AWS Instance confidence = medium -explanation = This search looks for EC2 instances being created by users who have not created them before. +explanation = This search looks for EC2 instances being created by users who have not created them before. This search is deprecated and have been translated to use the latest Change Datamodel. 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 EC2 Launches By User" support search once to create a history of previously seen ARNs. annotations = {"cis20": ["CIS 1"], "mitre_attack": ["T1078.004"], "nist": ["ID.AM"]} known_false_positives = It's possible that a user will start to create EC2 instances when they haven't before for any number of reasons. Verify with the user that is launching instances that this is the intended behavior. @@ -2729,6 +2769,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 @@ -2949,6 +2999,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 @@ -3079,6 +3139,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 @@ -3282,6 +3352,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 @@ -3297,11 +3377,21 @@ type = detection asset_type = Windows confidence = medium explanation = The malware sunburst will load the malicious dll by SolarWinds.BusinessLayerHost.exe. After a period of 12-14 days, the malware will attempt to resolve a subdomain of avsvmcloud.com. This detections will correlate both events. -how_to_implement = This detection relies on sysmon logs with the Event ID 6, Driver loaded. Please tune your sysmon config that you DriverLoad event for SolarWinds.Orion.Core.BusinessLayer.dll is captured by Sysmon. Additionally, you need sysmon logs for Event ID 22, DNS Query. We suggest to run this detection at least once a day over the last 14 days. +how_to_implement = This detection relies on sysmon logs with the Event ID 7, Driver loaded. Please tune your sysmon config that you DriverLoad event for SolarWinds.Orion.Core.BusinessLayer.dll is captured by Sysmon. Additionally, you need sysmon logs for Event ID 22, DNS Query. We suggest to run this detection at least once a day over the last 14 days. annotations = {"cis20": ["CIS 6", "CIS 8"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1203"], "nist": ["DE.CM"]} 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 @@ -3514,6 +3604,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 @@ -3524,6 +3624,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 From 783c24cbe4f34fb8291f2864f15debb2a64a41e2 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 13 Jan 2021 13:24:58 +0000 Subject: [PATCH 25/45] Added detection testing service results inDetect New Open S3 Buckets over AWS CLI --- ...etect_new_open_s3_buckets_over_aws_cli.yml | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) 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 index dc5ac8b40a..c9facc4ed6 100644 --- a/detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml +++ b/detections/cloud/detect_new_open_s3_buckets_over_aws_cli.yml @@ -2,23 +2,21 @@ 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.' +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` ' +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" @@ -41,3 +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 From 70060490997d699d811e9974d34637a33aed7a8b Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 13 Jan 2021 14:26:00 +0100 Subject: [PATCH 26/45] merged with develop --- .../detect_new_user_aws_console_login.yml | 40 ------------------- 1 file changed, 40 deletions(-) delete mode 100644 detections/deprecated/detect_new_user_aws_console_login.yml diff --git a/detections/deprecated/detect_new_user_aws_console_login.yml b/detections/deprecated/detect_new_user_aws_console_login.yml deleted file mode 100644 index 647a02d396..0000000000 --- a/detections/deprecated/detect_new_user_aws_console_login.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Detect new user AWS Console Login -id: ada0f478-84a8-4641-a3f3-d82362dffd75 -version: 2 -date: '2020-07-21' -description: This search looks for CloudTrail events wherein a console login event - by a user was recorded within the last hour, then compares the event to a lookup - file of previously seen users (by ARN values) who have logged into the console. - The alert is fired if the user has logged into the console for the first time within - the last hour. Deprecated because duplicate of Detect AWS Console Login by New User -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. Run the "Previously seen users in CloudTrail" support search only once to - create a baseline of previously seen IAM users within the last 30 days. Run "Update - previously seen users in CloudTrail" hourly (or more frequently depending on how - often you run the detection searches) to refresh the baselines. -type: ESCU -author: Bhavin Patel, Splunk -search: '`cloudtrail` eventName=ConsoleLogin | rename userIdentity.arn as user | stats - earliest(_time) as firstTime latest(_time) as lastTime by user | inputlookup append=t - previously_seen_users_console_logins | stats min(firstTime) as firstTime max(lastTime) - as lastTime by user | eval userStatus=if(firstTime >= relative_time(now(), "-70m@m"), - "First Time Logging into AWS Console","Previously Seen User") | `security_content_ctime(firstTime)`|`security_content_ctime(lastTime)`| - where userStatus ="First Time Logging into AWS Console" | `detect_new_user_aws_console_login_filter`' -known_false_positives: When a legitimate new user logins for the first time, this - activity will be detected. Check how old the account is and verify that the user - activity is legitimate. -tags: - analytics_story: - - Suspicious AWS Login Activities - kill_chain_phases: - - Actions on Objectives - mitre_attack_id: - - T1078.004 - cis20: - - CIS 16 - nist: - - DE.DP - - DE.AE - security_domain: network - asset_type: AWS Instance From 96f8c9056ab43d3ee9ea3c7cd8cbe8ae15fa3bf6 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 13 Jan 2021 14:30:51 +0100 Subject: [PATCH 27/45] merged with develop --- bin/doc-gen.py | 3 ++- bin/generate.py | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/doc-gen.py b/bin/doc-gen.py index 417aa41eb1..6d8514844e 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", VERBOSE, REPO_PATH)) # 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 c08fd40ec6..5fb348838b 100644 --- a/bin/generate.py +++ b/bin/generate.py @@ -562,7 +562,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) From 008db8245fa3eded8aab454ea116730774b4d2eb Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 13 Jan 2021 14:32:54 +0100 Subject: [PATCH 28/45] merged with develop --- bin/doc-gen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/doc-gen.py b/bin/doc-gen.py index 6d8514844e..5e83129697 100644 --- a/bin/doc-gen.py +++ b/bin/doc-gen.py @@ -682,7 +682,7 @@ if __name__ == "__main__": stories = load_objects("stories/*.yml") detections = [] detections = load_objects("detections/*/*.yml") - detections.extend(load_objects("detections/*/*/*.yml", VERBOSE, REPO_PATH)) + detections.extend(load_objects("detections/*/*/*.yml")) # complete_stories = generate_stories(REPO_PATH, verbose) # complete_detections = generate_detections(REPO_PATH, complete_stories) From b803026060357d923ff20fd91f99a16592457114 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 14:03:28 +0000 Subject: [PATCH 29/45] Bump boto3 from 1.16.52 to 1.16.53 Bumps [boto3](https://github.com/boto/boto3) from 1.16.52 to 1.16.53. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/boto3/compare/1.16.52...1.16.53) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index 4e71111bc7..d595111547 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -13,7 +13,7 @@ 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.52 +boto3==1.16.53 botocore==1.19.52 certifi==2020.12.5 cffi==1.14.4 From 5c60992f68b397d01bc0a58e5b2b2bd90bb99301 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 14:44:01 +0000 Subject: [PATCH 30/45] Bump botocore from 1.19.52 to 1.19.53 Bumps [botocore](https://github.com/boto/botocore) from 1.19.52 to 1.19.53. - [Release notes](https://github.com/boto/botocore/releases) - [Changelog](https://github.com/boto/botocore/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/botocore/compare/1.19.52...1.19.53) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index d595111547..9880d4c85e 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -14,7 +14,7 @@ azure-mgmt-network==17.0.0 azure-mgmt-resource==15.0.0 bcrypt==3.2.0 boto3==1.16.53 -botocore==1.19.52 +botocore==1.19.53 certifi==2020.12.5 cffi==1.14.4 cfgv==2.0.1 From 843d99f9d9013dce8cb67358cc3be3f626ffa925 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 13 Jan 2021 17:59:31 +0100 Subject: [PATCH 31/45] moved detections --- .../{application => deprecated}/identify_new_user_accounts.yml | 0 .../application/detect_new_login_attempts_to_routers.yml | 0 .../application/email_attachments_with_lots_of_spaces.yml | 0 .../email_servers_sending_high_volume_traffic_to_hosts.yml | 0 .../application/monitor_email_for_brand_abuse.yml | 0 .../application/no_windows_updates_in_a_time_frame.yml | 0 .../application/spectre_and_meltdown_vulnerable_systems.yml | 0 .../application/suspicious_email___uba_anomaly.yml | 0 .../application/suspicious_email_attachment_extensions.yml | 0 .../{ => experimental}/application/suspicious_java_classes.yml | 0 .../detect_attackers_scanning_for_vulnerable_jboss_servers.yml | 0 .../{ => experimental}/web/detect_f5_tmui_rct_cve_2020_5902.yml | 0 .../web/detect_malicious_requests_to_exploit_jboss_servers.yml | 0 .../web/monitor_web_traffic_for_brand_abuse.yml | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename detections/{application => deprecated}/identify_new_user_accounts.yml (100%) rename detections/{ => experimental}/application/detect_new_login_attempts_to_routers.yml (100%) rename detections/{ => experimental}/application/email_attachments_with_lots_of_spaces.yml (100%) rename detections/{ => experimental}/application/email_servers_sending_high_volume_traffic_to_hosts.yml (100%) rename detections/{ => experimental}/application/monitor_email_for_brand_abuse.yml (100%) rename detections/{ => experimental}/application/no_windows_updates_in_a_time_frame.yml (100%) rename detections/{ => experimental}/application/spectre_and_meltdown_vulnerable_systems.yml (100%) rename detections/{ => experimental}/application/suspicious_email___uba_anomaly.yml (100%) rename detections/{ => experimental}/application/suspicious_email_attachment_extensions.yml (100%) rename detections/{ => experimental}/application/suspicious_java_classes.yml (100%) rename detections/{ => experimental}/web/detect_attackers_scanning_for_vulnerable_jboss_servers.yml (100%) rename detections/{ => experimental}/web/detect_f5_tmui_rct_cve_2020_5902.yml (100%) rename detections/{ => experimental}/web/detect_malicious_requests_to_exploit_jboss_servers.yml (100%) rename detections/{ => experimental}/web/monitor_web_traffic_for_brand_abuse.yml (100%) 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/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/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 From ab6d8cdfe10d4bbfd1fa84369e5b46e885ea8870 Mon Sep 17 00:00:00 2001 From: bpatel Date: Wed, 13 Jan 2021 16:30:19 -0800 Subject: [PATCH 32/45] new detection file and test data --- .../cloud/o365_bypass_mfa_via_trusted_ip.yml | 30 +++++++++++++++++++ .../o365_bypass_mfa_via_trusted_ip.test.yml | 12 ++++++++ 2 files changed, 42 insertions(+) create mode 100644 detections/cloud/o365_bypass_mfa_via_trusted_ip.yml create mode 100644 tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml 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..9a4cdc963d --- /dev/null +++ b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml @@ -0,0 +1,30 @@ +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-f19d9f5c949e +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 +type: ESCU +version: 1 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..43aa262bb4 --- /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: '-24h' + 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_email_forwarding_rule.json + sourcetype: 'o365:management:activity' + source: 'o365' From 13ae19a958fc7a1ac24dd3a7f6ad20bf6e6c442d Mon Sep 17 00:00:00 2001 From: bpatel Date: Wed, 13 Jan 2021 17:26:33 -0800 Subject: [PATCH 33/45] uuid --- detections/cloud/o365_bypass_mfa_via_trusted_ip.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml index 9a4cdc963d..25e1c7d7fa 100644 --- a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml +++ b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml @@ -3,7 +3,7 @@ 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-f19d9f5c949e +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: From 0b6757738e68ad49b09ab35563c6b85847c39b7f Mon Sep 17 00:00:00 2001 From: bpatel Date: Wed, 13 Jan 2021 17:29:45 -0800 Subject: [PATCH 34/45] search error --- detections/cloud/o365_bypass_mfa_via_trusted_ip.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml index 25e1c7d7fa..8cea3ed666 100644 --- a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml +++ b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml @@ -15,8 +15,7 @@ search: '`o365_management_activity` signature="Set Company Information." Modifie | 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`' +|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 From b7c0137282a4c77334be60402ff59536e757d823 Mon Sep 17 00:00:00 2001 From: bpatel Date: Wed, 13 Jan 2021 17:57:49 -0800 Subject: [PATCH 35/45] test timing --- tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml b/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml index 43aa262bb4..8124e34db6 100644 --- a/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml +++ b/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml @@ -3,7 +3,7 @@ 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: '-24h' + earliest_time: '-30d' latest_time: 'now' attack_data: - file_name: o365_bypass_mfa_via_trusted_ip.json From 20242b93e675fe4201d8b51c4853dd2c6fc3a5b6 Mon Sep 17 00:00:00 2001 From: bpatel Date: Wed, 13 Jan 2021 18:27:06 -0800 Subject: [PATCH 36/45] data path update --- tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml b/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml index 8124e34db6..7f687b3582 100644 --- a/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml +++ b/tests/cloud/o365_bypass_mfa_via_trusted_ip.test.yml @@ -7,6 +7,6 @@ tests: 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_email_forwarding_rule.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' From 050b89ebefbb02a69223984c84e519181efc694f Mon Sep 17 00:00:00 2001 From: root Date: Thu, 14 Jan 2021 02:45:18 +0000 Subject: [PATCH 37/45] Added detection testing service results inO365 Bypass MFA via Trusted IP --- .../cloud/o365_bypass_mfa_via_trusted_ip.yml | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml index 8cea3ed666..f7f7620d2e 100644 --- a/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml +++ b/detections/cloud/o365_bypass_mfa_via_trusted_ip.yml @@ -1,21 +1,26 @@ 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. +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. +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`' + | 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 @@ -25,5 +30,8 @@ tags: 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 From d72747ccd46b53c7ab030a3b7ac30ce3aaf925d1 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Thu, 14 Jan 2021 12:33:36 +0100 Subject: [PATCH 38/45] new generate feature --- bin/generate.py | 65 +++- deployments/14_credential_dumping_story.yml | 12 + ..._access_LSASS_memory_for_dump_creation.yml | 18 + package/default/analytic_stories.conf | 146 ++++---- package/default/collections.conf | 2 +- package/default/es_investigations.conf | 102 +++--- package/default/macros.conf | 18 +- package/default/savedsearches.conf | 314 +++++++++++++----- package/default/transforms.conf | 2 +- package/default/use_case_library.conf | 174 ++++++---- 10 files changed, 556 insertions(+), 297 deletions(-) create mode 100644 deployments/14_credential_dumping_story.yml create mode 100644 deployments/15_detection_access_LSASS_memory_for_dump_creation.yml diff --git a/bin/generate.py b/bin/generate.py index 5fb348838b..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): 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/package/default/analytic_stories.conf b/package/default/analytic_stories.conf index bdac747d8d..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-13T13:05:35 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 - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] -support_searches = ["ESCU - Previously Seen AWS Regions", "ESCU - Previously Seen EC2 Instance Types", "ESCU - Baseline of Excessive AWS Instances Launched by User - MLTK", "ESCU - Previously Seen EC2 Launches By User", "ESCU - Previously Seen EC2 AMIs"] +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 - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +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 - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "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 Security Hub alerts by dest", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From City", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From IP Address"] +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 @@ -102,8 +102,8 @@ version = 1 reference = ["https://d0.awsstatic.com/whitepapers/aws-security-best-practices.pdf", "https://redlock.io/blog/cryptojacking-tesla"] 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 - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] -support_searches = ["ESCU - Baseline of API Calls per User ARN", "ESCU - Create a list of approved AWS service accounts", "ESCU - Previously seen API call per user roles in CloudTrail", "ESCU - Baseline of Security Group Activity by ARN"] +investigative_searches = ["ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] +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 - Get Notable History", "ESCU - Investigate Web POSTs From src", "ESCU - Investigate Suspicious Strings in HTTP Header"] +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 @@ -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 Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +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 - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] -support_searches = ["ESCU - Previously Seen Cloud Compute Images - Update", "ESCU - Previously Seen Cloud Regions - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Initial", "ESCU - Previously Seen Cloud Compute Instance Types - Update", "ESCU - Previously Seen Cloud Compute Creations By User - Update", "ESCU - Baseline Of Cloud Instances Launched", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Previously Seen Cloud Regions - Initial", "ESCU - Previously Seen Cloud Compute Instance Types - Initial", "ESCU - Previously Seen Cloud Compute Images - 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. @@ -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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] -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 Pass the Ticket Attempts", "ESCU - Investigate Previous Unseen User", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Pass the Hash Attempts"] +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,7 +307,7 @@ 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 Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process File Activity", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 @@ -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 Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "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,7 +415,7 @@ 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 @@ -447,7 +447,7 @@ 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 - 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 History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 @@ -499,8 +499,8 @@ 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 - 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 DNS traffic ratio", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors"] -support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Baseline of SMB Traffic - MLTK", "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. @@ -518,7 +518,7 @@ version = 1 reference = ["https://blog.malwarebytes.com/cybercrime/2016/09/hosts-file-hijacks/"] detection_searches = ["ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Windows hosts file modification - Rule"] mappings = {"cis20": ["CIS 1", "CIS 12", "CIS 13", "CIS 3", "CIS 8", "CIS 9"], "kill_chain_phases": ["Command and Control"], "mitre_attack": ["T1048.003", "T1071.004"], "nist": ["DE.AE", "DE.CM", "ID.AM", "PR.AC", "PR.DS", "PR.IP", "PR.PT"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Get DNS Server History for a host"] +investigative_searches = ["ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] support_searches = [] data_models = ["Network_Resolution"] providing_technologies = none @@ -612,7 +612,7 @@ 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 - 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 History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] +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,7 +657,7 @@ 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"] +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 @@ -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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -708,7 +708,7 @@ 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 @@ -723,8 +723,8 @@ modification_date = 2020-12-16 id = 1a51dd71-effc-48b2-abc4-3e9cdb61e5b9 version = 1 reference = ["https://i.blackhat.com/USA-20/Thursday/us-20-Bienstock-My-Cloud-Is-APTs-Cloud-Investigating-And-Defending-Office-365.pdf"] -detection_searches = ["ESCU - High Number of Login Failures from a single source - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - Rule", "ESCU - O365 Suspicious Rights Delegation - Rule", "ESCU - O365 Suspicious User Email Forwarding - Rule"] -mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1110.001", "T1114.002", "T1114.003"], "nist": ["DE.AE", "DE.DP"]} +detection_searches = ["ESCU - High Number of Login Failures from a single source - Rule", "ESCU - O365 Disable MFA - Rule", "ESCU - O365 Excessive Authentication Failures Alert - Rule", "ESCU - O365 PST export alert - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - Rule", "ESCU - O365 Suspicious Rights Delegation - Rule", "ESCU - O365 Suspicious User Email Forwarding - Rule"] +mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objective", "Actions on Objectives", "Not Applicable"], "mitre_attack": ["T1110", "T1110.001", "T1114", "T1114.002", "T1114.003", "T1556"], "nist": ["DE.AE", "DE.DP"]} investigative_searches = [] support_searches = [] data_models = [] @@ -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 Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] -support_searches = ["ESCU - Previously seen command line arguments", "ESCU - Previously Seen Running Windows Services - Update", "ESCU - Previously Seen Running Windows Services - Initial"] +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. @@ -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 Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] -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 Parent Process Info", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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,9 +841,9 @@ 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 - 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"] +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 History Of Email Sources", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 @@ -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 - 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", "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"] @@ -925,7 +925,7 @@ 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", "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 History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 @@ -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 - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] -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. @@ -1054,7 +1054,7 @@ 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 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 S3 Bucket details via bucketName", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get All AWS Activity From IP Address"] +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 - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +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 @@ -1091,8 +1091,8 @@ version = 1 reference = ["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"] 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 - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] -support_searches = ["ESCU - Previously Seen AWS Cross Account Activity - Update", "ESCU - Previously Seen AWS Cross Account Activity - Initial", "ESCU - Previously Seen Users In CloudTrail - Update", "ESCU - Previously Seen Users in CloudTrail - Initial"] +investigative_searches = ["ESCU - Investigate AWS User Activities by user field", "ESCU - Get Notable History"] +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. @@ -1108,8 +1108,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 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 - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address"] -support_searches = ["ESCU - Previously Seen Cloud Instance Modifications By User - Initial", "ESCU - Previously Seen Cloud Instance Modifications By User - Update", "ESCU - Baseline Of Cloud Instances Destroyed", "ESCU - Baseline Of Cloud Instances Launched"] +investigative_searches = ["ESCU - Get All AWS Activity From IP Address", "ESCU - AWS Investigate User Activities By ARN"] +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 - Baseline Of Cloud Security Group API Calls Per User", "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"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -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 DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "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 Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] -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. @@ -1244,7 +1244,7 @@ version = 1 reference = ["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"] detection_searches = ["ESCU - Multiple Okta Users With Invalid Credentails From The Same IP - Rule", "ESCU - Okta Account Lockout Events - Rule", "ESCU - Okta Failed SSO Attempts - Rule", "ESCU - Okta User Logins From Multiple Cities - Rule"] mappings = {"cis20": ["CIS 16"], "mitre_attack": ["T1078.001"], "nist": ["DE.CM"]} -investigative_searches = ["ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by IP Address", "ESCU - Investigate Okta Activity by app"] +investigative_searches = ["ESCU - Investigate User Activities In Okta", "ESCU - Investigate Okta Activity by app", "ESCU - Investigate Okta Activity by IP Address"] support_searches = [] data_models = [] providing_technologies = none @@ -1262,7 +1262,7 @@ 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 - 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - Get Notable History", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 @@ -1350,7 +1350,7 @@ version = 1 reference = ["https://www.monkey.org/~dugsong/dsniff/"] detection_searches = ["ESCU - Protocols passing authentication in cleartext - Rule"] mappings = {"cis20": ["CIS 14", "CIS 9"], "kill_chain_phases": ["Actions on Objectives", "Reconnaissance"], "nist": ["DE.AE", "PR.AC", "PR.DS", "PR.PT"]} -investigative_searches = ["ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +investigative_searches = ["ESCU - Get Process Information For Port Activity", "ESCU - Get Notable History"] support_searches = [] data_models = ["Network_Traffic"] 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 Notable History", "ESCU - Get Web Session Information via session id", "ESCU - Get Emails From Specific Sender"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1472,7 +1472,7 @@ version = 2 reference = ["https://attack.mitre.org/tactics/TA0004/"] 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +investigative_searches = ["ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Parent Process Info"] support_searches = [] data_models = ["Endpoint"] providing_technologies = none @@ -1488,7 +1488,7 @@ 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 diff --git a/package/default/collections.conf b/package/default/collections.conf index 5282534321..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-13T13:05:35 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 2f264c5828..f574dba0e2 100644 --- a/package/default/es_investigations.conf +++ b/package/default/es_investigations.conf @@ -4,49 +4,49 @@ 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_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] +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_get_dns_traffic_ratio", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +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_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_launch_details", "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_security_hub_alerts_by_dest", "panel://workbench_panel_get_all_aws_activity_from_region", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_all_aws_activity_from_city", "panel://workbench_panel_get_all_aws_activity_from_country", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +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 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. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_investigate_aws_user_activities_by_user_field"] +panels = ["panel://workbench_panel_investigate_aws_user_activities_by_user_field", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_apache_struts_vulnerability] 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_get_notable_history", "panel://workbench_panel_investigate_web_posts_from_src", "panel://workbench_panel_investigate_suspicious_strings_in_http_header"] +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 @@ -60,14 +60,14 @@ 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_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_email_info", "panel://workbench_panel_get_emails_from_specific_sender"] +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_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_get_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +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_pass_the_ticket_attempts", "panel://workbench_panel_investigate_previous_unseen_user", "panel://workbench_panel_investigate_failed_logins_for_multiple_destinations", "panel://workbench_panel_investigate_pass_the_hash_attempts"] +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_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_file_activity", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_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_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_server_history_for_a_host", "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,7 +158,7 @@ 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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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 @@ -172,7 +172,7 @@ 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_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] +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,14 +193,14 @@ 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_dns_traffic_ratio", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_outbound_emails_to_hidden_cobra_threat_actors"] +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 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. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_dns_server_history_for_a_host"] +panels = ["panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_jboss_vulnerability] label = JBoss Vulnerability @@ -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_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_history_of_email_sources", "panel://workbench_panel_get_parent_process_info"] +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_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] +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_history_of_email_sources", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] +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_history_of_email_sources", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_investigate_successful_remote_desktop_authentications", "panel://workbench_panel_get_backup_logs_for_endpoint", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] +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_aws_investigate_security_hub_alerts_by_dest", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_ec2_launch_details", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] +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,28 +396,28 @@ 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_s3_bucket_details_via_bucketname", "panel://workbench_panel_investigate_aws_activities_via_region_name", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +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_get_dns_traffic_ratio", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_dns_server_history_for_a_host", "panel://workbench_panel_aws_network_interface_details_via_resourceid", "panel://workbench_panel_get_notable_history", "panel://workbench_panel_aws_network_acl_details_from_id", "panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +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 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. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_investigate_aws_user_activities_by_user_field"] +panels = ["panel://workbench_panel_investigate_aws_user_activities_by_user_field", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_suspicious_cloud_instance_activities] label = Suspicious Cloud Instance Activities 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. disabled = 0 -panels = ["panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_all_aws_activity_from_ip_address"] +panels = ["panel://workbench_panel_get_all_aws_activity_from_ip_address", "panel://workbench_panel_aws_investigate_user_activities_by_arn"] [panel_group://workbench_panel_group_suspicious_cloud_provisioning_activities] label = Suspicious Cloud Provisioning 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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_dns_traffic_ratio", "panel://workbench_panel_get_parent_process_info", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_process_responsible_for_the_dns_traffic", "panel://workbench_panel_get_dns_server_history_for_a_host", "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_notable_history", "panel://workbench_panel_get_email_info", "panel://workbench_panel_get_emails_from_specific_sender"] +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,28 +466,28 @@ 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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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 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. disabled = 0 -panels = ["panel://workbench_panel_investigate_user_activities_in_okta", "panel://workbench_panel_investigate_okta_activity_by_ip_address", "panel://workbench_panel_investigate_okta_activity_by_app"] +panels = ["panel://workbench_panel_investigate_user_activities_in_okta", "panel://workbench_panel_investigate_okta_activity_by_app", "panel://workbench_panel_investigate_okta_activity_by_ip_address"] [panel_group://workbench_panel_group_suspicious_wmi_use] 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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_sysmon_wmi_activity_for_host", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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,28 +501,28 @@ 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_get_notable_history", "panel://workbench_panel_aws_investigate_user_activities_by_arn", "panel://workbench_panel_get_ec2_instance_details_by_instanceid"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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 description = Leverage searches that detect cleartext network protocols that may leak credentials or should otherwise be encrypted. disabled = 0 -panels = ["panel://workbench_panel_get_notable_history", "panel://workbench_panel_get_process_information_for_port_activity"] +panels = ["panel://workbench_panel_get_process_information_for_port_activity", "panel://workbench_panel_get_notable_history"] [panel_group://workbench_panel_group_web_fraud_detection] 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_notable_history", "panel://workbench_panel_get_web_session_information_via_session_id", "panel://workbench_panel_get_emails_from_specific_sender"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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_notable_history", "panel://workbench_panel_get_process_info", "panel://workbench_panel_get_parent_process_info"] +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 26fdf5f83d..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-13T13:05:35 UTC +# On Date: 2021-01-14T11:30:38 UTC # Author: Splunk Security Research # Contact: research@splunk.com ############# @@ -383,6 +383,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. +[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. @@ -983,6 +987,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. +[o365_disable_mfa_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + +[o365_excessive_authentication_failures_alert_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + +[o365_pst_export_alert_filter] +definition = search * +description = Update this macro to limit the output results to filter out false positives. + [o365_suspicious_admin_email_forwarding_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 a930ae9a4f..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-13T13:05:35 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. @@ -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 @@ -950,7 +989,7 @@ 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` +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 @@ -985,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 @@ -1491,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 @@ -1538,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 @@ -1571,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 @@ -1590,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 @@ -1623,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 @@ -1656,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 @@ -1670,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 @@ -1689,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 @@ -1703,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 @@ -1742,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 @@ -1775,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 @@ -1808,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 @@ -2190,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 @@ -2242,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 @@ -2256,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 @@ -2547,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 @@ -2731,7 +2770,7 @@ 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` +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 @@ -2769,7 +2808,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -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` +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 @@ -2802,7 +2841,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=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` +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 @@ -2840,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 @@ -3000,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 @@ -3159,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 @@ -3504,7 +3543,7 @@ relation = greater than quantity = 0 realtime_schedule = 0 is_visible = false -search = | tstats `security_content_summariesonly` count from datamodel=Network_Sessions where nodename=All_Sessions.DHCP All_Sessions.signature=DHCPREQUEST by All_Sessions.src_ip All_Sessions.src_mac | dedup All_Sessions.src_mac| `drop_dm_object_name("Network_Sessions")`|`drop_dm_object_name("All_Sessions")` | search NOT [| inputlookup asset_lookup_by_str |rename mac as src_mac | fields + src_mac] | `detect_unauthorized_assets_by_mac_address_filter` +search = | tstats `security_content_summariesonly` count from datamodel=Network_Sessions where nodename=All_Sessions.DHCP All_Sessions.signature=DHCPREQUEST by All_Sessions.src_ip All_Sessions.dest_mac | dedup All_Sessions.dest_mac| `drop_dm_object_name("Network_Sessions")`|`drop_dm_object_name("All_Sessions")` | search NOT [| inputlookup asset_lookup_by_str |rename mac as dest_mac | fields + dest_mac] | `detect_unauthorized_assets_by_mac_address_filter` [ESCU - Detect Use of cmd exe to Launch Script Interpreters - Rule] action.escu = 0 @@ -3603,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 @@ -4031,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 @@ -4288,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 @@ -4585,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 @@ -4717,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 @@ -4783,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 @@ -4793,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 @@ -4816,15 +4855,15 @@ 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 action.escu.enabled = 1 -description = This search detects more than 5 login failures in Office365 Azure Active Directory from a single source IP address. Please adjust the threshold value of 5 as suited for your environment. +description = This search will detect more than 5 login failures in Office365 Azure Active Directory from a single source IP address. Please adjust the threshold value of 5 as suited for your environment. action.escu.mappings = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1110.001"], "nist": ["DE.DP", "DE.AE"]} action.escu.data_models = [] -action.escu.eli5 = This search detects more than 5 login failures in Office365 Azure Active Directory from a single source IP address. Please adjust the threshold value of 5 as suited for your environment. +action.escu.eli5 = This search will detect more than 5 login failures in Office365 Azure Active Directory from a single source IP address. Please adjust the threshold value of 5 as suited for your environment. action.escu.how_to_implement = none action.escu.known_false_positives = unknown action.escu.creation_date = 2020-12-16 @@ -5024,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 @@ -5222,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 @@ -5486,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 @@ -5971,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 @@ -6004,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 @@ -6039,6 +6078,105 @@ realtime_schedule = 0 is_visible = false search = | tstats `security_content_summariesonly` max(_time) as lastTime from datamodel=Updates where Updates.status=Installed Updates.vendor_product="Microsoft Windows" by Updates.dest Updates.status Updates.vendor_product | rename Updates.dest as Host | rename Updates.status as "Update Status" | rename Updates.vendor_product as Product | eval isOutlier=if(lastTime <= relative_time(now(), "-60d@d"), 1, 0) | `security_content_ctime(lastTime)` | search isOutlier=1 | rename lastTime as "Last Update Time", | table Host, "Update Status", Product, "Last Update Time" | `no_windows_updates_in_a_time_frame_filter` +[ESCU - O365 Disable MFA - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search detects when multi factor authentication has been disabled, what entitiy performed the action and against what user +action.escu.mappings = {"kill_chain_phases": ["Actions on Objective"], "mitre_attack": ["T1556"]} +action.escu.data_models = [] +action.escu.eli5 = This search detects when multi factor authentication has been disabled, what entitiy performed the action and against what user +action.escu.how_to_implement = You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity +action.escu.known_false_positives = Unless it is a special case, it is uncommon to disable MFA or Strong Authentication +action.escu.creation_date = 2020-12-16 +action.escu.modification_date = 2020-12-16 +action.escu.confidence = high +action.escu.full_search_name = ESCU - O365 Disable MFA - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Office 365 Detections"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - O365 Disable MFA - Rule +action.correlationsearch.annotations = {"analytics_story": ["Office 365 Detections"], "kill_chain_phases": ["Actions on Objective"], "mitre_attack": ["T1556"]} +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 = `o365_management_activity` Operation="Disable Strong Authentication." | stats count earliest(_time) as firstTime latest(_time) as lastTime by UserType Operation user status signature dest ResultStatus |`security_content_ctime(firstTime)` |`security_content_ctime(lastTime)` | `o365_disable_mfa_filter` + +[ESCU - O365 Excessive Authentication Failures Alert - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search detects when an excessive number of authentication failures occur this search also includes attempts against MFA prompt codes +action.escu.mappings = {"kill_chain_phases": ["Not Applicable"], "mitre_attack": ["T1110"]} +action.escu.data_models = [] +action.escu.eli5 = This search detects when an excessive number of authentication failures occur this search also includes attempts against MFA prompt codes +action.escu.how_to_implement = You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity +action.escu.known_false_positives = The threshold for alert is above 10 attempts and this should reduce the number of false positives. +action.escu.creation_date = 2020-12-16 +action.escu.modification_date = 2020-12-16 +action.escu.confidence = high +action.escu.full_search_name = ESCU - O365 Excessive Authentication Failures Alert - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Office 365 Detections"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - O365 Excessive Authentication Failures Alert - Rule +action.correlationsearch.annotations = {"analytics_story": ["Office 365 Detections"], "kill_chain_phases": ["Not Applicable"], "mitre_attack": ["T1110"]} +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 = `o365_management_activity` Workload=AzureActiveDirectory UserAuthenticationMethod=* status=Failed | stats count earliest(_time) as firstTime latest(_time) values(UserAuthenticationMethod) AS UserAuthenticationMethod values(UserAgent) AS UserAgent values(status) AS status values(src_ip) AS src_ip by user | where count > 10 |`security_content_ctime(firstTime)` |`security_content_ctime(lastTime)` | `o365_excessive_authentication_failures_alert_filter` + +[ESCU - O365 PST export alert - Rule] +action.escu = 0 +action.escu.enabled = 1 +description = This search detects when a user has performed an Ediscovery search or exported a PST file from the search. This PST file usually has sensitive information including email body content +action.escu.mappings = {"kill_chain_phases": ["Actions on Objective"], "mitre_attack": ["T1114"]} +action.escu.data_models = [] +action.escu.eli5 = This search detects when a user has performed an Ediscovery search or exported a PST file from the search. This PST file usually has sensitive information including email body content +action.escu.how_to_implement = You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity +action.escu.known_false_positives = PST export can be done for legitimate purposes but due to the sensitive nature of its content it must be monitored. +action.escu.creation_date = 2020-12-16 +action.escu.modification_date = 2020-12-16 +action.escu.confidence = high +action.escu.full_search_name = ESCU - O365 PST export alert - Rule +action.escu.search_type = detection +action.escu.providing_technologies = [] +action.escu.analytic_story = ["Office 365 Detections"] +cron_schedule = 0 * * * * +dispatch.earliest_time = -70m@m +dispatch.latest_time = -10m@m +action.correlationsearch.enabled = 1 +action.correlationsearch.label = ESCU - O365 PST export alert - Rule +action.correlationsearch.annotations = {"analytics_story": ["Office 365 Detections"], "kill_chain_phases": ["Actions on Objective"], "mitre_attack": ["T1114"]} +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 = `o365_management_activity` Category=ThreatManagement Name="eDiscovery search started or exported" | stats count earliest(_time) as firstTime latest(_time) as lastTime by Source Severity AlertEntityId Operation Name |`security_content_ctime(firstTime)` |`security_content_ctime(lastTime)` | `o365_pst_export_alert_filter` + [ESCU - O365 Suspicious Admin Email Forwarding - Rule] action.escu = 0 action.escu.enabled = 1 @@ -6169,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 @@ -6202,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 @@ -6367,7 +6505,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.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 @@ -6829,7 +6967,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=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 @@ -6862,7 +7000,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=*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` +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 @@ -7060,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 @@ -7096,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 @@ -7228,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 @@ -7360,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 @@ -7558,7 +7696,7 @@ 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` +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 @@ -7624,7 +7762,7 @@ 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 @@ -7690,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 @@ -7758,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 @@ -7857,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 @@ -7890,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 @@ -8154,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 @@ -8164,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 @@ -8206,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 @@ -8220,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 @@ -8616,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 @@ -8720,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 @@ -10679,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"] @@ -10687,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 @@ -11071,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 @@ -11218,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 @@ -11246,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"] @@ -11254,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 @@ -11309,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"] @@ -11317,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 @@ -11399,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 61dbce6a09..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-13T13:05:35 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 949287c2ff..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-13T13:05:35 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 assume role abuse - Rule", "ESCU - aws detect attach to role policy - Rule", "ESCU - aws detect sts get session token abuse - Rule", "ESCU - aws detect permanent key creation - Rule", "ESCU - aws detect role 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 - Rule", "ESCU - Abnormally High AWS Instances Launched by User - MLTK - Rule", "ESCU - EC2 Instance Started With Previously Unseen User - 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 Instance Type - Rule", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] +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 Network ACL Activity - 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 - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +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 - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Launch Details", "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 Region - Rule", "ESCU - AWS Cloud Provisioning From Previously Unseen IP Address - Rule", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Get All AWS Activity From Region", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From City", "ESCU - Get All AWS Activity From Country", "ESCU - Get All AWS Activity From IP Address"] +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 new API calls from user roles - Rule", "ESCU - Detect Spike in Security Group Activity - Rule", "ESCU - Detect Spike in AWS API Activity - Rule", "ESCU - Detect AWS API Activities From Unapproved Accounts - Rule", "ESCU - Detect API activity from users without MFA - Rule", "ESCU - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] +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 - Unusually Long Content-Type Length - Rule", "ESCU - Web Servers Executing Suspicious Processes - Rule", "ESCU - Suspicious Java Classes - Rule", "ESCU - Get Notable History", "ESCU - Investigate Web POSTs From src", "ESCU - Investigate Suspicious Strings in HTTP Header"] +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.\ @@ -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 DNS For Brand Abuse - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Monitor Web Traffic For Brand Abuse - Rule", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +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 - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Image - Rule", "ESCU - Cloud Compute Instance Created In Previously Unused Region - Rule", "ESCU - Cloud Compute Instance Created By Previously Unseen User - Rule", "ESCU - Cloud Compute Instance Created With Previously Unseen Instance Type - Rule", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] +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. \ @@ -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 - Email servers sending high volume traffic to hosts - Rule", "ESCU - Suspicious writes to System Volume Information - Rule", "ESCU - Hosts receiving high volume of network traffic from email server - Rule", "ESCU - Suspicious writes to windows Recycle Bin - Rule", "ESCU - Email files written outside of the Outlook directory - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - TOR Traffic - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - DNS Query Length Outliers - MLTK - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Detect Spike in blocked Outbound Traffic from your AWS - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detect Large Outbound ICMP Packets - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +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 - Dump LSASS via comsvcs DLL - Rule", "ESCU - Access LSASS Memory for Dump Creation - Rule", "ESCU - Credential Dumping via Copy Command from Shadow Copy - Rule", "ESCU - Unsigned Image Loaded by LSASS - Rule", "ESCU - Creation of Shadow Copy - Rule", "ESCU - Creation of Shadow Copy with wmic and powershell - 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 - Detect Credential Dumping through LSASS access - Rule", "ESCU - Create Remote Thread into LSASS - Rule", "ESCU - Detect Mimikatz Using Loaded Images - Rule", "ESCU - Credential Dumping via Symlink to Shadow Copy - Rule", "ESCU - Investigate Pass the Ticket Attempts", "ESCU - Investigate Previous Unseen User", "ESCU - Investigate Failed Logins for Multiple Destinations", "ESCU - Investigate Pass the Hash Attempts"] +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 - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - Create local admin accounts using net exe - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Malicious PowerShell Process - Execution Policy Bypass - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Single Letter Process On Endpoint - Rule", "ESCU - Detect New Local Admin account - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process File Activity", "ESCU - Get Notable History", "ESCU - Get Process Information For Port 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 Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "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 Credential Dumping through LSASS access - Rule", "ESCU - Detect Computer Changed with Anonymous Account - Rule", "ESCU - Detect Zerologon via Zeek - Rule", "ESCU - Detect Mimikatz Using Loaded Images - 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 - Sc exe Manipulating Windows Services - Rule", "ESCU - Attempt To Stop Security Service - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Processes launching netsh - Rule", "ESCU - Attempt To Add Certificate To Untrusted Store - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Process Responsible For The DNS Traffic", "ESCU - Get DNS traffic ratio", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History"] +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 - Detect Rare Executables - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - SMB Traffic Spike - MLTK - 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 - Detection of tools built by NirSoft - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 oauth token abuse - Rule", "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 - 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 - DNS Query Length Outliers - MLTK - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - Create or delete windows shares using net exe - Rule", "ESCU - Suspicious File Write - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity", "ESCU - Get Outbound Emails to Hidden Cobra Threat Actors"] +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 Notable History", "ESCU - Get DNS Server History for a host"] +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 - Kubernetes Azure pod scan fingerprint - Rule", "ESCU - Amazon EKS Kubernetes cluster scan detection - Rule", "ESCU - GCP Kubernetes cluster scan detection - Rule", "ESCU - Kubernetes Azure scan fingerprint - Rule", "ESCU - GCP Kubernetes cluster pod scan detection - Rule", "ESCU - Amazon EKS Kubernetes Pod scan detection - Rule", "ESCU - Amazon EKS Kubernetes activity by src ip", "ESCU - Get Notable History", "ESCU - GCP 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 Azure detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes AWS detect suspicious kubectl calls - Rule", "ESCU - Kubernetes GCP detect service accounts forbidden failure access - Rule", "ESCU - Kubernetes Azure detect sensitive object access - Rule", "ESCU - Kubernetes GCP detect suspicious kubectl calls - Rule", "ESCU - Kubernetes GCP detect sensitive object access - Rule", "ESCU - Kubernetes Azure detect suspicious kubectl calls - Rule", "ESCU - AWS EKS Kubernetes cluster sensitive object access - Rule", "ESCU - Kubernetes AWS detect service accounts forbidden failure access - 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 GCP detect sensitive role access - Rule", "ESCU - Kubernetes Azure detect sensitive role access - Rule", "ESCU - Kubernetes AWS detect sensitive role access - Rule", "ESCU - Kubernetes AWS detect RBAC authorization by account - Rule", "ESCU - Kubernetes GCP detect most active service accounts by pod - Rule", "ESCU - Kubernetes AWS detect most active service accounts by pod - Rule", "ESCU - Kubernetes Azure detect RBAC authorization by account - Rule", "ESCU - Kubernetes Azure detect most active service accounts by pod namespace - Rule", "ESCU - Kubernetes GCP detect RBAC authorizations by account - 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 - Remote Desktop Network Traffic - Rule", "ESCU - Remote Desktop Process Running On System - Rule", "ESCU - Kerberoasting spn request with RC4 encryption - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Detect Activity Related to Pass the Hash Attacks - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 - Multiple Suspicious Command-Line Arguments - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - Rule", "ESCU - Malicious PowerShell Process With Obfuscation Techniques - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] +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 - Extended Period Without Successful Netbackup Backups - Rule", "ESCU - Unsuccessful 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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Rights Delegation - Rule", "ESCU - High Number of Login Failures from a single source - Rule", "ESCU - O365 Suspicious User Email Forwarding - Rule", "ESCU - O365 Suspicious Admin Email Forwarding - 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 - Sc exe Manipulating Windows Services - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] +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.\ @@ -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 - Unusually Long Command Line - MLTK - Rule", "ESCU - First time seen command line argument - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Malicious PowerShell Process - Connect To Internet With Hidden Window - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info"] +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 - TOR Traffic - Rule", "ESCU - Detect hosts connecting to dynamic domain providers - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Protocol or Port Mismatch - Rule", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get DNS Server History for a host", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 - TOR Traffic - Rule", "ESCU - Unusually Long Command Line - MLTK - Rule", "ESCU - Schtasks used for forcing a reboot - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Prohibited Network Traffic Allowed - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - Scheduled tasks used in BadRabbit ransomware - Rule", "ESCU - SMB Traffic Spike - MLTK - Rule", "ESCU - Windows Event Log Cleared - Rule", "ESCU - SMB Traffic Spike - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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. @@ -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 ARP Poisoning - Rule", "ESCU - Detect Port Security Violation - Rule", "ESCU - Detect Rogue DHCP Server - Rule", "ESCU - Detect IPv6 Network Infrastructure Threats - Rule", "ESCU - Detect New Login Attempts to Routers - Rule", "ESCU - Detect Software Download To Network Device - Rule", "ESCU - Detect Traffic Mirroring - 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 - Remote Desktop Network Bruteforce - Rule", "ESCU - Ryuk Test Files Detected - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - Windows Security Account Manager Stopped - Rule", "ESCU - Windows connhost exe started forcefully - Rule", "ESCU - Windows DisableAntiSpyware Registry - 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 - Remote Desktop Network Bruteforce - Rule", "ESCU - Common Ransomware Extensions - Rule", "ESCU - Detect malicious requests to exploit JBoss servers - Rule", "ESCU - Remote Desktop Network Traffic - Rule", "ESCU - Batch File Write to System32 - Rule", "ESCU - Spike in File Writes - Rule", "ESCU - Detect attackers scanning for vulnerable JBoss servers - Rule", "ESCU - Samsam Test File Write - Rule", "ESCU - Common Ransomware Notes - Rule", "ESCU - File with Samsam Extension - Rule", "ESCU - Prohibited Software On Endpoint - Rule", "ESCU - Detect PsExec With accepteula Flag - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - Get History Of Email Sources", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Investigate Successful Remote Desktop Authentications", "ESCU - Get Backup Logs For Endpoint", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +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 - Scheduled Task Deleted Or Created via CMD - Rule", "ESCU - TOR Traffic - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Sunburst Correlation DLL and Network Event - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Supernova Webshell - Rule", "ESCU - Schtasks scheduling job on remote system - Rule", "ESCU - Windows AdFind Exe - Rule", "ESCU - Detect Outbound SMB Traffic - Rule", "ESCU - Malicious PowerShell Process - Encoded Command - 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 - Rule", "ESCU - Abnormally High AWS Instances Launched 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 Terminated by User - Rule", "ESCU - Abnormally High AWS Instances Terminated by User - MLTK - Rule", "ESCU - AWS Investigate Security Hub alerts by dest", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get EC2 Launch Details", "ESCU - Get EC2 Instance Details by instanceId"] +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 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 - Detect Spike in S3 Bucket deletion - Rule", "ESCU - AWS S3 Bucket details via bucketName", "ESCU - Investigate AWS activities via region name", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get Notable History", "ESCU - Get All AWS Activity From IP Address"] +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 - Get DNS traffic ratio", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get DNS Server History for a host", "ESCU - AWS Network Interface details via resourceId", "ESCU - Get Notable History", "ESCU - AWS Network ACL Details from ID", "ESCU - Get Process Information For Port Activity", "ESCU - Get All AWS Activity From IP Address"] +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 Region - Rule", "ESCU - Detect AWS Console Login by User from New City - Rule", "ESCU - AWS Cross Account Activity From Previously Unseen Account - Rule", "ESCU - Detect AWS Console Login by User from New Country - Rule", "ESCU - Detect AWS Console Login by New User - Rule", "ESCU - Get Notable History", "ESCU - Investigate AWS User Activities by user field"] +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 - Abnormally High Number Of Cloud Instances Launched - Rule", "ESCU - Cloud Instance Modified By Previously Unseen User - Rule", "ESCU - Abnormally High Number Of Cloud Instances Destroyed - Rule", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get All AWS Activity From IP Address"] +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 City - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Region - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen Country - Rule", "ESCU - Cloud Provisioning Activity From Previously Unseen IP Address - 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 - Abnormally High Number Of Cloud Infrastructure API Calls - Rule", "ESCU - Cloud API Calls From Previously Unseen User Roles - 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 - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect Prohibited Applications Spawning cmd exe - Rule", "ESCU - First time seen command line argument - 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 - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - DNS Query Length Outliers - MLTK - Rule", "ESCU - Clients Connecting to Multiple DNS Servers - Rule", "ESCU - DNS Query Requests Resolved by Unauthorized DNS Servers - Rule", "ESCU - Detect Long DNS TXT Record Response - Rule", "ESCU - Excessive DNS Failures - Rule", "ESCU - Detection of DNS Tunnels - Rule", "ESCU - DNS Query Length With High Standard Deviation - Rule", "ESCU - Get DNS traffic ratio", "ESCU - Get Parent Process Info", "ESCU - Get Process Info", "ESCU - Get Process Responsible For The DNS Traffic", "ESCU - Get DNS Server History for a host", "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 - Suspicious Email Attachment Extensions - Rule", "ESCU - Monitor Email For Brand Abuse - Rule", "ESCU - Email Attachments With Lots Of Spaces - Rule", "ESCU - Suspicious Email - UBA Anomaly - Rule", "ESCU - Get Notable History", "ESCU - Get Email Info", "ESCU - Get Emails From Specific Sender"] +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 Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Failed SSO Attempts - Rule", "ESCU - Multiple Okta Users With Invalid Credentails From The Same IP - 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 IP Address", "ESCU - Investigate Okta Activity by app"] +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 - WMI Permanent Event Subscription - Rule", "ESCU - Remote Process Instantiation via WMI - Rule", "ESCU - WMI Permanent Event Subscription - Sysmon - Rule", "ESCU - WMI Temporary Event Subscription - Rule", "ESCU - Process Execution via WMI - Rule", "ESCU - Remote WMI Command Attempt - Rule", "ESCU - Script Execution via WMI - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Sysmon WMI Activity for Host", "ESCU - Get Parent Process Info"] +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 for Creating SHIM Databases - Rule", "ESCU - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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.\ @@ -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 - Get Notable History", "ESCU - AWS Investigate User Activities By ARN", "ESCU - Get EC2 Instance Details by instanceId"] +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 - Unusually Long Command Line - MLTK - Rule", "ESCU - Detect Rare Executables - Rule", "ESCU - Uncommon Processes On Endpoint - Rule", "ESCU - RunDLL Loading DLL By Ordinal - Rule", "ESCU - System Processes Run From Unexpected Locations - Rule", "ESCU - Unusually Long Command Line - Rule", "ESCU - Detect processes used for System Network Configuration Discovery - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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.\ @@ -983,7 +983,7 @@ version = 1 references = ["https://www.monkey.org/~dugsong/dsniff/"] maintainers = [{"company": "Splunk", "email": "-", "name": "Bhavin Patel"}] spec_version = 3 -searches = ["ESCU - Protocols passing authentication in cleartext - Rule", "ESCU - Get Notable History", "ESCU - Get Process Information For Port Activity"] +searches = ["ESCU - Protocols passing authentication in cleartext - Rule", "ESCU - Get Process Information For Port Activity", "ESCU - Get Notable History"] description = Leverage searches that detect cleartext network protocols that may leak credentials or should otherwise be encrypted. narrative = Various legacy protocols operate by default in the clear, without the protections of encryption. This potentially leaks sensitive information that can be exploited by passively sniffing network traffic. Depending on the protocol, this information could be highly sensitive, or could allow for session hijacking. In addition, these protocols send authentication information, which would allow for the harvesting of usernames and passwords that could potentially be used to authenticate and compromise secondary systems. @@ -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 Notable History", "ESCU - Get Web Session Information via session id", "ESCU - Get Emails From Specific Sender"] +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 - Reg exe used to hide files directories via registry keys - Rule", "ESCU - Suspicious Reg exe Process - Rule", "ESCU - Disabling Remote User Account Control - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 Spaces Before Extension - Rule", "ESCU - Suspicious Changes to File Associations - Rule", "ESCU - Execution of File with Multiple Extensions - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - Windows Event Log Cleared - Rule", "ESCU - Suspicious wevtutil Usage - Rule", "ESCU - Deleting Shadow Copies - Rule", "ESCU - USN Journal Deletion - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - Registry Keys for Creating SHIM Databases - Rule", "ESCU - Schtasks used for forcing a reboot - 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 - Shim Database File Creation - Rule", "ESCU - Shim Database Installation With Suspicious Parameters - Rule", "ESCU - Registry Keys Used For Persistence - Rule", "ESCU - Detect Path Interception By Creation Of program exe - Rule", "ESCU - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - Remote Registry Key modifications - Rule", "ESCU - Monitor Registry Keys for Print Monitors - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - Overwriting Accessibility Binaries - Rule", "ESCU - Child Processes of Spoolsv exe - Rule", "ESCU - Registry Keys Used For Privilege Escalation - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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 - Reg exe Manipulating Windows Services Registry Keys - Rule", "ESCU - First Time Seen Running Windows Service - Rule", "ESCU - Sc exe Manipulating Windows Services - Rule", "ESCU - Get Notable History", "ESCU - Get Process Info", "ESCU - Get Parent Process Info"] +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. @@ -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 @@ -2533,7 +2543,7 @@ providing_technologies = [] type = detection asset_type = Office 365 confidence = medium -explanation = This search detects more than 5 login failures in Office365 Azure Active Directory from a single source IP address. Please adjust the threshold value of 5 as suited for your environment. +explanation = This search will detect more than 5 login failures in Office365 Azure Active Directory from a single source IP address. Please adjust the threshold value of 5 as suited for your environment. how_to_implement = none annotations = {"cis20": ["CIS 16"], "kill_chain_phases": ["Actions on Objectives"], "mitre_attack": ["T1110.001"], "nist": ["DE.DP", "DE.AE"]} known_false_positives = unknown @@ -2899,6 +2909,36 @@ annotations = {"cis20": ["CIS 18"], "nist": ["PR.PT", "PR.MA"]} known_false_positives = None identified providing_technologies = [] +[savedsearch://ESCU - O365 Disable MFA - Rule] +type = detection +asset_type = Office 365 +confidence = medium +explanation = This search detects when multi factor authentication has been disabled, what entitiy performed the action and against what user +how_to_implement = You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity +annotations = {"kill_chain_phases": ["Actions on Objective"], "mitre_attack": ["T1556"]} +known_false_positives = Unless it is a special case, it is uncommon to disable MFA or Strong Authentication +providing_technologies = [] + +[savedsearch://ESCU - O365 Excessive Authentication Failures Alert - Rule] +type = detection +asset_type = Office 365 +confidence = medium +explanation = This search detects when an excessive number of authentication failures occur this search also includes attempts against MFA prompt codes +how_to_implement = You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity +annotations = {"kill_chain_phases": ["Not Applicable"], "mitre_attack": ["T1110"]} +known_false_positives = The threshold for alert is above 10 attempts and this should reduce the number of false positives. +providing_technologies = [] + +[savedsearch://ESCU - O365 PST export alert - Rule] +type = detection +asset_type = Office 365 +confidence = medium +explanation = This search detects when a user has performed an Ediscovery search or exported a PST file from the search. This PST file usually has sensitive information including email body content +how_to_implement = You must install splunk Microsoft Office 365 add-on. This search works with o365:management:activity +annotations = {"kill_chain_phases": ["Actions on Objective"], "mitre_attack": ["T1114"]} +known_false_positives = PST export can be done for legitimate purposes but due to the sensitive nature of its content it must be monitored. +providing_technologies = [] + [savedsearch://ESCU - O365 Suspicious Admin Email Forwarding - Rule] type = detection asset_type = Office 365 From c871d6804aba36b8745057d9a378d932ac552572 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Thu, 14 Jan 2021 15:01:16 +0100 Subject: [PATCH 39/45] improved detections and tests --- ...quests_to_phishing_sites_leveraging_evilginx2.yml | 0 ..._hosts_connecting_to_dynamic_domain_providers.yml | 8 +++++--- ...s_connecting_to_dynamic_domain_providers.test.yml | 12 ++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) rename detections/{network => deprecated}/detect_dns_requests_to_phishing_sites_leveraging_evilginx2.yml (100%) create mode 100644 tests/network/detect_hosts_connecting_to_dynamic_domain_providers.test.yml 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/network/detect_hosts_connecting_to_dynamic_domain_providers.yml b/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml index 8c3fcfa8fb..ebf374f6e1 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,7 +36,7 @@ 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 + 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 @@ -50,6 +50,8 @@ tags: - Suspicious DNS Traffic - Dynamic DNS - Command and Control + mitre_attack_id: + - T1189 kill_chain_phases: - Command and Control - Actions on Objectives 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..ce641237b1 --- /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 From a55f2a129a9ee7a48b5e428da82718e3d59d0e6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 14:05:31 +0000 Subject: [PATCH 40/45] Bump botocore from 1.19.53 to 1.19.54 Bumps [botocore](https://github.com/boto/botocore) from 1.19.53 to 1.19.54. - [Release notes](https://github.com/boto/botocore/releases) - [Changelog](https://github.com/boto/botocore/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/botocore/compare/1.19.53...1.19.54) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index 9880d4c85e..58e314f1c8 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -14,7 +14,7 @@ azure-mgmt-network==17.0.0 azure-mgmt-resource==15.0.0 bcrypt==3.2.0 boto3==1.16.53 -botocore==1.19.53 +botocore==1.19.54 certifi==2020.12.5 cffi==1.14.4 cfgv==2.0.1 From 1e0bc6e64ad63c54bebe9a73182904d883734c91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 14:14:35 +0000 Subject: [PATCH 41/45] Bump boto3 from 1.16.53 to 1.16.54 Bumps [boto3](https://github.com/boto/boto3) from 1.16.53 to 1.16.54. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/boto3/compare/1.16.53...1.16.54) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index 58e314f1c8..d4fbe87c1f 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -13,7 +13,7 @@ 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.53 +boto3==1.16.54 botocore==1.19.54 certifi==2020.12.5 cffi==1.14.4 From 2e1234c5944f6d5b2b99823a12e82f6ad6172a17 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Thu, 14 Jan 2021 15:57:42 +0100 Subject: [PATCH 42/45] improved detections and tests --- ..._hosts_connecting_to_dynamic_domain_providers.test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 index ce641237b1..b8536d086b 100644 --- a/tests/network/detect_hosts_connecting_to_dynamic_domain_providers.test.yml +++ b/tests/network/detect_hosts_connecting_to_dynamic_domain_providers.test.yml @@ -6,7 +6,7 @@ tests: 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 + - 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 From b751d5ddb86d2f9b7332b3bdde6fc5783eefb8a4 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 14 Jan 2021 15:15:59 +0000 Subject: [PATCH 43/45] Added detection testing service results inDetect hosts connecting to dynamic domain providers --- ...etect_hosts_connecting_to_dynamic_domain_providers.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 ebf374f6e1..4da49a35fe 100644 --- a/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml +++ b/detections/network/detect_hosts_connecting_to_dynamic_domain_providers.yml @@ -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.query host - | `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. @@ -66,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 From 28b54bef7d221db7e6a9afd0682b1c9b9f541e46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Jan 2021 14:05:20 +0000 Subject: [PATCH 44/45] Bump boto3 from 1.16.54 to 1.16.55 Bumps [boto3](https://github.com/boto/boto3) from 1.16.54 to 1.16.55. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/boto3/compare/1.16.54...1.16.55) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index d4fbe87c1f..5dbf3a9d79 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -13,7 +13,7 @@ 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.54 +boto3==1.16.55 botocore==1.19.54 certifi==2020.12.5 cffi==1.14.4 From 2ae044f136b398bc5ce5568573fcd1c6690c9365 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Jan 2021 14:12:10 +0000 Subject: [PATCH 45/45] Bump botocore from 1.19.54 to 1.19.55 Bumps [botocore](https://github.com/boto/botocore) from 1.19.54 to 1.19.55. - [Release notes](https://github.com/boto/botocore/releases) - [Changelog](https://github.com/boto/botocore/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/botocore/compare/1.19.54...1.19.55) Signed-off-by: dependabot[bot] --- automated_detection_testing/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated_detection_testing/requirements.txt b/automated_detection_testing/requirements.txt index 5dbf3a9d79..38fc0d0fae 100644 --- a/automated_detection_testing/requirements.txt +++ b/automated_detection_testing/requirements.txt @@ -14,7 +14,7 @@ azure-mgmt-network==17.0.0 azure-mgmt-resource==15.0.0 bcrypt==3.2.0 boto3==1.16.55 -botocore==1.19.54 +botocore==1.19.55 certifi==2020.12.5 cffi==1.14.4 cfgv==2.0.1