Skip to content

Engine accuracy (M0): scoring v2, unique finding IDs, patch table, OS role - #1

Open
XpertLambda wants to merge 3 commits into
mainfrom
m0-engine-accuracy
Open

XpertLambda wants to merge 3 commits into
mainfrom
m0-engine-accuracy

Conversation

@XpertLambda

Copy link
Copy Markdown
Owner

Fixes the confirmed engine bugs from a scan of a fresh Windows 11 25H2 image.

Changes

  • Rating/score: the rating is the worst effective severity tier present and the score stays inside that tier's band (Critical 85-100, High 60-84, Moderate 30-59, Low 5-29). 1.8.0 summed counts and printed "Critical, 100" for a host with no Critical finding. Repeats of one rule count less; a low-confidence finding counts one tier lower. summary.scoring.model_version is 2.
  • Patch hints: each CVE applies only to builds that existed before its fix and only to the right role (Zerologon: domain controllers). One low-confidence finding per CVE. A current Windows 11 no longer gets six 2020-2022 findings.
  • Finding IDs: rule#instance IDs, unique per scan (engine safety net + warning), no machine name in event-log IDs, non-ASCII encoded instead of dropped. 1.8.0 baselines still compare.
  • OS detection: name from product type (Server 2025 is not Windows 11); system_info gains os_name, os_family, os_build, os_ubr.
  • UAC disabled was reported by two modules; now merged.
  • Time: scan_info.generated_utc, utc_offset_minutes, schema_version.

Compatibility

Scripts that read rating or risk_score will see different values. Event-log account findings have new IDs, so an old baseline shows them once as resolved plus new. See the CHANGELOG entry.

Testing

  • Native: 164 tests pass (133 before), including a property test over random finding sets and reference scores.
  • MinGW cross-build with -Werror is clean; a Wine run produced the expected JSON.
  • New assertions in tests/windows/smoke-test.ps1 (unique IDs, rating/score consistency, host role, no stale patch findings on modern builds, single UAC finding) have not been run yet: this PR is their first run in CI.

To verify

The build ranges in the CVE table come from release history and should be checked before relying on the exact cut-offs.

…ble, OS role

- Rating is the worst effective severity tier and the score stays inside that
  tier's band; 1.8.0 summed counts and reported "Critical, 100" for a host with
  no Critical finding. Low-confidence findings count one tier lower.
- Patch hints apply only to the builds that existed before each fix and only to
  the right role (Zerologon on domain controllers); one low-confidence finding
  per CVE. Windows 11 25H2 no longer gets six 2020-2022 findings.
- Finding IDs: rule + instance_key, unique per scan (engine safety net), no
  machine name in event-log IDs, non-ASCII encoded instead of dropped; 1.8.0
  baselines still compare.
- OS name from product type (Server 2025 is not Windows 11); system_info gains
  os_name/os_family/os_build/os_ubr.
- The same fact reported by two modules (UAC disabled) is merged.
- ISO-8601 UTC time and schema_version in the JSON report.
- Tests: scoring (reference values + property test), identity, patch table,
  OS classification, timestamps; Windows smoke assertions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant