Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Seguridad en Unix y redes - Extensiones de la seguridad

Seguridad en Unix y redes - Extensiones de la seguridad

 ****- (7 opiniones)
GNU Free Documentation License Tutorial de Antonio Villalón Huerta - 28 de Febrero de 2006
Temas Relacionados: Seguridad informática
47. Extensiones de la seguridad

ASET


ASET (Automated Security Enhancement Tool) es un conjunto de herramientas integradas dentro de Solaris que permiten monitorizar ciertos valores de parámetros de los ficheros del sistema, desde atributos ubicados en los inodos (permisos, propietario...) hasta el contenido de cada archivo. Estas herramientas se encuentran en el directorio /usr/aset/, y su utilidad es evidente: permite detectar cualquier cambio en uno de nuestros ficheros, cambio que si no ha sido realizado por un usuario debidamente autorizado puede esconder desde un troyano hasta una puerta trasera de entrada al sistema.
De todas las utilidades de que dispone ASET, la más importante es sin duda /usr/aset/aset, un shellscript encargado de invocar al resto de herramientas. Desde línea de comandos, este programa puede recibir como parámetro el nivel de seguridad deseado en la comprobación: `low', que se limita a informar de las vulnerabilidades potenciales, `mid', que modifica ciertos parámetros que considera incorrectos, y `high', el más restrictivo, que modifica más aún dichos parámetros, y que es recomendable en sistemas en los que la seguridad de Solaris sea un elemento por encima de cualquier otro, como el funcionamiento; incluso en la página man de aset se advierte que algunas aplicaciones pueden dejar de funcionar si utilizamos este nivel de seguridad.
Podemos invocar a /usr/aset/aset indicándole mediante el parámetro `-l' el nivel de seguridad deseado:
anita:/# /usr/aset/aset -l low

= ASET Execution Log

= ASET running at security level low Machine = anita; Current time = 0628_03:11 aset: Using /usr/aset as working directory Executing task list ... firewall env sysconf usrgrp tune cklist eeprom All tasks executed. Some background tasks may still be running. Run /usr/aset/util/taskstat to check their status: /usr/aset/util/taskstat [aset_dir] where aset_dir is ASET's operating directory,currently=/usr/aset. When the tasks complete, the reports can be found in: /usr/aset/reports/latest/*.rpt You can view them by: more /usr/aset/reports/latest/*.rpt anita:/#
La orden anterior habrá generado un directorio de informes cuyo nombre hace referencia a la fecha y hora de ejecución, y que al ser el último se enlaza también con el nombre latest; todos los reports generados por aset tienen extensión `.rpt' (son simples ficheros ASCII), y se guardan en /usr/aset/reports/. Cada uno de ellos contiene el informe de las potenciales vulnerabilidades que aset ha encontrado durante su ejecución, así como de los cambios que haya realizado en función del nivel de seguridad especificado. Como aset indica, el hecho de que la ejecución del comando haya finalizado no implica que los informes se hayan realizado completamente; podemos ejecutar /usr/aset/util/taskstat para ver que tareas no han finalizado aún.
Además de los informes de los que acabamos de hablar, la primera ejecución de aset genera una serie de archivos en el directorio /usr/aset/master/: en ellos se guarda una imagen del estado que la herramienta ha encontrado en el sistema, de forma que una ejecución posterior del programa - dentro del mismo nivel de seguridad - puede comprobar qué parámetros han cambiado en cada uno de los ficheros analizados; evidentemente, es vital para nuestra seguridad evitar que un atacante pueda modificar esta imagen, ya que de lo contrario podría `engañar' sin problemas a `aset'. Por ejemplo, al ejecutar `/usr/aset/aset' con un nivel de seguridad `low' se ha guardado en esa imagen cierta información sobre un fichero importante como /etc/inittab (en /usr/aset/asetenv se define la lista de directorios de los que se guarda una imagen en cada nivel de seguridad); parte de esta información se encuentra en /usr/aset/masters/cklist.low:
anita:/usr/aset/masters# grep inittab cklist.low -rw-r--r-- 1 root sys 1087 Jan 5 23:38 2000 /etc/inittab 26732 3 anita:/usr/aset/masters#

Podemos ver que los parámetros registrados de este archivo: propietario y grupo, permisos, número de enlaces, tamaño, fecha y hora de la última modificación y un checksum. Si ahora un atacante decidiera modificar ese fichero (por ejemplo para situar un troyano en él) casi con total seguridad modificaría alguno de esos parámetros, por lo que la siguiente ejecución de la herramienta reportaría este hecho:

anita:/# grep inittab /usr/aset/reports/latest/cklist.rpt < -rw-r--r-- 1 root sys 1087 Jan 5 23:38 2000 /etc/inittab 26732 3 > -rw-r--r-- 1 root sys 1237 Jun 28 19:58 2001 /etc/inittab 37235 3 anita:/#

Quizás una práctica recomendable para incrementar nuestra seguridad pueda ser planificar la ejecución de `aset' para que se ejecute a intervalos periódicos desde `crond' y para que nos avise (por ejemplo, mediante correo electrónico) de cualquier anomalía detectada en la máquina. Si lo hacemos así, hemos de tener siempre presente que el nivel `high' prima la seguridad por encima de cualquier otra cosa, por lo que tras una ejecución planificada de `aset' es posible que alguna aplicación puntual deje de funcionar.

