Detection rules › Sigma

Access To Browser Credential Files By Uncommon Applications - Security

Status
test
Severity
low
Log source
product windows, service security
Author
Daniel Koifman (@Koifsec), Nasreddine Bencherchali
Source
github.com/SigmaHQ/sigma

Detects file access requests to browser credential stores by uncommon processes. Could indicate potential attempt of credential stealing This rule requires heavy baselining before usage.

MITRE ATT&CK coverage

Event coverage

Rule body yaml

title: Access To Browser Credential Files By Uncommon Applications - Security
id: 4b60e527-ec73-4b47-8cb3-f02ad927ca65
related:
    - id: 91cb43db-302a-47e3-b3c8-7ede481e27bf
      type: similar
status: test
description: |
    Detects file access requests to browser credential stores by uncommon processes. Could indicate potential attempt of credential stealing This rule requires heavy baselining before usage.
references:
    - https://ipurple.team/2024/09/10/browser-stored-credentials/
author: Daniel Koifman (@Koifsec), Nasreddine Bencherchali
date: 2024-10-21
tags:
    - attack.credential-access
    - attack.t1555.003
    - detection.threat-hunting
logsource:
    product: windows
    service: security
    definition: 'Requirements: Audit File System subcategory must be enabled. Additionally, each listed ObjectName must have "List folder/read data" auditing enabled.'
detection:
    selection_eid:
        EventID: 4663
        ObjectType: 'File'
        # Note: This AccessMask requires enhancements. As this access can be combined with other requests. It should include all possible outcomes where READ access and similar are part of it.
        AccessMask: '0x1'
    selection_browser_chromium:
        ObjectName|contains:
            - '\User Data\Default\Login Data'
            - '\User Data\Local State'
            - '\User Data\Default\Network\Cookies'
    selection_browser_firefox:
        FileName|endswith:
            - '\cookies.sqlite'
            - '\places.sqlite'
            - 'release\key3.db'  # Firefox
            - 'release\key4.db'  # Firefox
            - 'release\logins.json' # Firefox
    filter_main_system:
        ProcessName: System
    filter_main_generic:
        # This filter is added to avoid large amount of FP with 3rd party software. You should remove this in favour of specific filter per-application
        ProcessName|startswith:
            - 'C:\Program Files (x86)\'
            - 'C:\Program Files\'
            - 'C:\Windows\system32\'
            - 'C:\Windows\SysWOW64\'
    filter_optional_defender:
        ProcessName|startswith: 'C:\ProgramData\Microsoft\Windows Defender\'
        ProcessName|endswith:
            - '\MpCopyAccelerator.exe'
            - '\MsMpEng.exe'
    condition: selection_eid and 1 of selection_browser_* and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Unknown
level: low

Stages and Predicates

Stage 0: condition

selection_eid and 1 of selection_browser_* and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_eid

selection_eid:
    EventID: 4663
    ObjectType: 'File'
    AccessMask: '0x1'

Stage 2: selection_browser_chromium

selection_browser_chromium:
    ObjectName|contains:
        - '\User Data\Default\Login Data'
        - '\User Data\Local State'
        - '\User Data\Default\Network\Cookies'

Stage 3: selection_browser_firefox

selection_browser_firefox:
    FileName|endswith:
        - '\cookies.sqlite'
        - '\places.sqlite'
        - 'release\key3.db'
        - 'release\key4.db'
        - 'release\logins.json'

Stage 4: not filter_main_*

filter_main_system:
    ProcessName: System
filter_main_generic:
    ProcessName|startswith:
        - 'C:\Program Files (x86)\'
        - 'C:\Program Files\'
        - 'C:\Windows\system32\'
        - 'C:\Windows\SysWOW64\'

Stage 5: not filter_optional_defender

filter_optional_defender:
    ProcessName|startswith: 'C:\ProgramData\Microsoft\Windows Defender\'
    ProcessName|endswith:
        - '\MpCopyAccelerator.exe'
        - '\MsMpEng.exe'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
ProcessNameeqSystem
ProcessNamestarts_withC:\Program Files (x86)\
ProcessNamestarts_withC:\Program Files\
ProcessNamestarts_withC:\Windows\SysWOW64\
ProcessNamestarts_withC:\Windows\system32\
ProcessNameends_with\MpCopyAccelerator.exe
ProcessNameends_with\MsMpEng.exe
ProcessNamestarts_withC:\ProgramData\Microsoft\Windows Defender\

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
AccessMaskeq
  • 0x1 corpus 2 (sigma 1, splunk 1)
FileNameends_with
  • \cookies.sqlite
  • \places.sqlite
  • release\key3.db
  • release\key4.db
  • release\logins.json
ObjectNamematch
  • \User Data\Default\Login Data
  • \User Data\Default\Network\Cookies
  • \User Data\Local State
ObjectTypeeq
  • File corpus 10 (sigma 8, splunk 2)