Detection rules › Sublime MQL

Reconnaissance: Hotel booking reply-to redirect

Severity
medium
Type
rule
Source
github.com/sublime-security/sublime-rules

Detects messages impersonating hotel booking inquiries by identifying common hotel-related language patterns from senders where the reply-to is a free email provider and differs from the sender domain in an effort to validate whether a recipient address is valid or not, potentially preceding an attack.

Threat classification

Sublime's own taxonomy (not MITRE ATT&CK).

CategoryValues
Attack typesBEC/Fraud
Tactics and techniquesFree email provider, Social engineering

Event coverage

Rule body MQL

type.inbound
and any(headers.reply_to,
        .email.domain.root_domain in $free_email_providers
        and .email.domain.root_domain != sender.email.domain.root_domain
)
and all(recipients.to,
        .email.domain.root_domain != sender.email.domain.root_domain
)
and length(body.links) == 0
and length(attachments) == 0
and length(body.current_thread.text) < 600
and not (
  (subject.is_reply or subject.is_forward)
  and (length(headers.references) > 0 or headers.in_reply_to is not null)
)
and (
  (
    strings.ilike(body.current_thread.text,
                  '*hotel*',
                  '*your property*',
                  '*accommodation*',
                  '*guest services*',
                  '*reception*',
                  '*front desk*'
    )
    and strings.ilike(body.current_thread.text,
                      '*booking*',
                      '*to book*',
                      '*book a *',
                      '*reserv*',
                      '*room*',
                      '*suite*',
                      '*availability*',
                      '*check-in*',
                      '*available dates*',
                      '*family trip*',
                      '*deluxe accommodation*',
                      '*two children*',
                      '*hotel manager*'
    )
  )
  or strings.ilike(subject.base,
                   '*hotel*',
                   '*room reserv*',
                   '*room inquiry*',
                   '*room availability*',
                   '*suite*',
                   '*accommodation*'
  )
)

Detection logic

Scope: inbound message.

Detects messages impersonating hotel booking inquiries by identifying common hotel-related language patterns from senders where the reply-to is a free email provider and differs from the sender domain in an effort to validate whether a recipient address is valid or not, potentially preceding an attack.

  1. inbound message
  2. any of headers.reply_to where all hold:
    • .email.domain.root_domain in $free_email_providers
    • .email.domain.root_domain is not sender.email.domain.root_domain
  3. all of recipients.to where:
    • .email.domain.root_domain is not sender.email.domain.root_domain
  4. length(body.links) is 0
  5. length(attachments) is 0
  6. length(body.current_thread.text) < 600
  7. not:
    • all of:
      • any of:
        • subject.is_reply
        • subject.is_forward
      • any of:
        • length(headers.references) > 0
        • headers.in_reply_to is set
  8. any of:
    • all of:
      • body.current_thread.text matches any of 6 patterns
        • *hotel*
        • *your property*
        • *accommodation*
        • *guest services*
        • *reception*
        • *front desk*
      • body.current_thread.text matches any of 13 patterns
        • *booking*
        • *to book*
        • *book a *
        • *reserv*
        • *room*
        • *suite*
        • *availability*
        • *check-in*
        • *available dates*
        • *family trip*
        • *deluxe accommodation*
        • *two children*
        • *hotel manager*
    • subject.base matches any of 6 patterns
      • *hotel*
      • *room reserv*
      • *room inquiry*
      • *room availability*
      • *suite*
      • *accommodation*

Inspects: body.current_thread.text, body.links, headers.in_reply_to, headers.references, headers.reply_to, headers.reply_to[].email.domain.root_domain, recipients.to, recipients.to[].email.domain.root_domain, sender.email.domain.root_domain, subject.base, subject.is_forward, subject.is_reply, type.inbound. Sensors: strings.ilike. Reference lists: $free_email_providers.

Indicators matched (22)

FieldMatchValue
strings.ilikesubstring*hotel*
strings.ilikesubstring*your property*
strings.ilikesubstring*accommodation*
strings.ilikesubstring*guest services*
strings.ilikesubstring*reception*
strings.ilikesubstring*front desk*
strings.ilikesubstring*booking*
strings.ilikesubstring*to book*
strings.ilikesubstring*book a *
strings.ilikesubstring*reserv*
strings.ilikesubstring*room*
strings.ilikesubstring*suite*
10 more
strings.ilikesubstring*availability*
strings.ilikesubstring*check-in*
strings.ilikesubstring*available dates*
strings.ilikesubstring*family trip*
strings.ilikesubstring*deluxe accommodation*
strings.ilikesubstring*two children*
strings.ilikesubstring*hotel manager*
strings.ilikesubstring*room reserv*
strings.ilikesubstring*room inquiry*
strings.ilikesubstring*room availability*