EXPLORE
← Back to Explore
sublimehighRule

Brand impersonation: Github

Impersonation of Github.

Detection Query

type.inbound
and not strings.ilike(sender.display_name,
                      '*course*',
                      '*bootcamp*',
                      '*training*'
)
and (
  strings.ilike(sender.display_name, '*github*')
  or strings.ilike(sender.email.email, '*github*')
  or strings.ilevenshtein(sender.email.domain.sld, 'github') <= 1
)
// negating listservs
and not (
  any(headers.hops, any(.fields, .name == "List-Unsubscribe"))
  and (
    strings.contains(sender.display_name, "via")
    or strings.icontains(subject.subject, "monitor")
  )
)
and not (
  any(headers.hops, any(.fields, .name == "X-GitHub-Reason"))
  and headers.auth_summary.dmarc.pass
)
and sender.email.domain.root_domain not in (
  'github.com',
  'thegithubshop.com',
  'gitlab.com',
  'itthub.net',
  'githubsupport.com',
  'gtmhub.com',
  'githubstatus.com',
  'githubnext.com',
  'lithub.com',
  'icims.com',
  'bithub.email',
  'goldcast.io',
  'luma-mail.com', // GitHub's event invitation software
  'github.events' // GitHub event newsletters
)

// negate highly trusted sender domains unless they fail DMARC authentication
and (
  (
    sender.email.domain.root_domain in $high_trust_sender_root_domains
    and not headers.auth_summary.dmarc.pass
  )
  or sender.email.domain.root_domain not in $high_trust_sender_root_domains
)
and (
  not profile.by_sender().solicited
  or (
    profile.by_sender().any_messages_malicious_or_spam
    and not profile.by_sender().any_messages_benign
  )
)
and not profile.by_sender().any_messages_benign

Data Sources

Email MessagesEmail HeadersEmail Attachments

Platforms

email
Raw Content
name: "Brand impersonation: Github"
description: |
  Impersonation of Github.
references:
  - "https://github.blog/2020-04-14-sawfish-phishing-campaign-targets-github-users/"
type: "rule"
severity: "high"
source: |
  type.inbound
  and not strings.ilike(sender.display_name,
                        '*course*',
                        '*bootcamp*',
                        '*training*'
  )
  and (
    strings.ilike(sender.display_name, '*github*')
    or strings.ilike(sender.email.email, '*github*')
    or strings.ilevenshtein(sender.email.domain.sld, 'github') <= 1
  )
  // negating listservs
  and not (
    any(headers.hops, any(.fields, .name == "List-Unsubscribe"))
    and (
      strings.contains(sender.display_name, "via")
      or strings.icontains(subject.subject, "monitor")
    )
  )
  and not (
    any(headers.hops, any(.fields, .name == "X-GitHub-Reason"))
    and headers.auth_summary.dmarc.pass
  )
  and sender.email.domain.root_domain not in (
    'github.com',
    'thegithubshop.com',
    'gitlab.com',
    'itthub.net',
    'githubsupport.com',
    'gtmhub.com',
    'githubstatus.com',
    'githubnext.com',
    'lithub.com',
    'icims.com',
    'bithub.email',
    'goldcast.io',
    'luma-mail.com', // GitHub's event invitation software
    'github.events' // GitHub event newsletters
  )
  
  // negate highly trusted sender domains unless they fail DMARC authentication
  and (
    (
      sender.email.domain.root_domain in $high_trust_sender_root_domains
      and not headers.auth_summary.dmarc.pass
    )
    or sender.email.domain.root_domain not in $high_trust_sender_root_domains
  )
  and (
    not profile.by_sender().solicited
    or (
      profile.by_sender().any_messages_malicious_or_spam
      and not profile.by_sender().any_messages_benign
    )
  )
  and not profile.by_sender().any_messages_benign
attack_types:
  - "Credential Phishing"
tactics_and_techniques:
  - "Impersonation: Brand"
  - "Lookalike domain"
  - "Social engineering"
detection_methods:
  - "Header analysis"
  - "Sender analysis"
id: "9402f92b-f2b1-5452-8124-fdad4a88feb4"