Skip to content

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

Siemphony’s repertoire

DNS query with an abnormally long leftmost label

Siemphony@siemphonylowT1001.001unverified
AN0030 describes junk characters padded into a command-and-control protocol, measured by MITRE's PayloadEntropyThreshold knob and by a send-to-receive ratio. Neither is available on the analytic's network-connection source — Sysmon EventID 3 carries addresses and ports and no byte counts at all — so the rule is built on the other source the analytic supplies, EventID 22, where the query name *is* the payload and the padding is therefore visible on a single event. The regex requires the leftmost label to be 45 or more characters of label-legal alphanumerics and hyphens before the first dot, which is the closest a single-event Sigma rule gets to an entropy test: junk inserted between significant characters lengthens the label whatever the encoding, while ordinary hostnames are short because humans type them. Read that as a proxy and not as a measurement, because it cuts both ways — a padded channel that keeps its labels short is missed entirely, and a long dictionary-word hostname alerts. The other forms of junk data MITRE covers, padding inside HTTP bodies or a raw TCP stream, leave no trace on any log source in this strategy and are outside what this rule can reach. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0011, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 2 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

Splunk · SPL

Run this as a search.

index=* | where match(QueryName, "^[A-Za-z0-9-]{45,}\\.")

Wazuh · XML rule

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

<group name="sigma,windows,dns_query,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <rule id="100000" level="5">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="QueryName" type="pcre2">(?i)^[A-Za-z0-9-]{45,}\.</field>    <description>DNS query with an abnormally long leftmost label</description>    <mitre>      <id>T1001.001</id>    </mitre>  </rule></group>

Sentinel · KQL

Run this as a search.

Sentinel cannot express this construct. No Sentinel table is modelled for this logsource ({"category":"dns_query","product":"windows"}), so there is nothing honest to query. Pick a logsource this translator maps, or write the KQL by hand. The Sigma source is on the first tab, unchanged.

Elastic · ES|QL

Run this as a search.

Elastic cannot express this construct. ES|QL RLIKE uses Lucene regexp syntax, which has no case-insensitive flag, and Sigma regexes are case-insensitive. Use |contains/|startswith/|endswith, or write the ES|QL by hand. The Sigma source is on the first tab, unchanged.

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.