2026-06-17

Why a curl User-Agent Isn't Automatically Malicious

A surprising number of security tools treat user-agent strings as a static blocklist: see curl, python-requests, or Go-http-client, raise an alert. In practice, this produces so many false positives that analysts learn to ignore the alert entirely — which defeats the purpose of having it.

curl hitting a public /health endpoint is completely unremarkable; it’s almost certainly a monitoring probe or a developer’s smoke test. The same curl user-agent posting to /api/v1/admin/users or /api/v1/beacon is a different story. The string itself didn’t change. What changed is the context — the path being accessed, the response it got, what else that source IP did in the same session.

This is why LogTriage’s UA classifier doesn’t operate alone. A suspicious user-agent match is one signal among several: path sensitivity, ASN reputation, IP threat intelligence, and behavioral patterns from session grouping all feed into the same score. The compound-signal rule specifically rewards combinations — three or more independent high-severity indicators on the same event get a 1.25× multiplier, on top of whatever each signal already contributed individually. A curl request to a low-sensitivity endpoint from a clean IP stays low risk. The same user-agent on a sensitive admin path, from an ASN already flagged in a threat intelligence feed, compounds quickly.

The broader principle: a security tool that can’t tell curl apart by context isn’t actually doing risk assessment — it’s pattern matching with an extra step. Real risk scoring has to ask not just “is this signal present” but “given everything else true about this event, does this signal change the picture.”

Frequently Asked Questions

Why doesn't a simple user-agent blocklist work for security monitoring?
Because context matters more than the string itself. curl hitting a public /health endpoint is almost certainly a monitoring probe. The same curl user-agent posting to /api/v1/admin/users is a completely different risk. A blocklist treats both identically — producing so many false positives that analysts learn to ignore the alert entirely, which defeats the purpose.
What is the compound-signal multiplier and when does it apply?
When three or more independent high-severity indicators land on the same event, LogTriage applies a 1.25x multiplier on top of whatever the individual signals already contributed. The intuition is that genuine attacks almost always produce multiple corroborating signals at once, while false positives rarely do.
How does path sensitivity factor into user-agent risk scoring?
Path sensitivity is one of the key context signals that determines whether a flagged user-agent becomes a high-risk event or stays low. A scripted UA on /api/v1/status is unremarkable. The same UA on /api/v1/admin or /api/v1/users/export, combined with a flagged ASN, compounds to a very different score.

Related Resources

See this detection run on a real report

Try the live demo with a pre-loaded malicious log set — no signup required — or upload your own log file and get a full AI-reviewed threat report in minutes.