JASS


JASS (JumpStart Architecture and Security Scripts, también conocido como Solaris Security Toolkit) es un paquete software formado por diferentes herramientas cuyo objetivo es facilitar y automatizar la creación y el mantenimiento de entornos Solaris seguros; ha sido desarrollado por Alex Noordergraaf y Glenn Brunette, dos expertos en seguridad de Sun Microsystems conocidos - especialmente el primero de ellos - por los BluePrints que periódicamente publican. Se puede ejecutar sobre una máquina donde previamente hemos instalado Solaris (Standalone Mode), o bien durante la propia instalación del operativo (JumpStart Technology Mode): conseguimos así una instalación por defecto segura, algo que se echa de menos en casi cualquier Unix.
Probablemente la parte más importante de JASS son los denominados drivers, ficheros ón que especifican diferentes niveles de ejecución de la herramienta, definiendo qué scripts se han de ejecutar en cada uno de esos niveles y qué archivos se instalarán como resultado de la ejecución. Cada uno de estos drivers está ubicado en el subdirectorio Drivers/ del programa, y tiene tres partes bien diferenciadas ([NB01b]): la primera se encarga de inicializar ciertas variables de entorno necesarias para una correcta ejecución del driver, la segunda de definir qué ficheros se han de modificar y qué scripts se han de ejecutar, y una tercera parte es la encargada final de llevar a cabo los cambios correspondientes.
En un sistema Solaris ya instalado podemos invocar desde línea de órdenes a JASS pasándole como parámetro el driver que deseemos ejecutar, por ejemplo secure.driver (un driver que implementa por sí sólo todas las funcionalidades de JASS):
anita:/var/tmp/jass-0.3# ./jass-execute -d secure.driver -o jass.log ./jass-execute: NOTICE: Executing driver, secure.driver ./jass-execute: NOTICE: Recording output to jass.log anita:/var/tmp/jass-0.3#

