[ anterior ] [ Resumen ] [ Nota de Copyright ] [ Contenidos ]

Auditorías de Seguridad en GNU/Linux.
Apéndice A Apéndices


A.1 Curiosidades de SATAN

Existen ciertas curiosidades relacionadas con SATAN, que se reflejan aquí para información de los lectores.

La imagen de SATAN, un personaje humanoide con una cara caótica y extraña, no ha sido fruto de la imaginación de sus programadores. Se trata de una aportación del dibujante Neil Gaiman, autor del comic Sandman, al proyecto. El boceto original, firmado por éste, forma parte de la distribución de SATAN.

El nombre SATAN también puede resultar ofensivo a algunas personas, los programadores, para evitar discrepancias aunque piensan que el nombre del programa se ajusta muy bien a su herramienta, facilitaron el que se pudiera cambiar el nombre de éste. Existe un programa en la distribución de SANTA repent (arrepentir) que, si se ejecuta, cambia todas las menciones del angel caído a SANTA (Security Analysis Network Tool for Administrators).

Otra curiosidad algo más molesta es que debido al modelo de diseño de SATAN, las páginas de WWW vistas en el navegador son en realidad scripts en Perl que ejecuta éste. Por ello la extensión de todas estas páginas es .pl esto puede causar problemas en navegadores que tengan configurado esta extensión como un tipo MIME determinado (application/x-perl). El navegador de Netscape, por ejemplo, por no saber qué hacer con este tipo de documentos pedirá al usuario un lugar donde guardarlos. Desde luego éste no es el comportamiento deseado, ya que uno quiere ver el resultado directamente sobre el navegador. Para conseguir esto, es necesario ir (en el Navigator) al menú de Preferencias/Aplicaciones, eliminar el tipo MIME asociado a la extensión pl y añadir dentro de los documentos del tipo text/html (que son interpretados por el navegador) la extensión pl. En el Communicator se ha de modificar esto en el menú Preferencias/Avanzadas/Aplicaciones.

Esto se debe a que cuando Dan Farmer y Wietse Venema diseñaron SATAN, aún no estaba extendido el uso de tipos MIME para todo y tampoco, desde luego, estaba asignado esta extensión al lenguaje Perl ya que por entonces andaba en sus orígenes y no se había extendido tanto como hasta ahora.


A.2 El problema de ejecución de binarios como root

Es un riesgo indudable ejecutar binarios como superusuario, aunque es algo de lo más común para muchos usuarios, que encuentran que un determinado programa no se ejecuta como usuario normal y sí lo ejecutan como superusuario. Es el caso, por ejemplo, de muchos juegos que hacen uso de la librería svgalib, ya que para el manejo a bajo nivel del hardware (indispensable en muchos juegos) hace falta ejecutar el juego como root (o poner éste setuid).

En el caso de SATAN se conoce una distribución de binarios de la versión de este para Linux que era en realidad un troyano. Realizaba todas las funciones de SATAN perfectamente pero el que la distribuyó añadió código que ponía en compromiso el sistema en el que fuera ejecutado. Curiosamente, aquella persona (que dicho sea de paso perdió su trabajo por su "hazaña") también distribuyó el código fuente, que se puede poner como ejemplo de un troyano.

Los cambios al código tenían lugar en el programa fping, al que añadía una nueva función llamada backdoor() que era ejecutada por main() después de comprobar que había sido ejecutada por el superusuario. Esta función tenía como tarea añadir un nuevo usuario a la base de datos de usuarios (el fichero /etc/passwd), llamado suser después de comprobar que no existía. Posteriormente hace setuid el binario fping, y abre una conexión remota a un servidor cuyos ficheros de registro eran accesibles por todo el mundo. Se conecta a un puerto abierto por el demonio inetd, que no está conectado a ninguna aplicación, pero que sin embargo se registra como acceso. Esto posiblemente lo hacía para poder ver quienes ejecutaban esta versión "modificada" de SATAN, y poder acceder a ellos como usuario 'suser' y con la password conocida.

La segunda parte del troyano, dentro del código de fping en la función main, hacía que, si éste era ejecutado por el usuario 'suser' y fijaba una determinada variable de entorno, el programa inmediatamente arrancaba una shell. Dado que el programa ahora tenía setuid del superusuario (si era el propietario del fichero) lo que se obtenía al ejectuar fping con esta modificación que era una shell de root.

El código de este troyano, comentado por ldoolit@cebaf.gov, está disponible en el CD de la revista, junto a la distribución de SATAN.


A.2.1 QueSO, un programa que indica el SO

