We watch security software discovery — an intruder asking which security product is on the box — with three rules. They are public Sigma rules and we run them, so this is our coverage missing.
Each of the three names a tool. So we ran the same reconnaissance five ways on a lab machine we own, and read the telemetry against each rule's selection logic.
tasklist | findstr /i defender matched. findstr.exe ran, the command line ends in the keyword, both halves of the rule satisfied.
Same tool, same keyword, same intent: findstr /i defender <file>. The rule matches a command line that ENDS in the keyword. Put the file last, as findstr's syntax invites, and the line ends in a path. No match.
Then the wmic route, which we do have a rule for. This box has no wmic.exe — where wmic answered "Could not find files" on Windows 11 build 10.0.26100, and no process was recorded at all. A rule anchored to a binary the OS is shipping out has nothing left to match.
Then two PowerShell routes, both in-process, both spawning no child process. Get-CimInstance -Namespace root/SecurityCenter2 returned zero rows here — it learned nothing. Get-MpComputerStatus answered the attacker's real question: AMProductVersion : 4.18.23110.3, AntivirusEnabled : True. Two of our rules key on findstr.exe or wmic.exe, so neither had an event. The third is a PowerShell rule, and Script Block Logging was on: three script-block events in that window name SecurityCenter2. It missed anyway, because it looks for a get-process | where shape and neither command is one. The miss is the pattern, not the logging. That distinction decides whether you fix a rule or turn logging on.
No connector is installed in that lab. Nothing alerted and nothing could — this is rule text read against captured telemetry, not a console we watched.
A detection anchored to a tool is a detection of that tool. The behaviour outlives the tool.
Worth doing Monday: run where wmic on your own fleet. Then read your own discovery rules and count how many name a program rather than an act.