El servicio syslog, que escribe mensajes de registro creados por el kernel y por otros servicios en varios archivos de registro, la consola y / u otros destinos, se ejecuta bajo su propia cuenta de usuario especial. También lo hacen muchos otros servicios. Esto es para implementar el principio de menor privilegio :
Para minimizar el posible impacto de un servicio comprometido o defectuoso (por ejemplo, un servicio que tiene un error que a su vez es explotado por un atacante, o un servicio que tiene un error que causa es hacer cosas no deseadas al azar, o un servicio que ha sido diseñado deliberadamente por un desarrollador maligno para hacer cosas malas), desea que cada servicio tenga acceso solo a lo que necesita para su funcionamiento y nada más.
En cualquier sistema operativo similar a Unix (que incluye todas las distribuciones de GNU / Linux como Ubuntu), puede asignar privilegios más fácilmente (que es principalmente el derecho de leer y / o escribir desde / a ciertos archivos o cosas similares a archivos como nodos de dispositivo) en función de usuarios y grupos. Existen otras posibilidades, pero a menudo son más tediosas y propensas a errores de configuración, o funcionan solo en contextos específicos.
Entonces, el servicio syslog se ejecuta bajo la cuenta de usuario syslog. Si ahora, por ejemplo, un atacante puede hacer que el servicio de syslog haga lo que le dicen en lugar de lo que se supone que debe hacer, el servicio de syslog todavía está restringido (el núcleo lo aplica según la cuenta de usuario, no lo hace el syslog) software en sí, lo que sería inútil porque está comprometido) para escribir solo en los archivos de registro (los únicos archivos a los que el usuario de syslog tiene acceso de escritura). Por lo tanto, el atacante no puede utilizar el servicio de syslog comprometido para, por ejemplo, cambiar el contenido de un sitio web o una base de datos alojada en la misma computadora, porque los archivos relevantes están configurados para que se puedan escribir solo por un conjunto particular de otro usuario (humano o del sistema ) cuentas, no por la cuenta de usuario syslog.
Para causar más daño que simplemente eliminar / modificar los archivos de registro y leer archivos "públicos" (con permiso de "lectura" para todos), el atacante primero necesitaría explotar adicionalmente un segundo error, ya sea en el núcleo o en algún software que se instala para ejecutarse con diferentes privilegios que el usuario que lo invocó ( setuid ), y así obtener privilegios adicionales ( escalada de privilegios ).
El
users
comando que usó, de acuerdo con
su página de manual , muestra solo los usuarios que están
actualmente conectados . Como el usuario de syslog es un
usuario del sistema , nunca iniciará sesión, por lo que nunca aparecerá en esta lista. Puede examinar el archivo
/etc/passwd
o utilizar cualquiera de los otros métodos descritos
aquí para obtener una lista de
todos los usuarios (humanos y del sistema) en su sistema.