Skip to content

Commit 2dbde56

Browse files
committed
Implement IEP009 - product & vuln. identification
The related IEP has already been discussed and open for more than a year.
1 parent 1a92ae8 commit 2dbde56

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@
1919

2020
### Data Format
2121

22+
- Implementing [IEP009](https://github.com/certtools/ieps/tree/main/009) introducing fields to
23+
identify products and vulnerabilities: `product.full_name`, `product.name`, `product.vendor`,
24+
`product.version`, `product.vulnerabilities`. To store in existing PostgreSQL instances, a following
25+
schema update will be necessary:
26+
```sql
27+
ALTER TABLE events ADD "product.full_name" text;
28+
ALTER TABLE events ADD "product.name" text;
29+
ALTER TABLE events ADD "product.vendor" text;
30+
ALTER TABLE events ADD "product.version" text;
31+
ALTER TABLE events ADD "product.vulnerabilities" text;
32+
```
33+
2234
### Bots
2335
#### Collectors
2436
- `intelmq.bots.collectors.shadowserver.collector_reports_api.py`:

intelmq/etc/harmonization.conf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,26 @@
221221
"length": 11,
222222
"type": "LowercaseString"
223223
},
224+
"product.full_name": {
225+
"description": "A human readable product name. If a machine-readable format isn't available, this field should be used. It can directly use the version identification strings presented by the product. If not given, a good enough value can usually be constructed by concatenating product.product and product.version, or by consulting external sources such as the CPE Product Dictionary. Example: openssh_/8.9",
226+
"type": "String"
227+
},
228+
"product.vendor": {
229+
"description": "Vendor name, recommended being as vendor in the CPE format. Example: openbsd",
230+
"type": "LowercaseString"
231+
},
232+
"product.name": {
233+
"description": "Product name, recommended being as the product in the CPE format. Example: openssh",
234+
"type": "LowercaseString"
235+
},
236+
"product.version": {
237+
"description": "Product version, recommended being as version in the CPE format. Example: 8.9",
238+
"type": "LowercaseString"
239+
},
240+
"product.vulnerabilities": {
241+
"description": "List of vulnerability IDs, separated by semicolons. It's recommended to use a CVE ID where available, and other easily retrievable IDs in other cases, e.g. Github Advisory Database ID. Each vulnerability should only be listed once, and multiple values should be used if there are several different vulnerabilities. However, it's not necessary for a source to list all possible vulnerabilities for a given piece of software. Example: cve-2023-38408;cve-2023-28531;cve-2008-3844;cve-2007-2768",
242+
"type": "LowercaseString"
243+
},
224244
"raw": {
225245
"description": "The original line of the event from encoded in base64.",
226246
"type": "Base64"

0 commit comments

Comments
 (0)