osquery-defense-kit/detection/evasion/unexpected-dev-executables-...

82 lines
2.1 KiB
SQL

-- Find unexpected executables in /dev
--
-- references:
-- * https://www.sandflysecurity.com/blog/bpfdoor-an-evasive-linux-backdoor-technical-analysis/
--
-- tags: persistent state filesystem
SELECT
file.path,
file.directory,
uid,
gid,
mode,
file.mtime,
file.size,
hash.sha256,
magic.data
FROM
file
LEFT JOIN hash on file.path = hash.path
LEFT JOIN magic ON file.path = magic.path
WHERE
(
-- This list is the result of multiple queries combined and can likely be minimized
file.path LIKE '/dev/%%'
OR file.path LIKE '/dev/%%/%%'
OR file.path LIKE '/dev/mqueue/%%'
OR file.path LIKE '/dev/mqueue/.%/%%'
OR file.path LIKE '/dev/mqueue/%/%%'
OR file.path LIKE '/dev/mqueue/%/%/.%'
OR file.path LIKE '/dev/mqueue/%/.%/%%'
OR file.path LIKE '/dev/shm/%%'
OR file.path LIKE '/dev/shm/.%/%%'
OR file.path LIKE '/dev/shm/%/%%'
OR file.path LIKE '/dev/shm/%/%/.%'
OR file.path LIKE '/dev/shm/%/.%/%%'
)
AND file.type = 'regular'
AND file.size > 64
AND file.path NOT LIKE '%/../%'
AND file.path NOT LIKE '%/./%'
AND (
file.mode LIKE '%7%'
or file.mode LIKE '%5%'
or file.mode LIKE '%1%'
) -- Seen on Ubuntu
AND NOT (
file.uid = 1000
AND file.gid = 1000
AND file.mode = '0700'
AND magic.data = 'data'
AND file.path LIKE '/dev/shm/pulse-shm-%'
AND file.size > 60000000
) -- Seen with Steam
AND NOT (
file.uid = 1000
AND file.gid IN (100, 1000)
AND file.mode IN ('0755', '0775')
AND magic.data IN (
'data',
'Applesoft BASIC program data, first line number 86',
'mc68k executable (shared)',
'OpenPGP Secret Key',
'',
'floppy image data (IBM SaveDskF, old)',
'DOS executable (COM)'
)
AND file.path LIKE '/dev/shm/u1000-Shm_%'
)
AND NOT (
file.uid = 1000
AND file.gid IN (100, 1000)
AND file.mode IN ('0755', '0775')
AND magic.data IS NULL
AND file.path LIKE '/dev/shm/u1000-Shm_%'
)
AND NOT (
file.uid = 1000
AND file.mode = '0755'
AND file.path LIKE '/dev/shm/flatpak-com.valvesoftware.Steam-%/u1000-Shm_%'
AND file.size > 1000000
)