-- Unexpected process that spawns shell processes (event based) -- -- false positives: -- * IDE's -- -- references: -- * https://attack.mitre.org/techniques/T1059/ (Command and Scripting Interpreter) -- * https://attack.mitre.org/techniques/T1204/002/ (User Execution: Malicious File) -- -- tags: process events -- interval: 60 -- platform: posix SELECT p.name, p.path AS path, p.cmdline AS cmd, p.pid, p.cgroup_path, p.parent, pp.name AS parent_name, pp.path AS parent_path, pp.cmdline AS parent_cmd, hash.sha256 AS parent_sha256 FROM processes p LEFT JOIN processes pp ON pp.pid = p.parent LEFT JOIN hash ON pp.path = hash.path WHERE p.name IN ('sh', 'fish', 'zsh', 'bash', 'dash') -- Ignore partial table joins AND parent_path != '' -- Editors & terminals mostly. -- I know it's tempting to list "electron" here but please find a more specific exclusion. AND pp.name NOT IN ( 'abrt-handle-eve', 'alacritty', 'Alfred', 'rpmbuild', 'bash', 'build-script-build', 'chezmoi', 'clang-11', 'code', 'Code Helper (Renderer)', 'Code - Insiders Helper (Renderer)', 'collect2', 'configure', 'conmon', 'containerd-shim', 'buildkit-runc', 'dash', 'demoit', 'direnv', 'Runner.Worker', 'Runner.Listener', 'dnf', 'doas', 'Docker Desktop', 'erl_child_setup', 'find', 'FinderSyncExtension', 'fish', 'git', 'go', 'goland', 'helm', 'i3bar', 'i3blocks', 'java', 'kitty', 'ko', 'kubectl', 'lightdm', 'make', 'monorail', 'ninja', 'nix', 'nix-build', 'nix-daemon', 'node', 'git-remote-https', 'nvim', 'package_script_service', 'perl', 'PK-Backend', 'roxterm', 'sdk', 'sdzoomplugin', 'sh', 'skhd', 'sshd', 'swift', 'systemd', 'terminator', 'kue', 'test2json', 'tmux', 'tmux:server', 'vi', 'vim', 'watch', 'gephi', 'wezterm-gui', 'xargs', 'xcrun', 'xfce4-terminal', 'yum', 'zellij', 'zsh' ) AND parent_path NOT IN ( '/Applications/Docker.app/Contents/MacOS/Docker', '/Applications/Docker.app/Contents/MacOS/install', '/Applications/Docker.app/Contents/Resources/bin/docker-credential-desktop', '/bin/dash', '/usr/bin/dirname', '/bin/sh', '/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Helpers/GoogleSoftwareUpdateDaemon', '/opt/X11/libexec/launchd_startx', '/sbin/launchd', '/usr/libexec/gdm-x-session', '/usr/lib/xorg/Xorg', '/usr/bin/alacritty', '/Library/Developer/CommandLineTools/usr/bin/git', '/usr/bin/apt-get', '/usr/bin/bash', '/usr/bin/bwrap', '/usr/bin/sysdiagnose', '/usr/bin/crond', '/usr/bin/login', '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea', '/Applications/Docker.app/Contents/Resources/bin/com.docker.cli', '/usr/bin/man', '/usr/bin/sudo', '/usr/bin/xargs', '/usr/bin/zsh', '/usr/libexec/gnome-terminal-server', '/usr/libexec/periodic-wrapper', '/usr/bin/su' ) -- npm run server AND NOT p.cmdline IN ( 'sh -c -- exec-bin node_modules/.bin/hugo/hugo server', 'sh -c xcode-select --print-path >/dev/null 2>&1 && xcrun --sdk macosx --show-sdk-path 2>/dev/null' ) AND NOT ( pp.name = 'sshd' AND p.cmdline LIKE '%askpass%' ) AND NOT ( pp.name = 'steam' AND p.cmdline LIKE 'sh -c %steamwebhelper.sh%' ) AND NOT ( pp.name = 'bash' AND p.cmdline LIKE 'sh -s _hostname %' ) AND NOT ( pp.cmdline LIKE 'perl%/help2man%' AND p.cmdline LIKE 'sh -c man/%' ) AND NOT ( pp.cmdline LIKE '%/google-cloud-sdk/bin/docker-credential-gcloud get' AND parent_path LIKE '/private/var/folders/%/T/go-build%.test' ) AND NOT p.cmdline LIKE '%/Library/Apple/System/Library/InstallerSandboxes%' AND NOT p.cmdline LIKE '%gcloud config config-helper%' AND NOT p.cmdline LIKE '%hugo/hugo server%' AND NOT pp.cmdline LIKE '/Applications/Warp.app/%' AND NOT pp.cmdline = 'npm run start' AND NOT pp.cmdline LIKE '%brew.rb%' AND NOT pp.cmdline LIKE '%/Homebrew/build.rb%' AND NOT pp.cmdline LIKE '%Code Helper%' AND NOT pp.cmdline LIKE '%gcloud.py config config-helper%' AND NOT pp.cmdline LIKE '/usr/lib/electron19/electron /usr/lib/code/out/bootstrap-fork --type=ptyHost --logsPath /home/%/.config/Code - OSS/logs/%' AND NOT pp.name LIKE '%term%' AND NOT pp.name LIKE '%Term%' AND NOT pp.name LIKE 'Emacs%' AND NOT pp.name LIKE 'terraform-provider-%' AND NOT pp.path LIKE '/Users/%/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Helpers/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent' -- Oh, NixOS. AND NOT pp.name LIKE '%/bin/bash' AND NOT pp.name LIKE '%/bin/direnv' AND NOT parent_path LIKE '/nix/store/%sh' AND NOT parent_path LIKE '/opt/homebrew/%'