The Fleet Test
Twenty-two jobs, two hundred and thirty-one chances to act together, and one overlap
TI-2026-103M ยท Series: The Loud Hour ยท Letter M of 15 Operates under the rules of evidence in Letter O โ The Instrument. This letter measures coordination directly and refines a pacing figure from Letter D.
1. What coordination would look like
Every letter so far has used the word "fleet" โ 118 addresses sharing a fingerprint, 125 active in one ASN, four beacons on four continents running the same two credentials. The word carries an implication that has never been tested: that these machines act together.
They might not. A hundred machines running identical software from one hosting provider is not the same thing as a hundred machines receiving an instruction. The distinction matters because it separates a botnet โ synchronised, commandable, with an operator at a console โ from a work queue, where jobs are handed out as workers free up and nobody is watching.
Coordination leaves specific, measurable traces:
| signature | what it would look like here | tested in |
|---|---|---|
| Correlated excursion | when one node bursts, others move too | ยง2 |
| Plural participation | large events involve many sources | ยง3 |
| Concurrent execution | job windows overlapping in time | ยง4 |
| Uniform execution rate | identical pacing, indicating central rate control | ยง5 |
| Synchronised start | multiple nodes beginning jobs within the same minutes | ยง6 |
| Common cadence | nodes sharing an interval or phase | ยง7 |
This letter tests all six. Five show no coordination at all. One shows a single instance in 231 opportunities โ and it is the same event that produces the only short dispatch gap.
2. Test 1 โ when one machine went to 348ร, did anything else move?
[DOCUMENTED] The 2026-07-29 excursion: 94.154.35.215 produced 1,042 attempts in one hour against its own two-per-hour baseline.
[DOCUMENTED] Its closest relative โ 178.16.54.226, same ASN 202412, same operator, same credential pair, same beacon behaviour โ through the identical window:
20:00 2 attempts
22:00 2 attempts
23:00 2 attempts โ the 348ร hour
00:00 2 attempts
01:00 2 attempts
02:00 2 attempts
[DOCUMENTED] It did not move. Not by one connection. Through the largest single-hour excursion in that operator's entire record, its sibling on the same autonomous system held exactly two attempts per hour, before, during and after.
[INFERRED โ confidence HIGH] A command moves more than one node. An instruction issued to an operator's fleet โ "hit this harder" โ would be received by every machine configured to listen. This one was received by nothing. The excursion was local to one process.
[DOCUMENTED] Corpus-wide corroboration: during that hour the sensor saw 1,180 attempts from 28 distinct addresses, of which 1,042 came from the one address. Distinct-source count moved from 23 to 28 โ within ordinary variation. Nobody joined in.
3. Test 2 โ the hour when nobody else was there at all
[DOCUMENTED] The largest event in the census: 179.43.139.58, 2026-06-22 19:00, 1,528 connections, ips_total: 1.
[DOCUMENTED] Letter O closed this as a real observation confirmed by three independent code paths, against a discriminating control showing that comparable-volume hours elsewhere report 11, 26, 28 and 32 distinct sources.
[DOCUMENTED] So the single most violent hour in a four-month record โ 255ร its regime baseline โ was produced by one machine, with no other address on the sensor at all.
[INFERRED โ confidence HIGH] This is the strongest available evidence against the burst phenomenon being campaign activity. A campaign is plural by definition. This was singular.
[DOCUMENTED] And its sibling behaviour matches Test 1: 179.43.133.154, the other Private Layer beacon, contributed nothing to that hour.
4. Test 3 โ the overlap test
The fleet offers a cleaner measurement than the beacons, because its work is discrete. A job is 761 attempts with a beginning and an end, so job windows can be compared directly.
[DOCUMENTED] Twenty-two fleet addresses in the corpus recorded exactly 761 fingerprints โ one complete job each, nothing before or after. Their job windows, drawn from the fingerprint record:
| node | window | duration |
|---|---|---|
45.153.34.137 | 07-03 18:48 โ 19:57 | 69 min |
45.153.34.144 | 07-04 21:29 โ 22:41 | 72 min |
45.153.34.181 | 07-06 18:42 โ 19:52 | 70 min |
91.92.40.153 | 07-07 10:56 โ 12:12 | 76 min |
45.156.87.93 | 07-12 01:11 โ 02:39 | 88 min |
45.153.34.186 | 07-12 20:17 โ 21:44 | 87 min |
141.11.88.245 | 07-14 01:29 โ 02:50 | 81 min |
91.92.40.151 | 07-14 05:19 โ 06:35 | 76 min |
45.153.34.161 | 07-15 14:03 โ 15:00 | 57 min |
91.92.42.34 | 07-16 23:50 โ 01:17 | 87 min |
77.239.124.249 | 07-19 11:02 โ 12:27 | 85 min |
91.92.40.239 | 07-20 13:46 โ 15:20 | 94 min |
155.103.69.40 | 07-21 22:13 โ 23:48 | 95 min |
91.92.42.64 | 07-22 20:07 โ 23:01 | 174 min |
77.239.124.237 | 07-22 20:42 โ 22:07 | 86 min |
91.92.40.200 | 07-23 01:34 โ 02:43 | 70 min |
77.239.124.248 | 07-23 19:46 โ 20:52 | 66 min |
91.92.42.7 | 07-23 23:56 โ 01:20 | 84 min |
45.156.87.166 | 07-24 16:44 โ 18:08 | 84 min |
77.239.124.247 | 07-25 17:15 โ 18:41 | 85 min |
77.239.124.250 | 07-27 09:15 โ 10:25 | 69 min |
45.153.34.71 | 07-28 02:36 โ 03:22 | 46 min |
[DOCUMENTED] Twenty-two jobs across twenty-five days give 231 possible pairs. Testing every pair for temporal overlap:
One overlapping pair of 231.
[DOCUMENTED] The single exception is 2026-07-22, where 91.92.42.64 (20:07โ23:01) fully contains 77.239.124.237 (20:42โ22:07) โ 85 minutes of concurrency, and the only instance in the sample.
[INFERRED โ confidence HIGH] The fleet does not run concurrently. Jobs are dispatched one at a time. Twenty-one of twenty-two single-job nodes had the fleet's attention to themselves for their entire run, and the exception involves the slowest node in the sample (see ยง5), which is consistent with a job overrunning its slot rather than a second job being launched deliberately alongside it.
[DOCUMENTED] This is the same conclusion Letter A reached from the opposite direction โ that 23 of 25 burst events are single-node dominated โ measured here by a method that does not depend on the burst detector at all.
A two-tier fleet: a reused core and a disposable periphery
[DOCUMENTED] Selecting the 22 nodes at exactly 761 fingerprints reveals something the job-size arithmetic alone did not. For every one of them, the fingerprint record's first and last observations are the start and end of a single job โ 46 to 174 minutes apart. These addresses appear once, work for roughly an hour, and are never seen again.
[DOCUMENTED] Against the multi-job nodes from the same fingerprint population:
| tier | nodes (sample) | fingerprints | jobs | observed lifetime |
|---|---|---|---|---|
| core | 45.153.34.235, 45.156.87.204 | 3,044 / 3,041 | 4 | 20 days |
| core | 45.153.34.165, 45.153.34.167, 45.156.87.253, 91.92.40.217 | 2,280โ2,283 | 3 | 11โ19 days |
| core | 91.92.40.202 | 1,522 | 2 | 13 days |
| periphery | 22 addresses | 761 | 1 | 46โ174 minutes |
[INFERRED โ confidence HIGH] The fleet is two-tier. A small core of addresses is used repeatedly over two to three weeks, while a much larger periphery is used exactly once each and discarded. Letter A observed that three addresses recurred and concluded the fleet "rotates but reuses"; that is true of the core and false of the periphery, and the distinction was invisible until job boundaries could be measured.
[INFERRED โ confidence MEDIUM] Two readings, not separated here. Either the operator burns addresses deliberately to limit each one's exposure โ in which case the core is a configuration error or a cost compromise โ or the periphery is simply newer, and those addresses would have been reused had the record continued past 2026-07-30. The corpus ends before the question can be answered, and a node last seen on 07-28 has had two days to reappear, which is less than the median 24.5-hour dispatch gap allows to be meaningful.
5. Test 4 โ fixed size, variable speed
The job windows carry a second result that was not anticipated, and it corrects a figure from Letter D.
[DOCUMENTED] Job durations across the 22 complete runs:
| statistic | value | implied pacing |
|---|---|---|
| minimum | 46 min | 3.60 s/attempt |
| median | 82 min | 6.47 s/attempt |
| maximum | 174 min | 13.71 s/attempt |
[DOCUMENTED] CORRECTION to Letter D. That letter measured ~5.4 seconds per connection and predicted a ~68-minute runtime, from the first 28 connections of one job. Across 22 complete jobs the median is 6.47 seconds per attempt and 82 minutes per job. The earlier figure was correct for the sample it was drawn from and unrepresentative of the population โ an opening burst that settles.
[DOCUMENTED] The pacing spread is 3.8-fold, from 3.60 to 13.71 seconds per attempt. But the job size does not vary at all โ every one of these nodes delivered exactly 761 attempts.
[INFERRED โ confidence HIGH] The input is fixed and the execution rate is not. That is the signature of a work definition distributed to heterogeneous workers, each running as fast as its own host, network path and load allow. Central rate control would produce uniform pacing; these nodes vary by a factor of nearly four while delivering byte-identical workloads.
[DOCUMENTED] This also resolves Letter D's straddle arithmetic honestly. The 514 + 248 split across the 03:00/04:00 boundary implies that particular job ran approximately 68 minutes โ near the fast end of the observed distribution, not the median. The straddle prediction survives as an explanation of that specific job; it does not generalise to a fleet-wide runtime, and Letter D's presentation of ~68 minutes as the job's duration is narrowed accordingly.
6. Test 5 โ the dispatch is memoryless
The job windows also give the start times, and the intervals between consecutive starts test whether anything schedules this work.
[DOCUMENTED] Twenty-one intervals between consecutive job starts across the 22 single-job nodes:
| statistic | value |
|---|---|
| minimum | 0.59 h (35 minutes) |
| median | 24.5 h |
| mean | 27.8 h |
| maximum | 110.2 h (4.6 days) |
| standard deviation | 23.2 h |
| coefficient of variation | 0.83 |
[DOCUMENTED] Distribution: 4 gaps under 6 hours, 6 between 6 and 24 hours, 11 over 24 hours. Exactly one gap falls under an hour.
[DOCUMENTED] Job starts land in 16 of 24 possible hours of the day โ 01, 02, 05, 09, 10, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23 UTC.
[INFERRED โ confidence HIGH] A coefficient of variation of 0.83 is the signature of a memoryless process. For exponentially distributed inter-arrival times โ the mathematical signature of events occurring randomly at a constant average rate โ the coefficient of variation is exactly 1.0. For a scheduled process it approaches 0, because every interval is the same. 0.83 sits close to random and nowhere near scheduled.
[DOCUMENTED] The comparison is worth making concrete. A cron entry firing every 24 hours would produce twenty-one intervals of 24.0 hours and a coefficient of variation near zero. What the record shows instead is intervals of 0.6, 3.8, 4.2, 4.9, 16.2, 16.8, 17.3, 18.2, 19.1, 21.9, 24.5, 26.7, 26.7, 29.2, 32.5, 32.7, 33.8, 40.0, 45.2, 59.2 and 110.2 hours.
[INFERRED โ confidence MEDIUM-HIGH] This is what work arriving in a queue looks like from the receiving end. If this sensor's address sits in a large target list that the fleet works through, each visit is a re-arrival at one position in a rotation whose period depends on list size, worker count and per-job duration โ none of which is constant. The result at any single target looks random, because from that target's perspective it effectively is.
[DOCUMENTED] The absence of diurnal structure reinforces it. Sixteen of twenty-four hours, including 01:00, 02:00 and 05:00 UTC, is what a process that never sleeps produces. Nobody is starting these jobs by hand.
The one exception, now doubly exceptional
[DOCUMENTED] The single sub-hour gap and the single overlapping pair are the same event: 91.92.42.64 starting 2026-07-22 at 20:07 and 77.239.124.237 starting 35 minutes later at 20:42, running concurrently for 85 minutes.
[DOCUMENTED] That evening is the only moment in 22 jobs, 21 intervals and 231 pairs at which this fleet did anything that resembles acting together โ and one of the two nodes involved is the slowest in the entire sample, taking 174 minutes for a workload the fastest node completed in 46.
[INFERRED โ confidence MEDIUM] The most economical reading is that 91.92.42.64 stalled, its slot expired, and the next job was dispatched to a different worker while the first was still grinding. That is a queue overrunning, not a fleet coordinating โ and it is the shape a queue produces precisely when it is not being supervised.
7. The beacons: always together, never synchronised
The beacons show the opposite pattern to the fleet, and it is equally uncoordinated.
[DOCUMENTED] Three arbitrary hours drilled from the record, showing every beacon present:
| hour | 94.154.35.215 | 178.16.54.226 | 185.246.128.133 |
|---|---|---|---|
| 2026-06-30 04:00 | 2 / 2 | 2 / 2 | 3 / 3 |
| 2026-06-30 19:00 | 2 / 2 | 1 / 1 | 3 / 3 |
| 2026-07-02 11:00 | 2 / 2 | โ | 3 / 3 |
[DOCUMENTED] Every beacon is present in essentially every hour. They are permanently co-active. But each runs its own fixed rate โ two per hour, three per hour, roughly 0.7 per hour for 179.43.139.58 โ and Letter B established that their intervals share no common factor: 30 minutes, 20 minutes, ~86 minutes.
[INFERRED โ confidence HIGH] Co-presence is not coordination. Four processes that run continuously will always be observed together; that says nothing about whether they talk. The test is whether they share phase or respond to each other, and they do neither โ no common interval, no synchronised start, and Test 1 shows no response when one of them goes to 348ร.
[DOCUMENTED] The one genuine linkage in the beacon population is not behavioural at all. It is the hand-authored RIPE maintainer ru-avm-1-mnt shared by 87.251.64.176 and 80.66.66.10 (Letter C), corroborated by a shared campaign, a shared cluster and a shared one-credential configuration (Letter E). Those two are linked by registry and configuration evidence, not by anything they did in concert.
โ CORRECTED โ 2026-07-30, and the correction inverts this paragraph.
ru-avm-1-mntis the maintainer object of a sponsoring LIR (ORG-PMAV1-RIPE) holding space in both87.251.xand80.66.x; the two addresses are customers of one registry, not machines under one operator. So the linkage is behavioural after all โ the shared campaign, the shared cluster and the shared one-credential configuration are all that remain, and all three are things the machines did. **Read: the one genuine linkage in the beacon population is behavioural, and the registry evidence contributed nothing.** The conclusion of this letter is unaffected โ co-presence is still not coordination, the tests in ยงยง1โ7 used no registry data, and the CV of 0.83 stands. See TI-2026-103P โ The Sponsor.
8. What the tests establish
| test | signature sought | result |
|---|---|---|
| 1 | correlated excursion | sibling flat at 2/hour through a 348ร burst |
| 2 | plural participation | largest hour in the record had one source |
| 3 | concurrent execution | 1 overlapping pair of 231 |
| 4 | uniform execution rate | pacing varies 3.8ร on identical workloads |
| 5 | synchronised start | dispatch coefficient of variation 0.83 โ memoryless, not scheduled |
| 6 | common cadence | beacon intervals share no common factor |
[DOCUMENTED] Six signatures of coordination sought. None present. The single exception โ one overlapping pair, one sub-hour gap โ is the same event, and involves the slowest node in the sample.
[INFERRED โ confidence HIGH] The infrastructure in this record is a queue, not a command structure. Work is defined centrally โ the 761-entry list is identical everywhere โ and executed independently, one node at a time, at whatever rate each host manages, with no synchronisation and no response to any other node's behaviour.
[DOCUMENTED] This is consistent with every other structural finding in the series: a 14-hour median dispatch interval that is irregular from 4 to 35 hours (Letter A), address rotation without burn-after-use (Letter A), multi-tenancy on the carrying ASN (Letter H), and a reseller layer beneath that (Letter K). Nothing about this operation requires anyone to be at a console.
[INFERRED โ confidence MEDIUM-HIGH] It also bears on the burst question one final time. If the fleet cannot be commanded to act in concert โ and five tests say it cannot โ then no burst in this record can have been ordered, because there is no mechanism visible by which an order would propagate. Per-node runaway remains the only mechanism the evidence supports.
9. What this letter could not establish
- Whether the 22-job sample is representative. These are nodes that ran exactly one job and are therefore the cleanest to measure. Nodes running three or four jobs were excluded because their windows cannot be separated from the fingerprint record, and it is possible that multi-job nodes behave differently.
- Whether concurrency exists outside the sample. One overlap in 231 pairs is a rate, not an absence. With 118 fleet addresses and only 22 measured, concurrent execution elsewhere in the population is not excluded โ it is shown to be uncommon among the nodes that can be measured.
- Why
91.92.42.64took 174 minutes. Nearly four times the fastest node for an identical 761-attempt workload, and the only node involved in the sample's single overlap. Host load, a throttled network path and a partially-stalled job would all produce it. - Whether the beacons' independence is designed or incidental. Intervals sharing no common factor is consistent with independent configuration and equally consistent with deliberate jitter. Letter B raised this; nothing here settles it.
- What dispatches the jobs. The queue is inferred from the shape of what arrives, and its controller has never been observed. Nothing in the corpus shows where the work definition comes from or who receives the results.
The second point deserves emphasis, because this letter's headline is a ratio and ratios invite overreading. One overlap in 231 pairs means concurrency is rare among measurable nodes. It does not mean the fleet is incapable of running jobs in parallel โ only that, in this record, it almost never did.
Next: Letter N โ Detection. What would have caught any of this, and why nothing did.