Detection rules › Elastic

Crypto Wallet or Web Browser File Access via Python

Source
github.com/elastic/protections-artifacts

Detects when Python accesses crypto wallet or web browser files on a macOS system like crypto wallet files, or web browser cookies.

MITRE ATT&CK coverage

Telemetry coverage

Rule body

[rule]
description = """
Detects when Python accesses crypto wallet or web browser files on a macOS system like crypto wallet files, or web
browser cookies.
"""
id = "cb8feeee-02f4-43bc-a836-4e510382acd3"
license = "Elastic License v2"
name = "Crypto Wallet or Web Browser File Access via Python"
os_list = ["macos"]
version = "1.0.6"

query = '''
file where event.action == "open" and (process.name like~ "python*" or Effective_process.name like~ "python*") and 
 (file.path like~ ("/Users/*/.electrum/*",
                   "/Users/*/Library/Application_Support/*/Default/Extensions/*",
                   "/Users/*/Library/Application Support/*/Default/Local Extension Settings/*",
                   "/Users/*/Library/Application Support/Electrum/*",
                   "/Users/*/Library/Application Support/Exodus/*", 
                   "/Users/*/Library/Application Support/Coinomi/*",
                   "/Users/*/Library/Application Support/Atomic/*",
                   "/Users/*/Library/Application Support/@trezor/*",
                   "/Users/*/Library/Application Support/Ledger Live/*",
                   "/Users/*/Library/Application Support/WasabiWallet/*",
                   "/Users/*/Monero/*",
                   "/Users/*/Library/Application Support/Bitcoin/*",
                   "/Users/*/Library/Application Support/Litecoin/*",
                   "/Users/*/Library/Application Support/DashCore/*",
                   "/Users/*/Library/Application Support/ElectronCash/*",
                   "/Users/*/Library/Application Support/Guarda/*",
                   "/Users/*/Library/Application Support/Dogecoin/*",
                   "/Users/*/Library/Application Support/BraveSoftware/Brave-Browser/BraveWallet/*",
                   "/Users/*/Library/Application Support/BraveSoftware/Brave-Browser/Default/Local Extension Settings/pgojbichloddijphfmfhhfolimnhjklk/*",
                   "/Users/*/Library/Application Support/Firefox/Profiles/*/extensions/*") or
   file.name like~ ("cookies.sqlite", 
                    "key?.db", 
                    "logins.json", 
                    "Cookies", 
                    "Cookies.binarycookies", 
                    "Login Data")) and
   not file.path like "/Users/*/Library/Application Support/Slack/Cookies" and
   not Effective_process.executable like "/Applications/Vorta.app/Contents/MacOS/vorta-darwin"
'''

min_endpoint_version = "8.11.1"
optional_actions = []
[[actions]]
action = "kill_process"
field = "Effective_process.entity_id"
state = 0

[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1552"
name = "Unsecured Credentials"
reference = "https://attack.mitre.org/techniques/T1552/"
[[threat.technique.subtechnique]]
id = "T1552.001"
name = "Credentials In Files"
reference = "https://attack.mitre.org/techniques/T1552/001/"



[threat.tactic]
id = "TA0006"
name = "Credential Access"
reference = "https://attack.mitre.org/tactics/TA0006/"

[internal]
min_endpoint_version = "8.11.1"

Stages and Predicates

Stage 1: file

file where event.action == "open" and (process.name like~ "python*" or Effective_process.name like~ "python*") and 
 (file.path like~ ("/Users/*/.electrum/*",
                   "/Users/*/Library/Application_Support/*/Default/Extensions/*",
                   "/Users/*/Library/Application Support/*/Default/Local Extension Settings/*",
                   "/Users/*/Library/Application Support/Electrum/*",
                   "/Users/*/Library/Application Support/Exodus/*", 
                   "/Users/*/Library/Application Support/Coinomi/*",
                   "/Users/*/Library/Application Support/Atomic/*",
                   "/Users/*/Library/Application Support/@trezor/*",
                   "/Users/*/Library/Application Support/Ledger Live/*",
                   "/Users/*/Library/Application Support/WasabiWallet/*",
                   "/Users/*/Monero/*",
                   "/Users/*/Library/Application Support/Bitcoin/*",
                   "/Users/*/Library/Application Support/Litecoin/*",
                   "/Users/*/Library/Application Support/DashCore/*",
                   "/Users/*/Library/Application Support/ElectronCash/*",
                   "/Users/*/Library/Application Support/Guarda/*",
                   "/Users/*/Library/Application Support/Dogecoin/*",
                   "/Users/*/Library/Application Support/BraveSoftware/Brave-Browser/BraveWallet/*",
                   "/Users/*/Library/Application Support/BraveSoftware/Brave-Browser/Default/Local Extension Settings/pgojbichloddijphfmfhhfolimnhjklk/*",
                   "/Users/*/Library/Application Support/Firefox/Profiles/*/extensions/*") or
   file.name like~ ("cookies.sqlite", 
                    "key?.db", 
                    "logins.json", 
                    "Cookies", 
                    "Cookies.binarycookies", 
                    "Login Data")) and
   not file.path like "/Users/*/Library/Application Support/Slack/Cookies" and
   not Effective_process.executable like "/Applications/Vorta.app/Contents/MacOS/vorta-darwin"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Effective_process.executableeq/Applications/Vorta.app/Contents/MacOS/vorta-darwinexcludes:Effective_process.executable field:"Effective_process.executable" value:"/Applications/Vorta.app/Contents/MacOS/vorta-darwin"
file.pathwildcard/Users/*/Library/Application Support/Slack/Cookiesexcludes:file.path field:"file.path" value:"/Users/*/Library/Application Support/Slack/Cookies"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Effective_process.namewildcard
  • python*
field:"Effective_process.name" kind:wildcard value:"python*"
event.actioneq
  • open
field:"EventType" kind:eq value:"open"
file.namewildcard
  • Cookies
  • Cookies.binarycookies
  • Login Data
  • cookies.sqlite
  • key?.db
  • logins.json
field:"file.name" kind:wildcard
file.pathwildcard
  • /Users/*/.electrum/*
  • /Users/*/Library/Application Support/*/Default/Local Extension Settings/*
  • /Users/*/Library/Application Support/@trezor/*
  • /Users/*/Library/Application Support/Atomic/*
  • /Users/*/Library/Application Support/Bitcoin/*
  • /Users/*/Library/Application Support/BraveSoftware/Brave-Browser/BraveWallet/*
  • /Users/*/Library/Application Support/BraveSoftware/Brave-Browser/Default/Local Extension Settings/pgojbichloddijphfmfhhfolimnhjklk/*
  • /Users/*/Library/Application Support/Coinomi/*
  • /Users/*/Library/Application Support/DashCore/*
  • /Users/*/Library/Application Support/Dogecoin/*
  • /Users/*/Library/Application Support/ElectronCash/*
  • /Users/*/Library/Application Support/Electrum/*
  • /Users/*/Library/Application Support/Exodus/*
  • /Users/*/Library/Application Support/Firefox/Profiles/*/extensions/*
  • /Users/*/Library/Application Support/Guarda/*
  • /Users/*/Library/Application Support/Ledger Live/*
  • /Users/*/Library/Application Support/Litecoin/*
  • /Users/*/Library/Application Support/WasabiWallet/*
  • /Users/*/Library/Application_Support/*/Default/Extensions/*
  • /Users/*/Monero/*
field:"TargetFilename" kind:wildcard
process.namewildcard
  • python*
field:"process_name" kind:wildcard value:"python*"