Detection rules › Splunk
Windows BitDefender Submission Wizard DLL Sideloading
Detects DLL side-loading of Bitdefender Submission Wizard (BDSubmit.exe, bdsw.exe, or renamed BluetoothService.exe) when a malicious log.dll is loaded from a non-standard path via Sysmon ImageLoad events.
Known false positives
- Legitimate Bitdefender installations loading log.dll from Program Files are excluded. Allowlist known paths as needed.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule body
name: Windows BitDefender Submission Wizard DLL Sideloading
id: a1b2c3d4-e5f6-4789-a012-3456789abcde
version: 3
creation_date: '2026-03-16'
modification_date: '2026-05-13'
author: Michael Haag, Splunk
status: experimental
type: TTP
description: |
Detects DLL side-loading of Bitdefender Submission Wizard (BDSubmit.exe, bdsw.exe, or renamed BluetoothService.exe) when a malicious log.dll is loaded from a non-standard path via Sysmon ImageLoad events.
data_source:
- Sysmon EventID 7
search: |-
`sysmon`
EventCode=7
(
Image IN (
"*\\BDSubmit.exe",
"*\\bdsw.exe",
"*\\BluetoothService.exe"
)
OR
OriginalFileName IN (
"BDSubmit.exe",
"bdsw.exe"
)
)
ImageLoaded="*\\log.dll"
NOT ImageLoaded IN (
"*:\\Program Files (x86)\\*",
"*:\\Program Files\\*",
"*:\\Windows\\System32\\*",
"*:\\Windows\\SysWOW64\\*"
)
| stats count min(_time) as firstTime
max(_time) as lastTime
by dest Image ImageLoaded Signed SignatureStatus User OriginalFileName loaded_file
loaded_file_path process_exec process_guid process_hash process_id process_name
process_path service_dll_signature_exists service_dll_signature_verified signature
signature_id user_id vendor_product
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `windows_bitdefender_submission_wizard_dll_sideloading_filter`
how_to_implement: |
Ingest Sysmon ImageLoad events and ensure the Splunk Add-on for Sysmon is configured to parse them. Enable ImageLoad in Sysmon config for DLLs. Map logs to Endpoint data model where applicable.
known_false_positives: |
Legitimate Bitdefender installations loading log.dll from Program Files are excluded. Allowlist known paths as needed.
references:
- https://attack.mitre.org/techniques/T1574/002/
- https://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/
- https://attack.mitre.org/groups/G0065/
finding:
title: Bitdefender Submission Wizard loaded $ImageLoaded$ from a non-standard path on $dest$ by user $User$, indicating potential DLL side-loading activity.
entity:
field: User
type: user
score: 50
intermediate_findings:
entities:
- field: dest
type: system
score: 50
message: Bitdefender Submission Wizard loaded $ImageLoaded$ from a non-standard path on $dest$ by user $User$, indicating potential DLL side-loading activity.
threat_objects:
- field: Image
type: process_name
- field: ImageLoaded
type: file_name
analytic_story:
- Lotus Blossom Chrysalis Backdoor
asset_type: Endpoint
mitre_attack_id:
- T1574
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
category: endpoint
security_domain: endpoint
Stages and Predicates
Stage 1: search
`sysmon`
EventCode=7
(
Image IN (
"*\\BDSubmit.exe",
"*\\bdsw.exe",
"*\\BluetoothService.exe"
)
OR
OriginalFileName IN (
"BDSubmit.exe",
"bdsw.exe"
)
)
ImageLoaded="*\\log.dll"
NOT ImageLoaded IN (
"*:\\Program Files (x86)\\*",
"*:\\Program Files\\*",
"*:\\Windows\\System32\\*",
"*:\\Windows\\SysWOW64\\*"
)
Stage 2: stats
| stats count min(_time) as firstTime
max(_time) as lastTime
by dest Image ImageLoaded Signed SignatureStatus User OriginalFileName loaded_file
loaded_file_path process_exec process_guid process_hash process_id process_name
process_path service_dll_signature_exists service_dll_signature_verified signature
signature_id user_id vendor_product
Stage 3: search
| `security_content_ctime(firstTime)`
Stage 4: search
| `security_content_ctime(lastTime)`
Stage 5: search
| `windows_bitdefender_submission_wizard_dll_sideloading_filter`
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
ImageLoaded | in | "*:\\Program Files (x86)\\*", "*:\\Program Files\\*", "*:\\Windows\\SysWOW64\\*", "*:\\Windows\\System32\\*" | excludes:ImageLoaded |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventCode | eq |
| field:"EventID" kind:eq value:"7" |
Image | in |
| field:"Image" kind:in |
ImageLoaded | eq |
| field:"ImageLoaded" kind:eq |
OriginalFileName | in |
| field:"OriginalFileName" kind:in |