Servicios

Web hosting
Ver »
Páginas Web
Ver »
Soporte UNIX
Ver »
UNIX TIPS
Ver »

Computer Oracle and Password System (COPS)

COPS significa Computer Oracle and password system, y como ya se mensionó pretende descubrir posibles riesgos de seguridad dentro de un sistema Unix.

¿Quien desarrollo COPS?

Esta herramienta fue desarrollado por Daniel Farmer y Eugene H. Spafford,en los laboratorios COAST de la Universidad de Purdue.

¿Qué problema resuelve?

El principal objetivo de cops es la detección de una gran variedad de posibles problemas de seguridad particulares de Unix como pueden ser:

    * Permisos de archivos, directorios y dispositivos del sistema.

    * Cuentas sin password.

    * Contenido, formato y seguridad de los archivos de grupos y password

    * Los programas y archivos que corren en /etc/rc* y en la tabla de cron.

    * La existencia de archivos SUID propiedad de root, y sus características

    * Verificación CRC de binarios.

    * ftp anónimo habilitado.

    * Posibles vulnerabilidad en los binarios.

¿Qué es COPS?

COPS significa Computer Oracle and password system, y como ya se mensionó pretende descubrir posibles riesgos de seguridad dentro de un sistema Unix.

Ultima versión de COPS

La última versión liberada fue la 1.04 junto con la noticia que sería la última versión disponible.

¿Donde obtener COPS?

Existen varios lugares de donde es seguro obtener via ftp la herramienta COPS:

      ftp://ftp.asc.unam.mx/pub/tools/cops.tar.gz


      ftp://ftp.cert.org/pub/tools/cops/cops.1.04.tar.gz

      ftp://coast.cs.purdue.edu/pub/tools/unix/cops/cops.1.04.tar.gz

IMPORTANTE!!
Asegurarse de obtener la herramienta de un lugar seguro, ya que de obtenerlo de un servidor no seguro exponemos nuestro sistema innecesariamente.

Configuración

Cops está integrado por una serie de programas especializados en la búsqueda de algún tipo de vulnerabilidad dentro del sistema.

Esta herramienta está integrada básicamente en los siguientes módulos:

    * Un conjunto de programas que intentan de forma automática detectar potenciales riesgos de seguridad.

    * Documentación.

    * El Script COPS de ejecución en shell y perl.


Para construir los binarios de cops se requiere realizar los siguientes pasos:

      a)Obtener las rutas de dependencia entre archivos, y compiladores. (gcc, nroff, troff, etc.)

      $ ./reconfig

     b) Editar el shell script de cops y realizar las siguientes modificaciones según se requieran.

      $vi ./cops


     b.1) Cops requiere obtener la ruta completa donde se encuentran los módulos de cops, para esto debemos modificar la directiva SECURE de cops, esta directiva se localiza sobre la línea 93 y tiene la siguiente ruta por default.


      SECURE = /usr/foo/bar

     debe quedar:

      SECURE=/herramientas/cops_104


      b.2) Cops requiere obtener información sobre el usuario que está ejecutando la herramienta y esta la obtiene de la variable SECURE_USERS, con la dirección electrónica por default:

      SECURE_USERS="foo@bar.edu"

      modificar esta línea por el correo electrónico del usuario que ejecutará cops.


Ejemplo:

      SECURE_USERS="usuario@maquina"


     c) Si nuestro sistema tiene habilitado /etc/shadow, deshabilitar esta opción del cops se requiere comentar (usando el simbolo #) el módulo pass.chk, sobre la línea 198 dentro de cops.


      Se ve de la forma siguiente el código que se necesita comentar.


if $TEST -n "$verbose" ; then
      $ECHO "**** pass.chk ****" >> $VERBUCKET ; fi
$SECURE/pass.chk "-w ./pass.words


      d) Una cuenta valida en la mayoria de los sistemas es la cuenta ftp anonymous, para verificar su correcto funcionamiento si existe, podemos indicarlo dentro de cops.

      Sobre la línea 192 se encuentra el código que llama a la rutina de verificación de ftp.chk, se debe habilitar una bandera para lograr que esta verifique las opciones de ftp anonymous.



