Detect unexpected uid0 programs on Linux

This commit is contained in:
Thomas Stromberg 2022-09-29 15:42:06 -04:00
parent 578657051c
commit 89cbf9dacf
Failed to extract signature
1 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,87 @@
SELECT p.pid,
p.name,
p.path,
p.euid,
p.gid,
f.ctime,
f.directory AS dirname,
p.cmdline,
mnt_namespace,
hash.sha256,
pp.name AS parent_name,
pp.cmdline AS parent_cmdline
FROM processes p
LEFT JOIN file f ON p.path = f.path
LEFT JOIN process_namespaces ON p.pid = process_namespaces.pid
LEFT JOIN hash ON p.path = hash.path
LEFT JOIN processes pp ON p.parent = pp.pid
WHERE p.uid = 0
AND (strftime('%s', 'now') - p.start_time) > 120
-- use osquery as the reference mount namespace
AND mnt_namespace IN (
SELECT DISTINCT (mnt_namespace)
FROM process_namespaces
JOIN processes ON processes.pid = process_namespaces.pid
WHERE processes.name IN ("osqueryi", "osqueryd")
)
AND p.path NOT IN (
"", -- Not a file-based process
"/usr/lib/systemd/systemd",
"/usr/sbin/tailscaled",
"/usr/bin/dockerd",
"/usr/bin/containerd",
"/usr/bin/gpg-agent",
"/usr/libexec/scdaemon",
"/usr/libexec/docker/docker-proxy",
"/usr/bin/containerd-shim-runc-v2",
"/usr/sbin/pcscd",
"/usr/lib/systemd/systemd-journald",
"/usr/libexec/accounts-daemon",
"/usr/lib/systemd/systemd-homed",
"/usr/lib/systemd/systemd-machined",
"/usr/libexec/udisks2/udisksd",
"/usr/sbin/alsactl",
"/usr/sbin/abrtd",
"/usr/bin/abrt-dump-journal-core",
"/usr/bin/abrt-dump-journal-oops",
"/usr/bin/abrt-dump-journal-xorg",
"/usr/sbin/cupsd",
"/usr/sbin/gssproxy",
"/usr/sbin/wpa_supplicant",
"/usr/sbin/abrt-dbus",
"/usr/sbin/gdm",
"/usr/libexec/packagekitd",
"/usr/libexec/gdm-session-worker",
"/usr/bin/docker-proxy",
"/usr/bin/journalctl",
"/usr/lib/udisks2/udisksd",
"/usr/bin/crond",
"/usr/bin/lightdm",
"/usr/lib/Xorg",
"/usr/bin/osqueryd",
"/usr/bin/wpa_supplicant",
"/usr/sbin/cups-browsed",
"/usr/sbin/acpid",
"/usr/sbin/cron",
"/usr/libexec/polkitd",
"/usr/sbin/zed",
"/usr/sbin/gdm3",
"/usr/libexec/snapd/snapd",
"/usr/libexec/sssd/sssd_kcm",
"/usr/bin/tailscaled",
"/usr/lib/gdm-session-worker",
"/usr/bin/gdm",
"/snap/snapd/17029/usr/lib/snapd/snapd"
)
-- Because I don't want to whitelist all of Python3
AND p.cmdline NOT IN (
"/usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid",
"/usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal",
"/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers"
)
AND p.path NOT LIKE "/usr/local/kolide-k2/bin/osqueryd-updates/%/osqueryd"
AND p.path NOT LIKE "/usr/local/kolide-k2/bin/launcher-updates/%/launcher"
AND p.path NOT LIKE "/nix/store/%/bin/%"
AND p.path NOT LIKE "/nix/store/%-systemd-%/lib/systemd/systemd%"
AND p.path NOT LIKE "/nix/store/%/libexec/%"
AND p.path NOT LIKE "/snap/snapd/%/usr/lib/snapd/snapd"