Disclaimer: This information is provided as-is for the benefit of the Community. Please contact Sophos Professional Services if you require assistance with your specific environment.
Purpose
This query is designed to give you a "Total Report" of what is happening on a specific device. Such details include:
- Operating System
- IP Address
- Disk Encryption Status
- Uptime
- Logged In User
Prerequisites
You must have XDR enabled in your environment. This is entirely a Live Discover query.
This is intended for MacOS.
Query Focus
This Mac specific query was written by RaviSoni
DISCLAIMERS FOR USING THIS QUERY:
- You should run this as a per-device requirement - can get messy with large sets of machines
-- Cards orient the results in five columns -- ATRIBUTE - The thing being checked -- VALUE - The result of the evaluation -- CONTEXT - Some useful information related to the Attribute -- CONTEXT_DATA - The inoformation for the context information being shown -- NOTES - Some additional relevant information on the Attribute/Value -- BLANK LINE BETWEEN EACH DEVICE SELECT CAST(' ' AS TEXT) ATTRIBUTE, CAST(' ' AS TEXT) VALUE, CAST(' ' AS TEXT) CONTEXT, CAST(' ' AS TEXT) CONTEXT_DATA, CAST(' ' AS TEXT) NOTES UNION ALL SELECT CAST('=========================' AS TEXT) ATTRIBUTE, CAST('=========================' AS TEXT) VALUE, CAST('=========================' AS TEXT) CONTEXT, CAST('=========================' AS TEXT) CONTEXT_DATA, CAST('=========================' AS TEXT) NOTES UNION ALL --Device Info SELECT CAST('DEVICE INFO ' AS TEXT) ATTRIBUTE, CAST(' ' AS TEXT) VALUE, CAST(' ' AS TEXT) CONTEXT, CAST(' ' AS TEXT) CONTEXT_DATA, CAST(' ' AS TEXT) NOTES UNION ALL -- Operating System information SELECT 'OPERATING SYSTEM' ATTRIBUTE, name VALUE, 'VERSION' CONTEXT, version CONTEXT_DATA, 'INSTALLED ON: ' || datetime(install_date,'unixepoch') NOTES FROM os_version UNION ALL -- Current IP/MAC and DHCP Server for the device SELECT 'IP-ADDRESS' ATTRIBUTE, CAST(ia.address AS TEXT) VALUE, 'MAC ADDRESS' CONTEXT, id.mac CONTEXT_DATA, '' NOTES FROM interface_addresses ia JOIN interface_details id ON id.interface = ia.interface WHERE ia.address NOT IN ('::1','127.0.0.1') AND ia.address NOT LIKE 'fe80::%' UNION ALL -- Disk Encryption Status SELECT DISTINCT 'DISK ENCRYPTION STATUS' ATTRIBUTE, 'Name: ' || disk_events.name ||CHAR(10)||'Device Path: '|| device VALUE, encryption_status CONTEXT, type CONTEXT_DATA, '' NOTES FROM disk_encryption JOIN disk_events ON disk_encryption.name = disk_events.device WHERE encryption_status <> 'undefined' UNION ALL --Device Uptime SELECT 'UPTIME' ATTRIBUTE, 'DD:HH:MM:SS' VALUE, days||':'||hours||':'||minutes||':'||seconds CONTEXT, '' CONTEXT_DATA, '' NOTES FROM uptime UNION ALL --LOGGED IN USER SELECT 'LOGGED IN USER' ATTRIBUTE, 'User' VALUE, user CONTEXT, '' CONTEXT_DATA, '' NOTES FROM logged_in_users
Understanding the Code
This query will select pieces of information about the device and union it with additional tables. It is very direct but effective and an example of how you can aggregate multiple pieces of data into one report.
Happy querying!
-jk
Added Disclaimer
[edited by: GlennSen at 3:31 PM (GMT -7) on 5 Apr 2023]