if $TEST -n ?$verbose? ; then
    $ECHO ?**** ftp.chk ****? >> $VERBUCKET ; fi
$SECURE/ftp.chk -a >>$RESULT 2>> $BIT_BUCKET


      e) Verificación del estado de los binarios del sistema mediante el módulo crc.chk.

      Ya que por default cops lo trae deshabilitado. La ejecución de este módulo se encuentra sobre la línea 218, para esto descomentamos (eliminando #) lo siguiente:



#if $TEST -n ?$verbose? ; then
#   $ECHO ?**** crc.chk ****? >> $VERBUCKET ; fi
#$SECURE/crc.chk 2>> $BIT_BUCKET

# crc.chk puts it´s results in a file called crc.results ...
#if $TEST -s ?$SECURE/crc_results? ; then
#   $CAT $SECURE/crc_results >> $RESULT
#fi

      f) La verificación de los binarios con SUID activados por default (passwd, su, lpr, etc.) En la línea 70 se activa el módulo suid.chk, por default no se realiza esta verificación.


      RUN_SUID=NO

      debe quedar:

      RUN_SUID=YES.


      Tambien descomentar 230-232 modificar el direcccionamiento.


# if $TEST "$RUN_SUID" = "YES" ;then
#   $SECURE/suid.chk > /dev/null 2>&1
# fi

     g) Por ultimo salvar los cambios realizados en el script cops.

Compilación de los fuentes de COPS

Como ya mencionamos cops está integrado por una serie de módulos programados en C, los cuales realizan la verificación fuerte del sistema, estos archivos se localizan en:

      /ruta/a/cops_104/src/

Para obtener el código ejecutable se requiere solamente de ejecutar:

      $ make all


TIP!!
En el caso de linux es necesario activar la bandera BRAINDEADFLAGS descomentando la linea siguiente:

      #BRAINDEADFLAGS= -lcrypt

dentro del archivo makefile.

Operación

Después de haber compilado los fuentes de cops, solo se necesitará ejecutar el scripts cops el cual tiene la siguiente sintaxis:

      cops [-a architecture] [-b bit_bucket] [-s secure_dir] [-m user] [-f filter_file] [-dxvV]

      donde:

-a     : Especifica el suubdirectorio arquitectura que deseamos ejecutar, Al ejecutar make install se generarán los binarios adecuados.
-b     : Especifica el biit bucket, donde se almacenarán todos los mensajes de error.
-d     : Enviará uun reporte por correo electrónico si existen cambios desde la ultima vez que se ejecuto cops.
-f     : Especifica el arrchivo de filtro que cops usará para filtrar los mensajes de advertencia extraños.
-m     : Cops enví;a la salida por correo electrónico al usuario especificado.
-x     : Muestra la versiión de cops.
-vV     : Activa el modo de verbose.
Ejemplo:

Como ejecutar cops y obtener un reporte de la forma año_mes_dia.

      $ ./cops -v&

Nota: Al terminar la ejecución de cops este generará un reporte con los resultados encontrados este resultado se encontrará sobre un directorio en la ruta que definimos dentro del script de cops el directorio tendrá el nombre de la máquina y dentro de este directorio se encontrará un archivo con la fecha de la auditoria con la característica siguiente:

      año_mes_dia.

Tips

Ejemplo:

Ejecución de cops sobre una línea de crontab para verificar el estado en que se encuentra el sistema:

0 0 * * * /herramientas/cops_104/cops -v

Regresar


Random TIPS

SET AUTORIZED SHELLS

# cut -d: -f7 /etc/passwd | sort -u | sed "/^$/d" > /etc/shells

free counters