stage(research): complete — research brief + findings - #9
Conversation
Part A of Stage 1. Records the four decisions from the grill: - PANW VM-Series is a Tier 1 trust source; replay architecture accepted - trust modelled per-source, not per-rule (so ruleset curation is the entire false-positive defence) - free rulesets preferred, 30-day delay acceptable, search broadened to government and professionally-curated sources - licence status must be recorded, not satisfied; unlicensed is acceptable - validation is trust-by-construction (logged as an explicit assumption) Also notes that designing and building the lab environment is deferred to plan/build, not dropped. Refs #1
Three findings that change the design as briefed: 1. Suricata over Snort 3, decided on free high-confidence ruleset volume plus a machine-readable licence/provenance index (OISF/suricata-intel-index) and per-rule ET confidence metadata usable as a Tier 2 admission filter. 2. Replay only for PANW. Zeek and Suricata read pcaps natively; only PANW VM-Series has no offline ingest. Keeping Tier 2/3 offline makes them deterministic and confines replay-fidelity risk to the Tier 1 path. 3. JA4 as enrichment, not a label. The canonical free JA3 feed (abuse.ch SSLBL) is frozen at 2021-08-03 and self-declares untested FP posture; JA3 is collision-prone and broken by ClientHello shuffling; no free trustworthy JA4 verdict feed exists and no threat name is derivable. Also flags FoxIO License 1.1 (non-commercial) on the JA4+ suite — plain JA4 is BSD 3-Clause and safe. Also documents a required pcap ingest normalization stage: Zeek cannot read pcapng at all, Suricata only partially. Refs #1
Craig reviewed docs/research.md and left inline notes; all 24 resolved. Corrections to my own findings: - Fixed a real bug in the proposed Tier 2 admission filter. The global rule (confidence == High AND severity in Major,Critical) would have excluded 100% of the IOC feeds (abuse.ch, malsilo, pawpatrules), which carry no ET confidence taxonomy — admitting ET Open alone. Replaced with a per-source policy: metadata filter for signature rulesets, wholesale admission plus snapshot provenance for IOC feeds. - Reversed the 'drop JA3' conclusion. ET Open maintains its own emerging-ja3.rules with created_at dates through 2026_03_13, carrying confidence and signature_severity metadata, MIT-licensed, ~100+ rules targeting malware C2. Having found abuse.ch SSLBL frozen at 2021 I generalised wrongly to 'no trustworthy free JA3 source'. ET's rules are kept and confidence-filtered; only the abandoned SSLBL source is dropped. - Narrowed the ClientHello-shuffling critique: it degrades JA3 for browser identification, but ET's rules fingerprint malware TLS stacks, which are typically fixed. - Clarified that '>70% metadata coverage' is not '70% admitted'. Decisions recorded: Suricata; Approach B; vwire not tap; no --topspeed; Positive Technologies excluded; JA4+ approved with Legal engaged; lab is a v1 requirement; NGFW default with --offline for Tier 2 only; millisecond clock accuracy; pcapng supported via editcap normalization; encrypted detection lives in Tier 2 as Suricata rule content via native ja3.hash / ja4.hash keywords; JA4 as enrichment until ET ships ja4 rules. Adds commercial pricing as requested: ET Pro ~$900/sensor/year list (~$750 reseller); Secureworks and Stamus are quote-only. Answers the fingerprint-aging question: JA4/JA3 hashes are deterministic and never reassigned, so aging is about the population of software sharing a fingerprint, not expiry. Filed #10 (untagged ET rules) and #11 (admission-filter measurement). Refs #1
|
Review notes resolved — all 24 inline notes actioned; braces stripped and decisions folded into Two corrections to my own findingsThe admission filter had a real bug, which your "what is the impact to the other sets?" note exposed. The global rule "Drop JA3" is reversed, with your agreement. ET Open maintains its own Also narrowed: the ClientHello-shuffling critique degrades JA3 for browser identification, but these rules fingerprint malware TLS stacks, which are typically fixed. And clarified that ">70% metadata coverage" is not "70% admitted" — coverage means the tag exists; admission also requires Your Tier 2 framing was right at the mechanism levelSuricata matches fingerprints natively via the Also added
Open questions are down from 5 to 5 — but they're different ones, all narrower and mostly empirical. |
Stage 1 of the pipeline. Docs only — no code.
Delivers
docs/research-brief.md(the approved gate) anddocs/research.md(findings against it), and advancescurrent_stagetoprd.Three findings that change the design as briefed
1. Suricata over Snort 3. Decided on your stated tiebreaker — volume of high-confidence free rulesets. Suricata has ~30 centrally-indexed free sources with a declared licence each (
OISF/suricata-intel-index), and ET's per-ruleconfidencemetadata gives a machine-checkable Tier 2 admission filter. Snort's counter-argument is recorded: Talos LightSPD is curated by paid researchers while ET Open is community-produced.2. Replay only for PANW. Zeek and Suricata read a pcap natively; only PANW VM-Series has no offline ingest. The brief sent everything through replay. Since replay is the largest threat to label fidelity — and a dropped packet is an invisible missing label — keeping Tier 2/3 offline makes them deterministic and reproducible, and confines the risk to the one source that can't avoid it.
3. JA4 as enrichment, not a label. This contradicts the brief and is the most significant finding:
Also surfaced
Open items
4 decisions needed from you and 5 open questions are listed at the end of
docs/research.md— chiefly the JA4 enrichment-vs-label ruling, the PT sanctions call, whether JA4+ needs legal review, and whether the lab is a v1 prerequisite.Closes #1
🤖 Generated with Claude Code