Как можно отследить детали задачи, созданной в CRON?
Есть несколько линуксовых машин Ubuntu 20.04 и Debian 7. Так же на этих машинах стоит лог-коллектор, который передаёт журналы этих машин на сервер сбора логов.
Мне нужно отследить создание задачи CRON, обязательно чтобы было видно команду, которую эта задача должна выполнить.
Два дня гуглю, всё что есть - событие START EDITING, END EDITING (но нету исполняемого файла/скрипта этой задачи) и собственно запуск самой задачи (где уже видно исполняемый файл, но к этому времени может быть уже поздно.
Вопрос больше из области ИБ, то есть нужно увидеть что была создана задача с такими-то параметрами ещё ДО того, как она будет запущена.
То есть, нужно получить саму cron-строку, например: */1 * * * * /home/user/start.sh
Это вообще возможно реализовать?
думаю никак, ну или почти никак.
т.к. теоретически задание может создаваться/изменяться "каждую секунду",
значит нужно как минимум "1 раз в секунду" мониторить изменения в
/var/spool/cron*
ну увидели вы изменения и само задание и ... дальше то что????
я думаю что вы как то не правильно подходите к решению задачи
1. Вполне правильно подхожу к вопросу. Я обладаю инструментом, который железобетонно подхватит записанное событие, но для этого его нужно сначала записать, не важно как часто оно будет меняться, хоть каждую минуту, хоть секунду.
2. В этом то и дело, что я хочу понять, как записать событие в syslog (или любой другой файл) все добавленные cron выражения. При вводе команды crontab -e, то есть команда для добавления задач в cron, в файл cron.log пишутся такие события:
Apr 23 02:08:10 srv crontab[20367]: (root) BEGIN EDIT (root)
Apr 23 02:08:45 srv crontab[20367]: (root) REPLACE (root)
Apr 23 02:08:45 srv crontab[20367]: (root) END EDIT (root)
Apr 23 02:09:01 srv cron[1098]: (root) RELOAD (crontabs/root)
Apr 23 02:13:28 srv crontab[22152]: (root) LIST (root)
То есть, фактически записывается только информация о типе действий, но не сами действия. Даже в этом случае, при смене задач хоть каждую секунду, события всё равно записываются, но не в том объёме что мне нужно
3. Насколько мне известно, запускать задачу cron чаще, чем раз в минуту нельзя. Поэтому даже если задачи будут перезаписываться каждую секунду, раньше чем через минуту они не запустятся. Поэтому моё условие - отловить ДО запуска - будет выполняться.
Банальная задача (не моя), с которой может столкнуться каждый - знать о списке задач cron перед их запуском, поскольку cron может быть запрограммирован на запуск например раз в год. Было бы глупо год просидеть с сервером, на котором запланирована задача на запуск вредоноса.
Пока писал 3-й пункт, понял что можно раз в минуту запускать скрипт, пишущий в файл вывод команды crontab -l.
Но всё-таки, хотелось бы услышать мнение гуру линукса, либо того кто уже сталкивался с такой задачей.
если нормально розданы права, то кроме рута никто не запустит ваш вредоносный код,
а если и запустит, то он ничего не сможет сделать, больше чем положено пользователю, от которого его стартанули.
если нормально розданы права, то кроме рута никто не запустит ваш вредоносный код,
а если запустит обычный юзер, то он ничего не сможет сделать, больше чем положено пользователю, который его стартанул.