Hi all, I'm currently trying to work out how to use Wazuh to collect data on BIOS version for agents. The idea is that this data can then be used for vulnerability monitoring (for example the recent Lenovo BIOS issue).
Osquery does appear to support the data collection:
hardware_version
hardware_vendor
...
AFAICT currently the BIOS serial is retrieved using smbios, which does not support returning BIOS version number or hardware_vendor.
I've modified /opt/osquery/share/osquery/packs/hardware-monitoring.conf to add a system_info block:
"system_info": {
"query": "select hostname,hardware_vendor,hardware_model,hardware_version,hardware_serial from system_info ;",
"interval": "7200",
"version": "1.4.0",
"description": "capture additional vendor hardware information"
},
But... what I'm not clear on is how the information defined in these .conf files makes it's way into the sqllite dbs for each agent. The logical place to store this appears to be sys_hwinfo:
sqlite> .schema sys_hwinfo
CREATE TABLE sys_hwinfo ( scan_id INTEGER, scan_time TEXT, board_serial TEXT, cpu_name TEXT, cpu_cores INTEGER CHECK (cpu_cores > 0), cpu_mhz REAL CHECK (cpu_mhz > 0), ram_total INTEGER CHECK (ram_total > 0), ram_free INTEGER CHECK (ram_free > 0), ram_usage INTEGER CHECK (ram_usage >= 0 AND ram_usage <= 100), checksum TEXT DEFAULT '' NOT NULL CHECK(checksum <> ''), PRIMARY KEY (scan_id, board_serial));
(note - no hardware_vendor / version / etc)
are there any guides / etc around that walk through how to extend the queries that syscollector is executing, and then making sure that it actually records (and then reports on) this data?
Thanks!
Chris