Checklist de Seguridad para HP-UX - UNAM-CERT

Anuncio
Seguridad en HP-UX
César Vega Calderón
EDS de México, S.A. de C.V.
Abril 19 de 2001
1. Resumen
Este documento contiene una serie de recomendaciones de seguridad para el sistema
operativo HP-UX de Hewlett Packard Company.
Dichas recomendaciones aplican tanto para una instalación en frío del sistema
operativo como para el robustecimiento de la seguridad de un sistema productivo.
2. Introducción
De sobra es sabido que el sistema operativo Unix no es seguro en absoluto.
Obviamente, el sistema HP-UX 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 ser configurado de manera 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 configuracion 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 fixes
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 documentos 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, se
recomienda fuertemente 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.
Pág. 1 de 8
3. Guidelines de seguridad para HP-UX
 Convertir el sistema a Trusted System
1. Realizar un respaldo completo del sistema y asegurarse de que la información
puede ser recuperada, es decir, que el respaldo es í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
Pág. 2 de 8
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.
Asignar 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.
La 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:
HP-UX 11.00:
/usr/contrib/bin/nettune -h
/usr/bin/ndd –h ip_forwarding
2. Determinar si está activado el forwarding:
HP-UX 10.20:
HP-UX 11.00:
/usr/contrib/bin/nettune –l ip_forwarding
/usr/bin/ndd –get /dev/ip ip_forwarding
3. Desactivar el forwarding:
HP-UX 10.20:
HP-UX 11.00:
/usr/contrib/bin/nettune –s ip_forwarding 0
/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
Pág. 3 de 8
1. Si es necesario compartir un sistema de archivos via 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 via 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. Crear 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 via 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:
Pág. 4 de 8
# Permitir las conexiones via ftp a las máquinas1.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 via 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. Asegurarse 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. Revisar 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. Revisar 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. Parar los servicios de Internet:
/sbin/init.d/inetd stop
3. Arrancar los servicios de Internet:
/sbin/init.d/inetd start
 Limitar a la consola las conexiones de root
Pág. 5 de 8
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. Definir 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. Restringir a root los permisos de ejecución para el comando /usr/bin/chsh
 Desactivar o personalizar el banner de telnet
Pág. 6 de 8
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 este se
conecte al sistema via 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
4. Fuentes de información
•
•
•
•
•
•
•
•
•
•
•
•
www.seguridad.unam.mx
www.cert.org/advisories
“Practical Unix and Internet Security”
“Halting the Hacker”
www.hp.com
www.software.hp.com
itrc.hp.com
docs.hp.com/hpux
www.hpeducacional.com.mx
www.faqs.org/faqs/hp/hpux-faq
www.dutchworks.nl/htbin/hpsysadmin
hpux.cs.utah.edu
5. Comentarios
•
Los puntos de vista expresados por el autor no necesariamente reflejan los de la
empresa para la cuál labora.
Pág. 7 de 8
•
•
El lector asume por completo la responsabilidad derivada del uso de este
material.
Este documento no se encuentra de manera alguna concluído, por lo que será
actualizado constantemente (última actualización realizada el 19 de Abril del
2001).
•
Pág. 8 de 8
Descargar