diff --git a/detection-rules/abuse_hellosign_unsolicited_sender.yml b/detection-rules/abuse_hellosign_unsolicited_sender.yml
new file mode 100644
index 00000000000..5aa0c24e3c2
--- /dev/null
+++ b/detection-rules/abuse_hellosign_unsolicited_sender.yml
@@ -0,0 +1,83 @@
+name: "Service Abuse: HelloSign From an Unsolicited Sender Address"
+description: "Detects messages from HelloSign in which the document originates from a newly observed email address. The email address is extracted from across multiple message components, including HTML body templates and email header fields."
+type: "rule"
+severity: "low"
+source: |
+ type.inbound
+ and sender.email.domain.domain == "mail.hellosign.com"
+ and headers.auth_summary.spf.pass
+ and headers.auth_summary.dmarc.pass
+ and (
+ // extract the sender out of the body html template
+ (
+ // if the sender_email is available in the body
+ regex.icontains(body.html.raw,
+ '
]+\>\s*[^\<]*\((?P[^\"]+@(?P[^\"]+))\).*? | '
+ ),
+ .named_groups["sender_domain"] not in $org_domains
+ and .named_groups["sender_email"] not in $recipient_emails
+ and .named_groups["sender_email"] not in $sender_emails
+ and not (
+ .named_groups["sender_domain"] not in $free_email_providers
+ and .named_groups["sender_domain"] in $recipient_domains
+ and .named_groups["sender_domain"] in $sender_domains
+ )
+ )
+ )
+
+ // extract the sender out of header hops if it's there
+ or any(headers.hops,
+ any(.fields,
+ .name == "X-Mailgun-Variables"
+ and strings.icontains(.value, 'on_behalf_of_email')
+ and all(regex.iextract(.value,
+ '\"on_behalf_of_email": \"(?P[^\"]+@(?P[^\"]+))\",'
+ ),
+ .named_groups["sender_domain"] not in $org_domains
+ and .named_groups["sender_email"] not in $recipient_emails
+ and .named_groups["sender_email"] not in $sender_emails
+ and not (
+ .named_groups["sender_domain"] not in $free_email_providers
+ and .named_groups["sender_domain"] in $recipient_domains
+ and .named_groups["sender_domain"] in $sender_domains
+ )
+ )
+ )
+ )
+
+ // extract the sender from the "reply to sender" element withn the body.html.raw
+ or (
+ regex.icontains(body.html.raw,
+ ']+\>(?:
]+\>)?\s*Reply to sender<\/a>'
+ )
+ and all(regex.iextract(body.html.raw,
+ ']+\>(?:
]+\>)?\s*Reply to sender<\/a>'
+ ),
+ .named_groups["sender_domain"] not in $org_domains
+ and .named_groups["sender_email"] not in $recipient_emails
+ and .named_groups["sender_email"] not in $sender_emails
+ and not (
+ .named_groups["sender_domain"] not in $free_email_providers
+ and .named_groups["sender_domain"] in $recipient_domains
+ and .named_groups["sender_domain"] in $sender_domains
+ )
+ )
+ )
+ )
+tags:
+ - "Attack surface reduction"
+attack_types:
+ - "Credential Phishing"
+tactics_and_techniques:
+ - "Social engineering"
+ - "Free file host"
+ - "Evasion"
+detection_methods:
+ - "HTML analysis"
+ - "Sender analysis"
+ - "Header analysis"
+id: "68ca0753-207f-56a0-9dba-3bbbad002bbf"