Todos los cambios que la ejecución anterior provoca (en el ejemplo anterior podemos verlos en el archivo `jass.log', o en salida estándar si no utilizamos la opción `-o') quizás convierten a nuestro sistema en uno `demasiado seguro': es posible que perdamos parte de la funcionalidad de la que disponíamos, debido al elevado número de restricciones llevadas a cabo en el sistema; es necesario que cada administrador revise sus necesidades y los scripts a los que va a invocar antes de ejecutar JASS. Afortunadamente, una de las características más importantes de esta herramienta es su capacidad para deshacer los cambios que cualquiera de sus ejecuciones haya llevado a cabo:

anita:/var/tmp/jass-0.3# ./jass-execute -u -o jass-undo.log ./jass-execute: NOTICE: Executing driver, undo.driver Please select a JASS run to restore through: 1. July 06, 2001 at 03:59:40 (var/opt/SUNWjass/run/20010706035940) Choice? 1 ./jass-execute: NOTICE: Restoring to previous run var/opt/SUNWjass/run/\ 20010706035940 ./jass-execute: NOTICE: Recording output to jass-undo.log anita:/var/tmp/jass-0.3#

Podemos ver que la desinstalación de los cambios llevados a cabo previamente, mediante la opción `-u' del programa, nos pregunta qué ejecución de JASS queremos desinstalar; como sólo lo habíamos lanzado una vez, hemos elegido `1', pero si ya hubiéramos ejecutado la herramienta en diferentes ocasiones se nos mostrarían todas ellas, con lo cual siempre podemos devolver a la máquina a un estado previo a cualquier ejecución de JASS. Esta característica es bastante importante, ya que volvemos a insistir en que, en función del driver al que invoquemos, el sistema puede quedar incluso demasiado `securizado': por poner un ejemplo, la ejecución de secure.driver eliminaría cualquier acceso estándar al sistema (telnet, FTP, rsh...), con lo que sería necesario de disponer de una consola o de SSH para acceder remotamente a la máquina tras la ejecución de JASS.
Como hemos dicho antes, también es posible integrar JASS en la propia instalación del sistema operativo Solaris; para ello hemos de basarnos en la arquitectura JumpStart de Sun Microsystems ([Noo01]), copiando el paquete de software en el directorio raíz del servidor JumpStart y siguiendo unos pasos simples explicados con detalle en [NB01c]. Con unas sencillas modificaciones de algunos ficheros, conseguiremos una instalación por defecto segura, lo que evitará que el administrador de los sistemas tenga que ir máquina a máquina para realizar el típico hardening postinstalación (cerrar puertos, configurar accesos...).
La que acabamos de ver es una herramienta muy recomendable en cualquier sistema Solaris, ya que consigue automatizar muchas tareas que de otra forma el administrador debería realizar manualmente. Su potencia, unida a su sencillez de uso (y `desuso'), la convierten en algo si no imprescindible sí muy importante en nuestros sistemas; incomprensiblemente no se utiliza de forma extendida, aunque es previsible que con sus nuevas versiones (actualmente está disponible la 0.3) esto comience a cambiar pronto. Podemos obtener información adicional de esta herramienta en los BluePrints publicados por Sun Microsystems y que se distribuyen, aparte de vía web, en el directorio Documentation/ de la misma: [NB01b], [NB01a], [NB01c], [NB01d]...

sfpDB


La base de datos sfpDB (Solaris Fingerprint Database) es un servicio gratuito de Sun Microsystems que permite a los usuarios verificar la integridad de los archivos distribuidos con Solaris, tanto con la base del operativo como con productos concretos de Sun o parches; esto permite por una parte verificar que lo que acabamos de instalar en una máquina es realmente una distribución de Solaris oficial de Sun, y por otra detectar si un pirata ha logrado modificar alguno de los ficheros del sistema (como /bin/login), típicamente para situar troyanos o puertas traseras en una máquina atacada: se trata de un sistema de detección de intrusos basado en host, como veremos a la hora de hablar de IDSes.
Para lograr su objetivo, desde http://sunsolve.sun.com/## se puede comparar la función resumen MD5 de determinados archivos que tenemos en nuestra máquina con el resumen almacenado por Sun Microsystems. Para ello en primer lugar hemos de generar el resumen de los ficheros que deseemos verificar, mediante la orden md5 (instalada como parte del paquete SUNWkeymg o de forma independiente):
anita:/# pkgchk -l -p /usr/sbin/md5 Pathname: /usr/sbin/md5 Type: regular file Expected mode: 0755 Expected owner: root Expected group: sys Expected file size (bytes): 24384 Expected sum(1) of contents: 12899 Expected last modification: Nov 11 20:19:48 1999 Referenced by the following packages: SUNWkeymg Current status: installed anita:/# md5 /bin/su MD5 (/bin/su) = 79982b7b2c7576113fa5dfe316fdbeae anita:/#

Una vez hecho esto, introduciremos este resumen en un formulario web, y se nos proporcionará información sobre el mismo; si no hay problemas, el resultado será similar al siguiente:

Results of Last Search 79982b7b2c7576113fa5dfe316fdbeae - (/bin/su) - 1 match(es) canonical-path: /usr/bin/su package: SUNWcsu version: 11.8.0,REV=2000.01.08.18.17 architecture: i386 source: Solaris 8/Intel

Mientras que si el resumen que hemos obtenido no se corresponde con el de ningún fichero de las diferentes versiones de Solaris u otro software de Sun, se nos dará el error Not found in this database. Este error de entrada implica que en nuestra máquina tenemos algo cuanto menos `extraño', ya que es extremadamente raro que un archivo del sistema como
/bin/su, /bin/ps o /bin/ls sea modificado en un sistema. Si fuera este el caso, y como administradores desconocemos a qué puede ser debida esa modificación, con una alta probabilidad nos han instalado un rootkit, un conjunto de herramientas utilizadas por los piratas principalmente para ocultar su presencia y garantizarse el acceso en una máquina donde han conseguido privilegios de root; un rootkit instala versiones troyanizadas de casi todos los programas que pueden ayudar en la detección del pirata, como `ls' o `netstat', lo que provoca que si no ponemos un mínimo de interés sea muy difícil detectar la intrusión.
Existen además ciertas extensiones a la sfpDB cuyo objetivo es facilitar el uso de la base de datos [DNO01]; una de ellas es sfpC (Solaris Fingerprint Database Companion), que automatiza el proceso de generar y verificar los resúmenes MD5 de un número considerable de archivos mediante un script en PERL (recordemos que un simple interfaz web que invoca a un CGI no es apropiado para todas las aplicaciones, por lo que Sun Microsystems está estudiando la posibilidad de publicar de otra forma el contenido completo de la base de datos). Para conseguirlo, sfpC acepta como entrada un fichero que contiene una lista de resúmenes, dividiéndola en diferentes partes para enviarlas por separado a la sfpDB, y generando resultados globales en función de cada uno de los resultados individuales obtenidos.
Otra de estas herramientas es sfpS (Solaris Fingerprint Database Sidekick), un sencillo shellscript que funciona en conjunción con la propia sfpDB y con sfpC y cuyo objetivo es simplificar la detección de troyanos; para ello, almacena una lista de ejecutables comúnmente troyanizados por cualquier rootkit, y es el contenido de dicha lista el que se compara contra la base de datos mediante el script en PERL de sfpC.
Evidentemente esta base de datos de Sun Microsystems y sus utilidades asociadas (que podemos descargar libremente desde las páginas web de esta compañía), como cualquier otro producto a la hora de hablar de seguridad, no es la panacea, sino sólo una herramienta más que nos puede ayudar a detectar intrusiones en una máquina. También tiene puntos débiles, ya que por ejemplo un atacante que sea capaz de modificar ciertas utilidades del sistema podrá hacer lo mismo con el ejecutable
`md5', de forma que simule generar resultados similares a los originales cuando verificamos la integridad de utilidades troyanizadas; contra esto, una solución efectiva puede ser utilizar un `md5' estático y guardado en una unidad de sólo lectura, y por supuesto generado a partir de fuentes confiables. Sin ser una herramienta excluyente, mediantes consultas automatizadas a la base de datos proporcionada por Sun Microsystems tenemos la posibilidad de descubrir intrusiones graves en nuestros sistemas en un tiempo mínimo, y de forma sencilla.
Tabla de contenidos
  1. 1 - Introducción y conceptos previos
  2. 2 - Sobre la seguridad
  3. 3 - Sobre las redes
  4. 4 - Seguridad física de los sistemas
  5. 5 - Protección del hardware
  6. 6 - Protección de los datos
  7. 7 - Radiaciones electromagnéticas
  8. 8 - Administradores, usuarios y personal
  9. 9 - Ataques potenciales
  10. 10 - Qué hacer ante estos problemas
  11. 11 - El atacante interno
  12. 12 - El sistema de ficheros
  13. 13 - Sistemas de ficheros
  14. 14 - Permisos de un archivo
  15. 15 - Los bits SUID, SGID y sticky
  16. 16 - Atributos de un archivo
  17. 17 - Listas de control de acceso: ACLs
  18. 18 - Recuperación de datos
  19. 19 - Almacenamiento seguro
  20. 20 - Programas seguros, inseguros y nocivos
  21. 21 - La base fiable de cómputo
  22. 22 - Errores en los programas
  23. 23 - Fauna y otras amenazas
  24. 24 - Programación segura
  25. 25 - Auditoría del sistema
  26. 26 - El sistema de log en Unix
  27. 27 - El demonio syslogd
  28. 28 - Algunos archivos de log
  29. 29 - Logs remotos
  30. 30 - Registros físicos
  31. 31 - Copias de seguridad
  32. 32 - Dispositivos de almacenamiento
  33. 33 - Algunas órdenes para realizar copias de seguridad
  34. 34 - Políticas de copias de seguridad
  35. 35 - Autenticación de usuarios
  36. 36 - Sistemas basados en algo conocido: contraseñas
  37. 37 - Sistemas basados en algo poseído: tarjetas inteligentes
  38. 38 - Sistemas de autenticación biométrica
  39. 39 - Autenticación de usuarios en Unix: autenticación clasi
  40. 40 - Autenticación de usuarios en Unix: mejora de la seguridad (II)
  41. 41 - PAM
  42. 42 - Solaris
  43. 43 - Seguridad física en SPARC
  44. 44 - Servicios de red
  45. 45 - Usuarios y accesos al sistema
  46. 46 - El sistema de parcheado
  47. 47 - Extensiones de la seguridad
  48. 48 - El subsistema de red
  49. 49 - Parametros del núcleo
  50. 50 - Linux
  51. 51 - Seguridad física en x86
  52. 52 - Usuarios y accesos al sistema
  53. 53 - El sistema de parcheado
  54. 54 - El subsistema de red
  55. 55 - El núcleo de Linux
  56. 56 - AIX
  57. 57 - Seguridad física en RS/6000
  58. 58 - Servicios de red
  59. 59 - Usuarios y accesos al sistema (I)
  60. 60 - Usuarios y accesos al sistema (II)
  61. 61 - El sistema de log
  62. 62 - El sistema de parcheado
  63. 63 - Extensiones de la seguridad: filtros IP
  64. 64 - El subsistema de red
  65. 65 - HP-UX
  66. 66 - Seguridad física en PA-RISC
  67. 67 - Usuarios y accesos al sistema
  68. 68 - El sistema de parcheado
  69. 69 - Extensiones de la seguridad
  70. 70 - El subsistema de red
  71. 71 - El núcleo de HP-UX
  72. 72 - Seguridad de la subred: el sistema de red
  73. 73 - Algunos ficheros importantes
  74. 74 - Algunas órdenes importantes
  1. 75 - Servicios
  2. 76 - Algunos servicios y protocolos
  3. 77 - Servicios basicos de red
  4. 78 - El servicio FTP
  5. 79 - El servicio TELNET
  6. 80 - El servicio SMTP
  7. 81 - Servidores WWW
  8. 82 - Los servicios r-
  9. 83 - XWindow
  10. 84 - Cortafuegos: Conceptos teóricos
  11. 85 - Características de diseño
  12. 86 - Componentes de un cortafuegos
  13. 87 - Arquitecturas de cortafuegos
  14. 88 - Firewall-1
  15. 89 - ipfwadm/ipchains/iptables
  16. 90 - IPFilter
  17. 91 - PIX Firewall (I)
  18. 92 - PIX Firewall (II)
  19. 93 - Escaneos de puertos
  20. 94 - Spoofing
  21. 95 - Negaciones de servicio
  22. 96 - Interceptación
  23. 97 - Ataques a aplicaciones
  24. 98 - Sistemas de detección de intrusos
  25. 99 - Clasificación de los IDSes
  26. 100 - Requisitos de un IDS
  27. 101 - IDSes basados en maquina
  28. 102 - IDSes basados en red
  29. 103 - Detección de anomalías
  30. 104 - Detección de usos indebidos
  31. 105 - Implementación real de un IDS (I)
  32. 106 - Implementación real de un IDS (II)
  33. 107 - Algunas reflexiones
  34. 108 - Kerberos
  35. 109 - Arquitectura de Kerberos
  36. 110 - Autenticación
  37. 111 - Problemas de Kerberos
  38. 112 - Criptología
  39. 113 - Criptosistemas
  40. 114 - Clasificación de los criptosistemas
  41. 115 - Criptografía clasica
  42. 116 - Un criptosistema de clave secreta: DES
  43. 117 - Criptosistemas de clave pública
  44. 118 - Funciones resumen
  45. 119 - Esteganografía
  46. 120 - Algunas herramientas de seguridad
  47. 121 - Titan (I)
  48. 122 - Titan (II)
  49. 123 - TCP Wrappers
  50. 124 - SSH
  51. 125 - Tripwire
  52. 126 - Nessus
  53. 127 - Crack
  54. 128 - Gestión de la seguridad
  55. 129 - Políticas de seguridad
  56. 130 - Analisis de riesgos
  57. 131 - Estrategias de respuesta
  58. 132 - Outsourcing
  59. 133 - El "Área de Seguridad"
  60. 134 - Apéndice 1: Seguridad basica para administradores (I)
  61. 135 - Apéndice 1: Seguridad basica para administradores (II)
  62. 136 - Apéndice 2: Normativa (I)
  63. 137 - Apéndice 2: Normativa (II)
  64. 138 - Apéndice 2: Normativa (III)
  65. 139 - Apéndice 2: Normativa (IV)
  66. 140 - Recursos de interés en INet
  67. 141 - Glosario de términos anglosajones
  68. 142 - Conclusiones
  69. 143 - Bibliografía (I)
  70. 144 - Bibliografía (II)
  71. 145 - Bibliografía (III)
  72. 146 - Bibliografía (IV)
  73. 147 - Bibliografía (V)
  74. 148 - libro
Autor y licencia de 'Seguridad en Unix y redes - Extensiones de la seguridad'
Antonio Villalón Huerta Extraído de: http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/ GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Seguridad en Unix y redes - Extensiones de la seguridad'

Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
WiFi (Wireless Fidelity) es un nombre comercial desarrollado por un grupo de comercio industrial llamado... Más »
WiFI describe los productos de WLAN basados en los estándares 802.11 y está pensado en... Más »
Monografía sobre la implementación de una política de Prevención de Riesgos Laborales en empresas de... Más »
CHROOT es una llamada al sistema en UNIX que permite configurar un directorio como "raíz"... Más »
Gente Wiki
Hermes Ruiz
Economista y MBA, me he especializado en soluciones tecnológicas aplicadas al mundo de los rrhh, participando en diversos proyectos en...
Assessment center
Rosa Ramos
Licenciada en psicologia, trabajo en el área de gestión y desarrollo humano, en el puestod e vinculación y desarrollo humano.
Gestión del conocimiento
Bolivar Villa
Soy ing. Quimico y actualmente curso una maestria en sistemas de manufactura. Trabajo en una empresa de ingenieria y mi...
Pedro Olivares
Me dedico profesionalmente al diseño y gestión de marcas, branding, un mundo que cada día me apasiona más. Me gustaría...
Merchandising
Sergio Meneses
Soy químico biólogo, trabajo en el laboratorio central de referencia, tengo 38 años.
Viviana
Laboro en una unidad de servicios de mercadeo para la Agencia de Publicidad EuroRSCG 4D soy la directora del departamento...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?