@cyclonedx/cdxgen
Version:
Creates CycloneDX Software Bill of Materials (SBOM) from source or container image
166 lines (160 loc) • 7.88 kB
YAML
# Host Topology Rules
# Category: host-topology
# Evaluates strict, evidence-backed insights derived from merged HBOM + OBOM inventories.
- id: HMX-001
name: "Active wired interface with live runtime addresses is operating degraded"
description: "A wired interface that is actually carrying runtime addresses but is negotiated at low bandwidth or half duplex represents a higher-confidence performance issue than hardware inventory alone."
severity: medium
category: host-topology
dry-run-support: partial
condition: |
components[
$prop($, 'cdx:hbom:hardwareClass') = 'network-interface'
and $number($firstNonEmpty($prop($, 'cdx:hostview:interface_addresses:count'), '0')) > 0
and (
$lowercase($safeStr($prop($, 'cdx:hbom:duplex'))) = 'half'
or (
$hasProp($, 'cdx:hbom:speedMbps')
and $number($prop($, 'cdx:hbom:speedMbps')) > 0
and $number($prop($, 'cdx:hbom:speedMbps')) < 1000
)
)
]
location: |
{
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
}
message: "Interface '{{ name }}' has live runtime address evidence but negotiated degraded duplex or bandwidth characteristics"
mitigation: "Inspect cabling, switch policy, NIC firmware/driver, and negotiated link settings before treating the issue as application-only latency."
evidence: |
{
"runtimeAddressCount": $prop($, 'cdx:hostview:interface_addresses:count'),
"driver": $prop($, 'cdx:hbom:driver'),
"speedMbps": $prop($, 'cdx:hbom:speedMbps'),
"duplex": $prop($, 'cdx:hbom:duplex'),
"operState": $prop($, 'cdx:hbom:operState')
}
- id: HMX-002
name: "Wireless interface with live runtime address uses weak or missing link security"
description: "Weak wireless security on an interface that also has runtime address evidence is a stronger exposure signal than hardware inventory alone."
severity: high
category: host-topology
dry-run-support: partial
condition: |
components[
(
$prop($, 'cdx:hbom:hardwareClass') = 'wireless-adapter'
or (
$prop($, 'cdx:hbom:hardwareClass') = 'network-interface'
and $hasProp($, 'cdx:hbom:securityMode')
)
)
and $number($firstNonEmpty($prop($, 'cdx:hostview:interface_addresses:count'), '0')) > 0
and (
$safeStr($prop($, 'cdx:hbom:securityMode')) = ''
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:securityMode'))), 'open')
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:securityMode'))), 'wep')
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:securityMode'))), 'none')
)
]
location: |
{
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
}
message: "Wireless interface '{{ name }}' has live runtime address evidence while using weak or missing security mode '{{ $firstNonEmpty($prop($, 'cdx:hbom:securityMode'), 'unknown') }}'"
mitigation: "Move the interface to WPA2/WPA3-class protections, review SSID policy, and verify that actively routed wireless links meet enterprise security baselines."
evidence: |
{
"runtimeAddressCount": $prop($, 'cdx:hostview:interface_addresses:count'),
"securityMode": $prop($, 'cdx:hbom:securityMode'),
"channel": $prop($, 'cdx:hbom:channel'),
"phyMode": $prop($, 'cdx:hbom:phyMode')
}
- id: HMX-003
name: "Merged host inventory lacks strict hardware/runtime topology links"
description: "When a merged HBOM+OBOM view contains no strict cross-domain topology links, reviewers should treat combined host conclusions cautiously and inspect collection coverage."
severity: medium
category: host-topology
dry-run-support: partial
condition: |
metadata.component[
type = 'device'
and $prop($, 'cdx:hostview:mode') = 'hbom-obom-merged'
and $number($firstNonEmpty($prop($, 'cdx:hostview:topologyLinkCount'), '0')) = 0
]
location: |
{
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
}
message: "Merged host inventory for '{{ name }}' contains no strict HBOM-to-OBOM topology links"
mitigation: "Review collector coverage, ensure runtime categories such as interface_addresses or kernel_modules are available, and prefer exact identifier-bearing probes over heuristic joins."
evidence: |
{
"hostViewMode": $prop($, 'cdx:hostview:mode'),
"hardwareComponentCount": $prop($, 'cdx:hostview:hardwareComponentCount'),
"runtimeComponentCount": $prop($, 'cdx:hostview:runtimeComponentCount'),
"topologyLinkCount": $prop($, 'cdx:hostview:topologyLinkCount')
}
- id: HMX-004
name: "Mounted storage with explicit runtime evidence is reporting degraded health"
description: "Storage health issues become higher-confidence operational findings when the hardware component is also linked to an active runtime mount or logical drive using exact identifiers."
severity: high
category: host-topology
dry-run-support: partial
condition: |
components[
(
$prop($, 'cdx:hbom:hardwareClass') = 'storage'
or $prop($, 'cdx:hbom:hardwareClass') = 'storage-device'
or $prop($, 'cdx:hbom:hardwareClass') = 'storage-volume'
)
and (
$number($firstNonEmpty($prop($, 'cdx:hostview:mount_hardening:count'), '0')) > 0
or $number($firstNonEmpty($prop($, 'cdx:hostview:runtime-storage:count'), '0')) > 0
)
and (
$contains($lowercase($safeStr($prop($, 'cdx:hbom:smartStatus'))), 'fail')
or $contains($lowercase($safeStr($prop($, 'cdx:hbom:health'))), 'degrad')
or $number($firstNonEmpty($prop($, 'cdx:hbom:wearPercentageUsed'), '0')) >= 90
)
]
location: |
{
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
}
message: "Storage component '{{ name }}' is explicitly linked to a runtime mount or drive while reporting degraded health telemetry"
mitigation: "Prioritize remediation for the backing device because the linked runtime mount evidence shows the degraded storage is actively in use."
evidence: |
{
"mountCount": $prop($, 'cdx:hostview:mount_hardening:count'),
"runtimeStorageCount": $prop($, 'cdx:hostview:runtime-storage:count'),
"smartStatus": $prop($, 'cdx:hbom:smartStatus'),
"health": $prop($, 'cdx:hbom:health'),
"wearPercentageUsed": $prop($, 'cdx:hbom:wearPercentageUsed')
}
- id: HMX-005
name: "Explicit HBOM secure-boot trust anchor matches a revoked runtime Secure Boot certificate"
description: "When HBOM metadata carries an explicit Secure Boot certificate identifier that strictly links to runtime secureboot_certificates data, revoked trust anchors indicate a higher-confidence firmware trust issue."
severity: high
category: host-topology
dry-run-support: partial
condition: |
components[
$prop($, 'cdx:osquery:category') = 'secureboot_certificates'
and $number($firstNonEmpty($prop($, 'revoked'), '0')) > 0
and $number($firstNonEmpty($prop($$.metadata.component, 'cdx:hostview:secureboot_certificates:count'), '0')) > 0
]
location: |
{
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
}
message: "Secure Boot certificate '{{ name }}' is revoked and the host also has an explicit HBOM trust-anchor link for this Secure Boot surface"
mitigation: "Review firmware trust policy, remove revoked Secure Boot entries from active trust sets, and verify that the expected db/dbx anchors on the host still match the approved platform state."
evidence: |
{
"linkedSecureBootCertificateCount": $prop($, 'cdx:hostview:secureboot_certificates:count'),
"revokedCertificateCount": $count(bom.components[
$prop($, 'cdx:osquery:category') = 'secureboot_certificates'
and $number($firstNonEmpty($prop($, 'revoked'), '0')) > 0
])
}