CertaDNS
Skip to lesson

Monitoring Channels · lesson 2 of 3

Certificate streams

After this lesson you can

Run a certificate feed as a live channel rather than a periodic search.

Assumes you have read Registration feeds.

Certificate Transparency can be searched periodically or consumed as a stream. The difference matters, because the value of a certificate signal decays in hours.

Search against stream

Periodic searchLive stream
LatencyYour polling interval — usually hoursSeconds to minutes after submission
Query shapeOne brand string at a timeEvery entry, filtered by you
Volume handledWhatever the search returnsMillions a day, filtered locally
Best forRetrospective investigationDetection

Because certificate issuance typically precedes use by hours, a six-hour polling interval can consume most of the warning the channel provides. A stream turns it into minutes.

Filtering a stream

For each certificate observed:
  for each SAN:
    normalise (lowercase, strip trailing dot, punycode-decode)
    if SAN in watchlist                -> ALERT
    if brand-string appears as a label -> queue
    if SAN is ours                     -> drop
    else                               -> drop

Then, always:
  dedupe by certificate fingerprint
  dedupe by SAN first-seen
  • Punycode-decode before matching. A homograph domain arrives in the log as xn-- and will not match a brand string otherwise.
  • Match on labels, not substrings. northwind as a whole label is a signal; as part of a longer word it is noise.
  • Drop your own names first, before any other rule. Renewals are the largest single source of volume.

Keep every observation, alert on almost none

Storing every matched SAN with a first-seen timestamp costs very little and gives you the history that answers “when did this start” during an incident. The alerting rule should stay narrow; the recording rule should be generous. They are different decisions and are frequently conflated.

Knowledge check

Why does a six-hour CT polling interval waste most of the channel’s value?

Last reviewed