Detection rules › Sublime MQL

Brand Impersonation: Procore

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

Detects messages containing Procore branding language that do not originate from legitimate Procore domains. This has been observed in phishing campaigns.

Threat classification

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

CategoryValues
Attack typesBEC/Fraud, Credential Phishing
Tactics and techniquesImpersonation: Brand, Social engineering

Event coverage

Rule body MQL

type.inbound
and (
  strings.ilike(body.current_thread.text, "*powered by procore*")
  or 2 of (
    strings.icontains(body.current_thread.text, 'Procore'),
    strings.icontains(body.current_thread.text, '6309 Carpinteria Ave'),
    strings.icontains(body.current_thread.text, 'Carpinteria, CA 93013')
  )
  or (
    strings.iends_with(sender.display_name, 'via Procore')
    and any(body.current_thread.links,
            .href_url.domain.root_domain in $free_subdomain_hosts
    )
  )
)
and not (
  sender.email.domain.root_domain in ("procore.com", "procoretech.com")
  and coalesce(headers.auth_summary.dmarc.pass, false)
)

// negating legit replies/forwards
and not (
  (
    strings.istarts_with(subject.subject, "RE:")
    or strings.istarts_with(subject.subject, "FW:")
    or strings.istarts_with(subject.subject, "FWD:")
    or regex.imatch(subject.subject,
                    '(\[[^\]]+\]\s?){0,3}(re|fwd?|automat.*)\s?:.*'
    )
    or strings.istarts_with(subject.subject, "Réponse automatique")
  )
  and (length(headers.references) > 0 and headers.in_reply_to is not null)
)
// negate bounce backs
and not (
  strings.like(sender.email.local_part,
               "*postmaster*",
               "*mailer-daemon*",
               "*administrator*"
  )
  and any(attachments,
          .content_type in (
            "message/rfc822",
            "message/delivery-status",
            "text/calendar"
          )
  )
)

Detection logic

Scope: inbound message.

Detects messages containing Procore branding language that do not originate from legitimate Procore domains. This has been observed in phishing campaigns.

  1. inbound message
  2. any of:
    • body.current_thread.text matches '*powered by procore*'
    • at least 2 of:
      • body.current_thread.text contains 'Procore'
      • body.current_thread.text contains '6309 Carpinteria Ave'
      • body.current_thread.text contains 'Carpinteria, CA 93013'
    • all of:
      • sender.display_name ends with 'via Procore'
      • any of body.current_thread.links where:
        • .href_url.domain.root_domain in $free_subdomain_hosts
  3. not:
    • all of:
      • sender.email.domain.root_domain in ('procore.com', 'procoretech.com')
      • coalesce(headers.auth_summary.dmarc.pass)
  4. not:
    • all of:
      • any of:
        • subject.subject starts with 'RE:'
        • subject.subject starts with 'FW:'
        • subject.subject starts with 'FWD:'
        • subject.subject matches '(\\[[^\\]]+\\]\\s?){0,3}(re|fwd?|automat.*)\\s?:.*'
        • subject.subject starts with 'Réponse automatique'
      • all of:
        • length(headers.references) > 0
        • headers.in_reply_to is set
  5. not:
    • all of:
      • sender.email.local_part matches any of 3 patterns
        • *postmaster*
        • *mailer-daemon*
        • *administrator*
      • any of attachments where:
        • .content_type in ('message/rfc822', 'message/delivery-status', 'text/calendar')

Inspects: attachments[].content_type, body.current_thread.links, body.current_thread.links[].href_url.domain.root_domain, body.current_thread.text, headers.auth_summary.dmarc.pass, headers.in_reply_to, headers.references, sender.display_name, sender.email.domain.root_domain, sender.email.local_part, subject.subject, type.inbound. Sensors: regex.imatch, strings.icontains, strings.iends_with, strings.ilike, strings.istarts_with, strings.like. Reference lists: $free_subdomain_hosts.

Indicators matched (18)

FieldMatchValue
strings.ilikesubstring*powered by procore*
strings.icontainssubstringProcore
strings.icontainssubstring6309 Carpinteria Ave
strings.icontainssubstringCarpinteria, CA 93013
strings.iends_withsuffixvia Procore
sender.email.domain.root_domainmemberprocore.com
sender.email.domain.root_domainmemberprocoretech.com
strings.istarts_withprefixRE:
strings.istarts_withprefixFW:
strings.istarts_withprefixFWD:
regex.imatchregex(\[[^\]]+\]\s?){0,3}(re|fwd?|automat.*)\s?:.*
strings.istarts_withprefixRéponse automatique
6 more
strings.likesubstring*postmaster*
strings.likesubstring*mailer-daemon*
strings.likesubstring*administrator*
attachments[].content_typemembermessage/rfc822
attachments[].content_typemembermessage/delivery-status
attachments[].content_typemembertext/calendar