file where host.os.type == "linux" and event.dataset == "fim.event" and event.action == "updated" and
file.path : (
// cron, anacron & at
"/etc/cron.d/*", "/etc/cron.daily/*", "/etc/cron.hourly/*", "/etc/cron.monthly/*",
"/etc/cron.weekly/*", "/etc/crontab", "/var/spool/cron/crontabs/*", "/etc/cron.allow",
"/etc/cron.deny", "/var/spool/anacron/*", "/var/spool/cron/atjobs/*",
// systemd services & timers
"/etc/systemd/system/*", "/usr/local/lib/systemd/system/*", "/lib/systemd/system/*",
"/usr/lib/systemd/system/*", "/home/*/.config/systemd/user/*", "/home/*/.local/share/systemd/user/*",
"/root/.config/systemd/user/*", "/root/.local/share/systemd/user/*",
// LD_PRELOAD
"/etc/ld.so.preload", "/etc/ld.so.conf.d/*", "/etc/ld.so.conf",
// message-of-the-day (MOTD)
"/etc/update-motd.d/*",
// SSH
"/home/*/.ssh/*", "/root/.ssh/*", "/etc/ssh/*",
// system-wide shell configurations
"/etc/profile", "/etc/profile.d/*", "/etc/bash.bashrc", "/etc/zsh/*", "/etc/csh.cshrc",
"/etc/csh.login", "/etc/fish/config.fish", "/etc/ksh.kshrc",
// root and user shell configurations
"/home/*/.profile", "/home/*/.bashrc", "/home/*/.bash_login", "/home/*/.bash_logout",
"/root/.profile", "/root/.bashrc", "/root/.bash_login", "/root/.bash_logout",
"/home/*/.zprofile", "/home/*/.zshrc", "/root/.zprofile", "/root/.zshrc",
"/home/*/.cshrc", "/home/*/.login", "/home/*/.logout", "/root/.cshrc", "/root/.login", "/root/.logout",
"/home/*/.config/fish/config.fish", "/root/.config/fish/config.fish",
"/home/*/.kshrc", "/root/.kshrc",
// runtime control
"/etc/rc.common", "/etc/rc.local",
// System V init/Upstart
"/etc/init.d/*", "/etc/init/*",
// passwd/sudoers/shadow
"/etc/passwd", "/etc/shadow", "/etc/sudoers", "/etc/sudoers.d/*",
// Systemd udevd
"/lib/udev/*", "/etc/udev/rules.d/*", "/usr/lib/udev/rules.d/*", "/run/udev/rules.d/*", "/usr/local/lib/udev/rules.d/*",
// XDG/KDE autostart entries
"/home/*/.config/autostart/*", "/root/.config/autostart/*", "/etc/xdg/autostart/*", "/usr/share/autostart/*",
"/home/*/.kde/Autostart/*", "/root/.kde/Autostart/*",
"/home/*/.kde4/Autostart/*", "/root/.kde4/Autostart/*",
"/home/*/.kde/share/autostart/*", "/root/.kde/share/autostart/*",
"/home/*/.kde4/share/autostart/*", "/root/.kde4/share/autostart/*",
"/home/*/.local/share/autostart/*", "/root/.local/share/autostart/*",
"/home/*/.config/autostart-scripts/*", "/root/.config/autostart-scripts/*"
) and not (
file.path : (
"/var/spool/cron/crontabs/tmp.*", "/run/udev/rules.d/*rules.*", "/home/*/.ssh/known_hosts.*", "/root/.ssh/known_hosts.*"
) or
file.extension in ("dpkg-new", "dpkg-remove", "SEQ")
)
Install detection rules in Elastic Security
Detect Potential Persistence via File Modification in the Elastic Security detection engine by installing this rule into your Elastic Stack.
To setup this rule, check out the installation guide for Prebuilt Security Detection Rules(opens in a new tab or window).