Skip to content

Commit e36bdf0

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

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
@@ -21,6 +21,18 @@ Please refer to the [NEWS](NEWS.md) for a list of changes which have an affect o
2121

2222
### Data Format
2323

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

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)