Skip to content

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

Siemphony’s repertoire

SSSD Kerberos secrets database opened on Linux

Siemphony@siemphonylowT1558unverified
AN1444 is the only leg of DET0522 whose observable survives as a single event: a process touching the SSSD secrets store, `/var/lib/sss/secrets/secrets.ldb` and its master key `.secrets.mkey`, which on a domain-joined Linux host holds the cached Kerberos key material an adversary needs before any ticket can be reused or forged. The match is on the auditd PATH record's own `name` field, and it is split into an absolute-path selection and a filename selection because auditd records `name=` exactly as it was handed to the syscall, so a copy run from inside the directory logs a bare `secrets.ldb`. Two limits are structural rather than chosen. auditd emits PATH and SYSCALL as separate records for one event, so the reading process's `exe`, `uid` and `auid` live on the other record and MITRE's `UnusualServiceAccounts` knob cannot be applied inside this selection — sssd's own daemons cannot be excluded here. MITRE's `SecretsAccessThreshold` knob is a frequency test, which lib/sigma has no aggregation or timeframe to express, so this fires on the first access rather than on an unusual rate. It deliberately overlaps the T1003.005 rule in this corpus, which matches `/var/lib/sss/secrets` on a Linux process_creation command line: that rule sees the path an operator typed, this one sees the file actually opened, so each catches what the other structurally misses — a reader invoked with a bare filename or through a runtime-built path leaves nothing on a command line, and a process that never opens the file leaves no PATH record. The brief's other legs were not attempted: the Windows Security leg is scoped to EventID 4672 and 4634, neither of which carries a ticket encryption type, ticket options or a TGT/TGS distinction, so the analytic's stated discriminators cannot be written against it, and its Sysmon Process Access leg reduces to an LSASS handle with dump rights, already published in this corpus under T1003.001 with no field able to separate ticket extraction from any other credential dump. The macOS leg AN1445 is unifiedlog prose with no standardised Sigma field names. Prerequisite: auditd watches nothing under /var/lib/sss by default, so this rule returns zero rows until a watch such as `-w /var/lib/sss/secrets/ -p rwa -k kerberos_secrets` is loaded, and zero rows reads as quiet when it actually means blind. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0522, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 3 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=* ((type="PATH" AND name="/var/lib/sss/secrets/*") OR (type="PATH" AND (name="*secrets.ldb" OR name="*secrets.mkey")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(type) == "path" AND TO_LOWER(name) LIKE "/var/lib/sss/secrets/*") OR (TO_LOWER(type) == "path" AND (TO_LOWER(name) LIKE "*secrets.ldb" OR TO_LOWER(name) LIKE "*secrets.mkey")))

Wazuh · XML rule

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

<group name="sigma,linux,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <!-- 2 rules: the Sigma condition ORs across different fields,       which one rule cannot express. Any one matching is a hit. -->  <rule id="100000" level="5">    <!-- Set <if_sid> to the decoder/base rule for linux so this only evaluates relevant events. -->    <field name="type" type="pcre2">(?i)^PATH$</field>    <field name="name" type="pcre2">(?i)^/var/lib/sss/secrets/</field>    <description>SSSD Kerberos secrets database opened on Linux (1/2)</description>    <mitre>      <id>T1558</id>    </mitre>  </rule>   <rule id="100001" level="5">    <!-- Set <if_sid> to the decoder/base rule for linux so this only evaluates relevant events. -->    <field name="type" type="pcre2">(?i)^PATH$</field>    <field name="name" type="pcre2">(?i)(secrets\.ldb$|secrets\.mkey$)</field>    <description>SSSD Kerberos secrets database opened on Linux (2/2)</description>    <mitre>      <id>T1558</id>    </mitre>  </rule></group>

Sentinel · KQL

Run this as a search.

Sentinel cannot express this construct. No Sentinel table is modelled for this logsource ({"product":"linux","service":"auditd"}), 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.

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.