Skip to content

Commit 0774d4d

Browse files
kiran-ammatikiran kumar
andauthored
v1.2.0 - release prep (#48)
Signed-off-by: kiran kumar <skukiran@amazon.com> Co-authored-by: kiran kumar <skukiran@amazon.com>
1 parent 2c79cb0 commit 0774d4d

6 files changed

Lines changed: 164 additions & 1 deletion

File tree

‎CHANGELOG.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ Thankyou! -->
4242
## [Unreleased]
4343

4444

45+
## [v1.2.0] - October 16th, 2026
46+
47+
### Added
48+
* #### Objects
49+
1. Extended `image` with `is_public` (reused from core), `source_resource_uid`, `root_device_type`, and `virtualization_type` for AWS machine image (AMI) findings. Extended `resource_details` with `state`/`state_id`, narrowing the generic core `state_id` via an inline, resource-type-agnostic lifecycle enum (Pending/Active/Suspended/Deprovisioned/Failed/Transient) that maps across AWS resource types (AMI, EC2, etc.).
50+
1. Extended `affected_package` with `workload_state`, `workload_state_id`, and `workload_state_reason` so vulnerability findings can state whether a vulnerable package is part of the workload the affected resource runs (Inspector package runtime reachability for EC2 and container images).
51+
* #### Dictionary Attributes
52+
1. Added `source_resource_uid`, `root_device_type`, and `virtualization_type` as `string_t`.
53+
1. Added `workload_state_id` as an `integer_t` enum (Unknown/Active/Inactive/Other) with sibling `workload_state` as a `string_t`, and `workload_state_reason` as a `string_t` enum of the scanner evidence values (`PACKAGE_IN_DOCKERFILE_WORKLOAD_PATH`, `PACKAGE_NOT_IN_DOCKERFILE_WORKLOAD_PATH`, `PROCESS_OBSERVED_IN_EC2_RUNTIME`, `PROCESS_NOT_OBSERVED_IN_EC2_RUNTIME`).
54+
55+
4556
## [v1.1.0] - May 22nd, 2026
4657

4758
### Added

‎dictionary.json‎

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,63 @@
338338
"description": "The number of findings that will be fully resolved by remediating this target.",
339339
"type": "integer_t"
340340
},
341+
"root_device_type": {
342+
"caption": "Root Device Type",
343+
"description": "The type of root device the machine image uses <code>(e.g. ebs, instance-store)</code>.",
344+
"type": "string_t"
345+
},
346+
"workload_state": {
347+
"caption": "Workload State",
348+
"description": "The workload state of the affected package, normalized to the caption of the <code>workload_state_id</code> value. In the case of 'Other', it is defined by the event source.",
349+
"type": "string_t"
350+
},
351+
"workload_state_id": {
352+
"caption": "Workload State ID",
353+
"description": "The normalized workload state of an affected package on the resource: whether the package was determined to be part of the workload the resource runs. The evidence behind the value is described by <code>workload_state_reason</code>.",
354+
"sibling": "workload_state",
355+
"type": "integer_t",
356+
"enum": {
357+
"0": {
358+
"caption": "Unknown",
359+
"description": "The workload state is unknown. The scanner did not evaluate workload state for this package, or the resource type does not support it."
360+
},
361+
"1": {
362+
"caption": "Active",
363+
"description": "The package was determined to be part of the workload the resource runs <code>(e.g. a running process was observed on the EC2 instance, or the package is on the container image workload path)</code>."
364+
},
365+
"2": {
366+
"caption": "Inactive",
367+
"description": "The package is installed but was not determined to be part of the workload the resource runs <code>(e.g. no running process was observed on the EC2 instance, or the package is not on the container image workload path)</code>."
368+
},
369+
"99": {
370+
"caption": "Other",
371+
"description": "The workload state is not mapped. See the <code>workload_state</code> attribute, which contains a data source specific value."
372+
}
373+
}
374+
},
375+
"workload_state_reason": {
376+
"caption": "Workload State Reason",
377+
"description": "The evidence the scanner used to determine the <code>workload_state_id</code> of an affected package.",
378+
"type": "string_t",
379+
"enum": {
380+
"PACKAGE_IN_DOCKERFILE_WORKLOAD_PATH": {
381+
"caption": "PACKAGE_IN_DOCKERFILE_WORKLOAD_PATH",
382+
"description": "The package is on the workload path declared by the container image's Dockerfile <code>(e.g. ENTRYPOINT, CMD, WORKDIR)</code>. Implies workload state Active."
383+
},
384+
"PACKAGE_NOT_IN_DOCKERFILE_WORKLOAD_PATH": {
385+
"caption": "PACKAGE_NOT_IN_DOCKERFILE_WORKLOAD_PATH",
386+
"description": "The package is present in the container image but not on the workload path declared by its Dockerfile. Implies workload state Inactive."
387+
},
388+
"PROCESS_NOT_OBSERVED_IN_EC2_RUNTIME": {
389+
"caption": "PROCESS_NOT_OBSERVED_IN_EC2_RUNTIME",
390+
"description": "No running process backed by the package was observed on the EC2 instance during the observation window. Implies workload state Inactive."
391+
},
392+
"PROCESS_OBSERVED_IN_EC2_RUNTIME": {
393+
"caption": "PROCESS_OBSERVED_IN_EC2_RUNTIME",
394+
"description": "A running process backed by the package was observed on the EC2 instance. Implies workload state Active."
395+
}
396+
}
397+
},
341398
"scan_duration": {
342399
"caption": "Scan Duration",
343400
"description": "The time span of the network scan job, including start time, end time, and total duration.",
@@ -374,6 +431,11 @@
374431
"description": "The storage device snapshot identifier <code>(e.g. snap-1234567890abcdef0).</code>",
375432
"type": "string_t"
376433
},
434+
"source_resource_uid": {
435+
"caption": "Source Resource UID",
436+
"description": "The unique identifier of the resource the machine image was created from <code>(e.g. the source AMI or instance id)</code>.",
437+
"type": "string_t"
438+
},
377439
"storage_device": {
378440
"caption": "Storage Device",
379441
"description": "The storage device that is attached to the instance",
@@ -466,6 +528,11 @@
466528
"description": "The vendor-determined score for the finding, reflecting any adjustments applied by the event source. For example, the vendor's adjusted CVSS score after applying environmental metrics.",
467529
"type": "float_t"
468530
},
531+
"virtualization_type": {
532+
"caption": "Virtualization Type",
533+
"description": "The virtualization type of the machine image <code>(e.g. hvm, paravirtual)</code>.",
534+
"type": "string_t"
535+
},
469536
"zones": {
470537
"caption": "List of Availability Zones",
471538
"description": "A list of availability zones",

‎extension.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
"caption": "AWS",
44
"description": "The AWS extension to OCSF adds AWS-specific event classes, objects, attributes, and profiles to the core OCSF schema.",
55
"name": "aws",
6-
"version": "1.2.0-dev"
6+
"version": "1.2.0"
77
}

