macOS is the platform every security team claims to cover and almost none cover well. Matt, presenting for LimaCharlie, opened the session by naming the gap directly: as someone who spent years in the incident response, EDR, and MDR space, he watched macOS get shortchanged again and again, handed a renamed Linux agent and called supported. That history is the real subject of this session. The demos are about closing the gap, but the argument underneath them is about what threat hunting on macOS should be: not a forensic slog through property lists and log directories, but a set of questions you ask against rich, parsed telemetry, and then convert into something that keeps watching for you.
Matt drew the line between hunting and detection early, and it shaped everything after. Hunting, in his framing, is proactive. You go looking for things you have no detection for, usually because something in your environment makes them worth questioning. His example was policy rather than malware: suppose SSH is not allowed in your environment. You cannot force every vendor to ship it disabled, so you block it at the network or strip it from your servers, but it can still happen anyway. That gap between what policy permits and what actually occurs is the natural habitat of a hunt. A threat, he was careful to say, does not have to mean a nation-state actor on the box. It can simply mean activity that violates policy and could lead to a problem later.
The sharper point is what he wants you to do with a hunt once it works. If you run a query today, then run the same query in a month, the only variable that changed is time. And if you cared about something in the past and still care about it now, you will care about it in the future. So nearly every hunt should be converted into a detection and response rule as fast as possible. He deliberately skipped detection rule syntax in this session, but he kept returning to the idea that the value of a hunt is not the one-time answer, it is the durable rule it becomes. For a provider running many tenants, that is the difference between a sweep you bill once and coverage that keeps earning.
The native sensor is what makes this practical. Because LimaCharlie taps the underlying Apple subsystem directly rather than wrapping a Linux agent, the process events arrive detailed: command line, file path, hash. They also carry something Windows analysts will not recognize. Alongside the familiar parent and child relationship, macOS tracks a responsible process, the original actor in the chain held accountable for an action.
Matt's illustration was a terminal that opens in zsh, switches to bash, runs a script, and that script launches another program. The parent-child trail walks down step by step, but the responsible process stays anchored on the terminal app you started from. The investigative payoff is speed. When a malicious script spawns a chain and your detection fires three or four steps down the tree, the responsible process metadata ties that activity straight back to the root without walking the lineage by hand. And it suggests a hunt that inverts the usual instinct: instead of waiting for a terminal to launch, look for a responsible process of terminal and review everything it has spawned, especially for users or departments where dropping into a shell is unusual. Anchor a detection at that root rather than midway down the chain and it gets harder to evade.
The rest of the kit follows one consistent instinct: never make the analyst page through raw volume when the platform can collapse it. DNS visibility is often missing across an enterprise, which makes it rich ground, but Matt's move was not to hand you thousands of DNS events. Key indicators are automatically captured and indexed in the historical IOC search, reachable from the UI, the command line, or the API. A wildcard search like %coinbase.com returns how often a domain has been seen across the past day, week, month, or year and where it appeared. He noted, accurately, that a lot of hunting methodology amounts to grabbing artifacts and stacking them for frequency analysis. The platform does that part for you.
Code identity events extend the same logic to binaries. They fire whenever a binary is observed, carrying mode, signature details, and hash, and the hunt is to look for certificate mismatches, using Apple's rigid signing process against itself to surface forged or stolen certs and anything that does not fit. Pair those events with MDM deployment records and you can confirm what a sanctioned install should leave behind, then flag the rest. The binary library extension, bin lib, takes it further by capturing those binaries into a private repository, nothing shipped to VirusTotal or any third party, free to enable with a small charge tied to volume. Now the analyst searches by path, SHA-256, or metadata (every binary registered as Python, say, to count how many versions are running), and crucially can run YARA across the collected set, moving past metadata to scan the files themselves for malware or policy violations.
The most ambitious piece is the macOS Unified Logging system, which Matt called MUL. It collects detail from user space down to the kernel, and his warning was blunt: do not just turn it on and scroll. Run log show with a predicate on a local Mac and you see the firehose. The discipline is in the predicate, a filter on messages, subsystems, or processes, and he flagged that filtering on timestamps inside LimaCharlie is the wrong move because the platform organizes around event types. The sensor can be tasked to tap those logs through artifact collection using an mul: path plus predicate, the same way it collects Windows event logs, and the events land parsed in the same timeline as everything else, not as a raw blob. He showed two hunts that prove the point: qualify on sudo and the parsed message hands you the user, terminal, and command, so you can ask how often users escalate (probably less than you would guess, which makes anomalies stand out); qualify on the background task management daemon and a planted property list surfaces with its location, contents, and arguments. That is close to pulling a WMI or PowerShell event into view on Windows, without ever launching a forensic collection.
Strip away the individual demonstrations and the argument is consistent. Good macOS hunting is not heroic forensics. It is asking sharp questions of telemetry that is already rich and already parsed, letting the platform collapse the volume into something readable, and then writing down the questions worth asking again as rules. For an MSSP or MDR with Macs scattered across client fleets, that posture is what makes macOS coverage real rather than nominal, and it scales the same way the rest of the platform does, because scale is the assumed floor, not the differentiator.
LimaCharlie gives MSSPs and MDRs a fully programmable SecOps Cloud Platform, with transparent usage-based pricing, API-first integration across every telemetry source, and the infrastructure to run multi-tenant operations at scale.