Los programas auditores de seguridad vistos utilizan métodos rudimentarios para "adivinar" el sistema operativo que utiliza la máquina sobre la que se están haciendo los tests. NESSUS, por ejemplo, lo hace en base a dos conexiones: una conexión al puerto de FTP (21) y otra al puerto de telnet (23- login remoto). Con la primera identifica si es un sistema Windows o un UNIX, basándose en la cadena de bienvenida recibida; si contiene a la palabra "Microsoft" se trata de un NT y si contiene la palabra "wu-" decide que es un UNIX (el servidor wu-ftp, es el más utilizado en el mundo UNIX). Mirando en el puerto de telnet busca determinadas cadenas de caracteres para adivinar si es un Linux, IRIX, FreeBSD, etc.. Esto está implementado como un "plugin" llamado guess_os.

SATAN implementa algo parecido en su lista de reglas rules/hosttype, en la que simplemente busca expresiones regulares en las respuestas de los programas que utiliza para monitorizar el servidor remoto y en función de éstas decide si es un SGI, SUN, APOLLO, VMS, Linux..

Ambos métodos pueden ser engañados por un administrador que cambie las cabeceras de sus servicios para indentificarse de forma distinta, y además fallarán si no existe ningún servicio que proporcione esta información textual.

Un método técnicamente más avanzado, y con más estilo, es el implementado por QueSO de Jordi Murgo. Se trata de una idea apuntada por otros programas como por ejemplo tft de Lamont Granquist (enviado a rootshell el 7 de julio de 1998), que realiza pruebas sobre la respuesta de una máquina a las 64 "banderas" del protocolo TCP.

QueSO (también llamado WathOS) identifica el sistema operativo en función de la implementación TCP/IP; en particular en función de la respuesta a paquetes "extraños" cuyo comportamiento no está definido en ningún RFC y por tanto cuya respuesta depende de la programación de la pila de protocolos en el sistema operativo concreto. En total envía siete paquetes, y compara la respuesta con una base de datos de respuestas típicas por sistemas operativos entregada con el programa.

El programa está disponible en código fuente, bajo la licencia GNU en http://apostols.org/projectz/queso/, ha sido programado por un español y es capaz de reconocer entre más de ochenta implementaciones distintas en diversos sistemas operativos.


A.3 Programas relacionados con la seguridad y dónde encontrarlos.

He aquí el listado de los programas que se comentan en este artículo y el servidor donde se puede obtener la fuente original:

En general se pueden encontrar muchos programas de seguridad en los siguientes servidores, aunque el contenido de algunos de éstos se incluye en el CD, se recomienda su visita para buscar nuevas herramientas de seguridad:


A.4 Por qué no auditar TODOS los ordenadores

Los programas que se han visto tienen limitaciones, propias o impuestas por el usuario (esto es, configurables) para poner límite a los ordenadores a los que van a inspeccionar. Esto es así porque es muy posible, sobre todo debido a una mala configuración, que se inspeccionen ordenadores fuera de la red que uno está administrando, es decir fuera de su "jurisdicción".

Evidentemente nadie quiere que sus ordenadores sean inspeccionados de esta forma sin haber dado su consentimiento, y este tipo de acciones puede ser considerado un ataque contra sus equipos informáticos, es posible que incluso sea consideraod ilegal. Los autores de SATAN advierten de estos peligros en la documentación del programa.

Este tipo de escaneres "despertarán", además, muchas alarmas en los sistemas (incluyo en aquellos que no tengan programas específicos para detectarlos) y que estarán a la vista de cualquier administrador.

En resumen, tener cuidado cuando se hace uso de estos programas y limitar al máximo la "libertad" que se les da para acceder a otros servidores. En todos ellos (SATAN, SAINT y NESSUS) es posible definir un "límite de profundidad", así como servidores sobre los que nunca realizará las pruebas; es conveniente usar estas facilidades.

Como dicen los autores: "Last but not least, SATAN was written to improve Internet security. Don't put our work to shame."


A.4.1 Dónde buscar información relativa a la seguridad

Existen invaluables fuentes de información en la Red concernientes a seguridad de GNU/Linux, en particular, y de cualquier otro sistema operativo en general. Servidores como rootshell ponen a disposición del usuario una gran cantidad de información aplicable a problemas de seguridad. Algunos de estos servidores han sido instalados por agencias gubernamentales y otros pertenecen al lado algo más "oscuro" de Internet:


A.5 Capturas

Capturas incluidas con el articulo y sus pies de páginas:


A.6 Capturas2

Las capturas incluidas con el artículo son las siguientes


[ anterior ] [ Resumen ] [ Nota de Copyright ] [ Contenidos ]
Auditorías de Seguridad en GNU/Linux.
15 feb 1999
Javier Fernández-Sanguino Peña jfs@computer.org