Auditoría de sistemas UNIX. Parte 8. Variables de entorno

Otro de los puntos que nos puede interesar analizar son las variables que definen la situación inicial asignada por defecto de los usuarios de las máquinas. Es lo que llamamos variables de entorno.

Así pues, en un sistema de estas características, cuando añadimos un usuario al sistema, este hereda como condiciones iniciales aquellas que se definan en las citadas variables de entorno. El ejemplo más comprensible de esta operativa es la adición de usuarios mediante el comando useradd.

Los ficheros que debemos analizar son principalmente dos: skel y profile, aunque como era de imaginar, la definición de las variables de entorno puede hacerse distinta según empleemos un sistema u otro. Así pues, /etc/skel y /etc/profile serán las ubicaciones en Tru64 y Ultrix. En Linux, añadiremos también el directorio /etc/security/ a la lista de inspecciones. Los integrantes de las familias BSD suelen caracterizarse por tener esta definición en /etc/login.conf

Ejemplo práctico

1. Identificamos la máquina (uname -a)

Linux shernando 2.6.17-10-386 #2 Fri Oct 13 18:41:40 UTC 2006 i686 GNU/Linux

2. Analizamos los contenidos de /etc/default/useradd

Este fichero contiene la secuencia empleada en la creación de usuarios.

# Default values for useradd(8)
#
# The SHELL variable specifies the default login shell on your
# system.
# Similar to DHSELL in adduser. We however use «sh» here because
# useradd being a low level utility should rather be as widely opened
# as possible
SHELL=/bin/sh
#
# The default group for users
# 1000=users on Debian systems
# same then USERS_GID in adduser
# Please be aware that Debian’s adduser defaults to «user groups»
# which means that one group is created for each user
# There is no way to achieve this with useradd which must remains a low
# level utility
GROUP=100
#
# The default home directory. Same than DHOME for adduser
HOME=/home
#
# The number of days after a password expires until the account
# is permanently disabled
INACTIVE=-1
#
# The default expire date
EXPIRE=
#
# The SKEL variable specifies the directory containing «skeletal» user
# files; in other words, files such as a sample .profile that will be
# copied to the new user’s home directory when it is created.
SKEL=/etc/skel
#
# Defines whether the mail spool should be created while
# creating the account
CREATE_MAIL_SPOOL=yes

Marcamos en negrita la ubicación de SKEL.

3. Analizamos /etc/skel

Este directorio contiene los archivos que serán colocados en el home de cada usuario cuando éste sea creado mediante useradd. Verificaremos que no se depositan ficheros sospechosos al crear los usuarios.


-rw-r–r– 1 root root 3576296 2006-10-11 17:28 Experience ubuntu.ogg
-rw-r–r– 1 root root 229674 2006-10-11 17:28 fables_01_01_aesop.spx
-rw-r–r– 1 root root 848013 2006-10-11 17:28 gimp-ubuntu-splash.xcf
-rw-r–r– 1 root root 1186219 2006-10-11 17:28 kubuntu-leaflet.png
-rw-r–r– 1 root root 47584 2006-10-11 17:28 logo-Edubuntu.png
-rw-r–r– 1 root root 10022 2006-10-11 17:28 logo-Kubuntu.png
-rw-r–r– 1 root root 34391 2006-10-11 17:28 logo-Ubuntu.png
-rw-r–r– 1 root root 117991 2006-10-11 17:28 oo-about-these-files.odt
-rw-r–r– 1 root root 27835 2006-10-11 17:28 oo-about-ubuntu-ru.rtf
-rw-r–r– 1 root root 32170 2006-10-11 17:28 oo-cd-cover.odg
-rw-r–r– 1 root root 159744 2006-10-11 17:28 oo-derivatives.doc
-rw-r–r– 1 root root 27837 2006-10-11 17:28 oo-maxwell.odt
-rw-r–r– 1 root root 94091 2006-10-11 17:28 oo-payment-schedule.ods
-rw-r–r– 1 root root 1580407 2006-10-11 17:28 oo-presenting-kubuntu.odp
-rw-r–r– 1 root root 495787 2006-10-11 17:28 oo-presenting-ubuntu.odp
-rw-r–r– 1 root root 98816 2006-10-11 17:28 oo-trig.xls
-rw-r–r– 1 root root 445511 2006-10-11 17:28 oo-welcome.odt
-rw-r–r– 1 root root 358374 2006-10-11 17:28 ubuntu Sax.ogg

4. Analizamos /etc/profile

Este fichero contiene las variables de inicialización y los ficheros que son arrancados al inicio. Buscaremos posibles irregularidades, en cuanto a ficheros de inicialización sospechosos que sean lanzados al principio.


# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), …).

if [ «$PS1» ]; then
if [ «$BASH» ]; then
PS1=’\u@\h:\w\$ ‘
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ «`id -u`» -eq 0 ]; then
PS1=’# ‘
else
PS1=’$ ‘
fi
fi
fi

umask 022

5. Revisamos /etc/security

Este directorio contiene ficheros de configuración generales.

-rw-r–r– 1 root root 2447 2006-05-12 19:42 access.conf
-rw-r–r– 1 root root 2246 2006-05-12 19:42 group.conf
-rw-r–r– 1 root root 1643 2006-05-12 19:42 limits.conf
-rw-r–r– 1 root root 3099 2006-05-12 19:42 pam_env.conf
-rw-r–r– 1 root root 2153 2006-05-12 19:42 time.conf

Revisaremos todos los ficheros y tomaremos nota de configuraciones sospechosas.

Resumen

Las variables de entorno son aquellas que se propagan al sistema de un modo general, y permiten que la administración de los derivados UNIX no requiera definir manualmente, para cada usuario agregado al sistema, sus condiciones de inicio global. El objetivo de la auditoría será, en este caso, determinar si alguna de estas condiciones globales puede favorecer que la adición de nuevos usuarios provoque que éstos reciban por defecto privilegios en el sistema que no le corresponden.

2 comentarios sobre “Auditoría de sistemas UNIX. Parte 8. Variables de entorno

  1. Un comentario que me gustaría hacer:

    Mucho cuidado con la aparición de «.» en la variable de entorno PATH. Insertar «.» en la variable PATH añade incertidumbre durante el proceso de ejecución de un binario que carece de camino de acceso.

Comentarios cerrados.