Seguridad en HP-UX Resumen Introducción - UNAM-CERT

Anuncio
Seguridad en HP-UX
Recomendaciones de seguridad para el sistema operativo HP-UX de Hewlett Packard Company.
César Vega Calderón
EDS de México, S.A. de C.V.
Abril 19 de 2001
• Resumen
• Introducción
• Guidelines de seguridad para HP-UX
• Comentarios
• Referencias
• Revisión histórica
Resumen
Este documento contiene una serie de recomendaciones de seguridad para el sistema operativo HP-UX de
Hewlett Packard Company.
Éstas aplican tanto para una instalación en frío del sistema operativo, como para el robustecimiento de la
seguridad de un sistema productivo.
Introducción
De sobra es sabido que el sistema operativo Unix no es seguro en absoluto y el de los equipos HP 9000 de
Hewlett Packard no es la excepción.
Sin embargo, el sistema operativo HP-UX, al igual que cualquier otro "sabor" de Unix, puede configurarse
para que la seguridad del sistema se vea robustecida en buena medida.
La seguridad de un sistema puede incrementarse con una serie de medidas, entre las que destacan por su
importancia:
• Creación e implementación de políticas y procedimientos de seguridad
• Instalación y configuración de herramientas de seguridad
• Capacitación de usuarios y administradores
• Configuración adecuada de los servicios de red del sistema
• Instalación periódica de parches y reparaciones
• Concientización masiva en seguridad
• Elaboración periódica de respaldos
• Verificación de la integridad de los respaldos
• Atención a la seguridad física
• Buena cultura de administración y seguridad
• Buenas prácticas de renovación, uso y expiración de contraseñas
• Configuración segura del sistema operativo
Este documento hace énfasis en la última, aunque no menos importante medida: la configuración "segura" del
sistema operativo. Es "segura" porque es bien conocido el hecho de que en la práctica no existe ningún
sistema 100 % seguro.
NOTA IMPORTANTE
Antes de hacer cualquier cambio en los archivos de configuración del sistema, es altamente recomendable
obtener un respaldo confiable de los mismos.
Por otra parte, la gran mayoría de los comandos descritos a lo largo del documento deberán ser ejecutados con
una cuenta privilegiada, que generalmente es root.
Guidelines de seguridad para HP-UX
• Convertir el sistema a Trusted System
1. Realizar un respaldo completo del sistema y asegurar que la información pueda ser
recuperada, es decir, un respaldo íntegro.
2. Verificar que se encuentre instalado el producto SecurityMon:
/usr/sbin/swverify SecurityMon
3. Ejecutar SAM:
/usr/sbin/sam &
4. Ir al área de SAM denominada "Audit & Security".
5. Ir al área de SAM denominada "System Security Policies".
6. Automáticamente el sistema solicita la confirmación para convertir el sistema a Trusted
System. Confirmar la conversión.
• Configurar la auditoría en un Trusted System
1. Verificar el status del subsistema de auditoría (desactivada por default):
/usr/sbin/audsys
2. Activar la auditoría para todos los usuarios (no recomendado), usando el archivo
/.secure/etc/audlog1 con un tamaño máximo de 4000 KB y un archivo auxiliar
/.secure/etc/audlog2 con un tamaño máximo de 5000 KB:
/usr/sbin/audsys -n -c /.secure/etc/audlog1 -s 4000 -x /.secure/etc/audlog2 -z 5000
3. Verificar los usuarios auditados:
/usr/sbin/audusr
4. Desactivar la auditoría para todos los usuarios:
/usr/sbin/audusr -D
5. Activar la auditoría sólo para un usuario user:
/usr/sbin/audusr -a user
6. Activar la auditoría de todos los eventos (no recomendado):Por default se auditan todos los
eventos al activar la auditoría.
7. Verificar los eventos auditados:
/usr/sbin/audevent
8. Desactivar la auditoría para todos los eventos:
/usr/sbin/audusr -p -f -E
9. Activar la auditoría para únicamente los eventos moddac y login:
/usr/sbin/audevent -P -F -e moddac -e login
10. Desactivar el subsistema de auditoría:
/usr/sbin/audsys -f
11. Verificar el log de auditoría:
/usr/sbin/audisp /.secure/etc/audlog1
• Configurar la historia de contraseñas de manera que el sistema recuerde las más recientes
1. Crear el archivo /etc/default/security con una línea como la siguiente:
PASSWORD_HISTORY_DEPTH=10
2. IAsignar los permisos 444 a /etc/default/security y colocar a bin como dueño y grupo de este
archivo:
/usr/bin/chmod 444 /etc/default/security
/usr/bin/chown bin:bin /etc/default/security
3. IILa información de historia de contraseñas se guarda cifrada en el archivo
/tcb/files/auth/system/pwhist/pwhist_0
• Desactivar ip_forwarding
1. Leer la descripción de IP Forwarding:
HP-UX 10.20: /usr/contrib/bin/nettune -h
HP-UX 11.00: /usr/bin/ndd -h ip_forwarding
2. Determinar si está activado el forwarding:
HP-UX 10.20: /usr/contrib/bin/nettune -l ip_forwarding
HP-UX 11.00: /usr/bin/ndd -get /dev/ip ip_forwarding
3. Desactivar el forwarding:
HP-UX 10.20: /usr/contrib/bin/nettune -s ip_forwarding 0
HP-UX 11.00: /usr/bin/ndd -set /dev/ip ip_forwarding 0
• Restringir al mínimo la exportación de sistemas de archivos a través de NFS
1. Si es necesario compartir un sistema de archivos vía NFS, exportarlo únicamente a máquinas
bien conocidas y, en lo posible, hacerlo con permisos de sólo lectura:
/usr/bin/cat /etc/exports
/filesystem -access=host,ro
• Asegurar las conexiones vía módem mediante un password adicional
1. Determinar los nombres de archivo de los dispositivos asociados con los puertos que desean
asegurarse:
/usr/sbin/ioscan -funC tty
Class I H/W Path Driver S/W State H/W Type Description
==================================================================
tty 0 0/0/4/0 asio0 CLAIMED INTERFACE PCI Serial (103c1048)
/dev/GSPdiag1 /dev/diag/mux0 /dev/tty0p1
/dev/cua0p2 /dev/mux0 /dev/tty0p2
/dev/cul0p2 /dev/tty0p0 /dev/ttyd0p2
tty 1 0/0/5/0 asio0 CLAIMED INTERFACE PCI Serial (103c1048)
/dev/GSPdiag2 /dev/mux1
/dev/diag/mux1 /dev/tty1p1
2. ICrear el archivo /etc/dialups, incluyendo la ruta completa de los archivos de dispositivo de
dial-in que serán usados para conectarse mediante una contraseña adicional:
/usr/bin/cat /etc/dialups
/dev/tty0p0
/dev/tty1p1
3. Crear una contraseña cifrada con DES para utilizar como método de autenticación en estos
puertos. Capturar, compilar y utilizar el programa siguiente para tal efecto:
#include <stdio.h>
main()
{
char salt[3], pwd[9];
char *password;
printf ("Ingrese el password a cifrar: ");
scanf("%s",pwd);
printf ("Ingrese la salt a utilizar en el cifrado: ");
scanf("%s",salt);
password = crypt(pwd,salt);
printf ("El password cifrado con DES es %s\n",password);
}
4. Crear el archivo /etc/d_passwd y agregar una línea para habilitar el shell obtenido al
conectarse vía módem (por ejemplo, /usr/bin/sh) en los puertos especificados:
/usr/bin/sh:password cifrado:comentario
• Restringir el acceso a los servicios de red
1. Editar y configurar el archivo /var/adm/inetd.sec: # Permitir las conexiones vía
ftp a las máquinas
# 1.2.3.4, "trusted_machine" y a cualquiera de la red
# 5.6.7, además de negarlas al resto del mundo
ftp allow 1.2.3.4 trusted_machine 5.6.7.*
# Negar las conexiones vía telnet a la máquina "suspicious"
# y a cualquiera de los segmentos 3, 4 o 5 de la
#red 1.2, además de permitirlas al resto del mundo
telnet deny suspicious, 1.2.3-5.*
• Asegurar la configuración de cron
1. Asegurarse de que todos los archivos de cron pertenezcan al usuario adecuado y tengan
permisos de sólo lectura para dicho usuario:
/usr/bin/ll /var/spool/cron/crontabs
2. IAsegurarse de que el archivo /var/adm/cron/cron.allow tenga permisos de sólo lectura:
/usr/bin/chmod 444 /var/adm/cron/cron.allow
• Verificar las ACL's de los archivos del sistema
1. Buscar todos los archivos que tengan las ACL's activadas
/usr/bin/find / -acl opt
2. IRevisar las ACL's de cada archivo encontrado:
/usr/bin/lsacl archivo
• Verificar la integridad del software instalado
1. Verificar la integridad de los archivos instalados con el SD (Software Distributor):
/usr/sbin/swverify
2. IRevisar cuidadosamente el archivo de log generado:
/usr/bin/more /var/adm/sw/swagent.log
• Activar el registro de conexiones para inetd
1. Editar el archivo /etc/rc.config.d/netdaemons y asegurarse de que exista una línea como la
siguiente dentro de este archivo:
export INETD_ARGS="-l"
2. IParar los servicios de Internet:
/sbin/init.d/inetd stop
3. IIArrancar los servicios de Internet:
/sbin/init.d/inetd start
• Limitar a la consola las conexiones de root
1. Crear el archivo /etc/securetty:
/usr/bin/echo "console" > /etc/securetty
2. Colocar permisos de sólo lectura para root al archivo /etc/securetty:/usr/bin/chmod
400 /etc/securetty
• Asegurarse de que el archivo /var/adm/btmp tenga los permisos 600 y pertenezca a root
1. Ejecutar los siguientes comandos:
/usr/bin/ll /var/adm/btmp
/usr/bin/chmod 600 /var/adm/btmp
• Asegurarse de que la variable PATH de ningún usuario contenga un punto
1. Revisar los archivos de inicialización de los usuarios del sistema, ubicar la variable PATH y
eliminar el punto (.).
• Desactivar la recepción de mensajes para el superusuario
1. Ejecutar el siguiente comando:
/usr/bin/mesg n
• Configurar la variable TMOUT en los archivos profile
1. Agregar la siguiente línea al archivo /etc/profile, o bien, a los archivos $HOME/.profile de los
usuarios deseados:
TMOUT=600 # Cerrar la sesión luego de 10 minutos de inactividad
• Utilizar shells restringidos para los operadores
1. Crear la cuenta del operador y colocar /usr/bin/rsh o /usr/bin/rksh como shell.
2. IDefinir la variable PATH para la cuenta del operador de manera que esta únicamente haga
referencia al directorio bin dentro del directorio HOME.
3. Asignar root como dueño del archivo .profile bajo el directorio HOME de la cuenta del
operador y colocar los permisos 500.
4. Crear el directorio bin dentro del directorio HOME de la cuenta del operador
5. Bajo este directorio bin, crear ligas de los binarios que se permitirá ejecutar al operador.
6. VRestringir a root los permisos de ejecución para el comando /usr/bin/chsh
• Desactivar o personalizar el banner de telnet
1. Editar el archivo /etc/inetd.conf:
/usr/bin/vi /etc/inetd.conf
2. Agregar la opción -b al final de la línea del servicio telnetd para desactivar el banner, o bien,
agregar la opción -b seguida de un espacio en blanco y el nombre del archivo que deseamos
sea desplegado al usuario cuando éste se conecte al sistema vía telnet. Por ejemplo:
telnet stream tcp nowait root /usr/local/etc/tcpd telnetd telnetd -b /etc/issue
3. Hacer que el demonio inetd vuelva a leer su archivo de configuración:
/usr/sbin/inetd -c
• Desactivar los servicios de red no utilizados
1. Editar el archivo /etc/inetd.conf:
/usr/bin/vi /etc/inetd.conf
2. Comentar las líneas correspondientes a los servicios innecesarios:
#fingerd stream tcp nowait root /usr/local/etc/tcpd fingerd fingerd
3. Hacer que el demonio inetd vuelva a leer su archivo de configuración:
/usr/sbin/inetd -c
Comentarios
Los puntos de vista expresados por el autor no necesariamente reflejan los de la empresa para la cual labora.
El lector asume por completo la responsabilidad derivada del uso de este material.
Este documento no se encuentra de manera alguna concluido, por lo que será actualizado constantemente
(última actualización realizada el 19 de Abril del 2001).
Referencias
Practical Unix and Internet Security
Búsqueda en Google
Halting the Hacker
Búsqueda en Google
Seguridad UNAM
www.seguridad.unam.mx
CERT Advisories
www.cert.org/advisories
HP.com
www.hp.com
HP Software
www.software.hp.com
HP IT Resource Center
itrc.hp.com
HP Docs
docs.hp.com/hpux
Faqa.org
www.faqs.org/faqs/hp/hpux-faq
HP SysAdmin
www.dutchworks.nl/htbin/hpsysadmin
HP-UX
hpucs.utah.edu
Revisión histórica
• Liberación original:
• Última revisión: 7 de octubre de 2010
La Subdirección de Seguridad de la Información/UNAM-CERT agradece el apoyo en la elaboración y
revisión de este documento a:
• César Vega Calderón
• Galvy Cruz Valencia
• Andrés Leonardo Hernández Bermúdez
Para mayor información acerca de éste documento de seguridad contactar a:
UNAM-CERT Equipo de Respuesta a Incidentes UNAM
Subdirección de Seguridad de la Información
Dirección General de Cómputo y de Tecnologías de Información y Comunicación
Universidad Naciónal Autónoma de México
E-Mail: [email protected]
http://www.cert.org.mx
http://www.seguridad.unam.mx
ftp://ftp.seguridad.unam.mx
Tel: 56 22 81 69
Fax: 56 22 80 43
Descargar