Skip to content

End-of-life - Systems running vendor-supported software

Description

Ensure that systems are not running end-of-life, unsuported or unpatchable software.

How we measure it

Find all Macs managed by Kandji that checked in within the last 30 days and match their macOS version to its release cycle on https://endoflife.date/. Macs are considered compliant if their macOS release is still supported. Windows and installed applications are not covered yet.

Meta Data

Attribute Value
Metric id vm_eol_software
Category Vulnerability Management
SLO 90.00% - 95.00%
Weight 0.8
Type risk

References

Framework Ref Domain Control
ISO 27001:2022 A.8.8 8 Technological controls Management of technical vulnerabilities
CIS 8.1 2.2 Inventory and Control of Software Assets Ensure Authorized Software is Currently Supported
NIST CSF v2.0 ID.AM-08 Asset Management (ID.AM) ID.AM-08: Systems, hardware, software, services, and data are managed throughout their life cycles
Essential8-ML3 ISM-0304 Patch applications Applications other than office productivity suites, web browsers and their extensions, email clients, PDF software, Adobe Flash Player, and security products that are no longer supported by vendors are removed.
Essential8-ML1 ISM-1704 Patch applications Office productivity suites, web browsers and their extensions, email clients, PDF software, Adobe Flash Player, and security products that are no longer supported by vendors are removed.
Essential8-ML2 ISM-1704 Patch applications Office productivity suites, web browsers and their extensions, email clients, PDF software, Adobe Flash Player, and security products that are no longer supported by vendors are removed.
Essential8-ML3 ISM-1704 Patch applications Office productivity suites, web browsers and their extensions, email clients, PDF software, Adobe Flash Player, and security products that are no longer supported by vendors are removed.
Essential8-ML1 ISM-1905 Patch applications Online services that are no longer supported by vendors are removed.
Essential8-ML2 ISM-1905 Patch applications Online services that are no longer supported by vendors are removed.
Essential8-ML3 ISM-1905 Patch applications Online services that are no longer supported by vendors are removed.
Essential8-ML3 ISM-1407 Patch operating systems The latest release, or the previous release, of operating systems are used.
Essential8-ML1 ISM-1501 Patch operating systems Operating systems that are no longer supported by vendors are replaced.
Essential8-ML2 ISM-1501 Patch operating systems Operating systems that are no longer supported by vendors are replaced.
Essential8-ML3 ISM-1501 Patch operating systems Operating systems that are no longer supported by vendors are replaced.

Code

WITH macs AS (
  SELECT details.device_name || ' (' || details.serial_number || ')' AS device_name, details.os_version
  FROM {{ ref('kandji_device_details') }} AS details
  JOIN {{ ref('kandji_devices') }} AS devices ON devices.device_id = details.device_id
  WHERE details.platform = 'Mac'
    AND NOT devices.is_missing AND NOT devices.is_removed
    AND CURRENT_DATE - CAST(devices.last_check_in AS DATE) <= 30
),
cycles AS (
  SELECT cycle, label, is_eol, eol_from
  FROM {{ ref('endoflife_cycles') }}
  WHERE product = 'macos'
)
SELECT
  macs.device_name AS resource,
  'host' AS resource_type,
  CASE WHEN cycles.cycle IS NOT NULL AND NOT coalesce(cycles.is_eol, false) THEN 1 ELSE 0 END AS compliance,
  CASE
    WHEN cycles.cycle IS NULL THEN 'macOS ' || macs.os_version || ' not found on endoflife.date'
    WHEN cycles.is_eol THEN cycles.label || ' (' || macs.os_version || ') end of life since ' || CAST(CAST(cycles.eol_from AS DATE) AS VARCHAR)
    ELSE cycles.label || ' (' || macs.os_version || ') supported'
  END AS detail
FROM macs
LEFT JOIN cycles
  ON macs.os_version = cycles.cycle OR macs.os_version LIKE cycles.cycle || '.%'