Me gustaría que Samhain supervise un archivo, por ejemplo /root/somefile
,. Este archivo no existe actualmente, pero me gustaría recibir una notificación si se crea en algún momento.
Añado esto a samhainrc
:
[ReadOnly]
file = /root/somefile
Esto hace que Samhain emita estas entradas de registro:
Oct 18 22:54:04 ip-172-31-24-115 Samhain[17123]: CRIT : [2018-10-18T22:54:04+0000] interface=<lstat>, msg=<No such file or directory>, userid=<0>, path=</root/somefile>
Oct 18 22:54:04 ip-172-31-24-115 Samhain[17123]: CRIT : [2018-10-18T22:54:04+0000] msg=<POLICY MISSING>, path=</root/somefile>
Oct 18 22:54:19 ip-172-31-24-115 Samhain[17157]: INFO : [2018-10-18T22:54:19+0000] msg=<Checking [ReadOnly]>, path=</root/somefile>
Oct 18 22:54:19 ip-172-31-24-115 Samhain[17157]: NOTICE : [2018-10-18T22:54:19+0000] msg=<Check failed>, path=</root/somefile>
Y si creo este archivo con echo test > /root/somefile
, entonces no se registran infracciones de la política; la adición de este archivo no se ha notado.
¿Cómo puedo configurar Samhain para que me notifique si se crea un archivo de interés previamente inexistente?
La IgnoreMissing
opción de configuración parecería útil a primera vista, pero no lo es. Con IgnoreMissing = /root/somefile
adentro samhainrc
, no hay cambio en el comportamiento. Parece que esta opción está destinada a archivos que se espera que se pierdan más tarde: suprime una alerta si existía un archivo, pero ahora no, por ejemplo, si un proceso automatizado elimina archivos que están desactualizados.
Aunque /root/somefile
obviamente está inventado en este caso, un ejemplo de dónde un archivo inexistente comienza a existir repentinamente es si el archivo /home/someuser/.ssh/authorized_keys
no existía anteriormente pero de repente existe; este podría ser un usuario malicioso que explotó algo para soltar una puerta trasera permitiendo ellos para iniciar sesión como usuario de shell. Esto es algo sobre lo que me gustaría recibir alertas.
Es posible usar dir = /home/someuser/.ssh
para monitorear todos los cambios en la .ssh
carpeta del usuario , pero esto no es útil: si es normal que el usuario use SSH en su cuenta, su .ssh/known_hosts
archivo puede cambiar, pueden cambiar su ssh_config
etc., y no quiero ser alertado por aquellos. Por lo tanto, no quiero monitorear todo el directorio aparte de algún archivo en la lista blanca; Quiero dejar el directorio sin supervisión aparte de archivos específicos y críticos.
authorized_keys
esto funcionaría bien.