Skip to content

Siemphony is in beta and still being built. How a rule earns its badge.

Siemphony’s repertoire

DllName value written under a W32Time time provider subkey

Siemphony@siemphonyhighT1547.003unverified
Matches the registry write that arms a Windows time provider — a DllName value set under a subkey of Services\W32Time\TimeProviders — which is the value the time provider manager reads at service start to decide which DLL to load, and the half of MITRE's AN0341 that a single event can carry. The path gate is anchored on \Services\ deliberately: the Group Policy copy of this tree lives under SOFTWARE\Policies\Microsoft\W32time\TimeProviders, no DLL is ever loaded from there, and an unanchored match would fire on every policy refresh in the domain. The built-in NtpClient, NtpServer and VMICTimeProvider subkeys are not excluded, because overwriting an existing provider's DllName is as workable a persistence route as the new arbitrarily named subkey MITRE describes and produces an identical event. The rule is written in the Sysmon registry_set vocabulary, where TargetObject carries key path and value name as one string; Sysmon EventID 13 is not collected at all unless the deployed configuration includes this key, and the widely used community configurations do not, so an unprepared host returns zero rows for reasons unrelated to adversary activity. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0122, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.

detection.yml

Sentinel · KQL

Run this as a search.

DeviceRegistryEvents| where (RegistryKey contains "\\Services\\W32Time\\TimeProviders\\" and RegistryKey endswith "\\DllName")

Splunk · SPL

Run this as a search.

index=* (TargetObject="*\\Services\\W32Time\\TimeProviders\\*" AND TargetObject="*\\DllName")

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(registry.path) LIKE "*\\\\services\\\\w32time\\\\timeproviders\\\\*" AND TO_LOWER(registry.path) LIKE "*\\\\dllname")

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,registry_set,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <rule id="100000" level="12">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="TargetObject" type="pcre2">(?i)\\Services\\W32Time\\TimeProviders\\</field>    <field name="TargetObject" type="pcre2">(?i)\\DllName$</field>    <description>DllName value written under a W32Time time provider subkey</description>    <mitre>      <id>T1547.003</id>    </mitre>  </rule></group>

Verdicts · reactions · comments

Community

Verdicts from engineers who actually deployed it, and the conversation around it.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.

Log in to report a verdict.

Log in to join the discussion.

No comments yet. Someone who deploys this will have something to say about it.