Lumetrace / C2 detection
Command & Control

C2 detection: find the channel, not yesterday's signature.

C2 is how an intruder keeps control of a machine inside your network. Modern C2 is built specifically to look like ordinary traffic, which is why detecting it has to be about behaviour rather than a list of bad addresses.

What command-and-control actually looks like now

The stereotype is a strange port talking to a strange country. Real operators stopped doing that years ago. What you get instead is traffic that is boring on purpose:

  • Ordinary ports and ordinary protocols. Usually 443, usually TLS, because blocking that is not an option for you.
  • Real, reputable destinations. Major cloud and CDN domains used as intermediaries, so a reputation lookup returns clean.
  • Long intervals with jitter. A check-in every few hours rather than every few seconds, tuned to sit below any threshold based on volume.
  • Tiny payloads. Just enough to ask for orders, so no byte-count alarm fires.
  • Channels nobody inspects. Control smuggled inside DNS queries or ICMP payloads, which very often walk straight past a web proxy.

How we detect it

The premise is that you cannot enumerate the destinations, so you have to characterise the conversation. A blocklist is a useful extra input, never the primary one.

  • Beacon rhythm. A machine talking to the same destination on a regular cadence, with the statistical regularity of a scheduled process rather than the irregularity of a person browsing.
  • Low-and-slow channels. Explicitly modelled, because the whole point of a long interval is to defeat detectors that only look at volume.
  • Encoded data in DNS. Measured with thresholds that account for the alphabet in use. A fixed entropy floor silently misses hex-encoded tunnels, because entropy is bounded by the character set, and we learned that the hard way rather than in theory.
  • Covert ICMP. Payload-carrying echo traffic, which is a control channel with no legitimate business purpose in most networks.
  • Protocol and port disagreement. A protocol appearing on a port that is not its own, which is a deliberate evasion far more often than an accident.
  • Client fingerprinting. Identifying the software making a TLS connection, so a scripted client pretending to be a browser stands out from a browser.
  • Relay and tunnel shapes. Traffic that arrives at one host and leaves it for elsewhere, which is how a foothold becomes a route.

The limits, up front

We do not decrypt TLS. The detections above are about timing, size, rhythm, destination and fingerprint, not about reading contents. That is a deliberate design choice and it is also why deployment does not require you to hand us keys or break inspection.

It also means a single-shot transfer with no ongoing channel is a different problem, handled by exfiltration detection rather than beacon detection. We would rather draw that line clearly than imply one detector covers everything.

Questions

C2 detection: straight answers

Do you need to decrypt our TLS traffic?

No. Detection is based on the behaviour of the channel: intervals, regularity, sizes, destinations and client fingerprint. No key material and no inline interception.

Is this just a threat-intelligence blocklist?

Threat intelligence is one input among several, and on its own it is a poor primary signal, because infrastructure is cheap and rotates faster than any list. The primary signals are behavioural.

What if the beacon interval is hours long?

That case is modelled deliberately. Long-interval channels are the ones designed to evade volume-based alerting, so treating them as a special case rather than an afterthought is the point.

Find your blind spots before an attacker does.

Tell us whether you suspect something is already inside, or whether you want to measure what your current tools would catch. Either way you get a concrete next step.

Contact us
Related

More on what we detect