Cron / anacron / at deep audit Linux scheduled-execution persistence — C1-C7, parallel to systemd_audit.

The existing persistence_outlier detector catches cron entries whose command lives in a writable path. CronAuditDetector covers the cron-specific patterns it misses.

Scope

Consumes Artifacts emitted by the existing linux.cron collector:

Per-line parsing handles both shapes:

Env-var lines (SHELL=, MAILTO=) and @<keyword> shortcuts are skipped at parse time.

Detection layers (C1–C7)

IDSeverityWhat it catchesMITRE
C1high → criticalNetwork-fetch in entry body (curl/wget/nc/socat/python-socket). Cron downloading on schedule = payload-rotation primitive. Critical for pipe-to-shell.T1053.003
C2mediumLong base64 / escaped-hex sequence.T1027
C3highCommand in user-writable path. Whoever can write to that target edits what cron runs.T1053.003
C4criticalroot-context entry with command outside /usr/sbin /usr/bin /sbin /bin /opt /usr/local. Canonical Linux escalation via cron.T1053.003
C5medium@reboot persistence — runs on every boot.T1037
C6mediumat-job present in /var/spool/at. Delayed exec / anti-sandbox primitive.T1053.001
C7mediumSchedule fires more often than every 5 minutes. * * * * * = 60s; */N * * * * = 60N; 0 * * * * = 3600; 0 */N * * * = 3600N. Beacon-shape cadence.T1053.003

No new CLI needed

The cron collector already runs as part of digger collect; the detector runs at digger scan time.