‎objects/affected_package.json‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"caption": "Affected Software Package",
3+
"description": "Extends the core Affected Software Package object with the observed workload state of the package on the affected resource, so consumers can distinguish vulnerable packages that are exercised at runtime from those that are merely installed.",
4+
"extends": "affected_package",
5+
"name": "affected_package",
6+
"attributes": {
7+
"workload_state": {
8+
"description": "The workload state of the affected package, normalized to the caption of the <code>workload_state_id</code> value. In the case of 'Other', it is defined by the event source.",
9+
"requirement": "optional"
10+
},
11+
"workload_state_id": {
12+
"description": "The normalized workload state of the affected package on the resource: whether the package was determined to be part of the workload the resource runs <code>(e.g. a process observed on an EC2 instance, or a package on the workload path of a container image)</code>. The evidence behind the value is in <code>workload_state_reason</code>.",
13+
"requirement": "optional"
14+
},
15+
"workload_state_reason": {
16+
"description": "The evidence the scanner used to determine <code>workload_state_id</code> for the affected package.",
17+
"requirement": "optional"
18+
}
19+
}
20+
}

‎objects/image.json‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
"description": "Number of containers using this image.",
2121
"requirement": "recommended"
2222
},
23+
"is_public": {
24+
"description": "Indicates whether the machine image is publicly shared <code>(e.g. a public AMI)</code>.",
25+
"profile": "aws/cloud_resources",
26+
"requirement": "optional"
27+
},
2328
"last_used_time": {
2429
"description": "Timestamp of when this image was last used.",
2530
"requirement": "recommended"
@@ -44,13 +49,28 @@
4449
"description": "Name of the repository containing this image.",
4550
"requirement": "recommended"
4651
},
52+
"root_device_type": {
53+
"description": "The type of root device the machine image uses <code>(e.g. ebs, instance-store)</code>.",
54+
"profile": "aws/cloud_resources",
55+
"requirement": "optional"
56+
},
57+
"source_resource_uid": {
58+
"description": "The unique identifier of the resource the machine image was created from <code>(e.g. the source AMI or instance id)</code>.",
59+
"profile": "aws/cloud_resources",
60+
"requirement": "optional"
61+
},
4762
"uid": {
4863
"description": "The unique identifier of the container image.",
4964
"requirement": "recommended"
5065
},
5166
"uid_alt": {
5267
"description": "This is the Amazon Resource Name (ARN) of the resource.",
5368
"requirement": "recommended"
69+
},
70+
"virtualization_type": {
71+
"description": "The virtualization type of the machine image <code>(e.g. hvm, paravirtual)</code>.",
72+
"profile": "aws/cloud_resources",
73+
"requirement": "optional"
5474
}
5575
},
5676
"constraints": {

‎objects/resource_details.json‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,51 @@
5959
"profile": "cloud",
6060
"requirement": "recommended"
6161
},
62+
"state": {
63+
"description": "The state of the resource, normalized to the caption of the <code>state_id</code> value. In the case of 'Other', it is defined by the event source. This carries the source-specific value <code>(e.g. an AWS AMI image state such as available, or an EC2 instance state such as running)</code>.",
64+
"profile": "aws/cloud_resources",
65+
"requirement": "optional"
66+
},
67+
"state_id": {
68+
"description": "The normalized lifecycle state of the resource, resource-type agnostic. The source-specific value is preserved in the <code>state</code> sibling.",
69+
"profile": "aws/cloud_resources",
70+
"requirement": "optional",
71+
"sibling": "state",
72+
"enum": {
73+
"0": {
74+
"caption": "Unknown",
75+
"description": "The state is unset or not provided."
76+
},
77+
"1": {
78+
"caption": "Pending",
79+
"description": "The resource is being created or provisioned and is not yet usable <code>(e.g. AMI pending, EC2 pending)</code>."
80+
},
81+
"2": {
82+
"caption": "Active",
83+
"description": "The resource is created and in service <code>(e.g. AMI available, EC2 running, an enabled resource)</code>."
84+
},
85+
"3": {
86+
"caption": "Suspended",
87+
"description": "The resource is temporarily inactive <code>(e.g. EC2 stopped, a disabled or paused resource)</code>."
88+
},
89+
"4": {
90+
"caption": "Deprovisioned",
91+
"description": "The resource has been removed or retired <code>(e.g. AMI deregistered, EC2 terminated, a deleted resource)</code>."
92+
},
93+
"5": {
94+
"caption": "Failed",
95+
"description": "The resource creation or operation failed, or the resource is in a bad state <code>(e.g. AMI failed, error, or invalid)</code>."
96+
},
97+
"6": {
98+
"caption": "Transient",
99+
"description": "The resource is mid-transition between states <code>(e.g. AMI transient, EC2 stopping or shutting-down)</code>."
100+
},
101+
"99": {
102+
"caption": "Other",
103+
"description": "The state is not mapped. See the <code>state</code> attribute, which contains a data source specific value."
104+
}
105+
}
106+
},
62107
"storage_device": {
63108
"profile": "aws/cloud_resources",
64109
"requirement": "optional"

0 commit comments

Comments
 (0)