Hunting LapDogs with DriftNet: A Threat Researcher’s Walkthrough
Gilad Friedenriech Maizles, a security researcher on the STRIKE threat intelligence team, walks through how his team uses DriftNet as a research tool demonstrated through their work on LapDogs, a suspected Chinese operational relay box (ORB) network they reported on last year. The demo covers how DriftNet can be used to find new indicators, enrich existing findings, continuously track threat actors, and turn raw data into actionable leads.
DriftNet’s web UI uses the same query system as its API, so any query built in the interface translates directly into API calls for use in your own environment.
Background: How LapDogs operates
Last year’s LapDogs report found that the ORB network runs on malware that generates its own self-signed certificate after being implanted on a device usually, though not exclusively, a home router. The malware runs within the router’s operating system and spins up a web service so it can communicate with other nodes in the network, including its C2 and VPS management nodes.
Each certificate instance is unique, but the metadata presented in those certificates is the same. That shared metadata specifically an issuer common name referencing a fake LAPD (Los Angeles Police Department) identity is the initial pivot point for this investigation. The certificates are self-signed, so this same string appears in both the issuer and subject fields.
Step 1: Pivot on the certificate issuer string
Searching DriftNet for the fake-LAPD issuer string over the last 10 days (the tool supports up to 180 days) returns a summary view with several useful patterns:
- 154 unique IPs presented the string in the last 10 days. This doesn’t necessarily mean 154 distinct victims —some are residential devices whose IPs can rotate within that window but it does confirm 154 unique IPs showed the indicator.
- Geolocation is concentrated in Japan (more than a quarter of all results), with additional concentration in Hong Kong and other Southeast Asian countries consistent with prior LapDogs findings.
- Ports: the malicious service typically runs on a high, seemingly ephemeral port. Notably, 64% of the IPs in this set shared the exact same port, suggesting they came from the same batch or wave of activity — a pattern also seen in last year’s report.
- Banners/HTTP headers: the malicious service often mimics an NGINX web server in its response headers, sometimes with no version or real HTTP response behind it just the string, to appear legitimate to scanners.
Step 2: Narrow to issuer + subject matches
Ninety-nine percent of these certificates have identical issuer and subject data. The remaining 1% could be a sinkhole, honeypot, or other anomaly. DriftNet makes it easy to narrow to only the IPs where both fields match: click the indicator to add it to the query, and it builds a combined issuer-AND-subject query automatically.
From this narrowed set, roughly 90% of product tags were fingerprinted as pretending to be NGINX. A handful of other instances point to different underlying hardware or services (some D-Link routers, some Amazon-associated infrastructure) worth investigating separately, but outside the scope of this walkthrough.
Step 3: Use JA4X to look at certificate structure
JA4X (part of the JA4+ fingerprint family) attests to how a certificate was generated —the mechanism behind its creation rather than its metadata content. This means you can pivot on JA4X to find certificates generated in a similar way, even when their metadata differs.
Note: JARM (a separate fingerprint) won’t appear yet at this stage, since the current query is scoped to the internet-wide scan table. JARM lives in the fingerprints table, and joining the two requires a different approach (covered in Step 6).
Clicking into the visible services list shows each port’s last-seen timestamp for a given IP. Toggling off “most recent results only” expands the result set to include historical observations in this case, from 173 results up to 542, since the same IP/port pairing can generate multiple historical hits.
Step 4: Why pivoting on the certificate hash alone falls short
Because each certificate is generated locally by the malware, every certificate hash is unique. Pivoting on the exact hash of one observed certificate returns only that single IP which would make it look like there are no other related instances.
This is exactly why the metadata (not the hash) is the indicator worth pivoting on: the metadata is shared across instances, even though every hash is unique.
Also worth noting: the 154 unique IPs corresponded to 173 services, because the malware sometimes spins up more than one service (port) on the same infected device and in most cases, those services share the identical certificate.
Step 5: Test the limits of a JA4X-only pivot
Pivoting on JA4X alone (without the certificate metadata) returns 1 million unique IPs — because the certificate’s authority field is empty (it’s self-signed, so there’s no signing authority), and this generation pattern, while not extremely common, isn’t rare either. It likely reflects a niche but benign certificate-generation method.
A result that large doesn’t mean all 1 million IPs are malicious the JA4X pattern alone is too broad to be a reliable indicator on its own. But it’s a useful thread to pull on together with other signals.
Diving into a specific IP already flagged in this investigation revealed something new: it presented two different certificates on two different ports (45643 and 45235) both of which matched the malicious pattern.
Step 6: Correlate JA4X with JARM using multi-search
Checking the fingerprints table for these two ports confirmed both shared the same JARM hash. Pivoting on that JARM hash in isolation returned 82,000 IPs a large number, but far smaller than the 1 million from JA4X alone. This JARM hash also appeared in last year’s original LapDogs report, but it corresponds to a lightweight HTTP server commonly used on low-RAM edge devices not the malicious service specifically. As with JA4X, sharing this fingerprint doesn’t imply malicious activity on its own; threat actors often rely on benign, common modules specifically to blend in.
Combining a JARM query and a JA4X query directly returns no results because JARM and JA4X live in separate DriftNet data tables, and querying two different tables for two different things without joining them either fails outright or produces false positives (the same problem you’d run into with an unjoined SQL query).
DriftNet’s multi-search tool solves this. It lets you submit separate queries against different tables and ask DriftNet to return only indicators that satisfy all of them not just one.
To use it:
- Select the appropriate table for each query (JARM table for the JARM hash; internet services table for the JA4X/certificate data).
- Specify the target output (in this case, IPs).
- Run the search.
The first pass joining only on IP will return some false positives, since it doesn’t require both fingerprints to appear on the same port. Some results will show the JARM hash on one port and the JA4X hash on a different port on the same IP, which doesn’t confirm they’re the same service.
Re-running the search joined on both IP and port tightens the results to only cases where both fingerprints appear on the same service. Every IP that satisfies the IP+port query will necessarily also appear in the IP-only query, but not the reverse.
The result
This combined, same-port JARM + JA4X correlation surfaced an IP carrying the same malicious certificate pattern found not by searching for the certificate itself, but by correlating two independent fingerprints on the same service. That IP is a strong candidate LapDogs indicator, identified through a genuinely new pivoting method.
This is the core value DriftNet offers: its scale lets you see patterns across billions of data points, helping you tell the difference between signals that are too common to be meaningful, too narrow to represent a real campaign, and the ones in between the ones that likely represent a genuine, trackable threat actor operation rather than a single isolated victim.