Detection rules › Sublime MQL
Impersonation: Legal firm with copyright infringement notice
Detects messages impersonating legal firms or copyright enforcement entities with extensive legal terminology, threatening language, and urgent compliance demands.
Threat classification
Sublime's own taxonomy (not MITRE ATT&CK).
| Category | Values |
|---|---|
| Attack types | BEC/Fraud, Extortion |
| Tactics and techniques | Impersonation: Brand, Social engineering |
Event coverage
| Message attribute |
|---|
| body |
| body.current_thread |
| recipients |
| sender |
| sender.email |
| subject |
| type |
Rule body MQL
type.inbound
and length(body.previous_threads) == 0
and length(body.current_thread.text) < 5000
and 0 < length(body.links) < 10
// common strings in subject or base
and (
2 of (
strings.ilike(subject.base, '*Content*'),
strings.ilike(subject.base, '*Compliance*'),
strings.ilike(subject.base, '*Review*'),
strings.ilike(subject.base, '*Legal*'),
strings.ilike(subject.base, '*Formal*'),
strings.ilike(subject.base, '*LLP*'),
strings.ilike(subject.base, '*Unauthorized*'),
strings.ilike(subject.base, '*Trademark*'),
strings.ilike(subject.base, '*Law*'),
strings.ilike(subject.base, '*Enforcement*'),
strings.ilike(subject.base, '*Copyright*'),
strings.ilike(subject.base, '*Violat*'),
strings.ilike(subject.base, '*Intellectual*'),
strings.ilike(subject.base, '*Concerning*'),
strings.ilike(subject.base, '*Notice*'),
strings.ilike(subject.base, '*Licensing*'),
strings.ilike(subject.base, '*Clarification*'),
strings.ilike(subject.base, '*Matter*'),
strings.ilike(subject.base, '*Conflict*'),
strings.ilike(subject.base, '*Ownership*'),
strings.ilike(sender.display_name, '*Content*'),
strings.ilike(sender.display_name, '*Copyright*'),
strings.ilike(sender.display_name, '*Review*'),
strings.ilike(sender.display_name, '*Legal*'),
strings.ilike(sender.display_name, '*Investigation*'),
strings.ilike(sender.display_name, '*LLP*'),
strings.ilike(sender.display_name, '*Law*'),
strings.ilike(sender.display_name, '*Intellectual*'),
strings.ilike(sender.display_name, '*Notice*'),
strings.ilike(sender.display_name, '*Matter*'),
strings.ilike(sender.display_name, '*Dispute*'),
strings.ilike(sender.display_name, '*Resolution*'),
strings.ilike(sender.display_name, '*Advisory*'),
)
)
// common strings in email current thread
and 15 of (
strings.ilike(body.current_thread.text, '*copyright*'),
strings.ilike(body.current_thread.text, '*trademark*'),
strings.ilike(body.current_thread.text, '*inquiry*'),
strings.ilike(body.current_thread.text, '*online*'),
strings.ilike(body.current_thread.text, '*authorized*'),
strings.ilike(body.current_thread.text, '*legal*'),
strings.ilike(body.current_thread.text, '*represent*'),
strings.ilike(body.current_thread.text, '*lawful*'),
strings.ilike(body.current_thread.text, '*owner*'),
strings.ilike(body.current_thread.text, '*materials*'),
strings.ilike(body.current_thread.text, '*protected*'),
strings.ilike(body.current_thread.text, '*infring*'),
strings.ilike(body.current_thread.text, '*immediate*'),
strings.ilike(body.current_thread.text, '*cessation*'),
strings.ilike(body.current_thread.text, '*content*'),
strings.ilike(body.current_thread.text, '*referenced*'),
strings.ilike(body.current_thread.text, '*17 U.S.C. §*'),
strings.ilike(body.current_thread.text, '*constitutes*'),
strings.ilike(body.current_thread.text, '*authorization*'),
strings.ilike(body.current_thread.text, '*removal*'),
strings.ilike(body.current_thread.text, '*comply*'),
strings.ilike(body.current_thread.text, '*failure*'),
strings.ilike(body.current_thread.text, '*law firm*'),
strings.ilike(body.current_thread.text, '*LLP*'),
strings.ilike(body.current_thread.text, '*compliance*'),
strings.ilike(body.current_thread.text, '*cease*'),
strings.ilike(body.current_thread.text, '*protect*'),
strings.ilike(body.current_thread.text, '*rights*'),
strings.ilike(body.current_thread.text, '*penalty*'),
strings.ilike(body.current_thread.text, '*perjury*'),
strings.ilike(body.current_thread.text, '*holder*'),
strings.ilike(body.current_thread.text, '*declare*'),
strings.ilike(body.current_thread.text, '*sworn*'),
strings.ilike(body.current_thread.text, '*affidavit*'),
strings.ilike(body.current_thread.text, '*investigation*'),
strings.ilike(body.current_thread.text, '*identified*'),
strings.ilike(body.current_thread.text, '*reproduction*'),
strings.ilike(body.current_thread.text, '*license*'),
strings.ilike(body.current_thread.text, '*granted*'),
strings.ilike(body.current_thread.text, '*permitting*'),
strings.ilike(body.current_thread.text, '*evidence*'),
strings.ilike(body.current_thread.text, '*proceedings*'),
strings.ilike(body.current_thread.text, '*evidentiary*'),
strings.ilike(body.current_thread.text, '*remove*'),
strings.ilike(body.current_thread.text, '*suspend*'),
strings.ilike(body.current_thread.text, '*discontinue*'),
strings.ilike(body.current_thread.text, '*72 hours*'),
strings.ilike(body.current_thread.text, '*48 hours*'),
strings.ilike(body.current_thread.text, '*24 hours*'),
strings.ilike(body.current_thread.text, '*proof*'),
strings.ilike(body.current_thread.text, '*unresolved*'),
strings.ilike(body.current_thread.text, '*accordance*'),
strings.ilike(body.current_thread.text, '*procedures*'),
strings.ilike(body.current_thread.text, '*interests*'),
strings.ilike(body.current_thread.text, '*appeal*'),
strings.ilike(body.current_thread.text, '*clarification*'),
strings.ilike(body.current_thread.text, '*notice*'),
strings.ilike(body.current_thread.text, '*dissemination*'),
strings.ilike(body.current_thread.text, '*counter-notice*'),
strings.ilike(body.current_thread.text, '*exploitation*'),
strings.ilike(body.current_thread.text, '*remedial*'),
strings.ilike(body.current_thread.text, '*particulars*'),
strings.ilike(body.current_thread.text, '*fingerprint*'),
strings.ilike(body.current_thread.text, '*confidentiality*'),
strings.ilike(body.current_thread.text, '*assertion*'),
strings.ilike(body.current_thread.text, '*counsel*'),
strings.ilike(body.current_thread.text, '*privileged*'),
strings.ilike(body.current_thread.text, '*directive*'),
)
// remove phrase from legitimate complaint
and not regex.icontains(body.current_thread.text,
'(?:we are passing the notice below|content has been removed|removed from our website|notice of intended action|I have not granted|I am the original creator|content you reported has been removed|complaint will be carefully reviewed|provide a list of violations|document confirming your right to act)'
)
// not copyright reports
and not regex.icontains(body.current_thread.text,
'(?:confirmation|received).{0,100}copyright report'
)
// verified dmca receiving/sending address
and not any([recipients.cc, recipients.to, recipients.bcc],
any(.,
.email.email in (
'dmca@vimeo.com',
'dmca@support.epicgames.com',
'takedowns@doppel.com',
'ipenforcement@epicgames.com'
)
)
)
and not strings.icontains(sender.email.domain.root_domain, 'edwinjamesip.com')
Detection logic
Scope: inbound message.
Detects messages impersonating legal firms or copyright enforcement entities with extensive legal terminology, threatening language, and urgent compliance demands.
- inbound message
- length(body.previous_threads) is 0
- length(body.current_thread.text) < 5000
all of:
- length(body.links) > 0
- length(body.links) < 10
at least 2 of:
- subject.base matches '*Content*'
- subject.base matches '*Compliance*'
- subject.base matches '*Review*'
- subject.base matches '*Legal*'
- subject.base matches '*Formal*'
- subject.base matches '*LLP*'
- subject.base matches '*Unauthorized*'
- subject.base matches '*Trademark*'
- subject.base matches '*Law*'
- subject.base matches '*Enforcement*'
- subject.base matches '*Copyright*'
- subject.base matches '*Violat*'
- subject.base matches '*Intellectual*'
- subject.base matches '*Concerning*'
- subject.base matches '*Notice*'
- subject.base matches '*Licensing*'
- subject.base matches '*Clarification*'
- subject.base matches '*Matter*'
- subject.base matches '*Conflict*'
- subject.base matches '*Ownership*'
- sender.display_name matches '*Content*'
- sender.display_name matches '*Copyright*'
- sender.display_name matches '*Review*'
- sender.display_name matches '*Legal*'
- sender.display_name matches '*Investigation*'
- sender.display_name matches '*LLP*'
- sender.display_name matches '*Law*'
- sender.display_name matches '*Intellectual*'
- sender.display_name matches '*Notice*'
- sender.display_name matches '*Matter*'
- sender.display_name matches '*Dispute*'
- sender.display_name matches '*Resolution*'
- sender.display_name matches '*Advisory*'
at least 15 of 68: body.current_thread.text matches any of 68 patterns
*copyright**trademark**inquiry**online**authorized**legal**represent**lawful**owner**materials**protected**infring**immediate**cessation**content**referenced**17 U.S.C. §**constitutes**authorization**removal**comply**failure**law firm**LLP**compliance**cease**protect**rights**penalty**perjury**holder**declare**sworn**affidavit**investigation**identified**reproduction**license**granted**permitting**evidence**proceedings**evidentiary**remove**suspend**discontinue**72 hours**48 hours**24 hours**proof**unresolved**accordance**procedures**interests**appeal**clarification**notice**dissemination**counter-notice**exploitation**remedial**particulars**fingerprint**confidentiality**assertion**counsel**privileged**directive*
not:
- body.current_thread.text matches '(?:we are passing the notice below|content has been removed|removed from our website|notice of intended action|I have not granted|I am the original creator|content you reported has been removed|complaint will be carefully reviewed|provide a list of violations|document confirming your right to act)'
not:
- body.current_thread.text matches '(?:confirmation|received).{0,100}copyright report'
not:
any of
[recipients.cc, recipients.to, recipients.bcc]where:any of
.where:- .email.email in ('dmca@vimeo.com', 'dmca@support.epicgames.com', 'takedowns@doppel.com', 'ipenforcement@epicgames.com')
not:
- sender.email.domain.root_domain contains 'edwinjamesip.com'
Inspects: body.current_thread.text, body.links, body.previous_threads, recipients.bcc, recipients.cc, recipients.to, sender.display_name, sender.email.domain.root_domain, subject.base, type.inbound. Sensors: regex.icontains, strings.icontains, strings.ilike.
Indicators matched (98)
| Field | Match | Value |
|---|---|---|
strings.ilike | substring | *Content* |
strings.ilike | substring | *Compliance* |
strings.ilike | substring | *Review* |
strings.ilike | substring | *Legal* |
strings.ilike | substring | *Formal* |
strings.ilike | substring | *LLP* |
strings.ilike | substring | *Unauthorized* |
strings.ilike | substring | *Trademark* |
strings.ilike | substring | *Law* |
strings.ilike | substring | *Enforcement* |
strings.ilike | substring | *Copyright* |
strings.ilike | substring | *Violat* |
86 more
strings.ilike | substring | *Intellectual* |
strings.ilike | substring | *Concerning* |
strings.ilike | substring | *Notice* |
strings.ilike | substring | *Licensing* |
strings.ilike | substring | *Clarification* |
strings.ilike | substring | *Matter* |
strings.ilike | substring | *Conflict* |
strings.ilike | substring | *Ownership* |
strings.ilike | substring | *Investigation* |
strings.ilike | substring | *Dispute* |
strings.ilike | substring | *Resolution* |
strings.ilike | substring | *Advisory* |
strings.ilike | substring | *copyright* |
strings.ilike | substring | *trademark* |
strings.ilike | substring | *inquiry* |
strings.ilike | substring | *online* |
strings.ilike | substring | *authorized* |
strings.ilike | substring | *legal* |
strings.ilike | substring | *represent* |
strings.ilike | substring | *lawful* |
strings.ilike | substring | *owner* |
strings.ilike | substring | *materials* |
strings.ilike | substring | *protected* |
strings.ilike | substring | *infring* |
strings.ilike | substring | *immediate* |
strings.ilike | substring | *cessation* |
strings.ilike | substring | *content* |
strings.ilike | substring | *referenced* |
strings.ilike | substring | *17 U.S.C. §* |
strings.ilike | substring | *constitutes* |
strings.ilike | substring | *authorization* |
strings.ilike | substring | *removal* |
strings.ilike | substring | *comply* |
strings.ilike | substring | *failure* |
strings.ilike | substring | *law firm* |
strings.ilike | substring | *compliance* |
strings.ilike | substring | *cease* |
strings.ilike | substring | *protect* |
strings.ilike | substring | *rights* |
strings.ilike | substring | *penalty* |
strings.ilike | substring | *perjury* |
strings.ilike | substring | *holder* |
strings.ilike | substring | *declare* |
strings.ilike | substring | *sworn* |
strings.ilike | substring | *affidavit* |
strings.ilike | substring | *investigation* |
strings.ilike | substring | *identified* |
strings.ilike | substring | *reproduction* |
strings.ilike | substring | *license* |
strings.ilike | substring | *granted* |
strings.ilike | substring | *permitting* |
strings.ilike | substring | *evidence* |
strings.ilike | substring | *proceedings* |
strings.ilike | substring | *evidentiary* |
strings.ilike | substring | *remove* |
strings.ilike | substring | *suspend* |
strings.ilike | substring | *discontinue* |
strings.ilike | substring | *72 hours* |
strings.ilike | substring | *48 hours* |
strings.ilike | substring | *24 hours* |
strings.ilike | substring | *proof* |
strings.ilike | substring | *unresolved* |
strings.ilike | substring | *accordance* |
strings.ilike | substring | *procedures* |
strings.ilike | substring | *interests* |
strings.ilike | substring | *appeal* |
strings.ilike | substring | *clarification* |
strings.ilike | substring | *notice* |
strings.ilike | substring | *dissemination* |
strings.ilike | substring | *counter-notice* |
strings.ilike | substring | *exploitation* |
strings.ilike | substring | *remedial* |
strings.ilike | substring | *particulars* |
strings.ilike | substring | *fingerprint* |
strings.ilike | substring | *confidentiality* |
strings.ilike | substring | *assertion* |
strings.ilike | substring | *counsel* |
strings.ilike | substring | *privileged* |
strings.ilike | substring | *directive* |
regex.icontains | regex | (?:we are passing the notice below|content has been removed|removed from our website|notice of intended action|I have not granted|I am the original creator|content you reported has been removed|complaint will be carefully reviewed|provide a list of violations|document confirming your right to act) |
regex.icontains | regex | (?:confirmation|received).{0,100}copyright report |
[recipients.cc, recipients.to, recipients.bcc][][].email.email | member | dmca@vimeo.com |
[recipients.cc, recipients.to, recipients.bcc][][].email.email | member | dmca@support.epicgames.com |
[recipients.cc, recipients.to, recipients.bcc][][].email.email | member | takedowns@doppel.com |
[recipients.cc, recipients.to, recipients.bcc][][].email.email | member | ipenforcement@epicgames.com |
strings.icontains | substring | edwinjamesip.com |