Detection rules › Panther

OSQuery Detected Unwanted Chrome Extensions

Severity
medium
Log types
Osquery.Differential
Tags
Osquery, MacOS, Malware, Persistence:Browser Extensions
Reference
https://securelist.com/threat-in-your-browser-extensions/107181/
Source
github.com/panther-labs/panther-analysis

Monitor for chrome extensions that could lead to a credential compromise.

MITRE ATT&CK coverage

TacticTechniques
PersistenceT1176 Software Extensions

Rule body yaml

AnalysisType: rule
Filename: osquery_mac_unwanted_chrome_extensions.py
RuleID: "Osquery.Mac.UnwantedChromeExtensions"
DisplayName: "OSQuery Detected Unwanted Chrome Extensions"
Enabled: true
LogTypes:
  - Osquery.Differential
Tags:
  - Osquery
  - MacOS
  - Malware
  - Persistence:Browser Extensions
Reports:
  MITRE ATT&CK:
    - TA0003:T1176
Severity: Medium
Description: >
  Monitor for chrome extensions that could lead to a credential compromise.
Runbook: Uninstall the unwanted extension
Reference: https://securelist.com/threat-in-your-browser-extensions/107181/
SummaryAttributes:
  - action
  - hostIdentifier
  - name
Tests:
  - Name: Unwanted Extension Detected
    ExpectedResult: true
    Log:
      {
        "action": "added",
        "calendarTime": "Tue Sep 11 16:14:21 2018 UTC",
        "columns":
          {
            "build_distro": "10.12",
            "build_platform": "darwin",
            "config_hash": "1111",
            "config_valid": "1",
            "counter": "14",
            "global_state": "0",
            "extensions": "active",
            "instance_id": "1111",
            "pid": "223",
            "port": "22",
            "resident_size": "54894592",
            "start_time": "1536634519",
            "system_time": "12472",
            "user_time": "31800",
            "uuid": "37821E12-CC8A-5AA3-A90C-FAB28A5BF8F9",
            "version": "Not Supported",
            "watcher": "92",
          },
        "counter": "255",
        "decorations": { "host_uuid": "1111", "environment": "corp" },
        "epoch": "0",
        "hostIdentifier": "test.lan",
        "log_type": "result",
        "name": "pack_unwanted-chrome-extensions_pup1",
        "unixTime": "1536682461",
      }
  - Name: No Unwanted Chrome Extension Detected
    ExpectedResult: false
    Log:
      {
        "action": "added",
        "calendarTime": "Tue Sep 11 16:14:21 2018 UTC",
        "columns":
          {
            "build_distro": "10.12",
            "build_platform": "darwin",
            "config_hash": "1111",
            "config_valid": "1",
            "counter": "14",
            "global_state": "2",
            "extensions": "active",
            "instance_id": "1111",
            "pid": "223",
            "port": "443",
            "resident_size": "54894592",
            "start_time": "1536634519",
            "system_time": "12472",
            "user_time": "31800",
            "uuid": "37821E12-CC8A-5AA3-A90C-FAB28A5BF8F9",
            "version": "10.14.2",
            "watcher": "92",
          },
        "counter": "255",
        "decorations": { "host_uuid": "1111", "environment": "corp" },
        "epoch": "0",
        "hostIdentifier": "test.lan",
        "log_type": "result",
        "name": "pack_incident-response_listening_ports",
        "unixTime": "1536682461",
      }

Detection logic

Condition

name contains "unwanted-chrome-extensions"
action eq "added"

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
actioneq
  • added corpus 10 (panther 10)
namecontains
  • unwanted-chrome-extensions

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

Field
hostIdentifier