Escenario
Uno de mis clientes tiene algunos cuadros basados en Debian directamente accesibles en Internet sin firewall en el puerto ssh. Esos cuadros se configuran para una notificación de correo "instantánea" cuando un usuario ssh remoto inicia sesión con éxito:
me @ server: ~ $ sudo cat / etc / ssh / sshrc
ip='echo $SSH_CONNECTION | cut -d " " -f 1'
logger -t ssh-wrapper $USER login from $ip
echo "User $USER just logged in to $(hostname) from $ip" | mail -s "SSH Login" -- [email protected] &
Me preguntaba si esto podría realmente considerarse como una (buena) notificación de seguridad, ya que el usuario que inicia sesión está ejecutando este comando y, por lo tanto, un usuario malintencionado podría tener control sobre dicho evento. Obviamente, pasan milisegundos después del inicio de sesión, por lo que debería ser muy difícil para un atacante atraparlo, pero aún no estoy seguro de que un usuario remoto no pueda eludir este sshrc global del lado del servidor.
Por ejemplo, he estado trabajando para ellos durante meses y ni siquiera me había dado cuenta, pero recibían una notificación cada vez que ingresaba. Señalaron mi atención al respecto porque dijeron que habían cambiado algo en uno. de sus scripts, que ahora están generando muchas más conexiones que antes y, por lo tanto, me pidieron que evitara que este usuario genere la notificación para evitar que el buzón se inunde.
Como soy un chico instintivo, agregué rápidamente un if
para que coincida con el usuario que no debería generar la notificación, e hizo el truco, pero creo que esto hace que esta medida sea incluso más débil de lo que ya parecía .
No sé si es posible, probé muchas búsquedas diferentes que no arrojaron nada relevante, pero si un usuario en el lado del cliente puede especificar una ruta diferente para el sshrc, por ejemplo, esta medida fracasaría miserablemente Si el MTA tiene una cola completa y el usuario puede elevarlo, podría fácilmente poner en cola / retrasar el correo, por eso cambiaría el correo con un servicio de SMS al menos.
Estas son solo algunas de mis dudas, y es por eso que planeo hablar con el CIO del cliente sobre esta debilidad, y me gustaría conocer su opinión al respecto. Por supuesto, me preguntará "¿cuál crees que sería una solución más segura y aún gratuita?" El efectivo es siempre el rey.
Sinceramente, aún no tengo una respuesta para esa pregunta, pero creo que si quieren mantener esta "lógica", al menos, la raíz debe mirar el registro y notificar cuando cada usuario inicia sesión No todos los minutos crontab, ya que quieren que las notificaciones sean instantáneas. Así que creo que podría escribir algo con fileschanged y tail, y usar SMS o guardar el correo como prefiera el cliente. Eso sería ejecutado por root y por lo tanto no estará bajo el control del usuario.
Preguntas
: ¿Es posible que un usuario remoto sin privilegios deshabilite el lado del cliente sshrc del servidor?
-El cliente desea mantener este tipo de notificación, ya sea buena o mala, ¿considera usted esta manera de obtener una buena manera?
-¿Hay alguna otra forma gratuita de que se le notifique con prontitud en un inicio de sesión ssh, de manera no evitable?
-¿No crees que sería más seguro cambiar de correo electrónico a SMS?