Auditoría de sistemas UNIX. Parte 21. El servicio finger

Vamos a hacer una mención breve, dentro del capítulo de red, al uso del protocolo finger. Este protocolo es un clásico en el mundillo UNIX, y como sucede con otras muchas utilidades, entraña ciertos perligros. El objetivo de nuestro análisis será determinar si el empleo de servicios finger está provocando que incurramos en situación de riesgo.

Un poco de teoría

Finger es un protocolo destinado al tratamiento de la información de usuarios. El RFC que recoge la definición original data de 1977, actualizado años después, allá por 1991 en el RFC 1288. Finger ha sido siempre considerado una fuente de problemas en las máquinas UNIX. El porqué es muy fácil de entender. Muchas veces ofrece demasiada información, información que puede ser aprovechada por un atacante para recopilar información previa a una acción maliciosa.

Las escuchas finger se realizan a través del puerto 79.

Ejemplos de finger

Este es el formato que arroja finger en Linux, lanzado contra el localhost. Nótese el símbolo @, que debe anteceder al nombre de máquina cuyo finger queremos inspeccionar:

shernando@shernando:~$ finger @localhost
[netbsd.bridge.shernando] Login Name TTY Idle When Where
root Super-User console 3d Sun 19:14 :0
shernando Sergio *pts/3 43 Mon 19:24 openbsd.firewall.shernando

La información que arroja, generalmente, será el usuario con el que se ha hecho login, el nombre asociado, la consola empleada, el factor de inactividad (idle), el momento del login y el punto desde el cual el usuario se ha conectado. El asterisco (*) implica que esa consola sólo dispone de permisos de lectura.

Las consultas finger se pueden lanzar también contra un usuario determinado, arrojando la información disponible:

shernando@shernando:~$ finger shernando
Login: shernando Name: Sergio
Directory: /home/shernando Shell: /bin/bash
Last login Mon Feb 19 19:17 (CET) on pts/3 from netbsd.bridge.shernando
No mail.
No Plan.

Si la máquina destino lo admite, se puede lanzar finger contra un servidor remoto. Los resultados pueden ser devastadores, ya que mediante finger, es posible mostrar información sensible, si así lo permite el servicio: además de datos técnicos, podemos ver, por ejemplo, teléfono de la oficina, emplazamiento de la oficina, puesto de trabajo y nombre real. Demasiada información para un atacante.

Resumen

El servicio finger puede ser útil para compartir información de los usuarios de una máquina, pero en la mayoría de los casos, permite revelar demasiada información de una máquina, incluyendo datos sensibles.

El auditor analizará si finger está o no activo, y documentará, en caso de que haya actividad finger, el grado de exposición de la máquina a los posibles atacantes, así como los datos que el servicio arroja.

En lo que respecta a mi criterio personal, creo muy desconsejable filtrar las escuchas al puerto 79. Mejor aún si desactivamos el servicio.