Detection rules › Sigma
Suspicious Appended Extension
Detects file renames where the target filename uses an uncommon double extension. Could indicate potential ransomware activity renaming files and adding a custom extension to the encrypted files, such as ".jpg.crypted", ".docx.locky", etc.
Known false positives
- Backup software
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Impact |
Rule body
title: Suspicious Appended Extension
id: e3f673b3-65d1-4d80-9146-466f8b63fa99
status: test
description: Detects file renames where the target filename uses an uncommon double extension. Could indicate potential ransomware activity renaming files and adding a custom extension to the encrypted files, such as ".jpg.crypted", ".docx.locky", etc.
references:
- https://app.any.run/tasks/d66ead5a-faf4-4437-93aa-65785afaf9e5/
- https://blog.cyble.com/2022/08/10/onyx-ransomware-renames-its-leak-site-to-vsop/
author: frack113
date: 2022-07-16
modified: 2023-11-11
tags:
- attack.impact
- attack.t1486
logsource:
product: windows
category: file_rename
definition: 'Requirements: Microsoft-Windows-Kernel-File Provider with at least the KERNEL_FILE_KEYWORD_RENAME_SETLINK_PATH keyword'
detection:
selection:
SourceFilename|endswith:
- '.doc'
- '.docx'
- '.jpeg'
- '.jpg'
- '.lnk'
- '.pdf'
- '.png'
- '.pst'
- '.rtf'
- '.xls'
- '.xlsx'
TargetFilename|contains:
- '.doc.'
- '.docx.'
- '.jpeg.'
- '.jpg.'
- '.lnk.'
- '.pdf.'
- '.png.'
- '.pst.'
- '.rtf.'
- '.xls.'
- '.xlsx.'
filter_main_generic:
TargetFilename|endswith:
# Note: Please add more used extensions by backup or recovery software
- '.backup'
- '.bak'
- '.old'
- '.orig'
- '.temp'
- '.tmp'
filter_optional_anaconda:
TargetFilename|contains: ':\ProgramData\Anaconda3\'
TargetFilename|endswith: '.c~'
condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Backup software
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_* and not 1 of filter_optional_*Stage 1: selection
selection:
SourceFilename|endswith:
- '.doc'
- '.docx'
- '.jpeg'
- '.jpg'
- '.lnk'
- '.pdf'
- '.png'
- '.pst'
- '.rtf'
- '.xls'
- '.xlsx'
TargetFilename|contains:
- '.doc.'
- '.docx.'
- '.jpeg.'
- '.jpg.'
- '.lnk.'
- '.pdf.'
- '.png.'
- '.pst.'
- '.rtf.'
- '.xls.'
- '.xlsx.'
Stage 2: not filter_main_generic
filter_main_generic:
TargetFilename|endswith:
- '.backup'
- '.bak'
- '.old'
- '.orig'
- '.temp'
- '.tmp'
Stage 3: not filter_optional_anaconda
filter_optional_anaconda:
TargetFilename|contains: ':\ProgramData\Anaconda3\'
TargetFilename|endswith: '.c~'
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
TargetFilename | ends_with | .backup | excludes:TargetFilename field:"TargetFilename" value:".backup" |
TargetFilename | ends_with | .bak | excludes:TargetFilename field:"TargetFilename" value:".bak" |
TargetFilename | ends_with | .old | excludes:TargetFilename field:"TargetFilename" value:".old" |
TargetFilename | ends_with | .orig | excludes:TargetFilename field:"TargetFilename" value:".orig" |
TargetFilename | ends_with | .temp | excludes:TargetFilename field:"TargetFilename" value:".temp" |
TargetFilename | ends_with | .tmp | excludes:TargetFilename field:"TargetFilename" value:".tmp" |
TargetFilename | ends_with | .c~ | excludes:TargetFilename field:"TargetFilename" value:".c~" |
TargetFilename | match | :\ProgramData\Anaconda3\ | excludes:TargetFilename field:"TargetFilename" value:":\ProgramData\Anaconda3\" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
SourceFilename | ends_with |
| field:"SourceFilename" kind:ends_with |
TargetFilename | match |
| field:"TargetFilename" kind:match |