Skip to content

Commit 4c8822f

Browse files
committed
update LET docs
1 parent e3dc9b1 commit 4c8822f

5 files changed

Lines changed: 166 additions & 3 deletions

File tree

crowdsec-docs/sidebarsUnversioned.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@ const sidebarsUnversionedConfig: SidebarConfig = {
127127
label: "CrowdSec Analysis",
128128
id: "tracker_api/crowdsec_analysis",
129129
},
130+
{
131+
type: "doc",
132+
label: "Threat Context",
133+
id: "tracker_api/threat_context",
134+
},
130135
{
131136
type: "doc",
132137
label: "Reconnaissance Rules vs CVEs",

crowdsec-docs/unversioned/tracker_api/api_cves.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ Each CVE in the list includes:
9393
| `last_seen` | datetime | Most recent observed exploitation |
9494
| `published_date` | datetime | CVE publication date in NVD |
9595
| `rule_release_date` | datetime | When CrowdSec released the detection rule |
96-
| `adjustment_score` | object | Score adjustments: `total`, `recency` |
97-
| `threat_context` | object | Contextual threat intelligence: `attacker_countries`, `defender_countries`, `industry_types`, `industry_risk_profiles`, `attacker_objectives` (may be empty for low-activity CVEs) |
96+
| `adjustment_score` | object | Score adjustments: `total`, `recency`, `low_info` |
97+
| `threat_context` | object | Contextual threat intelligence: `attacker_countries`, `defender_countries`, `industry_types`, `industry_risk_profiles`, `attacker_objectives`. See [Threat Context](./threat_context) for field details and interpretation. May be `null` or contain empty sub-objects for low-activity CVEs. |
9898

9999
## Get CVE Details
100100

crowdsec-docs/unversioned/tracker_api/api_fingerprints.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ for rule in data["items"]:
8989
| `first_seen` | datetime | First observation |
9090
| `last_seen` | datetime | Most recent observation |
9191
| `rule_release_date` | datetime | When the detection rule was released |
92-
| `adjustment_score` | object | Score adjustments: `total`, `recency` |
92+
| `adjustment_score` | object | Score adjustments: `total`, `recency`, `low_info` |
93+
| `threat_context` | object | Contextual threat intelligence: `attacker_countries`, `defender_countries`, `industry_types`, `industry_risk_profiles`, `attacker_objectives`. See [Threat Context](./threat_context). May be `null` for rules with insufficient data. |
9394

9495
## Get Fingerprint Rule Details
9596

crowdsec-docs/unversioned/tracker_api/scores.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ The Adjustment Score provides **transparent corrections** applied to the composi
8787
| Component | Description |
8888
|-----------|------------|
8989
| **recency** | A bonus applied when vulnerability release is very recent. A CVE gets a small boost to its total score shortly after release to account for uncertainty in the scores due to a lack of historic data. |
90+
| **low_info** | A penalty applied when CrowdSec has limited telemetry data for this CVE, reducing the score to avoid over-rating vulnerabilities with sparse data. |
9091
| **total** | The net adjustment applied to the score. |
9192

9293
These adjustments are surfaced so you can understand *why* a score is what it is. For example, if a CVE has a CrowdSec Score of 6 with an adjustment_score.recency of +1, you know that 1 point of that score comes from very recent CVE release rather than long-term exploitation data.
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
---
2+
id: threat_context
3+
title: Threat Context
4+
---
5+
6+
## Overview
7+
8+
The `threat_context` object provides geographic and industry-level intelligence about exploitation activity for a given CVE or reconnaissance rule. While [scores](./scores) tell you *how urgent* a threat is and [exploitation phases](./exploitation_phases) tell you *where in the lifecycle* it sits, threat context answers a different set of questions:
9+
10+
- **Where are attacks coming from?** (attacker countries)
11+
- **Who is being targeted?** (defender countries, industry types, risk profiles)
12+
- **What do attackers want?** (attacker objectives)
13+
14+
All distributions are **percentage-based** and sum to approximately 100. The top entries are listed individually, with an `OTHER` bucket aggregating the remainder.
15+
16+
:::info Null and empty values
17+
- `threat_context: null` — The CVE or rule has no threat context data at all (insufficient telemetry).
18+
- Individual sub-fields as `{}` — Data for that dimension is not yet available, even though other dimensions may have data. This is common for very recently tracked CVEs.
19+
:::
20+
21+
## Attacker Countries
22+
23+
Shows the geographic distribution of attack traffic as observed by the CrowdSec Network. Keys are [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes; values are percentages.
24+
25+
```json
26+
"attacker_countries": {
27+
"US": 48,
28+
"IE": 18,
29+
"DE": 7,
30+
"FR": 5,
31+
"NL": 4,
32+
"SG": 4,
33+
"GB": 2,
34+
"AE": 2,
35+
"VN": 1,
36+
"OTHER": 10
37+
}
38+
```
39+
40+
:::info
41+
These reflect the **IP geolocation** of attacking infrastructure, not necessarily the nationality of the threat actor. Attackers routinely use cloud providers, VPNs, and compromised infrastructure worldwide. A high percentage for a given country means attack *traffic* originates there — not that the attacker is physically located there.
42+
:::
43+
44+
## Defender Countries
45+
46+
Shows which countries' infrastructure is being targeted, using the same format as attacker countries.
47+
48+
```json
49+
"defender_countries": {
50+
"HU": 22,
51+
"FR": 22,
52+
"US": 12,
53+
"DE": 10,
54+
"AT": 8,
55+
"SM": 4,
56+
"SG": 3,
57+
"BE": 3,
58+
"NL": 2,
59+
"OTHER": 15
60+
}
61+
```
62+
63+
:::tip
64+
If your organization operates primarily in countries that show high defender percentages, this CVE is disproportionately relevant to you. A CVE where 70% of targets are in your country warrants more attention than one spread evenly across the globe.
65+
:::
66+
67+
## Industry Types
68+
69+
Shows the distribution of targeted organizations by industry sector.
70+
71+
| Value | Description |
72+
|---|---|
73+
| `commerce` | Retail, e-commerce, and commercial businesses |
74+
| `financial_services` | Banks, insurance, fintech, financial institutions |
75+
| `government` | Government agencies and public administration |
76+
| `healthcare` | Healthcare providers, hospitals, medical organizations |
77+
| `non_profit` | Non-profit organizations, NGOs, charities |
78+
79+
```json
80+
"industry_types": {
81+
"financial_services": 1,
82+
"commerce": 71,
83+
"government": 4,
84+
"healthcare": 5,
85+
"non_profit": 19
86+
}
87+
```
88+
89+
:::tip
90+
If your industry shows a high percentage, the CVE is disproportionately relevant to your sector — attackers are specifically hitting organizations like yours.
91+
:::
92+
93+
## Industry Risk Profiles
94+
95+
Classifies targets by their **technology risk profile** rather than their business sector. This provides a complementary lens to industry types — two organizations in the same industry may have very different exposure depending on their technology stack.
96+
97+
| Value | Description |
98+
|---|---|
99+
| `critical_infrastructure` | Energy, water, transportation, telecommunications |
100+
| `homelab_and_iot` | Home labs, IoT devices, consumer-grade infrastructure |
101+
| `public_service` | Government services, education, public utilities |
102+
| `technology_business` | Technology-focused businesses, SaaS, software companies |
103+
| `traditional_business` | Non-tech commercial enterprises, manufacturing, logistics |
104+
105+
```json
106+
"industry_risk_profiles": {
107+
"critical_infrastructure": 6,
108+
"traditional_business": 6,
109+
"public_service": 6,
110+
"technology_business": 65,
111+
"homelab_and_iot": 17
112+
}
113+
```
114+
115+
## Attacker Objectives
116+
117+
Shows the inferred goals of the exploitation campaigns.
118+
119+
| Value | Description |
120+
|---|---|
121+
| `data_exfiltration` | Stealing sensitive data for sale, espionage, or leverage |
122+
| `infrastructure_takeover` | Gaining persistent control of target systems (botnets, cryptomining, proxying) |
123+
| `ransomware` | Encryption-based extortion campaigns |
124+
125+
```json
126+
"attacker_objectives": {
127+
"ransomware": 7,
128+
"data_exfiltration": 11,
129+
"infrastructure_takeover": 82
130+
}
131+
```
132+
133+
:::info
134+
These objectives are inferred from observed attack patterns and post-exploitation behavior across the CrowdSec Network, not from attacker self-reporting. A single campaign may exhibit multiple objectives.
135+
:::
136+
137+
## Practical Example
138+
139+
:::tip Reading a complete threat context
140+
Consider CVE-2024-0012 (PanOS Authentication Bypass). Its threat context shows:
141+
142+
- **Attacker Countries**: 48% US, 18% IE — attacks are concentrated from US and Irish cloud infrastructure
143+
- **Defender Countries**: 22% HU, 22% FR — Hungarian and French organizations are disproportionately targeted
144+
- **Industry Types**: 71% commerce — commercial organizations are the primary targets
145+
- **Risk Profiles**: 65% technology_business — tech companies running PanOS infrastructure are the main victims
146+
- **Objectives**: 82% infrastructure_takeover — attackers want persistent access to PAN-OS management interfaces, not data theft
147+
148+
This tells a SOC analyst: if you operate PAN-OS in a tech company in France or Hungary, this CVE should be at the top of your priority list. The attackers are not after your data — they want control of your firewall management plane.
149+
150+
*Threat context is computed from live telemetry and changes over time. The values shown here may differ from what you see today.*
151+
:::
152+
153+
## Accessing Threat Context
154+
155+
- **Web Interface**: Available on each CVE and Reconnaissance Rule detail page in the [Live Exploit Tracker](https://tracker.crowdsec.net).
156+
- **API**: Returned in the `threat_context` field of the [CVE endpoints](./api_cves) (`/v1/cves` and `/v1/cves/{cve_id}`) and [Fingerprint endpoints](./api_fingerprints) (`/v1/fingerprints` and `/v1/fingerprints/{fingerprint}`).

0 commit comments

Comments
 (0)