-- Find root-run processes which link against libpcap
--
-- WARNING: This check consumes an unusual amount of system memory (up to 225MB)
--
-- references:
--   * https://attack.mitre.org/techniques/T1205/001/ (Traffic Signaling: Port Knocking)
--
-- platform: darwin
-- tags: persistent state process sniffer
SELECT
  pmm.pid,
  p.uid,
  p.gid,
  pmm.path AS lib_path,
  p.path AS child_path,
  p.name AS child_name,
  p.cmdline AS child_cmd,
  p.cwd AS child_cwd,
  h.sha256 AS child_sha256,
  pp.path AS parent_path,
  pp.name AS parent_name,
  pp.cmdline AS parent_cmd,
  pp.cwd AS parent_cwd,
  pp.euid AS parent_euid,
  ph.sha256 AS parent_sha256,
  s.authority,
  s.identifier
FROM
  processes p
  LEFT JOIN process_memory_map pmm ON p.pid = pmm.pid
  LEFT JOIN processes p ON pmm.pid = p.pid
  LEFT JOIN hash h ON p.path = h.path
  LEFT JOIN processes pp ON p.parent = pp.pid
  LEFT JOIN hash AS ph ON pp.path = ph.path
  LEFT JOIN signature s ON p.path = s.path
WHERE
  p.euid = 0
  AND pmm.path LIKE '%libpcap%'
  -- These are all protected directories
  AND child_path NOT LIKE '/System/%'
  AND child_path NOT LIKE '/usr/libexec/%'
  AND child_path NOT LIKE '/usr/sbin/%'
  AND child_path NOT LIKE '/usr/bin/%'
  AND child_path NOT LIKE '/nix/store/%/bin/nix'
  AND child_path NOT LIKE '/opt/homebrew/Cellar/vim/%/bin/vim'
  AND child_path NOT LIKE '/usr/local/kolide-k2/bin/osqueryd-updates/%/osqueryd'
  AND NOT s.authority IN (
    'Software Signing',
    'Apple Mac OS Application Signing',
    'Developer ID Application: Kolide Inc (YZ3EM74M78)',
    'Developer ID Application: Docker Inc (9BNSXJN65R)'
  )
GROUP BY
  p.pid
